Обновление ограничений во время выполнения

Чтобы компенсировать изменение условий работы, можно обновить ограничения на входах и выходах объекта во время выполнения. Можно обновить пределы насыщения для входных и выходных сигналов, а также линейные смешанные ограничения ввода/вывода.

Обновление ограничений во время выполнения поддерживает генерацию кода.

Обновляйте ограничения на Вход и Выход сигналы во время исполнения

Во время выполнения можно обновить ограничения на входные и выходные сигналы объекта. Для этого сначала задайте начальные границы сигнала при разработке контроллера MPC. Дополнительные сведения см. в разделе «Задание ограничений». Если вы не задаете начальные границы для данного сигнала, вы не можете ограничить этот сигнал во время исполнения.

Чтобы обновить границы сигнала во время симуляции командной строки, на каждом контрольном интервале установите соответствующие свойства mpcmoveopt объект перед вызовом mpcmove, mpcmoveAdaptive, или mpcmoveMultiple. Для обновления:

  • Управляемая переменная нижняя и верхняя границы, установите MVMin и MVMax свойства, соответственно.

  • Выходная переменная нижняя и верхняя границы, установите OutputMin и OutputMax свойства, соответственно.

Можно также обновить входные и выходные границы во время исполнения в Simulink® для блоков MPC Controller, Adaptive MPC Controller и Multiple MPC Controllers. В следующей таблице перечислены границы, связанные с ними блочные порты и параметры блоков, которые нужно выбрать, чтобы включить порты.

ГраницыИмя портаПараметры блоков
Более низкие ограничения по манипулируемым переменнымuminLower MV Limits
Верхние границы манипулируемых переменныхumaxUpper MV Limits
Нижние границы выходных переменныхyminLower OV Limits
Верхние границы выходных переменныхymaxUpper OV Limits

Соедините сигналы с этими портами, которые задают значения во время выполнения границ для каждой переменной. Если существует более одной манипулированной переменной или выходной переменной, соедините вектор сигнал с соответствующими портами. Для примера, если существуют три переменных выхода, соедините трехэлементный вектор сигнал с ymin и ymax порты. Если переменная без ограничений в объекте контроллера, то подключенная значением сигналов игнорируется.

Совет

Для любого ограничения, которое вы устанавливаете равным -Inf или Infпо всему горизонту предсказания (равномерный) или на отдельных шагах горизонта предсказания (изменяющихся во времени) соответствующая переменная остается без ограничений во время исполнения; то есть вы не можете изменить его.

Однако можно сохранить переменную без ограничений, чтобы не искажать автономное проектирование контроллера, сохраняя при этом возможность добавления ограничений в сети. Для этого установите границу большого значения при создании контроллера. Не используйте realmax как большое значение, поскольку это вызывает числовые проблемы во время исполнения. Затем можно изменить ограничение во время выполнения.

Если вы задаете изменяющиеся во времени ограничения в объекте контроллера, новые ограничения применяются к первым конечным значениям в горизонте предсказания. Все последующие значения горизонта предсказания корректируются, чтобы сохранить тот же профиль на горизонте предсказания; то есть меняются на ту же величину.

Для получения примера смотрите Переменные Входы и Выход Границы во время выполнения.

Обновление смешанных входных/выходных ограничений во время выполнения

Во время выполнения можно обновить смешанные ограничения ввода/вывода. Для получения дополнительной информации об этих ограничениях смотрите Ограничения на линейные комбинации входов и выходов. Эта функция не поддерживается для контроллеров MPC по расписанию с коэффициентом усиления.

Можно обновить следующие матрицы ограничений во время симуляции:

  • E - Манипулируемая переменная константа ограничения

  • F - Управляемая выходная константа ограничения

  • G - Смешанная константа входного/выходного ограничения

  • S - Измеренная константа возмущения

Для этого сначала задайте начальные ограничения с помощью setconstraint команда. Вы не можете добавить дополнительные ограничения во время исполнения.

Чтобы обновить смешанные ограничения ввода/вывода во время симуляции командной строки, в каждом контрольном интервале установите CustomConstraint свойство mpcmoveopt объект перед вызовом mpcmove или mpcmoveAdaptive. Задайте CustomConstraint как структура с E, F, G, и S поля. Задайте каждое поле как массив с размерностями, которые совпадают с исходными массивами ограничений, заданными с помощью setconstraint.

Чтобы обновить смешанные ограничения ввода/вывода во время симуляции Simulink, выберите параметр Custom constraints вашего MPC Controller или Adaptive MPC Controller блока. Это добавляет E, F, G, и S входные порты в блок. The S входной порт добавляется, только если ваш контроллер имеет измеренные нарушения порядка.

Соедините матричные сигналы с этими портами, которые задают значения времени выполнения для каждого массива. Если вы задаете E, F, G, или S в контроллере MPC необходимо подключить сигнал к соответствующему входному порту, и этот сигнал должен иметь те же размерности, что и массив, указанный в контроллере. Если массив не определен в объекте контроллера, используйте нулевую матрицу с правильным размером.

Для примера, который обновляет смешанные ограничения ввода/вывода для адаптивного контроллера, смотрите Предотвращение препятствий с использованием Adaptive Model Predictive Control.

См. также

| | |

Похожие темы