Регуль, прогресс...

Прогресс пока в основном на макетке, но хорош. Комрад переписал формулу вычисления скорости, заменив стрёмную свертку на более полноценное выражение с производной. Сообщил, что теперь обороты держатся намного стабильнее во всем диапазоне (для одних и тех же коэффициентов ПИД-а). Был скользкий момент с насыщением магнитного потока (если поток не линейный, то формулы просто так не сократить), но, хвала всем богам, его либо нет, либо им можно пренебречь без последствий.

То есть теперь, чтобы определить скорость, достаточно двух соседних отсчетов (два - чтобы производную тока определить). Единственный нюанс - во время включения симистора производная слишком большая, и стоит игнорировать данные. Теперь осталось внимательно перепроверить на реальном моторе, вписываемся ли в нужную точность, и будем “отливать в граните”. Проверять надо на минимальной скорости, 3000rpm (~10% от макимума):

  • Сколько нужно выпилить отсчетов в начале (примерный критерий - пока производная тока не станет <= 0).
  • Сколько нужно выпилить отсчетов в конце (чтобы не делить на слишком маленький ток, который может вызвать погрешность).

Если после выпиливания головы и хвоста останется хотя бы пара рабочих отсчетов - значит все зашибись. Думаю, все будет пучком, т.к. макетка пашет.

После этого можно будет считать девайс рабочим при фиксированных коэффициентах конфига, и переходить к автокалибровке. Там колея уже накатанная, проблем не предвидится. А всякую техническую лабуду по запуску калибровки ручкой и эмуляцию eeprom через flash я уже написал.

На потом (после релиза) останется тема с ограничением мощности/тока, и попытка привернуть более дохлый процессор (Cortex-M0 без аппаратного деления). С практической точки зрения это нафик надо, просто хочется чисто для себя разобраться, если будет время.

  • 469