В этом примере показано, как использовать qp.status
выходной порт блока MPC Controller в Simulink®, чтобы обнаружить отказы контроллера в режиме реального времени.
qp.status
выход от блока MPC Controller возвращает положительное целое число, когда контроллер находит действие оптимального управления путем решения задачи квадратичного программирования (QP). Целочисленное значение соответствует количеству итераций, используемых во время оптимизации. Если проблема QP, сформулированная в данном демонстрационном интервале, будет неосуществима, диспетчер не найдет решение. В этом случае выходной порт мВ блока контроллера сохраняет новое значение и qp.status
выходной порт возвращается-1. В редком случае, когда максимальное количество итерации достигнуто во время оптимизации, qp.status
выходной порт возвращается 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];
Объект Create 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). По умолчанию все ограничения мВ трудны, и ограничения 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 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)