Adaptive MPC Controller

Симулируйте адаптивные и изменяющиеся во времени модели прогнозирующие контроллеры

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

  • Adaptive MPC Controller block

Описание

Блок Adaptive MPC Controller использует следующие входные сигналы:

  • Измеренные выходы объекта (mo)

  • Ссылка или уставка (ref)

  • Измеренное нарушение порядка объекта (md), при наличии

В сложение необходимый model входной сигнал задает модель предсказания, которая будет использоваться при вычислении оптимальных управляемых объектом переменных mv. Модель линейного предсказания может изменяться на каждом контрольном интервале в ответ на изменения реального объекта во время исполнения. Модель предсказания может представлять один объект LTI, используемую для всех шагов предсказания (адаптивный режим MPC) или массив объектов LTI для различных шагов предсказания (изменяющийся во времени режим MPC). Два распространенных способа модификации этой модели:

  • Учитывая нелинейную модель объекта управления, линеаризируйте его в текущей рабочей точке.

  • Используйте данные объекта для оценки параметров в эмпирической линейно-временной изменяющейся (LTV) модели.

По умолчанию блок оценивает свои состояния модели предсказания. Поскольку параметры модели предсказания изменяются во время исполнения, статический фильтр Калмана, используемый в блоке MPC Controller, неуместен. Вместо этого блок Adaptive MPC Controller использует линейно-изменяющийся по времени фильтр Калмана (LTVKF). Для получения дополнительной информации см. раздел Адаптивный MPC.

Другими способами Adaptive MPC Controller блок имитирует MPC Controller блок. Поскольку адаптивная версия включает дополнительные накладные расходы, используйте блок MPC Controller, если вам не нужно управлять нелинейной установкой в широкой области значений условий работы, где динамика объекта значительно варьируется.

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

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

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

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

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

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

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

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

Порты

Вход

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

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

Обновленная модель объекта управления и номинальная рабочая точка, заданная как сигнал шины. сигнал шины на model входной порт. В начале каждого контрольного интервала этот сигнал изменяет объект контроллера Model.Plant и Model.Nominal свойства.

Этот Adaptive MPC Controller требует, чтобы модель объекта была объектом пространства состояний LTI в дискретном времени без задержек. Следующая команда извлекает матрицы пространства состояний, содержащие такую модель.

[A,B,C,D] = ssdata(MPCobj.Model.Plant) 

Цель model Вход заменить эти матрицы новыми таковыми, имеющими те же размерности и представляющими ту же контрольному интервалу. Вы также должны сохранить последовательность, в которой входные, выходные и переменные состояния появляются в Model.Plant свойство контроллера.

При работе в:

  • Адаптивный режим MPC, шина, которую вы соединяете с model входной порт должен содержать следующие сигналы, каждый из которых идентифицируется заданным именем:

    • A - nx -by - nx матричный сигнал, где nx - количество состояний модели объекта.

    • B - nx -by - nu матричный сигнал, где nu - общее количество входов модели объекта управления (т.е. манипулируемых переменных, измеренных нарушений порядка и неизмеренных нарушений порядка).

    • C - ny -by - nx матричный сигнал, где ny - количество выходов модели объекта управления.

    • D - ny -by - nu матричный сигнал.

    • X - Векторный сигнал длины nx, заменяющий контроллер Model.Nominal.X свойство.

    • Y - Векторный сигнал длины ny, заменяющий контроллер Model.Nominal.Y свойство.

    • U - Векторный сигнал длины nu, заменяющий контроллер Model.Nominal.U свойство.

    • DX - Векторный сигнал длины nx, заменяющий контроллер Model.Nominal.DX свойство. Он должен быть подходящим для использования с моделью в дискретном времени предполагаемого контрольного интервала. Для получения дополнительной информации см. раздел Адаптивный MPC.

      Для вычисления DX значения, используйте функцию обновления состояния в дискретном времени (f) для вашей модели. Здесь uk и xk являются соответствующими значениями входа и состояния для текущего временного шага.

      DX=f(uk,xk)xk

  • Изменяющийся во времени режим MPC, шина, которую вы соединяете с model входной порт должен содержать следующие 3-мерные сигналы шины:

    • A - nx -by- nx -by- (p + 1) матрица сигнал

    • B - nx -by- nu -by- (p + 1) матрица сигнал

    • C - ny -by- nx -by- (p + 1)

    • D - ny -by- nu -by- (p + 1) матрица сигнал

    • X - nx -by- (p + 1) матрица сигнал

    • Y - ny -by- (p + 1) матрица сигнал

    • U - nu -by- (p + 1) матрица сигнал

    • DX - nx -by- (p + 1) матрица сигнал

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

Один из способов формирования шины - использовать Bus Creator (Simulink) блок.

Зависимости

Размерности элементов шины в model зависят от режима работы контроллера. Чтобы поместить контроллер в:

  • Адаптивный режим MPC, очистите параметр Linear Time-Varying (LTV) plants

  • Изменяющийся во времени режим MPC, выберите параметр Linear Time-Varying (LTV) plants

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

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

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

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

Зависимости

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

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

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

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

Зависимости

Чтобы включить этот порт, выберите параметр 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 являются кусочно-постоянными. Поэтому в tk времени значение ext.mv должно содержать эффективные MV между временем tk–1 и tk. Для примера, если MV фактически изменяются в течение этого интервала, можно задать усредненное по времени значение, рассчитанное в tk времени.

Примечание

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

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

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

Зависимости

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

Чтобы выключить вычисление оптимизации контроллера, соедините switch с ненулевым сигналом.

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

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

Зависимости

Чтобы включить этот порт, выберите параметр Use external signal to enable or disable optimization.

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

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

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

Зависимости

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

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

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

Манипулируемая матрица ограничений переменной, заданная как Nc -by Nmv матричный сигнал, где Nc - количество смешанных входных/выходных ограничений, а Nmv - количество манипулируемых переменных.

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

Чтобы задать смешанные входные/выходные ограничения во время выполнения, используйте E входной порт наряду с F, G и S портами. Эти ограничения заменяют смешанные ограничения ввода/вывода, ранее установленные с помощью setconstraint. Для получения дополнительной информации о смешанных ограничениях ввода/вывода смотрите Ограничения на линейные комбинации входов и выходов.

Количество смешанных входных/выходных ограничений не может измениться во время исполнения. Поэтому Nc должны совпадать с количеством строк в E матрица, которую вы задали используя setconstraint.

Зависимости

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

Матрица управляемых выходных ограничений, заданная как Nc-by Ny матричный сигнал, где Nc - количество смешанных входных/выходных ограничений, а Ny - количество выходов объекта. Если вы задаете F в mpc объект, вы должны подключить сигнал к F входному порту с одинаковым числом строк. В противном случае соедините нулевую матрицу с правильным размером.

Чтобы задать смешанные входные/выходные ограничения во время выполнения, используйте F входной порт наряду с E, G и S портами. Эти ограничения заменяют смешанные ограничения ввода/вывода, ранее установленные с помощью setconstraint. Для получения дополнительной информации о смешанных ограничениях ввода/вывода смотрите Ограничения на линейные комбинации входов и выходов.

Количество смешанных входных/выходных ограничений не может измениться во время исполнения. Поэтому Nc должны совпадать с количеством строк в F матрица, которую вы задали используя setconstraint.

Зависимости

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

Пользовательский вектор ограничения, заданный как вектор-строка сигнал длины Nc, где Nc - количество смешанных входных/выходных ограничений. Если вы задаете G в mpc объект, вы должны подключить сигнал к G входному порту с одинаковым числом строк. В противном случае соедините нулевую матрицу с правильным размером.

Чтобы задать смешанные входные/выходные ограничения во время выполнения, используйте G входной порт наряду с E, F и S портами. Эти ограничения заменяют смешанные ограничения ввода/вывода, ранее установленные с помощью setconstraint. Для получения дополнительной информации о смешанных ограничениях ввода/вывода смотрите Ограничения на линейные комбинации входов и выходов.

Количество смешанных входных/выходных ограничений не может измениться во время исполнения. Поэтому Nc должны совпадать с количеством строк в G матрица, которую вы задали используя setconstraint.

Зависимости

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

Измеренная матрица ограничений нарушения порядка, заданная как Nc -by nN матричный сигнал, где Nc - количество смешанных входных/выходных ограничений, и Nv - количество измеренных нарушений порядка. Если вы задаете S в mpc объект, вы должны подключить сигнал к S входному порту с одинаковым числом строк. В противном случае соедините нулевую матрицу с правильным размером.

Чтобы задать смешанные входные/выходные ограничения во время выполнения, используйте S входной порт наряду с E, F и G портами. Эти ограничения заменяют смешанные ограничения ввода/вывода, ранее установленные с помощью setconstraint. Для получения дополнительной информации о смешанных ограничениях ввода/вывода смотрите Ограничения на линейные комбинации входов и выходов.

Количество смешанных входных/выходных ограничений не может измениться во время исполнения. Поэтому Nc должны совпадать с количеством строк в G матрица, которую вы задали используя setconstraint.

Зависимости

Чтобы включить этот порт, выберите параметр Custom constraints. Этот порт добавляется только в том случае, если mpc Объект имеет измеренные нарушения порядка.

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

Чтобы задать веса настройки выходных переменных во время выполнения, включите этот входной порт. Если этот порт отключен, блок использует веса настройки, указанные в 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.

Онлайн горизонты

Горизонт предсказания, заданный как положительный целочисленный сигнал. Значения сигналов горизонта предсказания должны быть меньше или равны параметру Maximum prediction horizon.

Во время исполнения значения p переопределяет горизонт предсказания по умолчанию, заданный в объекте контроллера. Для получения дополнительной информации смотрите Настроить горизонты во время выполнения.

Зависимости

Чтобы включить этот порт, выберите параметр Adjust prediction horizon and control horizon at run time.

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

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

  • Векторный сигнал положительных целых чисел, задающий длины интервалов блокировки. Для получения дополнительной информации см. Раздел «Манипулирование блокировкой переменных».

Во время исполнения значения m переопределяет горизонт управления по умолчанию, заданный в объекте контроллера. Для получения дополнительной информации смотрите Настроить горизонты во время выполнения.

Зависимости

Чтобы включить этот порт, выберите параметр Adjust prediction horizon and control horizon at run time.

Выход

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

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

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

Если решатель сходится к локальному оптимальному решению (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.

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

Зависимости

Чтобы включить этот порт, выберите параметр 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 путем ввода имени mpc объект, спроектированный в номинальной рабочей точке блока. Во время исполнения контроллер заменяет исходную модель предсказания (A, B, C, и D) и номинальные значения (U, Y, X, и DX) с данными, заданными в входном порте model в каждый момент управления.

По умолчанию блок принимает все другие свойства объекта контроллера (для примера веса настройки, ограничения) постоянными. Переопределить это предположение можно с помощью опций в Online Features разделе.

Следующие ограничения применяются к mpc Объект контроллера:

  • Он должен существовать в MATLAB® рабочей области.

  • Его модель предсказания должна быть объектом пространства состояний в дискретном времени LTI без задержек. Используйте absorbDelay команда для преобразования задержек в дискретные состояния. Размерности A, B, C, и D матрицы в предсказание определяют размерности, требуемые model входной сигнал.

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

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

Задайте начальное состояние контроллера. Если вы оставляете этот параметр пустым, блок использует номинальные значения, определенные в Model.Nominal свойство mpc объект. Чтобы переопределить значение по умолчанию, создайте mpcstate объект в рабочей рабочей области и введите его имя в поле.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Чтобы запустить контроллер в изменяющемся во времени режиме MPC, выберите эту опцию. При работе в этом режиме подключите 3-мерный сигнал шины к model входному порту

Для получения примера см. Изменяющиеся во времени MPC управления изменяющегося во времени объекта.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Зависимости

Чтобы включить этот параметр, выберите параметр Adjust prediction horizon and control horizon at run time.

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

Параметры блоков: MaximumP
Тип: строка, вектор символов
По умолчанию: "10"
Вкладка Другие

Выберите этот параметр, чтобы наследовать шаг расчета родительской подсистемы в качестве блочного шага расчета. Это позволяет вам условно выполнять этот блок внутри 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
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

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

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

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

Примеры моделей

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

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

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

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

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

.

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

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