Выполните настройку параметров управления для контуров скорости и момента, являющиеся частью векторного алгоритма управления (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 | |
Максимальные допустимые токи инвертором (A) | inverter.I_trip | |
Сопротивление на состоянии МОП-транзисторов (Ом) | inverter.Rds_on | |
Сопротивление шунта для измерения тока (Ом) | inverter.Rshunt | |
Сопротивление платы на фазу, ощущаемое двигателем (Ом) | inverter.R_board | |
Смещения ADC для датчика тока (Ia и Ib) |
| |
Максимальный предел автоматически калиброванного ADC возмещает для датчика тока (Ia и Ib) | inverter.CtSensOffsetMax | |
Минимальный предел автоматически калиброванного ADC возмещает для датчика тока (Ia и Ib) | inverter.CtSensOffsetMin | |
Включите Автокалибровку для текущего смысла ADCs | inverter.ADCOffsetCalibEnable | |
Фактор усиления ADC сконфигурирован SPI | inverter.ADCGain | |
Тип инвертора: 1 — Активный высоко-поддерживающий инвертор 0 — Активный низко-поддерживающий инвертор | inverter.EnableLogic | |
Тип текущего усилителя смысла: 1 — Неинвертирование усилителя – 1 — Инвертирование усилителя | inverter.invertingAmp | |
Ссылочное напряжение для инвертора текущая схема обнаружения (V) | inverter.ISenseVref | |
Выходное напряжение инвертора текущая схема обнаружения, соответствующая току на 1 ампер (V/A) Можно вычислить этот параметр с помощью значений таблицы данных текущего сопротивления шунта (
| inverter.ISenseVoltPerAmp | |
Максимальный измеримый пиково-нейтральный ток инвертором текущая схема обнаружения (A) | inverter.ISenseMax | |
Процессор | Номер модели производителя | target.model |
Порядковый номер производителя | target.sn | |
Частота центрального процессора | target.CPU_frequency | |
Частота PWM | target.PWM_frequency | |
Период счетчика ШИМ | target.PWM_Counter_Period | |
Ссылочное напряжение для ADC (V) | Target.ADC_Vref | |
Максимальное количество выводится для 12-битного ADC | Target.ADC_MaxCount | |
Скорость в бодах для последовательной передачи | Target.SCI_baud_rate | |
Система в относительных единицах | Базовое напряжение (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 | |
Параметры задержки датчика | Задержка датчика тока | Delays.Current_Sensor |
Задержка датчика скорости | Delays.Speed_Sensor | |
Задержка фильтра скорости lowpass | Delays.Speed_Filter | |
Параметры задержки контроллера | Коэффициент затухания (ζ) текущего цикла управления | Delays.OM_damping_factor |
Симметричный оптимальный фактор цикла регулировки скорости | Delays.SO_factor_speed |
Примечание
Для предопределенных процессоров и драйверов, скрипт инициализации модели использует значения по умолчанию.
Скрипт инициализации модели использует эти функции для выполнения расчетов:
Управляйте категорией параметра | Функция | Функциональность |
---|---|---|
Номинальная скорость двигателя | 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
вычисляет усиления для ПИ-контроллеров, используемых в ориентированных на поле системах блока управления приводом.
Можно использовать эту команду, чтобы вызвать функциональный 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
Функция не строит характеристики.
Проект компенсаторов зависит от классического анализа частотной характеристики, применился к системам блока управления приводом. Мы использовали основанный на Оптимуме модуля (MO) проект для токовых контроллеров и основанный на Симметричном оптимуме (SO) проект для контроллера скорости.
Функция автоматически вычисляет другие обязательные параметры (например, задержки, коэффициент затухания) на основе входных параметров.
Можно изменить отклики системы по умолчанию дополнительным входом к функции, которая задает системные задержки, коэффициент затухания и симметричный оптимальный фактор:
PI_params = mcb.internal.SetControllerParameters(pmsm,inverter,PU_System,T_pwm,Ts,Ts_speed,Delays);
Коэффициент затухания (ζ) задает динамическое поведение стандартной формы системы второго порядка, где 0
< ζ < 1 [1]. underdamped система приближается к окончательному значению более быстро, чем критически ослабленный или сверхослабленная система. Среди систем, которые отвечают без колебаний, критически ослабленная система показывает самый быстрый ответ. Сверхослабленная система является всегда медленной в ответе на любые входные параметры. Этот параметр имеет значение по умолчанию .
Симметричный оптимальный фактор (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
выполняет основной анализ управления FOC PMSM текущая система управления. Функция выполняет анализ частотного диапазона для вычисленных усилений ПИ-контроллера, используемых в ориентированных на поле системах блока управления приводом.
Примечание
Эта функция требует Control System Toolbox.
Когда вы вызываете эту функцию (например, mcb_getControlAnalysis(pmsm,inverter,PU_System,PI_params,Ts,Ts_speed)
), это выполняет следующие функции для текущего цикла управления или подсистемы:
Передаточная функция для текущей системы управления с обратной связью
Корневой годограф
Диаграмма Боде
Запасы устойчивости (PM & GM)
Переходной процесс
Карта PZ
Графики функций соответствующие графики:
[1] Огата, K. (2010). Современная разработка управления. Прентис Холл.
[2] Леонхард, W. (2001). Управление электрических дисков. Springer Science & Business Media. стр 86.