MPC Controller

Моделируйте прогнозирующий контроллер модели

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

  • MPC Controller block

Описание

Блок MPC Controller получает измеренный током выходной сигнал (mo), опорный сигнал (ref) и необязательный измеренный сигнал нарушения порядка (md). Блок вычисляет оптимальную манипулированную переменную (mv) путем решения квадратичной задачи программирования с помощью либо решателя KWIK по умолчанию, либо пользовательского решателя QP. Для получения дополнительной информации см. Раздел «Решатели QP».

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

Поскольку блок MPC Controller использует MATLAB Function блоки, он требует компиляции каждый раз, когда вы изменяете объект MPC и блок. Кроме того, потому что MATLAB® не позволяет скомпилированному коду находиться в любой папке продукта MATLAB, для работы с Simulink необходимо использовать папку, отличную от MATLAB® модель, когда вы используете блоки MPC.

Порты

Вход

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

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

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

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

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

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

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

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

Чтобы использовать те же самые измеренные значения нарушения порядка через горизонт предсказания, соедините 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 объект из рабочего пространства MATLAB.

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

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

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

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

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

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

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

Чтобы интерактивно изменить контроллер, указанный с помощью параметра MPC Controller, откройте приложение MPC Designer, нажав Design. Для примера можно:

  • Импортируйте новую модель предсказания.

  • Изменение горизонтов, ограничений и веса моделей.

  • Оцените эффективность MPC с помощью линейного объекта.

  • Экспортируйте обновленный контроллер в рабочее пространство MATLAB.

Если у вас есть существующий mpc в рабочем пространстве MATLAB укажите имя этого объекта, используя параметр MPC Controller.

Если у вас нет существующего mpc объект в рабочем пространстве MATLAB, оставьте параметр MPC Controller пустым. С блоком MPC Controller, соединенным с объектом, откройте MPC Designer, нажав Design. Используя приложение, линеаризируйте модель Simulink в заданной рабочей точке и разработайте свой контроллер. Чтобы использовать этот подход к проекту, вы должны иметь программное обеспечение Simulink Control Design™. Для получения дополнительной информации смотрите Проект Контроллер в Simulink и Линеаризация моделей Simulink с использованием MPC Designer.

Если вы задаете контроллер, используя параметр MPC Controller, можно просмотреть ваш проект на проблемы устойчивости и робастности во время выполнения, нажав Review. Для получения дополнительной информации смотрите Review Model Predictive Controller для проблем устойчивости и робастности.

Вкладка Общие

Если ваш контроллер имеет измеренные нарушения порядка, необходимо выбрать этот параметр, чтобы добавить 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"
Вкладка Оперативные функции

Выберите этот параметр, чтобы добавить 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"
Вкладка Условия по умолчанию

По умолчанию блок определяет шаг расчета для выполнения симуляции, обрезки или линеаризации с помощью приложения MPC Designer. Вы должны задать шаг расчета, которое совместимо с проектом модели Simulink.

Зависимости

Этот параметр применяется только, когда параметр MPC Controller пуст, и вы открываете MPC Designer с помощью кнопки Design.

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

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

Горизонт прогноза по умолчанию для выполнения симуляции, обрезки или линеаризации с помощью приложения MPC Designer. Вы должны задать горизонт предсказания, который совместим с вашим проектом модели Simulink.

Зависимости

Этот параметр применяется только, когда параметр MPC Controller пуст, и вы открываете MPC Designer с помощью кнопки Design.

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

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

Количество манипулируемых переменных по умолчанию для выполнения симуляции, обрезки или линеаризации с помощью приложения MPC Designer. Вы должны задать значение, которое совместимо с проектом модели Simulink.

Зависимости

Этот параметр применяется только, когда параметр MPC Controller пуст, и вы открываете MPC Designer с помощью кнопки Design.

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

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

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

Зависимости

  • Этот параметр применяется только, когда параметр MPC Controller пуст, и вы открываете MPC Designer с помощью кнопки Design.

  • Чтобы использовать этот параметр, вы должны выбрать параметр Measured disturbance.

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

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

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

Зависимости

Этот параметр применяется только, когда параметр MPC Controller пуст, и вы открываете MPC Designer с помощью кнопки Design.

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

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

Количество измеренных выходов по умолчанию для выполнения симуляции, обрезки или линеаризации с помощью приложения MPC Designer. Вы должны задать значение, которое совместимо с проектом модели Simulink.

Зависимости

Этот параметр применяется только, когда параметр MPC Controller пуст, и вы открываете MPC Designer с помощью кнопки Design.

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

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

Количество невынесенных выходов по умолчанию для выполнения симуляции, обрезки или линеаризации с помощью приложения MPC Designer. Вы должны задать значение, которое совместимо с проектом модели Simulink.

Зависимости

Этот параметр применяется только, когда параметр MPC Controller пуст, и вы открываете MPC Designer с помощью кнопки Design.

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

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

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

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

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

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

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

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

Параметры блоков: BlockDataType
Тип: строка, вектор символов
Значения: "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
Тип: строка, вектор символов
Значения: "off", "on"
По умолчанию: "off"

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

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

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

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

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

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

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

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

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

.

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

.
Представлено до R2006a
Для просмотра документации необходимо авторизоваться на сайте