Оценка коэффициентов усиления из параметров двигателя

Выполните настройку параметров управления для контуров скорости и момента, являющиеся частью векторного алгоритма управления (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 Control Design позволяет вам проектировать и анализировать системы управления, смоделированные в Simulink. Можно автоматически настроить произвольные архитектуры управления SISO и MIMO, включая ПИД-регуляторы. Можно развернуть автонастройку ПИД-регулятора во встроенное программное обеспечение, чтобы автоматически вычислить коэффициенты ПИД в режиме реального времени.

Можно найти рабочие точки и вычислить точную линеаризацию моделей Simulink в различных условиях работы. Simulink Control Design обеспечивает инструменты, которые позволяют вам вычислить основанные на симуляции частотные характеристики, не изменяя вашу модель. Для получения дополнительной информации см. https://www.mathworks.com/help/slcontrol/index.html.

Скрипт инициализации модели

Этот раздел объясняет, как примеры Motor Control Blockset оценивают, что усиления управления должны были реализовать ориентированное на поле управление. Например, для PMSM, который соединяется с квадратурным энкодером, эти шаги описывают процедуру, чтобы вычислить значения усиления цикла управления из системных деталей при помощи скрипта инициализации:

  1. Откройте скрипт инициализации (.m) файл примера в MATLAB®. Найти связанное имя файла скрипта:

    1. Выберите Modeling> Model Settings> Model Properties, чтобы открыть диалоговое окно свойств модели.

    2. В диалоговом окне Model Properties перейдите к вкладке Callbacks> InitFcn, чтобы найти имя файла скрипта, который Simulink открывает прежде, чем запустить пример.

  2. Этот рисунок показывает пример скрипта инициализации (.m) файл.

  3. Используйте Workspace, чтобы отредактировать значения контрольных переменных. Например, чтобы обновить сопротивление Статора (Rs), используйте переменную pmsm добавить значение параметров в Rs поле .

  4. Скрипт инициализации модели, сопоставленный с целевой моделью, вызывает эти функции и настраивает рабочую область с необходимыми переменными.

    Скрипт инициализации моделиФункция вызвана скриптом инициализации моделиОписание
    Скрипт сопоставлен с целевой моделью

    mcb_SetPMSMMotorParameters

    Вход к функции является моторным типом (например, BLY171D).

    Функция заполняет структуру под названием pmsm в рабочем пространстве MATLAB, которое используется моделью.

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

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

    Эта функция также загружает структуру motorParam, полученный рабочей оценкой параметра, к структуре pmsm. Если структура motorParam не доступно в рабочем пространстве MATLAB, функция загружает параметры по умолчанию.

    mcb_SetInverterParameters

    Вход к функции является типом инвертора (например, BoostXL-DRV8305).

    Функция заполняет структуру под названием inverter в рабочем пространстве MATLAB, которое используется моделью.

    Функция также вычисляет сопротивление инвертора для выбранного инвертора.

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

    mcb_SetProcessorDetails

    Входные параметры к функции являются типом процессора (например, F28379D) и частота переключения Модуляции длительности импульса (PWM).

    Функция заполняет структуру под названием target в рабочем пространстве MATLAB, которое используется моделью.

    Функция также вычисляет период счетчика PWM, который является параметром для блока ePWM в целевой модели.

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

    mcb_getBaseSpeed

    Входные параметры к функции являются моторными и параметры инвертора.

    Функция вычисляет номинальную скорость для PMSM.

    Введите help mcb_getBaseSpeed в окне команды MATLAB или дополнительную информацию см. в разделе Obtain Base Speed.

    mcb_SetPUSystem

    Входные параметры к функции являются моторными и параметры инвертора.

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

    Функция заполняет структуру под названием PU_System в рабочем пространстве MATLAB, которое используется моделью.

    mcb.internal.SetControllerParameters

    Входные параметры к функции являются моторными и параметры инвертора, системные базовые значения на модуль, период времени переключения PWM, шаг расчета для системы управления и шаг расчета для контроллера скорости.

    Функция вычисляет Пропорциональный Интеграл (PI) параметры (Kp, Ki) для ориентированной на поле реализации управления.

    Функция заполняет структуру под названием PI_params в рабочем пространстве MATLAB, которое используется моделью.

    Дополнительную информацию см. в разделе Obtain Controller Gains.

    mcb_updateInverterParameters

    Входные параметры к функции являются моторными и параметры инвертора.

    Функция обновляет параметры инвертора на основе выбранного оборудования и двигателя.

Эта таблица объясняет полезные переменные для каждого параметра управления, который можно обновить.

Примечание

Можно попробовать стартовый 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

Максимальная частота вращения двигателя используется в mcb_getCharacteristics(pmsm,inverter) функция

pmsm.N_max = 2 ✖ pmsm.N_base

pmsm.N_max
Номинальный ток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)

inverter.CtSensAOffset

inverter.CtSensBOffset

Максимальный предел автоматически калиброванного ADC возмещает для датчика тока (Ia и Ib)inverter.CtSensOffsetMax
Минимальный предел автоматически калиброванного ADC возмещает для датчика тока (Ia и Ib)inverter.CtSensOffsetMin
Включите Автокалибровку для текущего смысла ADCsinverter.ADCOffsetCalibEnable
Фактор усиления ADC сконфигурирован SPIinverter.ADCGain

Тип инвертора:

1 — Активный высоко-поддерживающий инвертор

0 — Активный низко-поддерживающий инвертор

inverter.EnableLogic

Тип текущего усилителя смысла:

1 — Неинвертирование усилителя

– 1 — Инвертирование усилителя

inverter.invertingAmp
Ссылочное напряжение для инвертора текущая схема обнаружения (V)inverter.ISenseVref

Выходное напряжение инвертора текущая схема обнаружения, соответствующая току на 1 ампер (V/A)

Можно вычислить этот параметр с помощью значений таблицы данных текущего сопротивления шунта (inverter.Rshunt) и текущее усиление усилителя смысла инвертора.

inverter.ISenseVoltPerAmp = inverter.Rshunt ✖ текущее усиление усилителя смысла

inverter.ISenseVoltPerAmp
Максимальный измеримый пиково-нейтральный ток инвертором текущая схема обнаружения (A)inverter.ISenseMax
ПроцессорНомер модели производителяtarget.model
Порядковый номер производителяtarget.sn
Частота центрального процессораtarget.CPU_frequency
Частота PWMtarget.PWM_frequency
Период счетчика ШИМtarget.PWM_Counter_Period
Ссылочное напряжение для ADC (V)Target.ADC_Vref
Максимальное количество выводится для 12-битного ADCTarget.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
Период времени переключения PWMT_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
Задержка фильтра скорости lowpassDelays.Speed_Filter
Параметры задержки контроллераКоэффициент затухания (ζ) текущего цикла управленияDelays.OM_damping_factor
Симметричный оптимальный фактор цикла регулировки скоростиDelays.SO_factor_speed

Примечание

Для предопределенных процессоров и драйверов, скрипт инициализации модели использует значения по умолчанию.

Скрипт инициализации модели использует эти функции для выполнения расчетов:

Управляйте категорией параметраФункцияФункциональность
Номинальная скорость двигателяmcb_getBaseSpeed

Вычисляет номинальную скорость PMSM в номинальном напряжении и оцененной загрузке.

Для получения дополнительной информации введите help mcb_getBaseSpeed в командной строке MATLAB или смотрите раздел Obtain Base Speed.

Моторные характеристики для данного двигателя и инвертораmcb_getCharacteristics

Получите эти характеристики двигателя.

  • Закрутите в противоположность характеристикам скорости

  • Степень в противоположность характеристикам скорости

  • Idq в противоположность характеристикам скорости

  • Максимальная текущая фаза (Ipeak=Id2+Iq2) из двигателя в противоположность характеристикам скорости

Для получения дополнительной информации введите help mcb_getCharacteristics в командной строке MATLAB.

Для получения дополнительной информации смотрите раздел Obtain Motor Characteristics.

Параметры алгоритма управленияmcb.internal.SetControllerParameters

Вычислите усиления для этих ПИ-контроллеров:

  • Текущий (крутящий момент) усиления цикла управления (Kp, Ki) для токов Id и Iq

  • Усиления цикла регулировки скорости (Kp, Ki)

  • Поле, ослабляющее усиления управления (Kp, Ki)

Для получения дополнительной информации смотрите раздел Obtain Controller Gains.

Управляйте анализом для двигателя и инвертора, который вы используетеmcb_getControlAnalysis

Выполняет анализ частотного диапазона для вычисленных усилений ПИ-контроллеров, используемых в ориентированной на поле системе блока управления приводом.

Примечание

Эта функция требует Control System Toolbox™.

Для получения дополнительной информации введите help mcb_getControlAnalysis в командной строке MATLAB.

Получите номинальную скорость

Функциональный mcb_getBaseSpeed вычисляет номинальную скорость PMSM в данном напряжении питания. Номинальная скорость является максимальной частотой вращения двигателя в номинальном напряжении и оцененной загрузке, за пределами ослабляющей поле области.

Когда вы вызываете эту функцию (например, base_speed = mcb_getBaseSpeed(pmsm,inverter)), это возвращает номинальную скорость (в об/мин) для данной комбинации PMSM и инвертора. Функция принимает следующие входные параметры:

  • Структура параметра PMSM.

  • Структура параметра инвертора.

Эти уравнения описывают расчеты, которые выполняет функция:

Ограничение напряжения инвертора задано путем вычисления d - оси и q - напряжения оси:

vdo= ωeLqiq

vqo=ωe(Ldid+ λpm)

vmax= vdc 3 Rsimax  vdo2+ vqo2

Текущий предельный круг задает текущее ограничение, которое может быть рассмотрено как:

imax2= id 2+ iq2

В предыдущем уравнении, id нуль для поверхностного PMSMs. Для внутреннего PMSMs, значений id и iq соответствие MTPA рассматривается.

Используя предыдущие отношения, мы можем вычислить номинальную скорость как:

ωbase= 1p vmax(Lqiq)2+(Ldid+ λpm)2

где:

  • ωe электрическая скорость, соответствующая частоте напряжений статора (Радианы / секунда).

  • ωbase механическая номинальная скорость двигателя (Радианы / секунда).

  • id d - ось, текущая (Амперы).

  • iq q - ось, текущая (Амперы).

  • vdo d - напряжение оси когда id нуль (Вольты).

  • vqo q - напряжение оси когда iq нуль (Вольты).

  • Ld d - ось извилистая индуктивность (Генри).

  • Lq q - ось извилистая индуктивность (Генри).

  • Rs сопротивление обмотки фазы статора (Омы).

  • λpm потокосцепление постоянного магнита (Вебер).

  • vd d - напряжение оси (Вольты).

  • vq q - напряжение оси (Вольты).

  • vmax максимальная основная линия к нейтральному напряжению (пик), предоставленный двигателю (Вольты).

  • vdc напряжение постоянного тока, предоставленное инвертору (Вольты).

  • imax максимальная фаза, текущая (пик) двигателя (Амперы).

  • p количество моторных пар полюса.

Получите моторные характеристики

Функциональный mcb_getCharacteristics вычисляет крутящий момент и характеристики скорости двигателя, который помогает вам разработать алгоритм управления для двигателя.

Функция возвращает эти характеристики для данного PMSM:

  • Закрутите в противоположность Скорости

  • Степень в противоположность Скорости

  • Idq в противоположность Скорости

  • Ipeak в противоположность Скорости

Получите усиления контроллера

Функциональный 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 система приближается к окончательному значению более быстро, чем критически ослабленный или сверхослабленная система. Среди систем, которые отвечают без колебаний, критически ослабленная система показывает самый быстрый ответ. Сверхослабленная система является всегда медленной в ответе на любые входные параметры. Этот параметр имеет значение по умолчанию 12.

Симметричный оптимальный фактор (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.