Выполните настройку параметров управления для контуров скорости и момента, являющиеся частью векторного алгоритма управления (FOC). Motor Control Blockset™ предоставляет вам несколько методов, чтобы вычислить усиления цикла управления из системы или функций поблочной передачи, которые доступны для двигателей, инвертора и контроллера:
Используйте блок Field Oriented Control Autotuner.
Используйте Simulink® Control Design™.
Используйте скрипт инициализации модели.
Блок Field-Oriented Control Autotuner Motor Control Blockset позволяет вам автоматически настроить циклы управления ПИДа в своем приложении Ориентированного на поле управления (FOC) в режиме реального времени. Можно автоматически настроить ПИД-регуляторы, сопоставленные со следующими циклами (для получения дополнительной информации, смотрите, Как Использовать Сориентированный Блок Автотюнера Управления Поля):
Прямая ось (d - ось) текущий цикл
Квадратурная ось (q - ось) текущий цикл
Цикл скорости
Для каждого цикла, который настраивает блок, блок Field-Oriented Control Autotuner выполняет автоматически настраивающийся эксперимент способом с обратной связью, не используя параметрическую модель, сопоставленную с тем циклом. Блок позволяет вам задать порядок, в котором блок настраивает циклы управления. Когда настраивающиеся запуски эксперимента для одного цикла, блок не оказывает влияния на другие циклы. Для получения дополнительной информации об автотюнере FOC, смотрите Поле Ориентированные ПИ-контроллеры Автотюнера и Мелодии Управления при помощи Поля Ориентированный Автотюнер Управления.
Simulink Control Design позволяет вам проектировать и анализировать системы управления, смоделированные в Simulink. Можно автоматически настроить произвольные архитектуры управления SISO и MIMO, включая ПИД-регуляторы. Можно развернуть автонастройку ПИД-регулятора во встроенное программное обеспечение, чтобы автоматически вычислить коэффициенты ПИД в режиме реального времени.
Можно найти рабочие точки и вычислить точную линеаризацию моделей Simulink в различных условиях работы. Simulink Control Design обеспечивает инструменты, которые позволяют вам вычислить основанные на симуляции частотные характеристики, не изменяя вашу модель. Для получения дополнительной информации см. https://www.mathworks.com/help/slcontrol/index.html
Этот раздел объясняет, как примеры Motor Control Blockset оценивают, что усиления управления должны были реализовать ориентированное на поле управление. Например, для PMSM, который соединяется с квадратурным энкодером, эти шаги описывают процедуру, чтобы вычислить значения усиления цикла управления из системных деталей при помощи скрипта инициализации:
Откройте скрипт инициализации (.m
) файл примера в MATLAB®. Найти связанное имя файла скрипта:
Выберите Modeling> Model Settings> Model Properties, чтобы открыть диалоговое окно свойств модели.
В диалоговом окне Model Properties перейдите к вкладке Callbacks> InitFcn, чтобы найти имя файла скрипта, который Simulink открывает прежде, чем запустить пример.
Этот рисунок показывает пример скрипта инициализации (.m
) файл.
Используйте Workspace, чтобы отредактировать значения контрольных переменных. Например, чтобы обновить сопротивление Статора (Rs
), используйте переменную pmsm
добавить значение параметров в Rs
поле .
Скрипт инициализации модели, сопоставленный с целевой моделью, вызывает эти функции и настраивает рабочую область с необходимыми переменными.
Скрипт инициализации модели | Функция вызвана скриптом инициализации модели | Описание |
---|---|---|
Скрипт сопоставлен с целевой моделью |
| Вход к функции является моторным типом (например, BLY171D). Функция заполняет структуру под названием Это также вычисляет поток постоянного магнита и оцененный крутящий момент для выбранного двигателя. Можно расширить функцию путем добавления дополнительного случая переключателя для нового двигателя. Эта функция также загружает структуру |
| Вход к функции является типом инвертора (например, BoostXL-DRV8305). Функция заполняет структуру под названием Функция также вычисляет сопротивление инвертора для выбранного инвертора. Можно расширить функцию путем добавления дополнительного случая переключателя для нового инвертора. | |
| Входные параметры к функции являются типом процессора (например, F28379D) и частота переключения Модуляции длительности импульса (PWM). Функция заполняет структуру под названием Функция также вычисляет период счетчика PWM, который является параметром для блока ePWM в целевой модели. Можно расширить функцию путем добавления дополнительного случая переключателя для нового процессора. | |
| Входные параметры к функции являются моторными и параметры инвертора. Функция вычисляет номинальную скорость для PMSM. Введите | |
| Входные параметры к функции являются моторными и параметры инвертора. Функция устанавливает базовые значения системы на модуль для напряжения, текущего, скорость, крутящий момент и степень. Функция заполняет структуру под названием | |
| Входные параметры к функции являются моторными и параметры инвертора, системные базовые значения на модуль, период времени переключения PWM, шаг расчета для системы управления и шаг расчета для контроллера скорости. Функция вычисляет Пропорциональный Интеграл (PI) параметры (Kp, Ki) для ориентированной на поле реализации управления. Функция заполняет структуру под названием Дополнительную информацию см. в разделе Obtain Controller Gains. |
Эта таблица объясняет полезные переменные для каждого параметра управления, который можно обновить.
Примечание
Можно попробовать стартовый MATLAB в режиме администратора в системе Windows®, если вы не можете обновить скрипты инициализации модели, сопоставленные с моделями в качестве примера.
Управляйте категорией параметра | Управляйте названием параметра | Переменная рабочего пространства MATLAB |
---|---|---|
Параметры двигателя | Номер модели производителя | pmsm.model |
Порядковый номер производителя | pmsm.sn | |
Пары полюса | pmsm.p | |
Сопротивление статора (Ом) | pmsm.Rs | |
d-составляющая индуктивность обмотки статора (Генри) | pmsm.Ld | |
q-составляющая индуктивность обмотки статора (Генри) | pmsm.Lq | |
Коэффициент противо-ЭДС, постоянная (V_line (пик)/krpm) | pmsm.Ke | |
Инерция двигателя (kg.m2) | pmsm.J | |
Трение, постоянное (N.m.s) | pmsm.F | |
Поток постоянного магнита (WB) | pmsm.FluxPM | |
Номинальный момент | pmsm.T_rated | |
Номинальная скорость | pmsm.N_base | |
Номинальный ток | pmsm.I_rated | |
Декодеры положения | Коррекция смещений счетчика квадратурного энкодера и датчика Холла | pmsm.PositionOffset |
Количество рисок квадратурного энкодера на оборот | pmsm.QEPSlits | |
Параметры инвертора | Номер модели производителя | inverter.model |
Порядковый номер производителя | inverter.sn | |
Постоянное напряжение инвертора (V) | inverter.V_dc | |
Максимальные измеримые токи ADCs (A) | inverter.I_max | |
Максимальные допустимые токи инвертором (A) | inverter.I_trip | |
Сопротивление на состоянии МОП-транзисторов (Ом) | inverter.Rds_on | |
Сопротивление шунта для измерения тока (Ом) | inverter.Rshunt | |
Сопротивление платы на фазу, ощущаемое двигателем (Ом) | inverter.R_board | |
Масштабирование тока | inverter.MaxADCCnt | |
Смещения ADC для датчика тока (Ia и Ib) |
| |
Включите Автокалибровку для текущего смысла ADCs | inverter.ADCOffsetCalibEnable | |
Процессор | Номер модели производителя | target.model |
Порядковый номер производителя | target.sn | |
Частота центрального процессора | target.CPU_frequency | |
Частота PWM | target.PWM_frequency | |
Период счетчика ШИМ | target.PWM_Counter_Period | |
Система в относительных единицах | Базовое напряжение (V) | PU_System.V_base |
Базовый ток (A) | PU_System.I_base | |
Номинальная скорость (об/мин) | PU_System.N_base | |
Основной крутящий момент (Nm) | PU_System.T_base | |
Основная степень (Ватты) | PU_System.P_base | |
Тип данных для целевого устройства | Тип данных (Фиксированная точка Или С плавающей точкой) выбор | dataType |
Значения шага расчета | Частота переключения для конвертера | PWM_frequency |
Период времени переключения PWM | T_pwm | |
Шаг расчета для токовых контроллеров | Ts | |
Шаг расчета для контроллера скорости | Ts_speed | |
Шаг расчета симуляции | Ts_simulink | |
Шаг расчета симуляции для двигателя | Ts_motor | |
Шаг расчета симуляции для инвертора | Ts_inverter | |
Параметры контроллера | Пропорциональный коэффициент для контроллера q-составляющей тока | PI_params.Kp_i |
Интегральный коэффициент для контроллера q-составляющей тока | PI_params.Ki_i | |
Пропорциональный коэффициент для контроллера d-составляющей тока | PI_params.Kp_id | |
Интегральный коэффициент для контроллера d-составляющей тока | PI_params.Ki_id | |
Пропорциональная составляющая для контроллера Скорости | PI_params.Kp_speed | |
Интегральная составляющая для контроллера Скорости | PI_params.Ki_speed | |
Пропорциональное усиление для контроллера ослабления поля | PI_params.Kp_fwc | |
Интегральная составляющая для Полевого контроллера ослабления | PI_params.Ki_fwc |
Примечание
Для предопределенных процессоров и драйверов, скрипт инициализации модели использует значения по умолчанию.
Скрипт инициализации модели использует эти функции для выполнения расчетов:
Управляйте категорией параметра | Функция | Функциональность |
---|---|---|
Номинальная скорость двигателя | mcb_getBaseSpeed | Вычисляет номинальную скорость PMSM в номинальном напряжении и оцененной загрузке. Для получения дополнительной информации введите |
Моторные характеристики для данного двигателя и инвертора | mcb_getCharacteristics | Получите эти характеристики двигателя.
Для получения дополнительной информации введите |
Параметры алгоритма управления | mcb.internal.SetControllerParameters | Вычислите усиления для этих ПИ-контроллеров:
Для получения дополнительной информации смотрите раздел Obtain Controller Gains. |
Управляйте анализом для двигателя и инвертора, который вы используете | mcb_getControlAnalysis | Выполняет анализ частотного диапазона для вычисленных усилений ПИ-контроллеров, используемых в ориентированной на поле системе блока управления приводом. Примечание Эта функция требует Control System Toolbox™. Для получения дополнительной информации введите |
Функциональный mcb_getBaseSpeed
вычисляет номинальную скорость PMSM в данном напряжении питания. Номинальная скорость является максимальной частотой вращения двигателя в номинальном напряжении и оцененной загрузке, за пределами ослабляющей поле области.
Когда вы вызываете эту функцию (например, base_speed = mcb_getBaseSpeed(pmsm,inverter)
), это возвращает номинальную скорость (в об/мин) для данной комбинации PMSM и инвертора. Функция принимает следующие входные параметры:
Структура параметра PMSM.
Структура параметра инвертора.
Эти уравнения описывают расчеты, которые выполняет функция:
Ограничение напряжения инвертора задано путем вычисления d - оси и q - напряжения оси:
Текущий предельный круг задает текущее ограничение, которое может быть рассмотрено как:
В предыдущем уравнении, нуль для поверхностного PMSMs. Для внутреннего PMSMs, значений и соответствие MTPA рассматривается.
Используя предыдущие отношения, мы можем вычислить номинальную скорость как:
где:
электрическая скорость, соответствующая частоте напряжений статора (Радианы / секунда).
механическая номинальная скорость двигателя (Радианы / секунда).
d - ось, текущая (Амперы).
q - ось, текущая (Амперы).
d - напряжение оси когда нуль (Вольты).
q - напряжение оси когда нуль (Вольты).
d - ось извилистая индуктивность (Генри).
q - ось извилистая индуктивность (Генри).
сопротивление обмотки фазы статора (Омы).
потокосцепление постоянного магнита (Вебер).
d - напряжение оси (Вольты).
q - напряжение оси (Вольты).
максимальная основная линия к нейтральному напряжению (пик), предоставленный двигателю (Вольты).
напряжение постоянного тока, предоставленное инвертору (Вольты).
максимальная фаза, текущая (пик) двигателя (Амперы).
количество моторных пар полюса.
Функциональный mcb_getCharacteristics
вычисляет крутящий момент и характеристики скорости двигателя, который помогает вам разработать алгоритм управления для двигателя.
Функция возвращает эти характеристики для данного PMSM:
Закрутите в противоположность Скорости
Степень в противоположность Скорости
Iq в противоположность Скорости
Id в противоположность Скорости
Функциональный mcb.internal.SetControllerParameters
вычисляет усиления для ПИ-контроллеров, используемых в ориентированных на поле системах блока управления приводом.
Когда вы вызываете эту функцию (например, PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts_control,Ts_speed)
), это возвращает усиления этих ПИ-контроллеров, используемых в алгоритме FOC:
Прямая ось (d - ось) текущий цикл
Квадратурная ось (q - ось) текущий цикл
Цикл скорости
Ослабляющий поле цикл управления
Функция принимает эти входные параметры:
pmsm object
inverter object
PU system params
T_pwm
Ts_control
Ts_speed
Функция не строит характеристики.
Проект компенсаторов зависит от классического анализа частотной характеристики, применился к системам блока управления приводом. Мы использовали основанный на Оптимуме модуля (MO) проект для токовых контроллеров и основанный на Симметричном оптимуме (SO) проект для контроллера скорости.
Функция автоматически вычисляет другие обязательные параметры (например, полосу пропускания, ослабление) на основе входных параметров.
Функциональный mcb_getControlAnalysis
выполняет основной анализ управления FOC PMSM текущая система управления. Функция выполняет анализ частотного диапазона для вычисленных усилений ПИ-контроллера, используемых в ориентированных на поле системах блока управления приводом.
Примечание
Эта функция требует Control System Toolbox.
Когда вы вызываете эту функцию (например, mcb_getControlAnalysis(pmsm,inverter,PU_System,PI_params,Ts,Ts_speed)
), это выполняет следующие функции для текущего цикла управления или подсистемы:
Передаточная функция для текущей системы управления с обратной связью
Корневой годограф
Диаграмма Боде
Запасы устойчивости (PM & GM)
Переходной процесс
Карта PZ
Графики функций соответствующие графики: