exponenta event banner

Переключение контроллера в режиме Online и Offline с бескомпромиссной передачей

В этом примере показано, как получить безударный перенос при переключении контроллера прогнозирования модели с ручного на автоматический режим работы или наоборот.

Во время запуска производственного процесса, перед переключением на автоматическое управление, операторы настраивают ключевые приводы вручную до тех пор, пока установка не окажется вблизи требуемой рабочей точки. При неправильном выполнении передача может привести к выдавливанию; то есть большое движение исполнительного механизма.

В этом примере моделируется модель Simulink ®, которая содержит установку LTI с одним входом и блок контроллера MPC.

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

В частности, это показывает, как ext.mv входной сигнал в блок ПДК может использоваться для поддержания состояния внутреннего ПДК в актуальном состоянии при управлении оператором или другим контроллером.

Определение модели завода

Определение линейной динамической модели завода с разомкнутым контуром.

num = [1 1];
den = [1 3 2 0.5];
sys = tf(num,den);

Установка представляет собой стабильную систему с одним входом и одним выходом, как видно из ее ступенчатой реакции.

step(sys)

Проектирование контроллера MPC

Создайте контроллер MPC, указав:

  • Модель установки

  • Время выборки Ts

  • Горизонт прогнозирования p

  • Горизонт управления m

Ts = 0.5;
p = 15;
m = 2;
mpcobj = mpc(sys,Ts,p,m);
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.

Определите ограничения для управляемой переменной.

mpcobj.MV=struct('Min',-1,'Max',1);

Укажите выходной вес настройки.

mpcobj.Weights.Output=0.01;

Открытие и настройка модели Simulink

Откройте модель Simulink.

mdl = 'mpc_bumpless';
open_system(mdl)

В этой модели блок контроллера MPC уже сконфигурирован для передачи без неровностей с использованием следующих настроек параметров контроллера.

  • Выбран параметр «Внешняя управляемая переменная». Этот параметр позволяет использовать внешние управляемые переменные путем добавления ext.mv вход в блок.

  • Выбран параметр Использовать внешний сигнал для включения или отключения оптимизации. Этот параметр добавляет switch вход для отключения расчетов оптимизации контроллера.

Для обеспечения безударного переноса исходные состояния завода и контроллера должны быть одинаковыми, что характерно для завода и контроллера в данном примере. Однако если исходные условия системы не совпадают, можно установить начальные состояния контроллера в исходное состояние завода. Для этого извлеките mpcstate объект из контроллера и установка начального состояния установки.

stateobj = mpcstate(MPC1);
stateobj.Plant = x0;

где x0 - вектор начальных состояний растения. Затем установите параметр Initial Controller State блока MPC Controller в значение stateobj.

Для моделирования переключения между ручным и автоматическим переключением блок коммутации посылает либо 1, либо 0 для управления переключателем. При отправке 0 система находится в автоматическом режиме, и выходной сигнал блока контроллера MPC поступает на завод. В противном случае система находится в ручном режиме, и сигнал от блока команд оператора поступает на установку.

В обоих случаях фактический входной сигнал завода возвращается в контроллер. ext.mv inport, если только вход установки не насыщается на уровне -1 или 1. Контроллер постоянно контролирует выходную мощность установки и обновляет ее оценку состояния установки даже в ручном режиме работы.

В этой модели также показана опция переключения оптимизации. Когда система переключается на ручное управление, ненулевой сигнал поступает в switch вход блока контроллера. Сигнал отключает вычисления оптимизации контроллера, что снижает вычислительные усилия.

Моделирование контроллера в Simulink

Моделирование управления по замкнутому контуру линейной модели установки в Simulink.

sim(mdl)
-->Converting the "Model.Plant" property of "mpc" object to state-space.
-->Converting model to discrete time.
-->Assuming output disturbance added to measured output channel #1 is integrated white noise.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

Для первых 90 единиц времени сигнал переключения равен 0, что заставляет систему работать в автоматическом режиме. В течение этого времени контроллер плавно переводит выход контролируемой установки из ее начального значения 0 в требуемое опорное значение -0,5.

Устройство оценки состояния контроллера имеет нулевые начальные условия по умолчанию, что является подходящим при начале моделирования. Таким образом, при запуске отбойника нет. В общем, запустите систему в ручном режиме достаточно долго, чтобы контроллер мог получить точную оценку состояния перед переключением в автоматический режим.

В момент времени 90 переключающий сигнал изменяется на 1. Это изменение переключает систему на ручное управление и посылает команды оператора на установку. Одновременно ненулевой сигнал, поступающий на вход коммутатора контроллера, отключает вычисления оптимизации. Пока оптимизация отключена, блок контроллера MPC пропускает ток ext.mv сигнал на выход контроллера.

Находясь в ручном режиме, команда оператора устанавливает управляемую переменную на -0,5 в течение 10 единиц времени, а затем на 0. График выхода установки показывает отклик с разомкнутым контуром от 90 до 180 раз, когда контроллер деактивирован.

В момент времени 180 система переключается обратно в автоматический режим. В результате выход установки плавно возвращается к опорному значению, и аналогичная плавная регулировка происходит на выходе контроллера.

Отключить обратную связь с управляемыми переменными

Чтобы проверить поведение контроллера без управляемой переменной обратной связи, измените модель следующим образом:

  • Удалите сигналы, поступающие в ext.mv и переключаться inports блока контроллера MPC.

  • Удалите блок Unit Delay и сигнальную линию, входящую в его входной порт.

  • Для блока MPC Controller снимите флажки External manipulated variable и Use external signal для включения или отключения параметров оптимизации.

Чтобы выполнить эти действия программно, используйте следующие команды.

delete_line(mdl,'Switch/1','Unit Delay/1');
delete_line(mdl,'Unit Delay/1','MPC Controller/3');
delete_block([mdl '/Unit Delay']);
delete_line(mdl,'Switching/1','MPC Controller/4');
set_param([mdl '/MPC Controller'],'mv_inport','off');
set_param([mdl '/MPC Controller'],'switch_inport','off');

Скорректируйте пределы графиков отклика и смоделируйте модель.

set_param([mdl '/Yplots'],'Ymin','-1.1~-0.1')
set_param([mdl '/Yplots'],'Ymax','2~1.1')
set_param([mdl '/MVplots'],'Ymin','-0.6~-0.5')
set_param([mdl '/MVplots'],'Ymax','1.1~1.1')
sim(mdl)

Поведение системы идентично исходному варианту для первых 90 единиц времени.

Когда система переключается в ручной режим в момент времени 90, поведение установки будет таким же, как и раньше. Однако контроллер пытается удерживать установку на уставке. Таким образом, его выход увеличивается и в конечном итоге насыщается, как видно на выходе контроллера. Поскольку контроллер предполагает, что этот выход поступает на завод, его оценки состояния становятся неточными. Поэтому, когда система переключается обратно в автоматический режим в момент времени 180, в выходном документе установки возникает большой удар.

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

bdclose(mdl)

См. также