exponenta event banner

Мониторинг состояния оптимизации для обнаружения сбоев контроллера

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

Обзор контроля времени выполнения

qp.status выходной сигнал блока контроллера MPC возвращает положительное целое число, когда контроллер находит оптимальное действие управления путем решения задачи квадратичного программирования (QP). Целочисленное значение соответствует количеству итераций, использованных при оптимизации. Если задача QP, сформулированная на данном интервале выборки, неосуществима, контроллер не сможет найти решение. В этом случае выход СН блока контроллера сохраняет самое последнее значение и qp.status outport возвращает -1. В редких случаях, когда достигается максимальное количество итераций во время оптимизации, qp.status outport возвращает 0.

В промышленных приложениях MPC можно определить, находится ли прогнозирующий контроллер модели в режиме отказа (0 или -1) или нет, отслеживая qp.status аутпорт. В случае сбоя MPC этот сигнал можно использовать для переключения на резервный план управления.

В этом примере показано, как настроить контроль состояния контроллера во время выполнения в Simulink.

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

Испытательная установка представляет собой установку с одним входом и одним выходом с жесткими ограничениями как на управляемую переменную, так и на контролируемую выходную мощность. На выходе установки добавляется нарушение нагрузки. Возмущение состоит из сигнала клина, который насыщает управляемую переменную из-за жесткого предела на СН. После того, как происходит насыщение, вы теряете управляющую степень свободы, и возмущение в конечном итоге вынуждает выход выходить за ее верхний предел. Когда это происходит, проблема QP, сформулированная контроллером прогнозирования модели во время выполнения, становится неосуществимой.

Определите модель установки как простую систему SISO с единичным коэффициентом усиления.

Plant = tf(1,[2 1]);

Определите неизмеренное нарушение нагрузки. Сигнал увеличивается от 0 до 2 между 1 и 3 секундами, затем снижается от 2 до 0 между 3 и 5 секундами.

LoadDist = [0 0; 1 0; 3 2; 5 0; 7 0];

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

Создание объекта MPC.

Ts = 0.2;
Obj = mpc(Plant, Ts);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10.
-->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2.
-->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.

Определите жесткие ограничения на вход (СН) и выход (OV) установки. По умолчанию все ограничения MV являются жесткими, а ограничения OV - мягкими.

Obj.MV.Min = -1;
Obj.MV.Max = 1;
Obj.OV.Min = -1;
Obj.OV.Max = 1;

Настройте верхние и нижние ограничения OV как жесткие границы.

Obj.OV.MinECR = 0;
Obj.OV.MaxECR = 0;

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

setEstimator(Obj,[],[0;1])

Моделирование с использованием Simulink

®

Для выполнения этого примера необходимо приложение Simulink ®.

if ~mpcchecktoolboxinstalled('simulink')
    disp('Simulink(R) is required to run this example.')
    return
end

Создайте систему управления в модели Simulink и включите qp.status исходящий порт из диалогового окна блока контроллера. Его значение времени выполнения отображается в блоке Simulink Scope.

mdl = 'mpc_onlinemonitoring';
open_system(mdl)

Смоделировать отклик с замкнутым контуром.

open_system([mdl '/Controller Status'])
open_system([mdl '/Response'])
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.

Как показано в объеме ответа, сигнал нарастающего возмущения вызывает насыщение СН на его нижней границе -1, что является оптимальным решением для этих ситуаций. После того, как выходная мощность установки превысит верхний предел, на следующем интервале выборки (2,6 секунды) контроллер осознает, что он больше не может поддерживать выходную мощность в пределах границ (так как его СН все еще насыщен), поэтому сигнализирует об отказе контроллера из-за неосуществимой проблемы QP (-1 в области состояния контроллера). После возврата выходного сигнала в пределах границ проблема QP снова становится осуществимой (3,4 секунды). Как только СН перестает насыщаться, возвращается нормальное поведение управления.

bdclose(mdl)