В этом примере показано, как использовать 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.
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 ®.
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)