Передача Bumpless между ручными и автоматическими операциями

Этот пример показывает как передаче bumplessly между ручными и автоматическими операциями объекта.

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

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

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

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

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

open_system('mpc_bumpless')

Чтобы моделировать переключение между ручной и автоматической операцией, блок Switching отправляет или 1 или 0, чтобы управлять переключателем. Когда это отправляет 0, система находится в автоматическом режиме, и вывод от блока MPC Controller переходит к объекту. В противном случае система находится в ручном режиме, и сигнал от блока Operator Commands переходит к объекту.

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

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

Задайте контроллер MPC и объект

Создайте модель объекта управления.

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

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

step(sys)

Создайте контроллер MPC.

Ts = 0.5;     % sampling time (seconds)
p = 15;       % prediction horizon
m = 2;        % control horizon
MPC1 = mpc(sys,Ts,p,m);
MPC1.Weights.Output = 0.01;
MPC1.MV = struct('Min',-1,'Max',1);
Tstop = 250;

Чтобы достигнуть передачи bumpless, начальные состояния вашего объекта и контроллера должны быть тем же самым, которое имеет место для объекта и контроллера в этом примере.

Сконфигурируйте настройки блока MPC

Откройте диалоговое окно Block Parameters для блока MPC Controller.

  • В поле MPC Controller задайте MPC1.

  • (дополнительный) В поле Initial Controller State, задайте начальные условия для контроллера. Этот шаг не необходим, если у контроллера и объекта уже есть то же начальное состояние, как имеет место для этого примера. Чтобы задать начальные условия, сначала извлеките объект mpcstate от своего диспетчера и установите начальное состояние объекта.

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

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

  • Проверьте, что опция External Manipulated Variable (ext.mv) во вкладке General выбрана. Эта опция добавляет, что ext.mv импортирует к блоку, чтобы включить использование внешних переменных, которыми управляют.

  • Проверьте, что опция Use external signal to enable or disable optimization (switch) во вкладке Others выбрана. Эта опция добавляет, что switch импортирует к блоку контроллера, чтобы позволить выключить вычисления оптимизации.

Нажмите OK.

Исследуйте переключение между ручной и автоматической операцией

Нажмите Run в окне модели Simulink, чтобы моделировать модель.

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

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

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

Однажды в ручном режиме, команды оператора устанавливают переменную, которой управляют, на –0.5 для 10 единиц измерения времени, и затем на 0. График Plant Output показывает ответ разомкнутого цикла между временами 90 и 180, когда контроллер деактивирован.

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

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

Удалите сигналы, вводящие ext.mv и импорт switch блока контроллера.

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

Откройте Параметры Функционального блока: диалоговое окно MPC Controller.

Отмените выбор опции External Manipulated Variable (ext.mv) во вкладке General, чтобы удалить импорт ext.mv из блока контроллера.

Отмените выбор опции Use external signal to enable or disable optimization (switch) во вкладке Others, чтобы удалить импорт switch из блока контроллера.

Нажмите OK. Модель Simulink теперь напоминает следующую фигуру.

Нажмите Run, чтобы моделировать модель.

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

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

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

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

Блоки