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

Этот пример иллюстрирует один из нескольких способов настроить ПИД-регулятор для существующего объекта в Simulink. Здесь, вы используете блоки Автотюнера ПИДа С обратной связью, чтобы настроить два ПИ-контроллера в каскадной настройке. Блоки Автотюнера тревожат объект с экспериментом с обратной связью и выполняют ПИД, настраивающийся на основе частотных характеристик объекта, оцененных около желаемой пропускной способности. В отличие от блока 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]

Модель предварительно сконфигурирована, чтобы начать устойчивую операцию замкнутого цикла с двумя каскадными ПИ-контроллерами, один для внутреннего цикла напряжения ссылки 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" каждого из блоков автотюнера ПИДа. В этом примере контроллеры являются параллельным, дискретным временем, ПИ-контроллерами. Шаг расчета контроллера составляет 100 микросекунд.

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

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

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

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

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

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

Чтобы включить настраивающий процесс для контроллера внутреннего цикла, в Автоматически настраивающейся подсистеме Напряжения, устанавливают постоянный блок 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,8 секунд времени симуляции. Объект использует первую секунду, чтобы достигнуть установившихся условий работы. Хорошей оценкой на время эксперимента с обратной связью является 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);

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

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

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

Затем настройте внешний цикл скорости. В Автоматически настраивающейся подсистеме Напряжения измените значение постоянного блока 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);

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

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

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

Похожие темы