Multiple MPC Controllers

Симулируйте переключение между несколькими неявными контроллерами MPC

  • Библиотека:
  • Model Predictive Control Toolbox

  • Multiple MPC Controllers block

Описание

В каждый момент управления блок Multiple MPC Controllers получает ток измеренного выхода объекта, ссылку и измеренное нарушение порядка объекта (если таковое имеется). В сложение он получает сигнал переключения, который выбирает активный контроллер из списка потенциальных контроллеров MPC, разработанных в различных рабочих точках в рабочей области значений. Затем активный контроллер решает квадратичную программу, чтобы определить оптимальные управляемые объектом переменные для входных сигналов тока.

Блок Multiple MPC Controllers позволяет вам достичь лучшего управления при изменении условий работы. Используя доступные измерения, можно обнаружить текущую рабочую область во время исполнения и выбрать соответствующий активный контроллер через switch входной порт. Коммутационные контроллеры для различных рабочих областей являются общим подходом к решению нелинейных задач управления с помощью линейных методов управления.

Чтобы улучшить эффективность, неактивные контроллеры не вычисляют оптимальные ходы управления. Однако, чтобы обеспечить бесшумную передачу между контроллерами, неактивные контроллеры продолжают выполнять оценку состояния.

Блоку Multiple MPC Controllers не хватает нескольких необязательных функций, найденных в блоке MPC Controller, следующим образом:

  • Вы не можете отключить оптимизацию. Один контроллер должен быть всегда активен.

  • Вы не можете инициировать проектирование контроллера из диалогового окна блока; то есть кнопки Design нет. Проектируйте все контроллеры-кандидаты перед конфигурированием блока Multiple MPC Controllers.

  • Точно так же отсутствует кнопка Review. Вместо этого используйте review команда или приложение MPC Designer.

  • Вы не можете обновить пользовательские ограничения на линейные комбинации входов и выходов во время исполнения.

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

БлокАдаптивный контроллер MPCНесколько контроллеров MPC
Адаптационный подходОбновите модель предсказания для одного контроллера, когда изменяются рабочие условияПереключение между несколькими контроллерами, предназначенными для различных рабочих областей
Преимущества
  • Нужно проектировать только один контроллер в автономном режиме

  • Меньше вычислительных усилий во время выполнения и меньше памяти

  • Более устойчивые к реальным изменениям в условиях объектов

  • Нет необходимости в онлайн-оценке модели объекта управления

  • Контроллеры могут иметь различный шаг расчета, горизонты и веса

  • Модели предсказания могут иметь различные порядки или временные интервалы

  • Конечный набор контроллеров-кандидатов может быть тщательно проверен

Порты

Вход

расширить все

Необходимые входные параметры

Объект выходные ссылки значения, заданные как вектор-строка сигнал или матрица сигнал.

Чтобы использовать те же ссылки значения через горизонт предсказания, соедините ref с сигналом вектора-строки с NY элементами, где Ny количество переменных выходов. Каждый элемент задает ссылку для переменного выхода.

Чтобы варьировать ссылки на горизонте предсказания (предварительный просмотр) от времени k + 1 до времени k + p, соедините ref с матричным сигналом с Ny столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит ссылки для одного шага горизонта предсказания. Если вы задаете меньше p строк, последние ссылки используются для остальных шагов горизонта предсказания.

Используйте switch входной порт, чтобы выбрать активный контроллер. Входной сигнал switch должен быть скаляром целым числом от 1 к N c, где N c - количество заданных контроллеров. В каждый момент управления этот сигнал обозначает активный контроллер. Значение переключателя 1 соответствует первой записи в массиве ячеек контроллеров, значение 2 соответствует второму контроллеру и так далее.

Если на switch сигнал находится вне области значений от 1 до N c, блок сохраняет выход предыдущего контроллера.

Измеренные выходом сигналы, заданные как вектор сигнал. Кандидат контроллеров использовать измеренные выходы объекта для улучшения своих оценок состояния.

Все контроллеры-кандидаты должны использовать один и тот же параметр оценки состояния, по умолчанию или пользовательский. Если ваш кандидат контроллеров использовать оценку состояния по умолчанию, необходимо соединить измеренные выходы объекта к порту mo входа. Если ваш кандидат контроллеров использовать пользовательскую оценку состояния, необходимо подключить предполагаемый сигнал состояния объекта к порту x[k|k] входа.

Зависимости

Чтобы включить этот порт, очистите параметр Use custom state estimation instead of using the built-in Kalman filter.

Пользовательская оценка состояния, заданная как вектор сигнал. Контроллеры используют связанные оценки состояния вместо оценки состояний с помощью встроенного оценщика. Используйте пользовательские оценки состояния, когда альтернативный метод оценки рассматривается как превосходящий встроенный оценщик или когда состояния полностью измеримы.

Все контроллеры-кандидаты должны использовать один и тот же параметр оценки состояния, по умолчанию или пользовательский. Если ваш кандидат контроллеров использовать пользовательскую оценку состояния, необходимо подключить текущие оценки состояния к порту x[k|k] входа. Если ваш кандидат контроллеров использовать оценку состояния по умолчанию, необходимо соединить измеренные выходы с портом mo входа.

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

Зависимости

Чтобы включить этот порт, выберите параметр Use custom state estimation instead of using the built-in Kalman filter.

Дополнительные входы

Если ваша модель предсказания контроллера имеет измеренные нарушения порядка, вы должны включить этот порт и соединить с ним вектор-строку или матричный сигнал.

Чтобы использовать те же самые измеренные значения нарушения порядка через горизонт предсказания, соедините md с сигналом вектора-строки с Nmd элементами, где Nmd количество манипулируемых переменных. Каждый элемент задает значение для измеренного нарушения порядка.

Чтобы изменять нарушения порядка над горизонтом предсказания (предварительный просмотр) время k время k + p, соедините md с матричным сигналом с Nmd столбцами и до p + 1 строками. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит нарушения порядка для одного шага горизонта предсказания. Если вы задаете меньше p + 1 строк, конечные нарушения порядка используются для остальных шагов горизонта предсказания.

Зависимости

Чтобы включить этот порт, выберите параметр Measured disturbances.

Управляющие сигналы, используемые в объект на предыдущем контрольном интервале, задаются как вектор сигнал длины Nmv, где Nmv - количество манипулируемых переменных. Все контроллеры используют этот сигнал, чтобы обновить свои оценки состояния контроллера на каждом контрольном интервале. Это помогает минимизировать бесшумную передачу при переключении приводного контроллера. Использование этого входа также улучшает точность оценки состояния, когда вектор манипулируемых переменных (MV), используемый в заводе, отличается от вектора MV, вычисленного блоком, для примера, из-за насыщения сигнала или условия переопределения.

Оценка состояния контроллера принимает, что вектор MV является кусочно-постоянным. Поэтому в tk времени ext.mv значение должно быть эффективным вектором MV между временами tk–1 и tk. Для примера, если MV фактически изменяются в течение этого интервала, можно задать усредненное по времени значение, рассчитанное в tk времени.

Примечание

  • Подключите ext.mv к сигналам СН, фактически примененным к объекту в предыдущем контрольном интервале. Обычно эти сигналы СН являются значениями, генерируемыми блоком ведущего контроллера, хотя это не всегда так. Если блок контроллера не управляет объектом, то подача фактического управляющего сигнала на ext.mv также может помочь достичь бесшумной передачи, когда контроллер переключается назад в оперативном режиме.

  • Использование этой опции, когда контроллер управляет объектом, может вызвать алгебраический цикл в Simulink® модель, поскольку существует прямое сквозное соединение сигнала от входа ext.mv к выходному порту mv. Чтобы предотвратить такие алгебраические циклы, вставьте Memory блок или Unit Delay блок.

Для примера, который использует внешний управляемый входной порт переменной для бесшумной передачи, смотрите Контроллер Online и Offline с бесшумной передачей.

Зависимости

Чтобы включить этот порт, выберите параметр External manipulated variable.

Онлайн-ограничения

Чтобы задать минимальные ограничения выходных переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, указанные в OutputVariables.Min свойство своей mpc объект контроллера. Если переменный выход не имеет нижней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.

Чтобы изменить границы над горизонтом предсказания от времени k + 1 до времени k + p, соедините ymin с матричным сигналом с Ny столбцами и до p строк. Здесь Ny количество выходов на объекте, k текущее время, и p является горизонтом предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, границы в последней строке применяются для оставшейся части горизонта предсказания. Если существует только один переменный выход и соединяется сигнал вектора с не более чем p записями, то эти значения используются через горизонт предсказания.

The i1й столбец ymin сигнала соответствует iвыход объекта и заменяет OutputVariables(i).Max свойство mpc объект во время выполнения. Поведение замещения зависит от размерностей обеих переменных.

Скалярные OutputVariables(i).Min в mpc объект (постоянная граница для iвыход объекта для применения ко всем этапам предсказания)

ymin размерностиПоведение при замене
Скалярный ymin (один выход, постоянная граница)ymin заменяет постоянную границу, заданную в OutputVariables(i).Min
Вектор-столбец ymin (один выход, изменяющаяся во времени граница)ymin заменяет постоянную границу, заданную в OutputVariables(i).Min с изменяющейся во времени границей.
Вектор-строка ymin (несколько выходов, постоянные границы)The iпервый элемент ymin заменяет постоянную границу, заданную в OutputVariables(i).Min
Матричная ymin (несколько выходов, изменяющиеся во времени границы)The iпятый столбец ymin заменяет постоянную границу, заданную в OutputVariables(i).Min с изменяющейся во времени границей.

Векторные OutputVariables(i).Min в mpc объект (изменяющаяся во времени граница для iвыход объекта с различными значениями на разных шагах предсказания)

ymin размерностиПоведение при замене
Скалярный ymin (один выход, постоянная граница)ymin заменяет первую конечную запись в OutputVariables.Min и оставшиеся записи в OutputVariables.Min сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной OutputVariables.Min вектор.
Вектор-столбец ymin (один выход, изменяющаяся во времени граница)ymin заменяет изменяющуюся во времени границу, заданную в OutputVariables(i).Min, и исходный связанный профиль отбрасывается.
Вектор-строка ymin (несколько выходов, постоянные границы)The iпервый элемент ymin заменяет первый конечный элемент в OutputVariables(i).Min и оставшиеся записи в OutputVariables(i).Min сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной OutputVariables(i).Min вектор.
Матричная ymin (несколько выходов, изменяющиеся во времени границы).The iпятый столбец ymin заменяет изменяющуюся во времени границу, заданную в OutputVariables(i).Min, и исходный связанный профиль отбрасывается.

Зависимости

Чтобы включить этот порт, выберите параметр Lower OV limits.

Чтобы задать ограничения максимальной выходной переменной во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, указанные в OutputVariables.Max свойство своей mpc объект контроллера. Если переменный выход не имеет верхней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.

Чтобы изменить границы над горизонтом предсказания от времени k + 1 до времени k + p, соедините ymax с матричным сигналом с Ny столбцами и до p строк. Здесь Ny количество выходов на объекте, k текущее время, и p является горизонтом предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, границы в последней строке применяются для оставшейся части горизонта предсказания. Если существует только один переменный выход и соединяется сигнал вектора с не более чем p записями, то эти значения используются через горизонт предсказания.

The i1й столбец ymax сигнала соответствует iвыход объекта и заменяет OutputVariables(i).Max свойство mpc объект во время выполнения. Поведение замещения зависит от размерностей обеих переменных.

Скалярные OutputVariables(i).Max в mpc объект (постоянная граница для iвыход объекта для применения ко всем этапам предсказания)

ymax размерностиПоведение при замене
Скалярный ymax (один выход, постоянная граница)ymax заменяет постоянную границу, заданную в OutputVariables(i).Max
Вектор-столбец ymax (один выход, изменяющаяся во времени граница)ymax заменяет постоянную границу, заданную в OutputVariables(i).Max с изменяющейся во времени границей.
Вектор-строка ymax (несколько выходов, постоянные границы)The iпервый элемент ymax заменяет постоянную границу, заданную в OutputVariables(i).Max
Матричная ymax (несколько выходов, изменяющиеся во времени границы)The iпятый столбец ymax заменяет постоянную границу, заданную в OutputVariables(i).Max с изменяющейся во времени границей.

Векторные OutputVariables(i).Max в mpc объект (изменяющаяся во времени граница для iвыход объекта с различными значениями на разных шагах предсказания)

ymax размерностиПоведение при замене
Скалярный ymax (один выход, постоянная граница)ymax заменяет первую конечную запись в OutputVariables.Max и оставшиеся записи в OutputVariables.Max сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной OutputVariables.Max вектор.
Вектор-столбец ymax (один выход, изменяющаяся во времени граница)ymax заменяет изменяющуюся во времени границу, заданную в OutputVariables(i).Max, и исходный связанный профиль отбрасывается.
Вектор-строка ymax (несколько выходов, постоянные границы)The iпервый элемент ymax заменяет первый конечный элемент в OutputVariables(i).Max и оставшиеся записи в OutputVariables(i).Max сдвиг вверх или вниз с той же величиной перемещения, чтобы сохранить профиль, заданный исходной OutputVariables(i).Max вектор.
Матричная ymax (несколько выходов, изменяющиеся во времени границы).The iпятый столбец ymax заменяет изменяющуюся во времени границу, заданную в OutputVariables(i).Max, и исходный связанный профиль отбрасывается.

Зависимости

Чтобы включить этот порт, выберите параметр Upper OV limits.

Чтобы задать минимальные ограничения переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует нижние границы, указанные в ManipulatedVariables.Min свойство своей mpc объект контроллера. Если манипулируемая переменная не имеет нижней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.

Чтобы изменить границы над горизонтом предсказания от времени k времени k + p -1, соедините umin с матричным сигналом с Nmv столбцами и до p строк. Здесь Nmv - количество манипулируемых переменных, k - текущее время и p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, границы в последней строке применяются для оставшейся части горизонта предсказания. Если существует только одна манипулируемая переменная и соединяется сигнал вектора с не более чем p записями, то эти значения используются через горизонт предсказания.

The i1й столбец umin сигнала соответствует iвторая манипулированная переменная и заменяет ManipulatedVariables(i).Max свойство mpc объект во время выполнения. Поведение замещения зависит от размерностей обеих переменных.

Скалярные ManipulatedVariables(i).Min в mpc объект (постоянная граница для iвторая манипулированная переменная, которая будет применена ко всем шагам предсказания)

umin размерностиПоведение при замене
Скалярный umin (один выход, постоянная граница)umin заменяет постоянную границу, заданную в ManipulatedVariables(i).Min
Вектор-столбец umin (один выход, изменяющаяся во времени граница)umin заменяет постоянную границу, заданную в ManipulatedVariables(i).Min с изменяющейся во времени границей.
Вектор-строка umin (несколько выходов, постоянные границы)The iпервый элемент umin заменяет постоянную границу, заданную в ManipulatedVariables(i).Min
Матричная umin (несколько выходов, изменяющиеся во времени границы)The iпятый столбец umin заменяет постоянную границу, заданную в ManipulatedVariables(i).Min с изменяющейся во времени границей.

Векторные ManipulatedVariables(i).Min в mpc объект (изменяющаяся во времени граница для ith-я манипулированная переменная с различными значениями на разных шагах предсказания)

umin размерностиПоведение при замене
Скалярный umin (один выход, постоянная граница)umin заменяет первую конечную запись в ManipulatedVariables.Min и оставшиеся записи в ManipulatedVariables.Min сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной ManipulatedVariables.Min вектор.
Вектор-столбец umin (один выход, изменяющаяся во времени граница)umin заменяет изменяющуюся во времени границу, заданную в ManipulatedVariables(i).Min, и исходный связанный профиль отбрасывается.
Вектор-строка umin (несколько выходов, постоянные границы)The iпервый компонент umin заменяет первый конечный элемент в ManipulatedVariables(i).Min и оставшиеся записи в ManipulatedVariables(i).Min сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной ManipulatedVariables(i).Min вектор.
Матричная umin (несколько выходов, изменяющиеся во времени границы).The iпятый столбец umin заменяет изменяющуюся во времени границу, заданную в ManipulatedVariables(i).Min, и исходный связанный профиль отбрасывается.

Зависимости

Чтобы включить этот порт, выберите параметр Lower MV limits.

Чтобы задать максимальное количество управляемых переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует верхние границы, указанные в ManipulatedVariables.Max свойство своей mpc объект контроллера. Если манипулируемая переменная не имеет верхней границы, заданной в объекте контроллера, то во время выполнения блок игнорирует соответствующий подключенный сигнал.

Чтобы изменить границы над горизонтом предсказания от времени k времени k + p -1, соедините umax с матричным сигналом с Nmv столбцами и до p строк. Здесь Nmv - количество манипулируемых переменных, k - текущее время и p - горизонт предсказания. Каждая строка содержит ограничения для одного шага горизонта предсказания. Если вы задаете меньше p строк, границы в последней строке применяются для оставшейся части горизонта предсказания. Если существует только одна манипулируемая переменная и соединяется сигнал вектора с не более чем p записями, то эти значения используются через горизонт предсказания.

The i1й столбец umax сигнала соответствует iвторая манипулированная переменная и заменяет ManipulatedVariables(i).Max свойство mpc объект во время выполнения. Поведение замещения зависит от размерностей обеих переменных.

Скалярные ManipulatedVariables(i).Max в mpc объект (постоянная граница для iвторая манипулированная переменная, которая будет применена ко всем шагам предсказания)

umax размерностиПоведение при замене
Скалярный umax (один выход, постоянная граница)umax заменяет постоянную границу, заданную в ManipulatedVariables(i).Max
Вектор-столбец umax (один выход, изменяющаяся во времени граница)umax заменяет постоянную границу, заданную в ManipulatedVariables(i).Max с изменяющейся во времени границей.
Вектор-строка umax (несколько выходов, постоянные границы)The iпервый элемент umax заменяет постоянную границу, заданную в ManipulatedVariables(i).Max
Матричная umax (несколько выходов, изменяющиеся во времени границы)The iпятый столбец umax заменяет постоянную границу, заданную в ManipulatedVariables(i).Max с изменяющейся во времени границей.

Векторные ManipulatedVariables(i).Max в mpc объект (изменяющаяся во времени граница для ith-я манипулированная переменная с различными значениями на разных шагах предсказания)

umax размерностиПоведение при замене
Скалярный umax (один выход, постоянная граница)umax заменяет первую конечную запись в ManipulatedVariables.Max и оставшиеся записи в ManipulatedVariables.Max сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной ManipulatedVariables.Max вектор.
Вектор-столбец umax (один выход, изменяющаяся во времени граница)umax заменяет изменяющуюся во времени границу, заданную в ManipulatedVariables(i).Max, и исходный связанный профиль отбрасывается.
Вектор-строка umax (несколько выходов, постоянные границы)The iпервый элемент umax заменяет первый конечный элемент в ManipulatedVariables(i).Max и оставшиеся записи в ManipulatedVariables(i).Max сдвиг вверх или вниз с таким же количеством перемещений, чтобы сохранить профиль, заданный исходной ManipulatedVariables(i).Max вектор.
Матричная umax (несколько выходов, изменяющиеся во времени границы).The iпятый столбец umax заменяет изменяющуюся во времени границу, заданную в ManipulatedVariables(i).Max, и исходный связанный профиль отбрасывается.

Зависимости

Чтобы включить этот порт, выберите параметр Upper MV limits.

Сетевые веса настройки

Чтобы задать веса настройки выходных переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.OutputVariables свойство его объекта контроллера. Эти веса настройки штрафуют отклонения от выходных ссылок.

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

Чтобы использовать постоянные веса настройки над горизонтом предсказания, соедините y.wt с сигналом вектора-строки с Ny элементами, где Ny количество выходов. Каждый элемент задает неотрицательную настройку веса для переменного выхода. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.

Чтобы изменить веса настройки над горизонтом предсказания от времени k + 1 до времени k + p, соедините y.wt с матричным сигналом с Ny столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.

Зависимости

Чтобы включить этот порт, выберите параметр OV weights.

Чтобы задать управляемые во время выполнения веса настройки переменных, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.ManipulatedVariables свойство его объекта контроллера. Эти веса настройки штрафуют отклонения от целей СН.

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

Чтобы использовать те же веса настройки над горизонтом предсказания, соедините u.wt с сигналом вектора-строки с Nmv элементами, где Nmv количество манипулируемых переменных. Каждый элемент задает неотрицательную настройку веса для манипулируемой переменной. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.

Чтобы варьировать веса настройки над горизонтом предсказания от времени k времени k + p -1, соедините u.wt с матричным сигналом с Nmv столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.

Зависимости

Чтобы включить этот порт, выберите параметр MV weights.

Чтобы задать управляемые во время выполнения веса настройки переменной скорости, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в Weights.ManipulatedVariablesRate свойство его объекта контроллера. Эти веса настройки штрафуют большие изменения в движениях управления.

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

Чтобы использовать те же веса настройки над горизонтом предсказания, соедините du.wt с сигналом вектора-строки с Nmv элементами, где Nmv количество манипулируемых переменных. Каждый элемент задает неотрицательную настройку веса для управляемой переменной скорости. Дополнительные сведения об указании весов настройки см. в разделе Настройка весов.

Чтобы варьировать веса настройки над горизонтом предсказания от времени k времени k + p -1, соедините du.wt с матричным сигналом с Nmv столбцами и до p строк. Здесь k - текущее время, а p - горизонт предсказания. Каждая строка содержит веса настройки для одного шага горизонта предсказания. Если вы задаете меньше p строк, веса настройки в последней строке применяются к оставшейся части горизонта предсказания. Для получения дополнительной информации о меняющихся весах над горизонтом предсказания, см. Изменяющиеся во времени веса и ограничения.

Зависимости

Чтобы включить этот порт, выберите параметр MVRate weights.

Чтобы задать коэффициент настройки переменной задержки во время выполнения, включите этот входной порт и соедините скалярный сигнал. Если этот порт отключен, блок использует настройочный вес, указанный в Weights.ECR свойство его объекта контроллера.

Вес настройки переменной slack не имеет эффекта, если ваш объект контроллера не задает мягкие ограничения, чьи связанные значения ECR не являются нулевыми. Если существуют мягкие ограничения, увеличение значения ecr.wt делает эти ограничения относительно труднее. Контроллер затем помещает более высокий приоритет на минимизацию величины предсказанного нарушения ограничений в худшем случае.

Зависимости

Чтобы включить этот порт, выберите параметр ECR weight.

Выход

расширить все

Необходимый выход

Оптимальное манипулируемое действие управления, выхода как вектор-столбец сигнал длины Nmv, где Nmv - количество манипулируемых переменных. Блок Multiple MPC Controllers передает выход активного контроллера к mv выходному порту.

Если решатель активного контроллера сходится к локальному оптимальному решению (qp.status положительно), то mv содержит оптимальное решение.

Если решатель отказывает (qp.status отрицательно), то mv остается при своем последнем успешном решении; то есть контроллер выход зависает.

Если решатель достигает максимального количества итераций, не найдя оптимального решения (qp.status равно нулю) и Optimization.UseSuboptimalSolution свойство активного контроллера:

  • true, затем mv содержит неоптимальное решение

  • falseзатем mv затем mv остается при своем последнем успешном решении

Дополнительные выходы

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

Значение стоимости имеет значение только, когда выход qp.status неотрицателен.

Зависимости

Чтобы включить этот порт, выберите параметр Optimal cost.

Статус оптимизации активного контроллера, выводится как целочисленный сигнал.

Если активный контроллер решает задачу QP для заданного контрольного интервала, выход qp.status возвращает количество итераций решателя QP, используемых в расчетах. Это значение является конечным, положительным целым числом и пропорционально времени, необходимому для вычислений. Поэтому большое значение означает относительно медленное выполнение блока для этого временного интервала.

QP- решателя может не найти оптимальное решение по следующим причинам:

  • qp.status = 0 - Решатель QP не может найти решение в пределах максимального количества итераций, заданных в mpc объект. В этом случае, если Optimizer.UseSuboptimalSolution свойство активного контроллера falseблок сохраняет свой mv выход в самом последнем успешном решении. В противном случае он использует неоптимальное решение, найденное во время последней итерации решателя.

  • qp.status = -1 - Решатель QP обнаруживает недопустимую задачу QP. Смотрите Статус Оптимизации Мониторинга для Обнаружения Отказов Контроллера для примера, где большое устойчивое нарушение порядка управляет переменным выходом за пределами заданных границ. В этом случае блок сохраняет свой mv выход в самом последнем успешном решении.

  • qp.status = -2 - Решатель QP столкнулся с числовыми трудностями в решении сильно плохо обусловленной задачи QP. В этом случае блок сохраняет свой mv выход в самом последнем успешном решении.

В приложении реального времени можно использовать qp.status, чтобы задать предупреждение или предпринять другие специальные действия.

Зависимости

Чтобы включить этот порт, выберите параметр Optimization status.

Предполагаемые состояния контроллера активного контроллера, выхода как вектор сигнал. Предполагаемые состояния включают в себя объект, нарушение порядка и состояния модели шума.

Зависимости

Чтобы включить этот порт, выберите параметр Estimated controller states.

Оптимальные последовательности

Оптимальная манипулированная переменная последовательность, возвращаемая как матричный сигнал с p + 1 строками и Nmv столбцами, где p - горизонт предсказания, а Nmv - количество манипулированных переменных.

Первые p строки mv.seq содержат вычисленные оптимальные манипулируемые значения переменных от текущего времени k ко времени k + p -1. Первая строка mv.seq содержит ток, управляемый значениями переменных (выходной mv). Поскольку контроллер не вычисляет оптимальные движения управления в момент времени k + p, последние две строки mv.seq идентичны.

Зависимости

Чтобы включить этот порт, выберите параметр Optimal control sequence.

Оптимальная последовательность состояний модели предсказания, возвращенная как матричный сигнал с p + 1 строками и Nx столбцами, где p - горизонт предсказания, а Nx - количество состояний.

Первые p строки x.seq содержат вычисленные оптимальные значения состояний от текущего времени k до времени k + p -1. Первая строка x.seq содержит текущие оцененные значения состояния. Поскольку контроллер не вычисляет оптимальные состояния в момент времени k + p, последние две строки x.seq идентичны.

Зависимости

Чтобы включить этот порт, выберите параметр Optimal state sequence.

Оптимальный выход переменная последовательность, возвращенная как матричный сигнал с p + 1 строками и Ny столбцами, где p - горизонт предсказания, а Ny - количество выхода переменных.

Первые p строки y.seq содержат вычисленные оптимальные значения выхода от текущего времени k ко времени k + p -1. Первая строка y.seq вычисляется на основе текущих оцененных состояний и измеренных нарушений порядка тока (первая строка входа md). Поскольку контроллер не вычисляет оптимальные значения выхода в момент времени k + p, последние две строки y.seq идентичны.

Зависимости

Чтобы включить этот порт, выберите параметр Optimal output sequence.

Параметры

расширить все

Кандидат контроллеров, заданный как один из следующих:

  • Массив ячеек mpc объекты.

  • Массив ячеек из строк или массив ячеек из векторов символов, где каждый элемент является именем mpc объект в MATLAB® рабочей области.

Указанный массив должен содержать по крайней мере два контроллеров. Первый элемент массива ячеек является контроллером, который соответствует входному значению переключателя 1, второй соответствует входному значению переключателя 2 и так далее.

Программное использование

Параметры блоков: mpcobjs
Тип: строка, вектор символов, массив ячеек из строк, массив ячеек из векторов символов
По умолчанию: ""

Начальные состояния для контроллеров, заданные как одно из следующих:

  • Массив ячеек mpcstate объекты.

  • Массив ячеек из строк или массив ячеек из векторов символов, где каждый элемент является именем mpcstate объект в рабочем пространстве MATLAB.

  • {[],[],...}, {'[]','[]',...}, или {"[]","[]",...} - Используйте номинальное условие, заданное в Model.Nominal свойство каждого кандидата контроллера как его начальное состояние.

Используйте этот параметр, чтобы состояния контроллера отражали истинный объект окружение в начале вашей симуляции до конца ваших знаний. Эти начальные состояния могут отличаться от номинальных состояний, определенных в mpc объекты.

Если включена пользовательская оценка состояния, блок игнорирует Cell Array of Initial Controller States параметр.

Программное использование

Параметры блоков: x0s
Тип: строка, вектор символов, массив ячеек из строк, массив ячеек из векторов символов
По умолчанию: ""
Вкладка Общие

Если ваш контроллер имеет измеренные нарушения порядка, необходимо выбрать этот параметр, чтобы добавить md выходной порт к блоку.

Программное использование

Параметры блоков: md_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "on"

Выберите этот параметр, чтобы добавить ext.mv входной порт к блоку.

Программное использование

Параметры блоков: mv_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить mv.target входной порт к блоку.

Программное использование

Параметры блоков: uref_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить cost выходной порт к блоку.

Программное использование

Параметры блоков: return_cost_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить qp.status выходной порт к блоку.

Программное использование

Параметры блоков: return_qpstatus_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить est.state выходной порт к блоку.

Программное использование

Параметры блоков: return_state_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить mv.seq выходной порт к блоку.

Программное использование

Параметры блоков: return_mvseq_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить x.seq выходной порт к блоку.

Программное использование

Параметры блоков: return_xseq_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить y.seq выходной порт к блоку.

Программное использование

Параметры блоков: return_ovseq_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы удалить mo входной порт и добавить x[k|k] входной порт.

Программное использование

Параметры блоков: state_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"
Вкладка Оперативные функции

Выберите этот параметр, чтобы добавить ymin входной порт к блоку.

Программное использование

Параметры блоков: ymin_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить ymax входной порт к блоку.

Программное использование

Параметры блоков: ymax_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить umin входной порт к блоку.

Программное использование

Параметры блоков: umin_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить umax входной порт к блоку.

Программное использование

Параметры блоков: umax_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить E, F, G и S входные порты к блоку.

Программное использование

Параметры блоков: cc_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить y.wt входной порт к блоку.

Программное использование

Параметры блоков: ywt_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить u.wt входной порт к блоку.

Программное использование

Параметры блоков: uwt_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить du.wt входной порт к блоку.

Программное использование

Параметры блоков: duwt_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Выберите этот параметр, чтобы добавить ecr.wt входной порт к блоку.

Программное использование

Параметры блоков: rhoeps_inport_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"
Вкладка Другие

Задайте блок тип данных манипулируемых переменных как один из следующих:

  • double - Плавающая точка двойной точности

  • single - Одинарная точность с плавающей точкой

    Если вы реализуете блок на цели с одной точностью, задайте тип выходных данных следующим single.

  • data type expression - Выражение, которое вычисляется как double или single. Для получения дополнительной информации смотрите Типы данных сигнала управления (Simulink).

Программное использование

Параметры блоков: BlockDataType_multiple
Тип: строка, вектор символов
Значения: "double", "single", data type expression
По умолчанию: "double"

Выберите этот параметр, чтобы наследовать шаг расчета родительской подсистемы в качестве блочного шага расчета. Это позволяет вам условно выполнять этот блок внутри Function-Call Subsystem (Simulink) или Triggered Subsystem (Simulink) блоков. Для получения примера смотрите Использование MPC Контроллера Блока Inside Function-Call и Триггируемых подсистем.

Примечание

Вы должны выполнить Function-Call Subsystem или Triggered Subsystem блоки с частотой дискретизации контроллера. В противном случае можно увидеть неожиданные результаты.

Если вы очистите этот параметр (по умолчанию), шаг расчета блока наследуется от объекта контроллера.

Чтобы просмотреть шаг расчета блока, в окне модели Simulink, на вкладке Debug, под Information Overlays, выберите colors или Text. Для получения дополнительной информации смотрите View Sample Time Information (Simulink).

Программное использование

Параметры блоков: SampleTimeInherited_multiple
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

Вопросы совместимости

расширить все

Поведение изменено в R2018b

Расширенные возможности

Генерация кода C/C + +
Сгенерируйте код C и C++ с помощью Coder™ Simulink ®

.

Генерация кода ПЛК
Сгенерируйте структурированный текстовый код с помощью Coder™ Simulink ® PLC

.
Введенный в R2008b