Выполните настройку параметров управления для циклов управления скорости и крутящего момента, которые являются частью векторного алгоритма управления (FOC). Motor Control Blockset™ предоставляет вам несколько методов для вычисления коэффициентов усиления цикла управления от системы или передаточных функций блоков, которые доступны для двигателей, инвертора и контроллера:
Используйте блок Field Oriented Control Autotuner.
Использование Simulink® Control Design™.
Используйте скрипт инициализации модели.
Блок Field-Oriented Control Autotuner блока Motor Control Blockset позволяет вам автоматически настроить циклы управления ПИД в приложении Field-Oriented Control (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, чтобы открыть диалоговое окно свойств модели.
В диалоговом окне Свойства модели перейдите на вкладку Callbacks > InitFcn, чтобы найти имя файла скрипта, который Simulink открывает перед запуском примера.
Этот рисунок показывает пример скрипта инициализации (.m
) файл.
Используйте Workspace для редактирования значений переменных управления. Для примера обновить Сопротивление Статора (Rs
), используйте переменную pmsm
чтобы добавить значение параметров к Rs
поле.
Скрипт инициализации модели, сопоставленный с целевой моделью, вызывает эти функции и настраивает рабочую область с необходимыми переменными.
Скрипт инициализации модели | Функция, называемая скриптом инициализации модели | Описание |
---|---|---|
Скрипт, сопоставленный с целевой моделью |
| Вход функции является тип двигателя (для примера, BLY171D). Функция заполняет структуру с именем Он также вычисляет поток постоянных магнитов и номинальный крутящий момент для выбранного двигателя. Можно расширить функцию, добавив дополнительный случай переключателя для нового двигателя. Эта функция также загружает структуру |
| Вход функции имеет тип инвертора (для примера, BoostXL-DRV8305). Функция заполняет структуру с именем Функция также вычисляет сопротивление инвертора для выбранного инвертора. Вы можете расширить функцию, добавив дополнительный случай switch-case для нового инвертора. | |
| Входами для функции являются тип процессора (для примера, F28379D) и частота переключения модуляции ширины импульса (PWM). Функция заполняет структуру с именем Функция также вычисляет период счетчика PWM, который является параметром для блока ePWM в целевой модели. Вы можете расширить функцию, добавив дополнительный чехол для нового процессора. | |
| Входами для функции являются параметры двигателя и инвертора. Функция вычисляет номинальную скорость для PMSM. Тип | |
| Входами для функции являются параметры двигателя и инвертора. Функция устанавливает базовые значения системы в относительных единицах для напряжения, тока, скорости, крутящего момента и степени. Функция заполняет структуру с именем | |
| Входами к функции являются параметры двигателя и инвертора, базовые значения системы в относительных единицах, период переключения ШИМ, шаг расчета для системы управления и шаг расчета для контроллера скорости. Функция вычисляет Пропорциональные Интегральные (PI) параметры (Kp, Ki) для векторной реализации управления. Функция заполняет структуру с именем Для получения дополнительной информации смотрите раздел «Получение коэффициентов усиления контроллера». | |
| Входами для функции являются параметры двигателя и инвертора. Функция обновляет параметры инвертора на основе выбранного оборудования и двигателя. |
В этой таблице объясняются полезные переменные для каждого параметра управления, который можно обновить.
Примечание
Можно попробовать запустить 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 | |
Trated | pmsm.T_rated | |
Nbase | pmsm.N_base | |
Irated | pmsm.I_rated | |
Позиционные декодеры | Коррекция смещений индекса QEP и Холла | pmsm.PositionOffset |
Количество рисок квадратурного энкодера на оборот | pmsm.QEPSlits | |
Параметры инвертора | Номер модели производителя | inverter.model |
Серийный номер производителя | inverter.sn | |
Постоянная ссылка напряжение инвертора (V) | inverter.V_dc | |
Максимально допустимые токи инвертором (A) | inverter.I_trip | |
Сопротивление в состоянии МОП-транзисторов (Ом) | inverter.Rds_on | |
Сопротивление шунта для измерения тока (Ом) | inverter.Rshunt | |
Сопротивление платы на фазу, ощущаемое двигателем (Ом) | inverter.R_board | |
Смещения АЦП для датчика тока (Ia и Ib) |
| |
Максимальный предел автоматически калиброванных смещений АЦП для датчика тока (Ia и Ib) | inverter.CtSensOffsetMax | |
Минимальный предел автоматически калиброванных смещений АЦП для датчика тока (Ia и Ib) | inverter.CtSensOffsetMin | |
Включите автоматическую калибровку для ADC тока | inverter.ADCOffsetCalibEnable | |
Коэффициент усиления АЦП, сконфигурированный SPI | inverter.ADCGain | |
Тип инвертора: 1 - Активный высокоактивный инвертор 0 - Активный низкоактивный инвертор | inverter.EnableLogic | |
Тип усилителя измерения тока: 1 - неинвертирующий усилитель -1 - Инвертирующий усилитель | inverter.invertingAmp | |
Опорное напряжение для схемы измерения тока инвертора (V) | inverter.ISenseVref | |
Выход напряжение схемы измерения тока инвертора, соответствующее 1 тока Ампера (В/А) Можно вычислить этот параметр, используя значения таблицы данных сопротивления шунта (
| inverter.ISenseVoltPerAmp | |
Максимальный измеряемый пиково-нейтральный ток схемой (A) измерения тока инвертора | inverter.ISenseMax | |
Процессор | Номер модели производителя | target.model |
Серийный номер производителя | target.sn | |
Частота центрального процессора | target.CPU_frequency | |
Частота ШИМ | target.PWM_frequency | |
Период счетчика ШИМ | target.PWM_Counter_Period | |
Опорное напряжение для АЦП (V) | Target.ADC_Vref | |
Максимальный выходной параметр для 12-битного АЦП | Target.ADC_MaxCount | |
Скорость передачи данных для последовательной передачи данных | Target.SCI_baud_rate | |
Система в относительных единицах | Базовое напряжение (V) | PU_System.V_base |
Базовый ток (A) | PU_System.I_base | |
Номинальная скорость (об/мин) | PU_System.N_base | |
Базовый крутящий момент (Нм) | PU_System.T_base | |
Базовая степень (Ватт) | PU_System.P_base | |
Тип данных для целевого устройства | Выбор типа данных (с фиксированной точкой или с плавающей точкой) | dataType |
Шаг расчета | Частота переключения для конвертера | PWM_frequency |
Период переключения ШИМ | 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 | |
Параметры задержки датчика | Задержка датчика тока | Delays.Current_Sensor |
Задержка датчика скорости | Delays.Speed_Sensor | |
Задержка для низкочастотного фильтра | Delays.Speed_Filter | |
Параметры задержки контроллера | Коэффициентом затухания (и) текущим циклом управления | Delays.OM_damping_factor |
Симметричный оптимальный коэффициент цикла управления скорости | Delays.SO_factor_speed |
Примечание
Для предопределенных процессоров и драйверов в скрипте инициализации модели используются значения по умолчанию.
Скрипт инициализации модели использует эти функции для выполнения расчетов:
Категория параметров управления | Функция | Функциональность |
---|---|---|
Номинальная скорость двигателя | mcb_getBaseSpeed | Вычисляет номинальную скорость PMSM при номинальном напряжении и номинальной нагрузке. Для получения дополнительной информации введите |
Характеристики мотора для данного двигателя и инвертора | mcb_getCharacteristics | Получите эти характеристики мотора.
Для получения дополнительной информации введите |
Параметры алгоритма управления | mcb.internal.SetControllerParameters | Вычислите усиления для следующих ПИ-контроллеров:
Для получения дополнительной информации смотрите раздел «Получение коэффициентов усиления контроллера». |
Управляйте анализом для двигателя и инвертора, которые вы используете | mcb_getControlAnalysis | Выполняет анализ частотного диапазона для вычисленных коэффициентов усиления ПИ-контроллеров, используемых в векторной системе управления двигателем. Примечание Для этой функции требуется Control System Toolbox™. Для получения дополнительной информации введите |
Функция mcb_getBaseSpeed
вычисляет номинальную скорость PMSM при заданном напряжении питания. Номинальная скорость является максимальной скоростью двигателя при номинальном напряжении и номинальной нагрузке, вне области ослабления поля.
Когда вы вызываете эту функцию (для примера, base_speed = mcb_getBaseSpeed(pmsm,inverter)
), она возвращает номинальную скорость (в об/мин) для заданной комбинации PMSM и инвертора. Функция принимает следующие входы:
Структура параметра PMSM.
Структура параметра инвертора.
Эти уравнения описывают расчеты, которые выполняет функция:
Ограничение напряжения инвертора определяется путем вычисления d напряжения оси и q оси:
Текущий предельный круг определяет ограничение тока, которое может быть рассмотрено как:
В предыдущем уравнении, равен нулю для поверхностных PMSMs. Для внутренних PMSM, значения и учитываются соответствующие MTPA.
Используя предыдущие отношения, мы можем вычислить номинальную скорость как:
где:
- электрическая скорость, соответствующая частоте напряжений статора (Radians/sec).
- механическая номинальная скорость двигателя (Radians/sec).
- d ток оси (Amperes).
- q ток оси (Amperes).
- d напряжение оси, равен нулю (В).
- q напряжение оси, равен нулю (В).
- d индуктивность обмотки оси (Генри).
- q индуктивность обмотки оси (Генри).
- сопротивление обмотки фазы статора (Ом).
- редактирование потока постоянных магнитов (Вебер).
- d напряжение оси (В).
- q напряжение оси (В).
- это максимальная фундаментальная линия для напряжения нейтрали (пик), подаваемого на двигатель (В).
- напряжение постоянного тока, подаваемое на инвертор (В).
- максимальный ток фазы (пик) двигателя (Amperes).
- количество пар полюсов мотора.
Функция mcb_getCharacteristics
вычисляет крутящий момент и характеристики скорости двигателя, что помогает вам разработать алгоритм управления для двигателя.
Функция возвращает эти характеристики для заданного PMSM:
Крутящий момент в отличие от Скорости
Степень в отличие от Скорости
Iq в отличие от Скорости
Id в отличие от Скорости
Функция mcb.internal.SetControllerParameters
вычисляет коэффициент усиления для ПИ-контроллеров, используемой в векторных системах управления двигателем.
Можно использовать эту команду для вызова функции mcb.internal.SetControllerParameters
:
PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed);
Функция возвращает усиления этих ПИ-контроллеров, используемых в алгоритме FOC:
Контур тока прямой оси (d-ось)
Контур тока квадратурной оси (q-ось)
Цикл скорости
Ослабление цикла управления
Функция принимает эти входы:
pmsm object
inverter object
PU system params
T_pwm
Ts_control
Ts_speed
Функция не строит график никакой характеристики.
Проект компенсаторов зависит от классического анализа частотной характеристики, применяемого к системам управления двигателем. Мы использовали проект на основе Modulus Optimum (MO) для токовых контроллеров и проект на основе Symmetrical Optimum (SO) для контроллера скорости.
Функция автоматически вычисляет другие обязательные параметры (для примера, задержек, коэффициента затухания) на основе входных параметров.
Можно изменить отклики системы по умолчанию дополнительным входам функции, которая задает системные задержки, коэффициент затухания и симметричный оптимальный коэффициент:
PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed,Delays);
Коэффициент затухания (ζ) определяет динамическое поведение стандартной формы системы второго порядка, где 0
<ζ <1
[1]. Недостаточно демпфированная система приближается к конечному значению быстрее, чем критически демпфированная или избыточно демпфированная система. Среди систем, которые реагируют без колебаний, критически демпфированная система показывает самый быстрый ответ. Перегруженная система всегда медленно реагирует на любые входы. Этот параметр имеет значение по умолчанию .
Симметричный оптимальный коэффициент (a) задает размещение частоты среза в геометрическом среднем значении двух угловых частот, чтобы получить максимальный запас по фазе, который приводит к оптимальному демпфированию цикла скорости, где a > 1
[2]. Этот параметр имеет значение по умолчанию 1.2
.
Этот пример объясняет, как настроить параметры:
% Sensor Delays Delays.Current_Sensor = 2*Ts; %Current Sensor Delay Delays.Speed_Sensor = Ts; %Speed Sensor Delay Delays.Speed_Filter = 20e-3; %Delay for Speed filter (LPF) % Controller Delays Delays.OM_damping_factor = 1/sqrt(2); %Damping factor for current control loop Delays.SO_factor_speed = 1.5; %Symmetrical optimum factor 1 < x < 20 % Controller design PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed,Delays);
Функция mcb_getControlAnalysis
выполняет основной контроль системы управления током ВОК PMSM. Функция выполняет частотный диапазон анализ для вычисленных коэффициентов ПИ-контроллеров, используемых в векторных системах управления двигателем.
Примечание
Для выполнения этой функции требуется Control System Toolbox.
Когда вы вызываете эту функцию (для примера, mcb_getControlAnalysis(pmsm,inverter,PU_System,PI_params,Ts,Ts_speed)
), он выполняет следующие функции для текущего цикла управления или подсистемы:
Передаточная функция для системы управления током с обратной связью
Корневой годограф
Bode-схема
Запасы устойчивости (PM&GM)
Переходная характеристика
Карта PZ
Далее графики функций соответствующие графики:
[1] Огата, К. (2010). Современная техника управления. Зал Прентис.
[2] Leonhard, W. (2001). Управление электроприводами. Springer Science & Business Media. стр 86.