Управление скоростью двигателя BLDC с каскадными ПИ-контроллерами

В этом примере показан один из нескольких способов настройки ПИД-регулятора для существующего объекта в Simulink. Здесь вы используете блоки Closed-Loop ПИД Autotuner, чтобы настроить два ПИ-контроллеров в каскадном строении. Блоки Autotuner возмущают объект и выполняют настройку ПИД на основе частотной характеристики объекта, оцененной вблизи требуемой полосы пропускания. В отличие от блока Open-Loop PID Autotuner, здесь цикл обратной связи остается закрытым, и начальные усиления контроллера не изменяются в процессе автотунирования.

Модель электродвигателя BLDC

Модель в этом примере использует 3-фазный двигатель BLDC, соединенный с понижающим конвертером и 3-фазным инвертором степени ссылки. Моделируется понижающий конвертер с помощью MOSFET и инвертора с IGBT, а не идеальных переключателей, так что включенные сопротивления и характеристики устройства представлены правильно. И напряжениями ссылки преобразователя постоянного тока, и инвертором можно управлять, меняя полупроводниковые триггеры затвора, которые управляют скоростью двигателя.

mdl = 'scdbldcspeedcontrol';
open_system(mdl)

Параметры модели электродвигателя следующие.

p    = 4;        % Number of pole pairs
Rs   = 0.1;      % Stator resistance per phase           [Ohm]
Ls   = 1e-4;     % Stator self-inductance per phase, Ls  [H]
Ms   = 1e-5;     % Stator mutual inductance, Ms          [H]
psim = 0.0175;   % Maximum permanent magnet flux linkage [Wb]
Jm   = 0.0005;   % Rotor inertia                         [Kg*m^2]
Ts  = 5e-6;      % Fundamental sample time               [s]
Tsc = 1e-4;      % Sample time for inner control loop    [s]
Vdc = 48;        % Maximum DC link voltage               [V]

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

Kpw = 0.1;    % Proportional gain for speed controller
Kiw = 15;     % Integrator gain for speed controller
Kpv = 0.1;    % Proportional gain for voltage controller
Kiv = 0.5;    % Integrator gain for voltage controller

Сигнал для проверки эффективности слежения представляет собой последовательность скоростей от 0-500 об/мин, 500-2000 об/мин и 2000-3000 об/мин. Симуляция модели с начальными усилениями контроллера показывает медленную реакцию отслеживания, указывая, что необходима повторная калибровка контроллера.

open_system([mdl '/Visualization/RPM (Outer)'])
sim(mdl)

Сконфигурируйте блоки Autotuner с ПИД замкнутой системы

В этом примере вы улучшаете эффективность контроллера, используя блоки Closed-Loop PID Autotuner. Эти блоки оценивают частотную характеристику объекта с цикла, закрытой во время эксперимента, и затем настраивают коэффициент усиления контроллера. Исследуйте подсистему Control, чтобы увидеть блоки Closed-Loop PID Autotuner в подсистемах Autotuning Speed и Autotuning Voltage.

open_system([mdl '/Control'])

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

Чтобы задать требования к настройке для ПИД-регуляторов, используйте параметры на вкладке Tuning каждого из ПИД блоков autotuner. В этом примере контроллеры являются параллельными, дискретными по времени, ПИ-контроллерам. Шаг расчета контроллера составляет 100 микросекунд.

Целевой запас по фазе в 60 степени для обоих контроллеров дает хороший баланс между эффективностью и робастностью.

Для контроллера внешнего контура выберите целевую полосу пропускания 100 рад/сек. Для контроллера внутреннего контура выберите предполагаемую целевую полосу пропускания 400 рад/сек. Эти значения гарантируют, что контроллер с внутренним контуром имеет более высокую характеристику, чем контроллер с внешним контуром.

Блок Closed-Loop PID Autotuner выполняет эксперимент с обратной связью, чтобы получить частотную характеристику объекта. Параметры для этого эксперимента задаются на вкладке «Эксперимент» параметров блоков. Здесь Plant Sign положительно, поскольку положительное изменение входа объекта в номинальной рабочей точке приводит к положительному изменению выхода объекта, когда объект достигает нового устойчивого состояния. Когда объект является стабильным, как в этом примере, знак объекта эквивалентен признаку усиления постоянного тока.

Для амплитуды синусоид, впрыскиваемой в процессе автотунирования, используйте 1, чтобы убедиться, что объект соответствующим образом возбужден, оставаясь в пределах предела насыщения объекта. Если амплитуда, которую вы выбираете, слишком мала, блок autotuner испытывает трудности с различением ответных сигналов от пульсации в схемах силовой электроники.

Настройка внутреннего контура ПИ-контроллера

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

Чтобы включить процесс настройки для контроллера с внутренним контуром, в подсистеме Autotuning Voltage установите постоянное значение блока Tune Inner Voltage Loop равное 1. Установка этого значения открывает внешний контур и конфигурирует внутренний цикл, чтобы использовать вместо этого постоянную номинальную ссылку напряжения 12,5.

set_param([mdl '/Control/Tune Inner Voltage Loop'],'Value','1')

Кроме того, чтобы отключить настройку внешнего контура, задайте постоянный Цикл значение блока Tune Outer Speed равное 0.

set_param([mdl '/Control/Tune Outer Speed Loop'],'Value','0')

Этот параметр позволяет блоку Closed-Loop PID Autotuner, который сконфигурирован для выполнения эксперимента по настройке замкнутой системы от 1 до 1,8 секунд времени симуляции. Объект использует первую секунду, чтобы достичь установившегося рабочего условия. Хорошей оценкой для длительности эксперимента с обратной связью является, $200/{b_t}$где${b_t}$ является целевая полоса пропускания. Можно использовать % conv Выход блока Closed-Loop ПИД Autotuner, чтобы контролировать прогресс эксперимента и остановить его, когда % conv сигнал стабилизируется около 100%.

Запустите симуляцию. Когда эксперимент завершается, блок Closed-Loop ПИД Autotuner возвращает настроенные коэффициенты усиления ПИД-регулятора для внутреннего цикла напряжения. Модель отправляет их в рабочее пространство MATLAB в качестве массива VoltageLoopGains.

close_system([mdl '/Visualization/RPM (Outer)'])
open_system([mdl '/Visualization/VDC (Inner)'])
sim(mdl)

Обновите внутренний цикл ПИ-контроллера с новыми усилениями.

Kpv = VoltageLoopGains(1);
Kiv = VoltageLoopGains(2);

Настройка внешнего контура ПИ-контроллера

Затем настройте внешний цикл скорости. В Подсистеме Autotuning Voltage измените значение Цикла постоянного блока Tune Inner Voltage на 0, что отключает настройку цикла внутреннего напряжения. Контроллер внутреннего контура использует недавно настроенные усиления, Kpv и Kiv.

set_param([mdl '/Control/Tune Inner Voltage Loop'],'Value','0')

Точно так же в подсистеме Autotuning Speed измените значение постоянного блока Tune Outer Speed Loop на 1, которое включает настройку цикла скорости. Для этого цикла используйте длительность автотунирования с обратной связью 0,9 секунды, начиная с 1 секунды. Номинальная скорость настройки - 2000 об/мин.

set_param([mdl '/Control/Tune Outer Speed Loop'],'Value','1')

Еще раз запустите симуляцию. Когда эксперимент завершается, блок Closed-Loop ПИД Autotuner возвращает настраиваемые коэффициенты усиления ПИД-регулятора для внешнего цикла скорости. Модель отправляет их в рабочее пространство MATLAB в качестве массива SpeedLoopGains.

close_system([mdl '/Visualization/VDC (Inner)'])
open_system([mdl '/Visualization/RPM (Outer)'])
sim(mdl)

Обновите ПИ-контроллер внешнего контура с новыми коэффициентами усиления.

Kpw = SpeedLoopGains(1);
Kiw = SpeedLoopGains(2);

Улучшенная эффективность отслеживания после автообучения

Чтобы проверить эффективность настроенного контроллера, отключите настройку в обоих циклах.

set_param([mdl '/Control/Tune Inner Voltage Loop'],'Value','0')
set_param([mdl '/Control/Tune Outer Speed Loop'],'Value','0')

Настроенные усиления приводят к лучшему отслеживанию тестовых сигналов наклона.

sim(mdl)

См. также

Похожие темы