Синхронный двигатель с постоянными магнитами (PMSM) с квадратурным датчиком энкодера требует начального положения, чтобы запустить двигатель. Поскольку у вас нет метода, чтобы определить начальное положение в начале (перед запуском двигателя), запустите двигатель в разомкнутом контуре и убедитесь, что квадратурный импульс индекса энкодера считывается по крайней мере один раз. На индекс импульсе квадратурного энкодера датчик квадратурного энкодера сбрасывает свое положение, чтобы соответствовать механическому углу двигателя. Двигатель переключается с разомкнутого контура запуска на регулирование скорости с обратной связью, чтобы поддерживать задающую скорость. Этот шаг применим только для квадратурного датчика энкодера, а не для датчика положения Холла. Датчик Холла выводит начальное положение сегмента ротора из входов порта сигнала Холла.
Выполните следующие шаги, чтобы реализовать запуск двигателя без разомкнутого контура с переходом к управлению с обратной связью:
Скопируйте mcb_pmsm_foc_qep_f28379d/Current Control/Control_system
подсистема вашей модели. Это добавляет логику запуска двигателя в разомкнутом контуре. Эта подсистема переключает управление с разомкнутого контура на систему с обратной связью EnClosedLoop если вход 1
. Добавьте входа порт EnClosedLoop. Это добавляет блоки Data Store Read для Enable и SpeedRef. Добавьте блоки Data Store Memory Enable, EnClosedLoop и SpeedRef на самом верхнем уровне модели.
Когда начинается запуск без разомкнутого контура, знак SpeedRef определяет направление начального запуска мотора. Если SpeedRef отрицательно, двигатель вращается в противоположном направлении во время запуска без разомкнутого контура.
Скопируйте mcb_pmsm_foc_qep_f28379d/Current Control/Input Scaling/Calculate Position and Speed
подсистема вашей модели. Это добавляет IndexFinder
блок. Когда первый импульс индекса квадратурного энкодера обнаруживается, IndexFound
для порта задано значение 1
. Добавьте выхода порт IndexFound
и переименовать его в EnClosedLoop
.
Соедините выход порт EnClosedLoop из подсистемы Входа Scaling с входом портом EnClosedLoop в подсистеме Control_System как показано на этом рисунке.
Скопируйте mcb_pmsm_foc_qep_f28379d/Speed Control/Speed_Ref_Selector
подсистема вашей модели. Этот блок использует speed_ref
блок, когда начинается управление с обратной связью. Для плавного перехода от разомкнутого контура к системе с обратной связью измеренная скорость используется в качестве скорости, ссылки во время разомкнутого контура запуска. Добавьте блок Data Store Write SpeedRef к PI_Controller_Speed
входной порт.
В модели объекта управления добавляется шаг входа для симуляции блока IndexFinder для симуляции. Переименуйте вход шага в Switch to closed loop
. Смотрите mcb_pmsm_foc_qep_f28379d/Inverter and Motor - Plant Model/Sensor_Measurments
подсистема для шагового входа для переключения на систему с обратной связью. Выберите время шага 0.1
и шаг расчета Ts_motor.
Создайте блоки памяти хранилища данных для EnClosedLoop, Enable и SpeedRef. Enable блок используется для сброса интегратора ПИ перед запуском двигателя. Добавьте эти значения по умолчанию в блоки памяти хранилища данных: Enable = 1
, EnClosedLoop = 0
, и SpeedRef = 0.25
.
Блоки памяти хранилища данных используются для совместного использования данных через подсистему.
Запустите симуляцию и наблюдайте ссылку скорости и обратную связь скорости.