Управление частотой вращения двигателя 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, чтобы гарантировать, что объект соответственно взволнован при оставлении в пределе насыщения объекта. Если амплитуда, которую вы выбираете, слишком мала, блок автотюнера испытывает затруднения при различении сигналов ответа от пульсации в схемах силовой электроники.

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

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

Чтобы включить настраивающий процесс для контроллера внутреннего цикла, в Автоматически настраивающейся подсистеме Напряжения, устанавливают Мелодию Внутренний Цикл Напряжения постоянное значение блока к 1. Устанавливание этого значения открывает внешний контур и конфигурирует внутренний цикл к использованию постоянная номинальная ссылка напряжения 12,5 вместо этого.

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

Кроме того, чтобы отключить настройку внешнего контура, установите Мелодию Внешний Цикл Скорости постоянное значение блока к 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 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);

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

Затем настройте внешний цикл скорости. В Автоматически настраивающейся подсистеме Напряжения измените значение Мелодии Внутренний Цикл Напряжения постоянное значение блока к 0, который отключает внутреннюю настройку цикла напряжения. Диспетчер внутреннего цикла использует недавно настроенные усиления, Kpv и Kiv.

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

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

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

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

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

sim(mdl)

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

Похожие темы