4.2.13. PID алгоритм для управления BLDC двигателем

4.2.13.1. Описание алгоритма

Управление BLDC двигателем осуществляется с помощью PID регулятора. Регулируемой величиной является координата. Для обеспечения возможности движения, сама регулируемая координата изменяется в соответствии с установленными настройками движения и поступившими командами. Изменяющуюся во времени регулируемую координату далее будем называть бегущей позицией. Управляющим сигналом регулятора является модуль вектора тока, который (вектор) удерживается перпендикулярно ротору. Формула для вычисления управляющего воздействия:

\[U(t) = I + P + D = K_p \cdot E(t) + K_i\int E(t)dt + K_d\frac{dE(t)}{dt}, where:\]

\(U(t)\)- управляющее воздействие

\(E(t)\)- разница между бегущей координатой и текущей координатой двигателя

\(K_p, K_i, K_d\) - коэффициенты усиления пропорциональной, интегральной и дифференциальной составляющих регулятора, соответственно. Коэффициенты регулятора задаются с помощью соответствующего меню программы XiLab или с помощью вызова функции set_pid_settings(), (см. раздел Руководство по программированию).

PID-коэффициенты в алгоритме управления BLDC имеют тот же смысл, что и в управлении DC. См. влияние различных составляющих PID, рекомендации по настройке и замечания в главе PID алгоритм для управления DC двигателем.

4.2.13.2. Ручная настройка коэффициентов PID-регулятора

Для тонкой настройки коэффициентов PID-регулятора существует специальное окно программы XiLab. В окне выводится зависимость от времени скорости BLDC-двигателя и ошибки следования соответсвующей координате, вид окна показан на скриншоте ниже.

../../../_images/Oscilloscope.png

Окно настройки PID регулятора.

Для корректной работы двигателя нужно добиться устойчивой компенсации ошибки следования.

4.2.13.2.1. Шаги по настройке коэффициентов:

  1. Для начала нужно оценить PID-коэффициенты. Учитывая структуру управляемой системы, их можно вычислить по упрощенным формулам. Для этого используются параметры из документации на соответствующий двигатель и позиционер.

    • \(K_m\) - электромеханический коэффициент двигателя [H / A] (момент создаваемый силой тока 1 A). Может быть вычислен как отношение \(K_m = \frac{F_n}{I_n}\), где \(F_n\) - номинальная (максимальное) усилие создаваемое двигателем, \(I_n\) - номинальная (максимальная) сила тока.
    • \(M\) - масса нагрузки (кг).
    • \(\sigma = \frac{M}{K_m}\).
    Пример для подвижки 8MTL1301-170:
    • Загружаем профиль для этой подвижки. Из него узнаем дефолтные PID-коэффициенты:
      Kp 200 000, Ki 250, Kd 625.

    • Коэффициент km рассчитывался по формуле выше, для данного позиционера он равен 12,9.

    • Используя формулу посчитаем PID коэффициенты для массы 4,7 кг.
      \(\sigma = 4.7 / 12.9 = 0,3643\).

    • Значение \(\sigma\), которое мы нашли ранее по формуле, умножаем на дефолтные PID коэффициенты из профиля и получаем:

      • \(200 000 \cdot 0,3643 = 72 860\);
      • \(250 \cdot 0,3643 = 91,075\), округляем до 91;
      • \(625 \cdot 0,3643 = 227,6875\), округляем до 228.
  2. Выставить коэффициенты, рассчитанные по формулам, нажать Apply. В главном окне XiLab нажать кнопку Zero. В поле Move to выставить 0, отправить команду Move to. Двигатель должен остановиться. Попробовать сдвинуть позицию руками, убедиться, что отклик правильный - двигатель старается вернуться в нулевую позицию (реверс энкодера настроен верно).

  3. В настройках движения, выставить маленькую скорость, нажать Apply. В главном окне начать движение в сторону. Если начинаются вибрации и срывы, нужно увеличивать дифференциальный коэффициент (Kdf), увеличивать, пока заметно уменьшение колебаний скорости около требуемого значения.

  4. Если вибрации имеют звуковые частоты (позиционер издаёт громкий звук при движении), возможно, следует уменьшить коэффициент Kd или все коэффициенты пропорционально.

  5. Интегральный коэффициент (Kif) отвечает за попадание в целевую позицию, для проверки удобно использовать команду Shift on.

  6. Для более точной настройки коэффициентов используйте окно Oscilloscope, в этом окне визуализируется ошибка следования для данных параметров движения. Чтобы открыть окно нужно нажать кнопку PID tuning.

  7. После того, как коэффициенты настроены, можно их пропорционально менять, это соответствует увеличению/уменьшению массы, отклик на воздействие становится более/менее мощным. Добиться того, чтобы резкие остановки не приводили к срывам движения.