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

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

Обзор мониторинга управления во время выполнения

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

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

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

Определите модель объекта управления

Тестовое устройство представляет собой устройство с одним входом и одним выходом с жесткими ограничениями как на управляемой переменной, так и на контролируемой производительности. На выходе объекта добавляется нарушение порядка. Нарушение порядка состоит из сигнала наклона, который насыщает манипулируемую переменную из-за жесткого предела на MV. После того, как происходит насыщение, вы теряете степень свободы управления, и нарушение порядка в конечном счете вытесняет выход за его верхний предел. Когда это происходит, задача 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.

Задайте жесткие ограничения на вход (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.

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.

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

bdclose(mdl)