Адаптивный контроллер MPC

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

Библиотека

Библиотека Simulink MPC

Описание

Блок 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
Подход адаптацииОбновите модель прогноза для одного контроллера, когда условия работы изменяютсяПереключитесь между несколькими контроллерами, разработанными для различных операционных областей
Преимущества
  • Только должен разработать один контроллер оффлайн

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

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

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

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

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

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

Диалоговое окно

Блок Adaptive MPC Controller имеет следующие группировки параметра:

Параметры

Адаптивный контроллер MPC

Контроллер mpc объект разработан в номинальной рабочей точке. Во время выполнения контроллер заменяет исходную модель прогноза (A, B, C, D) и номинальная стоимость (U, Y, X, DX) с данными, заданными в импорте model в каждый момент управления.

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

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

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

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

Начальное состояние контроллера

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

Требуемый Inports

Model

Соедините сигнал шины с импортом model. Этот сигнал изменяет свойства объекта Model.Plant и Model.Nominal контроллера в начале каждого интервала управления.

Адаптивный Контроллер MPC требует, чтобы Model.Plant был объектом пространства состояний дискретного времени 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.

  • Изменяющийся во времени режим 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 (p +1) матричный сигнал

    • Y ny (p +1) матричный сигнал

    • U nu (p +1) матричный сигнал

    • DXnx (p +1) матричный сигнал

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

Один способ сформировать шину состоит в том, чтобы использовать блок Bus Creator.

Measured output или State estimate

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

Включить пользовательскую оценку состояния, в разделе General, Use custom estimated states instead of measured outputs проверки. Проверка этой опции изменяет метку на этом импорте в x[k|k]. Соедините сигнал, который обеспечивает оценки состояния контроллера (объект, воздействие и шумовые образцовые состояния). Используйте пользовательские оценки состояния, когда альтернативный метод оценки рассматривается выше встроенного средства оценки или когда состояния полностью измеримы.

Reference

Размерность ref не должна изменяться с одного момента управления на следующее. Каждый элемент должен быть вещественным числом.

Когда ref является 1 сигналом ny, где ny является количеством выходных параметров, нет никакого ссылочного предварительного просмотра сигнала. Контроллер применяет текущие ссылочные значения через горизонт прогноза.

Чтобы использовать предварительный просмотр сигнала, задайте ref как N-by-ny сигнал, где N является количеством временных шагов, для которых вы задаете ссылочные значения. Здесь, 1<Np, и p является горизонтом прогноза. Предварительный просмотр обычно улучшает производительность, поскольку диспетчер может ожидать будущие ссылочные изменения сигнала. Первая строка ref задает ссылки ny для первого шага в горизонте прогноза (в следующем интервале управления k = 1), и так далее для шагов N. Если N <p, последняя строка определяет постоянные ссылочные значения для остающегося p - шаги N.

Например, предположите ny = 2 и p = 6. В данный момент контроля сигнал, соединенный с импортом ref:

[2 5  ←  k=1
 2 6  ←  k=2
 2 7  ←  k=3
 2 8] ←  k=4

Сигнал сообщает диспетчеру что:

  • Ссылочными значениями для первого шага горизонта прогноза k = 1 является 2 и 5.

  • Первое ссылочное значение остается в 2, но вторых увеличениях постепенно.

  • Второе ссылочное значение становится 8 в начале четвертого шага k = 4 в горизонте прогноза.

  • Оба значения остаются постоянными в 2 и 8 соответственно для шагов 5-6 горизонта прогноза.

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

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

Переменные, которыми управляют,

Выходной порт mv обеспечивает сигнал, задающий nu1 переменные, которыми управляют, для управления объектом. В каждый момент управления контроллер обновляет его выходной порт mv путем решения проблемы квадратичного программирования с помощью или решателя KWIK по умолчанию или пользовательского решателя QP. Для получения дополнительной информации см. Решатель QP.

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

В противном случае, если задача оптимизации выполнима, и решатель достигает заданного максимального количества итераций, не находя оптимальное решение, mv:

  • Остается в его новом успешном решении, если свойством Optimizer.UseSuboptimalSolution контроллера является false.

  • Субоптимальное решение, достигнутое после итоговой итерации, если свойством Optimizer.UseSuboptimalSolution контроллера является true. Для получения дополнительной информации смотрите Субоптимальное Решение QP.

Дополнительный Inports (общий раздел)

Measured disturbance

Добавьте импорт (md), с которым вы соединяете измеренный сигнал воздействия. Количество измеренных воздействий задано для вашего контроллера, nmd1, должен совпадать с размерностями связанного сигнала воздействия.

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

Когда md является 1 сигналом nmd, нет никакого измеренного предварительного просмотра воздействия. Контроллер применяет текущие значения воздействия через горизонт прогноза.

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

Например, предположите nmd = 2 и p = 6. В данный момент контроля сигнал, соединенный с импортом md:

[2 5  ←  k=0
 2 6  ←  k=1
 2 7  ←  k=2
 2 8] ←  k=3

Этот сигнал сообщает диспетчеру что:

  • Текущими значениями MD является 2 и 5 в k = 0.

  • Первый MD остается в 2, но вторых увеличениях постепенно.

  • Второй MD становится 8 в начале третьего шага k = 3 в горизонте прогноза.

  • Оба значения остаются постоянными в 2 и 8 соответственно для шагов 4-6 горизонта прогноза.

mpcpreview показывает, как использовать предварительный просмотр MD в конкретном случае.

Для получения дополнительной информации вычисления смотрите, что MPC Моделирует и Матрицы QP.

Внешняя переменная, которой управляют,

Добавьте импорт (ext.mv), с которым вы соединяете векторный сигнал, который содержит фактические переменные, которыми управляют, (MV), используемые на объекте. Диспетчер использует этот сигнал обновить их оценки состояния контроллера в каждом интервале управления. Используя этот импорт улучшает точность оценки состояния, когда MVS, используемый на объекте, отличается от MVS, вычисленного блоком, например, должным сигнализировать о насыщении или условии переопределения.

Примечание

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

Для получения дополнительной информации смотрите соответствующий раздел страницы с описанием блока MPC Controller.

Цели для переменных, которыми управляют,

Если вы хотите, чтобы один или несколько переменные, которыми управляют, (MV) отследил целевые значения, которые изменяются со временем, используют эту опцию, чтобы добавить импорт mv.target. Соедините этот порт с целевым сигналом с размерностью nu, где nu является количеством MVS.

Для этого, чтобы быть эффективным, соответствующий мВ должен иметь ненулевые веса штрафа (эти веса являются нулем по умолчанию).

Дополнительные выходные порты (общий раздел)

Оптимальная стоимость

Добавьте выходной порт (cost), который обеспечивает оптимальное значение целевой функции квадратичного программирования в текущее время (неотрицательный скаляр). Если контроллер выполняет хорошо, и никакие ограничения не были нарушены, значение должно быть маленьким. Если задача оптимизации неосуществима, однако, значение бессмысленно. (См. qp.status.)

Состояние Optimization

Добавьте выходной порт (qp.status), который позволяет вам контролировать состояние решателя QP.

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

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

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

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

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

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

Предполагаемые состояния контроллера

Добавьте выходной порт (est.state), чтобы получить оценки состояния контроллера, x[k|k], в каждый момент управления. Они включают объект, воздействие и шумовые образцовые состояния.

Последовательность оптимального управления

Добавьте выходной порт (mv.seq), который обеспечивает предсказанные оптимальные корректировки мВ (перемещения) по целому горизонту прогноза от k до k+p, где k является текущим временем, и p является горизонтом прогноза. Этот сигнал (p +1)-by-nu матрица, где и nu количество переменных, которыми управляют.

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

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

Добавьте выходной порт (x.seq), который обеспечивает предсказанную оптимальную последовательность переменной состояния по целому горизонту прогноза от k до k+p, где k является текущим временем, и p является горизонтом прогноза. Этот сигнал (p +1)-by-nx матрица, где nx является количеством состояний на объекте, и неизмеренные возмущения (состояния из шумовых моделей не включены).

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

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

Добавьте выходной порт (y.seq), который обеспечивает предсказанную оптимальную последовательность выходной переменной по целому горизонту прогноза от k до k+p, где k является текущим временем, и p является горизонтом прогноза. Этот сигнал (p +1)-by-ny матрица, где и ny количество выходных параметров.

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

Оценка состояния (общий раздел)

Используйте пользовательские предполагаемые состояния вместо того, чтобы использовать встроенный Фильтр Калмана

Замените mo на импорт x[k|k] для пользовательской оценки состояния, как описано в Необходимом Inports.

Модель прогноза (онлайновый раздел функций)

Объекты Линейного изменяющегося во времени (LTV)

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

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

Ограничения (онлайновый раздел функций)

Более низкие пределы мВ

Добавьте импортируют umin, который можно соединить с ограничительным сигналом во время выполнения для переменных нижних границ, которыми управляют. Этот сигнал является вектором с nu конечные значения. i th элемент umin заменяет свойство ManipulatedVariables(i).Min контроллера во время выполнения.

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

Если этот параметр не выбран, блок использует постоянные ограничительные значения, сохраненные в его объекте mpc.

Примечание

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

Если свойство ManipulatedVariables(i).Min контроллера задано как вектор (то есть, ограничение отличается по горизонту прогноза), i th элемент umin заменяет первую конечную запись в этом векторе и остающийся сдвиг значений, чтобы сохранить тот же ограничительный профиль.

Верхние пределы мВ

Добавьте импортируют umax, который можно соединить с ограничительным сигналом во время выполнения для переменных верхних границ, которыми управляют. Этот сигнал является вектором с nu конечные значения. i th элемент umax заменяет свойство ManipulatedVariables(i).Max контроллера во время выполнения.

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

Если этот параметр не выбран, блок использует постоянные ограничительные значения, сохраненные в его объекте mpc.

Примечание

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

Если свойство ManipulatedVariables(i).Max контроллера задано как вектор (то есть, ограничение отличается по горизонту прогноза), i th элемент umax заменяет первую конечную запись в этом векторе и остающийся сдвиг значений, чтобы сохранить тот же ограничительный профиль.

Понизьте пределы OV

Добавьте импортируют ymin, который можно соединить с ограничительным сигналом во время выполнения для нижних границ выходной переменной. Этот сигнал является вектором с ny конечные значения. i th элемент ymin заменяет свойство OutputVariables(i).Min контроллера во время выполнения.

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

Если этот параметр не выбран, блок использует постоянные ограничительные значения, сохраненные в его объекте mpc.

Примечание

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

Если свойство OutputVariables(i).Min контроллера задано как вектор (то есть, ограничение отличается по горизонту прогноза), i th элемент ymin заменяет первую конечную запись в этом векторе и остающийся сдвиг значений, чтобы сохранить тот же ограничительный профиль.

Верхние пределы OV

Добавьте импортируют ymax, который можно соединить с ограничительным сигналом во время выполнения для верхних границ выходной переменной. Этот сигнал является вектором с ny конечные значения. i th элемент ymax заменяет свойство OutputVariables(i).Max контроллера во время выполнения.

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

Если этот параметр не выбран, блок использует постоянные ограничительные значения, сохраненные в его объекте mpc.

Примечание

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

Если свойство OutputVariables(i).Max контроллера задано как вектор (то есть, ограничение отличается по горизонту прогноза), i th элемент ymax заменяет первую конечную запись в этом векторе и остающийся сдвиг значений, чтобы сохранить тот же ограничительный профиль.

Пользовательские ограничения

Добавьте импортирует E, F, G и S к блоку, который можно соединить со следующими пользовательскими сигналами матрицы ограничений во время выполнения:

  • Матрица ограничений переменной E — Manipulated с размером nc-by-nu, где nc является количеством пользовательских ограничений

  • F — Controlled матрица ограничений вывода с размером nc-by-ny

  • G Пользовательская матрица ограничений с размером 1 nc

  • S Измеренная матрица ограничений воздействия, с размером nc-by-nv, где nv является количеством измеренных воздействий. S добавляется, только если объект mpc измерил воздействия.

Эти ограничения заменяют пользовательские ограничения ранее набор с помощью setconstraint.

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

Пользовательские ограничения имеют форму E u + F y + S v <= G, где:

  • u является вектором значений переменных, которыми управляют.

  • y является вектором предсказанных выходных значений объекта.

  • v является вектором измеренных входных значений воздействия объекта.

Для получения дополнительной информации смотрите Ограничения на Линейные комбинации Вводов и выводов.

Веса (онлайновый раздел функций)

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

Веса OV

Добавьте импорт (y.wt), что можно соединить с переменной вывода во время выполнения (OV) сигнал веса. Этот сигнал заменяет свойство Weights.OV объекта mpc, который устанавливает относительную важность отслеживания уставки OV.

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

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

Если вы не соединяете сигнал с импортом y.wt, блок использует веса OV, заданные в вашем объекте mpc.

Веса мВ

Добавьте импорт (u.wt), который можно соединить с сигналом веса переменной, которой управляют, (MV) во время выполнения. Этот сигнал заменяет свойство Weights.MV объекта mpc, который устанавливает относительную важность целевого отслеживания мВ.

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

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

Если вы не соединяете сигнал с импортом u.wt, блок использует веса мВ, заданные в вашем объекте mpc.

Веса MVRate

Добавьте импорт (du.wt), который можно соединить с сигналом веса уровня переменной, которой управляют, (MV) во время выполнения. Этот сигнал заменяет свойство Weights.MVrate объекта mpc, который устанавливает относительную важность изменений мВ.

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

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

Если вы не соединяете сигнал с импортом du.wt, блок использует веса уровня мВ, заданные в вашем объекте mpc.

Ослабьте переменный вес

Добавьте импорт (ecr.wt) для скалярного неотрицательного сигнала, который заменяет свойство MPCobj.Weights.ECR контроллера mpc. Этот импорт не имеет никакого эффекта, если ваш объект контроллера не задает мягкие ограничения, чьи связанные значения ECR являются ненулевыми.

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

Вы не можете смочь избежать нарушений ограничения выходной переменной. Таким образом увеличение значения ecr.wt часто контрпродуктивно. Такое увеличение заставляет контроллер обращать меньше внимания на его другие цели и не помогает уменьшать ограничительные нарушения. Обычно необходимо настраивать ecr.wt, чтобы достигнуть соответствующего баланса относительно других целей управления.

Прогноз и горизонты управления (онлайновый раздел функций)

Настройте горизонт прогноза и управляйте горизонтом во время выполнения

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

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

  • m Управляйте горизонтом, заданным как одно из следующего:

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

    • Векторный сигнал положительного целочисленного определения, блокирующего длины интервала. Для получения дополнительной информации смотрите Переменное Блокирование, которым Управляют.

Во время выполнения значения p и сигналов m заменяют горизонты по умолчанию, заданные в объекте контроллера.

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

Максимальный горизонт прогноза

Задайте максимальное значение горизонта прогноза при варьировании горизонта прогноза во время выполнения. Это значение, Pmax, используется, чтобы задать:

  • Количество строк в оптимальных выходных сигналах последовательности mv.seq, x.seq и y.seq. При варьировании горизонта прогноза во время выполнения эти сигналы имеют Pmax +1 строка.

  • Максимальное количество строк для изменяющихся во времени входных сигналов весов y.wt, u.wt и du.wt. При варьировании горизонта прогноза во время выполнения эти сигналы могут иметь в большинстве строк Pmax.

  • Максимальные размерности объекта и номинальных матриц условия задали во входном сигнале model (когда параметр Linear Time-Varying (LTV) plants выбран). При варьировании горизонта прогноза во время выполнения третья размерность этих матриц может быть в большей части Pmax +1.

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

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

Раздел других

Блокируйте тип данных

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

  • 'double' Плавающая точка двойной точности (значение по умолчанию)

  • единственный Плавающая точка с одинарной точностью

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

Для примера симуляции с одинарной точностью и с двойной точностью и генерации кода для контроллера MPC, смотрите Симуляцию и Генерацию кода Используя Simulink Coder.

Чтобы просмотреть типы данных порта в модели, в Редакторе Simulink, выбирают Display > Signals & Ports Port Data Types.

Наследуйте шаг расчета

Используйте шаг расчета родительской подсистемы как шаг расчета блока. Выполнение так позволяет вам условно выполнять этот блок в Подсистеме вызова функций или Инициированных блоках Subsystem. Для примера смотрите Используя диспетчера MPC Блока В Вызове функции и Инициированных Подсистемах.

Примечание

Необходимо выполнить Подсистему вызова функций или Инициированные блоки Subsystem на уровне частоты дискретизации контроллера. В противном случае вы видите неожиданные результаты.

Чтобы просмотреть шаг расчета блока, в Редакторе Simulink, выбирают Display > Sample Time. Выберите Colors, Annotations или All. Для получения дополнительной информации, информация о Шаге расчета вида на море (Simulink).

Используйте внешний сигнал включить или отключить оптимизацию

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

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

развернуть все

Поведение изменяется в R2018b

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

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

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

Введенный в R2014b