"Клавиатура" для регулятора бормашинки

Ну что ж, регулятор с новой платой и прошивкой ожил, но надо уточнять математику. Если выставить ПИД на большой скорости, то там стоит как влитой, но на малых не хватает (просадка, потом восстановление за 2 сек). Если выставлять ПИД на малой скорости - то на малой держит железно, а на большой уже начинает дергаться.

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

  • Грубовато сократили формулу вычисления скорости.
  • Есть накладки с точностью на математике с фиксированной точкой, и погрешность не поддается нормальной оценке.
  • Остались “магические константы” (зависят от параметров двигателя).

Что можно на эту тему предпринять?

  • Напарник пообещал за выходные еще раз расписать формулы в Scilab, чтобы быстро подставлять реальные значения тока/напряжения и оценивать погрешность.
  • Все-таки неплохо бы иметь автокалибровку - мерить сопротивление, индуктивность, коэффициент нормализации скорости, и подбирать коэффициенты ПИД-а.

И тут возник главный вопрос - а как запускать калибровку, чтобы это было удобно. Ставить кнопку - плохой вариант, корпус-то закрытый. Вспомнился подход из электронных сигарет, где для входа в режим настройки надо несколько раз быстро нажать кнопку включения. Повертел бормашинку так-сяк, щелкать тумблером и трекать это дело - не очень удобно, а вот дергать колесико - самое то. Накидал в коде рыбу конечного автомата для отслеживание ручки, вроде вменяемо получилось. Так что автокалибровке быть.

  • 485