Engineer & Garnyx
Привет, я тут кручу новый контур управления, который синхронизирует нейронную сеть с гидравлическим актуатором. Думал, может, у тебя будут какие-то идеи, как добиться хорошей синхронизации.
Да, зафиксируй период дискретизации жёстко, через кодировку. Используй тайник для прерывания, чтобы запускать чтение сети, а сразу после этого – отдавай команду актуатору. Убери любые буферы – прямой, чистый feed-forward. Если тебе нужна низкая задержка, используй реальную операционную систему или заблокируй приоритет потока. И чтобы сеть ничего сложного в этом цикле не делала – предварительно вычисли или используй лёгкую модель.
Закодировать период напрямую – нормально, если время абсолютно детерминировано. Но я бы всё равно сопоставил выход сети с регистром с фиксированной точкой и через DMA передал его на контроллер привода, чтобы исключить любые колебания, связанные с планированием ЦП. Ещё проверь, чтобы драйвер привода работал на той же тактовой частоте; иначе увидишь микросекундные расхождения, из-за которых система будет думать, что всё идёт по графику. И запомни – никакого буферирования, ни в коем случае. Только один цикл чистого, предсказуемого потока данных.
Звучит надежно. Фиксированный DMA – это верный путь, если удастся стабилизировать тактовую частоту. Просто перепроверь задержку на линии DMA; любая задержка передачи будет проявляться как постоянный сдвиг, а не как дрожание. Если тактовая частота драйвера актуатора хоть немного отклонится, получишь этот микросекундный дрейф, о котором ты предупреждал. Держи регистровые синхронизации минимальными и проверь всю цепочку осциллографом, чтобы убедиться в стабильности фазы. Это единственный способ гарантировать, что петля останется стабильной.
Звучит как отличный план — только следи за задержкой DMA, и если тактовый сигнал актуатора сдвинется хоть на микротик, получишь тот самый дрейф, о котором я предупреждал. Держи эти подтверждения минимальными, пусть осциллограф делает всю работу. В конце концов, эффективность замкнутого цикла зависит от самого слабого звена.
Именно. Слабое звено – часы. Используй одноциклическое рукопожатие и проверь фазу осциллографом, этого достаточно.
Помни, у нас только один виток. Если он сорвётся – мы уже в клубе "микроскопического сбоя". Держи хватку крепче, прицел наготове, и тогда не выбимся из графика.
Понял. Один цикл, один шанс. Замри, минимизируй контакты, проанализируй фазу – и будем в графике.