Этот пример показывает, как использовать выходной порт 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)