exponenta event banner

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

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

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

Модель в этом примере использует 3-фазный BLDC двигатель, соединенный с преобразователем напряжения и 3-фазным инверторным силовым звеном. Buck-преобразователь моделируется с помощью МОП-транзисторов и инвертора с 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)

Конфигурирование блоков автоматического запуска PID с замкнутым контуром

В этом примере улучшается производительность контроллера с помощью блоков автозапуска PID с замкнутым контуром. Эти блоки оценивают частотную характеристику установки с замкнутым контуром во время эксперимента и затем настраивают коэффициенты усиления контроллера. Проверьте подсистему управления, чтобы увидеть блоки автозапуска PID с замкнутым контуром в подсистемах «Скорость автозапуска» и «Напряжение автозапуска».

open_system([mdl '/Control'])

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

Чтобы задать требования к настройке для контроллеров PID, используйте параметры на вкладке «Настройка» каждого из блоков автотюнера PID. В этом примере контроллеры являются параллельными, дискретно-временными, PI контроллерами. Время выборки контроллера составляет 100 микросекунд.

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

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

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

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

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

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

Чтобы включить процесс настройки для контроллера внутреннего контура, в подсистеме Autotuning Voltage установите значение постоянного блока 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')

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

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

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

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

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

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

Затем настройте контур внешней скорости. В подсистеме Autotuning Voltage измените значение постоянного блока Tune Inner Voltage Loop на 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')

Запустите моделирование еще раз. По завершении эксперимента блок автоотюнера PID с замкнутым контуром возвращает настроенные коэффициенты усиления контроллера PID для внешнего контура скорости. Модель отправляет их в рабочую область MATLAB как массив SpeedLoopGains.

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

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

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)

См. также

Связанные темы