В этом примере показан один из нескольких способов настройки PID-контроллера для существующего завода в Simulink. Для настройки двух контроллеров PI в каскадной конфигурации используются блоки автозапуска PID с замкнутым контуром. Блоки Autotuner возмущают установку и выполняют настройку PID на основе частотной характеристики установки, оцененной вблизи требуемой полосы пропускания. В отличие от блока автозапуска PID с разомкнутым контуром, в данном случае контур обратной связи остается замкнутым, и начальные коэффициенты усиления контроллера не изменяются во время процесса автозапуска.
Модель в этом примере использует 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 с замкнутым контуром в подсистемах «Скорость автозапуска» и «Напряжение автозапуска».
open_system([mdl '/Control'])

Следуя типичной практике каскадной настройки контура, сначала настройте контур внутреннего напряжения с разомкнутым контуром внешней скорости. Затем настройте контур внешней скорости с замкнутым контуром внутреннего напряжения.
Чтобы задать требования к настройке для контроллеров PID, используйте параметры на вкладке «Настройка» каждого из блоков автотюнера PID. В этом примере контроллеры являются параллельными, дискретно-временными, PI контроллерами. Время выборки контроллера составляет 100 микросекунд.
Целевой запас по фазе 60 градусов для обоих контроллеров обеспечивает хороший баланс между производительностью и надежностью.
Для контроллера внешнего контура выберите целевую полосу пропускания 100 рад/с. Для контроллера внутреннего цикла выберите расчетную целевую полосу пропускания 400 рад/с. Эти значения гарантируют, что контроллер внутреннего контура работает быстрее, чем контроллер внешнего контура.
Блок автоотюнера PID с замкнутым контуром выполняет эксперимент с замкнутым контуром для получения частотной характеристики установки. Параметры для этого эксперимента задаются на вкладке «Эксперимент» параметров блока. Здесь знак установки является положительным, так как положительное изменение входного сигнала установки в номинальной рабочей точке приводит к положительному изменению выходного сигнала установки, когда установка достигает нового устойчивого состояния. Когда растение стабильно, как в этом примере, знак растения эквивалентен знаку усиления постоянного тока.
Для амплитуды синусоидальных волн, вводимых во время процесса автотунирования, используйте 1, чтобы гарантировать, что растение соответствующим образом возбуждается, оставаясь в пределах предела насыщения растения. Если выбранная амплитуда слишком мала, блок автотюнера испытывает трудности при различении ответных сигналов от пульсаций в цепях силовой электроники.
Для настройки каскадных контроллеров сначала настройте модель для настройки внутреннего контура напряжения, а затем внешнего контура скорости.
Чтобы включить процесс настройки для контроллера внутреннего контура, в подсистеме 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 секунд времени моделирования. Установка использует первую секунду для достижения стационарного рабочего состояния. Хорошей оценкой продолжительности эксперимента с замкнутым контуром является,
где
- целевая полоса пропускания. Вы можете использовать % 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);
Затем настройте контур внешней скорости. В подсистеме 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)

Автоматический запуск PID с замкнутым контуром