Управление Частотой вращения двигателя BLDC с Каскадными контроллерами PI

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

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

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

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]

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

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);

Конфигурирование блоков автотюнера ПИДа с обратной связью

В этом примере вы улучшаете производительность контроллера с помощью блоков Автотюнера ПИДа С обратной связью. Эти блоки оценивают частотную характеристику объекта с кругом, замкнутым во время эксперимента, и затем настраивают усиления контроллера. Исследуйте подсистему Управления, чтобы видеть блоки Автотюнера ПИДа С обратной связью в Автоматически настраивающейся Скорости и Автоматически настраивающихся подсистемах Напряжения.

open_system([mdl '/Control']);

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

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

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

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

Блок Closed-Loop PID Autotuner выполняет эксперимент с обратной связью, чтобы получить частотную характеристику объекта. Вы задаете параметры для этого эксперимента во вкладке "Experiment" параметров блоков. Здесь, Знак Объекта Положителен как положительное изменение во входе объекта в номинальных результатах рабочей точки в положительном изменении на объекте вывод, когда объект достигает нового устойчивого состояния. Когда объект стабилен как в этом примере, знак объекта эквивалентен знаку своего усиления DC.

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

Настройка контроллера PI внутреннего цикла

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

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

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

Также установите постоянный блок Tune Outer Speed Loop на 0 отключать настройку внешнего цикла.

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

Эта установка включает блок Closed-Loop PID Autotuner, который сконфигурирован, чтобы запустить настраивающий эксперимент замкнутого цикла от 1 до 1,5 секунд времени симуляции. Объект использует первую секунду, чтобы достигнуть установившихся условий работы. Хорошей оценкой на время эксперимента с обратной связью является 200/target bandwidth. Можно также использовать % conv вывод блока Closed Loop PID Autotuner, чтобы контролировать прогресс эксперимента и остановить его, когда сигнал % conv стабилизирует близкие 100%.

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

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

Обновите контроллер PI внутреннего цикла с новыми усилениями.

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

Настройка контроллера PI внешнего цикла

Затем, настройте внешний цикл скорости. В Автоматически настраивающейся подсистеме Напряжения измените значение постоянного блока Tune Inner Voltage Loop к 0, чтобы отключить внутреннюю настройку цикла напряжения. Обратите внимание на то, что диспетчер внутреннего цикла уже использует недавно настроенные усиления.

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

Точно так же в Автоматически настраивающейся подсистеме Скорости, измените постоянную Мелодию Внешний Цикл Скорости в Скорости Автоматической настройки подсистемы к 1, чтобы включить внешнюю настройку цикла скорости. Для этого цикла используйте длительность автоматической настройки с обратной связью 0,9 секунд, начинающихся в 1 секунду. Номинальная скорость для настройки составляет 2 000 об/мин.

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

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

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

Обновите контроллер PI внешнего цикла с новыми усилениями.

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

Улучшаемая производительность отслеживания после автоматической настройки

Теперь, вы настроили коэффициенты ПИД для обоих контроллеров, чтобы дать лучшую производительность в регулировке скорости моторной модели объекта управления BLDC. Чтобы проверять настроенную производительность контроллера, отключите настраивание обоих циклов.

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

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

sim(mdl);

Смотрите также

Похожие темы