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

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

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

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

Можно обновить границы на сигналах ввода и вывода объекта во время выполнения. Для этого сначала задайте начальные границы сигнала при разработке контроллера 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 как структура с EFG, и S поля . Задайте каждое поле как массив с размерностями, которые соответствуют, начальные ограничительные массивы задали использование setconstraint.

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

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

Для примера, который обновляет смешанные ограничения ввода/вывода для адаптивного контроллера MPC, смотрите, что Предотвращение Препятствия Использует Адаптивную модель Прогнозирующее Управление.

Смотрите также

| | |

Похожие темы