Симулируйте адаптивные и изменяющиеся во времени прогнозирующие контроллеры модели
Model Predictive Control Toolbox
Блок 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
импорт. В начале каждого интервала управления этот сигнал изменяет объект 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 являются соответствующим входом и утверждают значения для шага текущего времени.
Изменяющийся во времени режим 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) матричный сигнал
DX
— nx (p +1) матричный сигнал
Здесь, p является горизонтом прогноза контроллера. Для каждого сигнала задайте p +1 значение, представляющее и номинальные условия модели на каждом шаге горизонта прогноза. Для получения дополнительной информации смотрите Изменяющийся во времени MPC.
Один способ сформировать шину состоит в том, чтобы использовать блок Bus Creator.
Размерности элементов шины в model зависят от рабочего режима контроллера. Разместить контроллер в:
Адаптивный режим MPC, очистите параметр Linear Time-Varying (LTV) plants
Изменяющийся во времени режим MPC, выберите параметр Linear Time-Varying (LTV) plants
ref
— Выходные значения ссылки моделиОбъект выходные значения ссылки, заданные как вектор-строка, сигнализирует или матричный сигнал.
Чтобы использовать те же ссылочные значения через горизонт прогноза, соедините ref с сигналом вектора-строки с элементами NY, где Ny является количеством выходных переменных. Каждый элемент задает ссылку для выходной переменной.
Чтобы варьироваться ссылки по горизонту прогноза (предварительный просмотр) со времени k +1 ко времени k +p, соедините ref с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом прогноза. Каждая строка содержит ссылки для одного шага горизонта прогноза. Если вы задаете меньше, чем строки p, итоговые ссылки используются в остающихся шагах горизонта прогноза.
mo
— Измеренный выходИзмеренные выходные сигналы, заданные как векторный сигнал. Диспетчер MPC использует измеренный объект выходные параметры, чтобы улучшить его оценки состояния. Если ваш диспетчер использует оценку состояния по умолчанию, необходимо соединить измеренный объект выходные параметры с входным портом mo. Если ваш диспетчер использует пользовательскую оценку состояния, необходимо соединить сигнал с входным портом x[k|k].
Чтобы включить этот порт, очистите параметр Use custom state estimation instead of using the built-in Kalman filter.
x[k|k]
— Пользовательская оценка состоянияПользовательская оценка состояния, заданная как векторный сигнал. Диспетчер MPC использует связанные оценки состояния вместо того, чтобы оценить состояния с помощью его сборки - в средстве оценки. Если ваш диспетчер использует пользовательскую оценку состояния, необходимо соединить оценки текущего состояния с входным портом x[k|k]. Если ваш диспетчер использует оценку состояния по умолчанию, необходимо соединить сигнал с входным портом mo.
Даже при том, что шум измерения утверждает (если таковые имеются), не используются в оптимизации MPC, пользовательский вектор состояния должен содержать все состояния, заданные в mpcstate
объект контроллера, включая объект, воздействие и шумовые состояния модели.
Используйте пользовательские оценки состояния, когда альтернативный метод оценки рассматривается выше встроенного средства оценки или когда состояния полностью измеримы.
Чтобы включить этот порт, выберите параметр Use custom state estimation instead of using the built-in Kalman filter.
md
входной параметрЕсли ваши модели контроллеров измерили воздействия, включают этот входной порт и соединяют вектор-строку или матричный сигнал. Если ваш контроллер измерил воздействия, необходимо включить этот порт.
Чтобы использовать те же измеренные значения воздействия через горизонт прогноза, соедините md с сигналом вектора-строки с элементами Nmd, где Nmd является количеством переменных, которыми управляют. Каждый элемент задает значение для измеренного воздействия.
Чтобы варьироваться воздействия по горизонту прогноза (предварительный просмотр) со времени k ко времени k +p, соедините md с матричным сигналом со столбцами Nmd и до p +1 строка. Здесь, k является текущим временем, и p является горизонтом прогноза. Каждая строка содержит воздействия для одного шага горизонта прогноза. Если вы задаете меньше, чем p +1 строка, итоговые воздействия используются в остающихся шагах горизонта прогноза.
ext.mv
— Управляющие сигналы используются на объекте в предыдущем интервале управленияУправляющие сигналы использовали на объекте в предыдущем интервале управления, заданном как векторный сигнал lengthNmv, где Nmv является количеством переменных, которыми управляют. Используйте этот входной порт когда:
Вы знаете, что ваш контроллер не всегда контролирует объект
То, когда фактические сигналы мВ применились к объекту, может потенциально отличаться от значений, сгенерированных контроллером, таких как насыщение управляющего сигнала
Оценка состояния контроллера принимает, что мВ является кусочной константой. Поэтому во время tk, значением ext.mv должен быть эффективный мВ между временами tk–1 и tk. Например, если мВ на самом деле варьируется на этом интервале, вы можете предоставить усредненное во времени значение, оцененное во время tk.
Соединитесь ext.mv к сигналам мВ на самом деле применился к объекту в предыдущем интервале управления. Как правило, эти сигналы мВ являются значениями, сгенерированными контроллером, хотя это не всегда имеет место. Например, если ваш контроллер является оффлайновым и рабочим в режиме отслеживания; то есть, контроллер вывел, не управляет объектом, затем питание фактического управляющего сигнала к ext.mv может помочь достигнуть передачи bumpless, когда контроллер переключается назад онлайн.
Используя эту опцию может вызвать алгебраический цикл в модели Simulink®, поскольку существует прямое сквозное соединение от ext.mv
импортируйте к mv
выходной порт. Чтобы предотвратить такие алгебраические циклы, вставьте блок Memory или блок Unit Delay.
Для примера, который использует внешний порт ввода переменной, которым управляют, в передаче bumpless, смотрите Контроллер Переключателя Онлайн и Оффлайн с Передачей Bumpless.
Чтобы включить этот порт, выберите параметр External manipulated variable.
switch
— Включите или отключите оптимизациюЧтобы выключить вычисления оптимизации контроллера, соедините switch с ненулевым сигналом.
Отключение вычислений оптимизации уменьшает вычислительное усилие, когда контроллер, выход не нужен, такой как тогда, когда система действует вручную или другой контроллер, вступил во владение. Однако контроллер продолжает обновлять его оценки внутреннего состояния обычным способом. Поэтому это готово возобновить вычисления оптимизации каждый раз, когда switch сигнализирует о возвратах к нулю. В то время как оптимизация контроллера выключена, блок передает текущий сигнал ext.mv выходу контроллера. Если импорт ext.mv не включен, контроллер, которым выход сохранен в значении, которое это имело, когда оптимизация была отключена.
Для примера, который использует внешний порт ввода переменной, которым управляют, в передаче bumpless, смотрите Контроллер Переключателя Онлайн и Оффлайн с Передачей Bumpless.
Чтобы включить этот порт, выберите параметр Use external signal to enable or disable optimization.
mv.target
— Переменные цели, которыми управляют,Чтобы задать переменные цели, которыми управляют, включите этот входной порт и соедините вектор-строку или матричный сигнал. Чтобы заставить данную переменную, которой управляют, отследить свое заданное целевое значение, необходимо также задать ненулевой настраивающий вес для той переменной, которой управляют.
Чтобы использовать те же переменные цели, которыми управляют, через горизонт прогноза, соедините mv.target с сигналом вектора-строки с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает цель для переменной, которой управляют.
Чтобы варьироваться цели по горизонту прогноза (предварительный просмотр) со времени k ко времени k +p-1, соедините mv.target с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом прогноза. Каждая строка содержит цели для одного шага горизонта прогноза. Если вы задаете меньше, чем строки p, итоговые цели используются в остающихся шагах горизонта прогноза.
Чтобы включить этот порт, выберите параметр Targets for manipulated variables.
ymin
— Минимальные ограничения выходной переменнойМинимальные ограничения выходной переменной, заданные как вектор-строка, который содержит Ny конечные значения, где Ny является количеством выходных параметров. Каждый элемент задает нижнюю границу для выходной переменной. i
элемент th ymin заменяет OutputVariables(i).Min
свойство контроллера во время выполнения.
Если выходной переменной не задали нижнюю границу в объекте контроллера, то соответствующее связанное значение сигналов проигнорировано.
Если этот параметр не выбран, блок использует постоянные ограничительные значения, сохраненные в его mpc
объект.
Вы не можете задать изменяющиеся во времени ограничения во время выполнения с помощью матричного сигнала.
Если OutputVariables(i).Min
свойство контроллера задано как вектор (то есть, ограничение варьируется по горизонту прогноза), i
элемент th ymin заменяет первую конечную запись в этом векторе и остающийся сдвиг значений, чтобы сохранить тот же ограничительный профиль.
Чтобы включить этот порт, выберите параметр Lower OV limits.
ymax
— Максимальные ограничения выходной переменнойМаксимальные ограничения выходной переменной, заданные как вектор-строка, который содержит Ny конечные значения, где Ny является количеством выходных параметров. Каждый элемент задает верхнюю границу для выходной переменной. i
элемент th ymax заменяет OutputVariables(i).Max
свойство контроллера во время выполнения.
Если выходной переменной не задали верхнюю границу в объекте контроллера, то соответствующее связанное значение сигналов проигнорировано.
Если этот параметр не выбран, блок использует постоянные ограничительные значения, сохраненные в его mpc
объект.
Вы не можете задать изменяющиеся во времени ограничения во время выполнения с помощью матричного сигнала.
Если OutputVariables(i).Max
свойство контроллера задано как вектор (то есть, ограничение варьируется по горизонту прогноза), i
элемент th ymax заменяет первую конечную запись в этом векторе и остающийся сдвиг значений, чтобы сохранить тот же ограничительный профиль.
Чтобы включить этот порт, выберите параметр Upper OV limits.
umin
— Минимальные переменные ограничения, которыми управляют,Минимальные переменные ограничения, которыми управляют, заданные как вектор-строка, который содержит Nmv конечные значения, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает нижнюю границу для переменной, которой управляют. i
элемент th umin заменяет ManipulatedVariables(i).Min
свойство контроллера во время выполнения.
Если переменной, которой управляют, не задали нижнюю границу в объекте контроллера, то соответствующее связанное значение сигналов проигнорировано.
Если этот параметр не выбран, блок использует постоянные ограничительные значения, сохраненные в его mpc
объект.
Вы не можете задать изменяющиеся во времени ограничения во время выполнения с помощью матричного сигнала.
Если ManipulatedVariables(i).Min
свойство контроллера задано как вектор (то есть, ограничение варьируется по горизонту прогноза), i
элемент th umin заменяет первую конечную запись в этом векторе и остающийся сдвиг значений, чтобы сохранить тот же ограничительный профиль.
Чтобы включить этот порт, выберите параметр Lower MV limits.
umax
— Максимальные переменные ограничения, которыми управляют,Максимальные переменные ограничения, которыми управляют, заданные как вектор-строка, который содержит Nmv конечные значения, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает верхнюю границу для переменной, которой управляют. i
элемент th umax заменяет ManipulatedVariables(i).Max
свойство контроллера во время выполнения.
Если переменной, которой управляют, не задали верхнюю границу в объекте контроллера, то соответствующее связанное значение сигналов проигнорировано.
Если этот параметр не выбран, блок использует постоянные ограничительные значения, сохраненные в его mpc
объект.
Вы не можете задать изменяющиеся во времени ограничения во время выполнения с помощью матричного сигнала.
Если ManipulatedVariables(i).Max
свойство контроллера задано как вектор (то есть, ограничение варьируется по горизонту прогноза), i
элемент th umax заменяет первую конечную запись в этом векторе и остающийся сдвиг значений, чтобы сохранить тот же ограничительный профиль.
Чтобы включить этот порт, выберите параметр Upper MV limits.
E
— Переменная матрица ограничений, которой управляют,Переменная матрица ограничений, которой управляют, заданная как Nc-by-Nmv матричный сигнал, где Nc является количеством смешанных ограничений ввода/вывода и Nmv, является количеством переменных, которыми управляют.
Если вы задаете E
в mpc
объект, необходимо соединить сигнал с входным портом E. В противном случае соедините нулевую матрицу с правильным размером.
Задавать время выполнения смешало ограничения ввода/вывода, используйте входной порт E наряду с F, G и портами S. Эти ограничения заменяют смешанные ограничения ввода/вывода ранее набор с помощью setconstraint
. Для получения дополнительной информации о смешанных ограничениях ввода/вывода смотрите Ограничения на Линейные комбинации Вводов и выводов.
Количество смешанных ограничений ввода/вывода не может измениться во время выполнения. Поэтому Nc должен совпадать с количеством строк в E
матрица вы задали использование setconstraint
.
Чтобы включить этот порт, выберите параметр Custom constraints.
F
— Управляемая выходная матрица ограниченийУправляемая выходная матрица ограничений, заданная как Nc-by-Ny матричный сигнал, где Nc является количеством смешанных ограничений ввода/вывода и Ny, является количеством объекта выходные параметры. Если вы задаете F
в mpc
объект, необходимо соединить сигнал с входным портом F с одинаковым числом строк. В противном случае соедините нулевую матрицу с правильным размером.
Задавать время выполнения смешало ограничения ввода/вывода, используйте входной порт F наряду с E, G и портами S. Эти ограничения заменяют смешанные ограничения ввода/вывода ранее набор с помощью setconstraint
. Для получения дополнительной информации о смешанных ограничениях ввода/вывода смотрите Ограничения на Линейные комбинации Вводов и выводов.
Количество смешанных ограничений ввода/вывода не может измениться во время выполнения. Поэтому Nc должен совпадать с количеством строк в F
матрица вы задали использование setconstraint
.
Чтобы включить этот порт, выберите параметр Custom constraints.
G
— Пользовательский ограничительный векторПользовательский ограничительный вектор, заданный как сигнал вектора-строки длины Nc, где Nc является количеством смешанных ограничений ввода/вывода. Если вы задаете G
в mpc
объект, необходимо соединить сигнал с входным портом G с одинаковым числом строк. В противном случае соедините нулевую матрицу с правильным размером.
Задавать время выполнения смешало ограничения ввода/вывода, используйте входной порт G наряду с E, F и портами S. Эти ограничения заменяют смешанные ограничения ввода/вывода ранее набор с помощью setconstraint
. Для получения дополнительной информации о смешанных ограничениях ввода/вывода смотрите Ограничения на Линейные комбинации Вводов и выводов.
Количество смешанных ограничений ввода/вывода не может измениться во время выполнения. Поэтому Nc должен совпадать с количеством строк в G
матрица вы задали использование setconstraint
.
Чтобы включить этот порт, выберите параметр Custom constraints.
S
— Измеренная матрица ограничений воздействияИзмеренная матрица ограничений воздействия, заданная как Nc-by-nN матричный сигнал, где Nc является количеством смешанных ограничений ввода/вывода и Nv, является количеством измеренных воздействий. Если вы задаете S
в mpc
объект, необходимо соединить сигнал с входным портом S с одинаковым числом строк. В противном случае соедините нулевую матрицу с правильным размером.
Задавать время выполнения смешало ограничения ввода/вывода, используйте входной порт S наряду с E, F и портами G. Эти ограничения заменяют смешанные ограничения ввода/вывода ранее набор с помощью setconstraint
. Для получения дополнительной информации о смешанных ограничениях ввода/вывода смотрите Ограничения на Линейные комбинации Вводов и выводов.
Количество смешанных ограничений ввода/вывода не может измениться во время выполнения. Поэтому Nc должен совпадать с количеством строк в G
матрица вы задали использование setconstraint
.
Чтобы включить этот порт, выберите параметр Custom constraints. Этот порт добавляется только если mpc
объект измерил воздействия.
y.wt
— Настраивающие веса выходной переменнойЧтобы задать переменную вывода во время выполнения настраивающиеся веса, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.OutputVariables
свойство его объекта контроллера. Эти настраивающие веса штрафуют отклонения от выходных ссылок.
Если диспетчер MPC возражает, использует постоянные выходные настраивающие веса по горизонту прогноза, можно задать только постоянные выходные настраивающие веса во времени выполнения. Точно так же, если диспетчер MPC возражает использованию выходные настраивающие веса, которые варьируются по горизонту прогноза, можно задать только изменяющиеся во времени выходные настраивающие веса во времени выполнения
Чтобы использовать постоянные настраивающие веса по горизонту прогноза, соедините y.wt с сигналом вектора-строки с элементами Ny, где Ny является количеством выходных параметров. Каждый элемент задает неотрицательный настраивающий вес для выходной переменной. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту прогноза со времени k +1 ко времени k +p, соедините y.wt с матричным сигналом со столбцами Ny и до строк p. Здесь, k является текущим временем, и p является горизонтом прогноза. Каждая строка содержит настраивающиеся веса для одного шага горизонта прогноза. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта прогноза. Для получения дополнительной информации о различных весах по горизонту прогноза смотрите Изменяющиеся во времени Веса и Ограничения.
Чтобы включить этот порт, выберите параметр OV weights.
u.wt
— Переменные настраивающие веса, которыми управляют,Задавать время выполнения управляло переменными настраивающими весами, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.ManipulatedVariables
свойство его объекта контроллера. Эти настраивающие веса штрафуют отклонения от целей мВ.
Если диспетчер MPC возражает, использует постоянные переменные настраивающие веса, которыми управляют, по горизонту прогноза, можно задать только постоянные переменные настраивающие веса, которыми управляют, во времени выполнения. Точно так же, если контроллер MPC, объектное использование управляло переменными настраивающими весами, которые варьируются по горизонту прогноза, можно задать только изменяющиеся во времени переменные настраивающие веса, которыми управляют, во времени выполнения
Чтобы использовать те же настраивающие веса по горизонту прогноза, соедините u.wt с сигналом вектора-строки с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает неотрицательный настраивающий вес для переменной, которой управляют. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту прогноза со времени k ко времени k +p-1, соедините u.wt с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом прогноза. Каждая строка содержит настраивающиеся веса для одного шага горизонта прогноза. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта прогноза. Для получения дополнительной информации о различных весах по горизонту прогноза смотрите Изменяющиеся во времени Веса и Ограничения.
Чтобы включить этот порт, выберите параметр MV weights.
du.wt
— Настраивающие веса с плавающей ставкой, которыми управляют,Задавать время выполнения управляло настраивающими весами с плавающей ставкой, включите этот входной порт. Если этот порт отключен, блок использует настраивающиеся веса, заданные в Weights.ManipulatedVariablesRate
свойство его объекта контроллера. Эти настраивающие веса штрафуют большие изменения в перемещениях управления.
Если диспетчер MPC возражает, использует постоянные настраивающие веса с плавающей ставкой, которыми управляют, по горизонту прогноза, можно задать только постоянные переменные настраивающие веса уровня, которыми управляют, во времени выполнения. Точно так же, если диспетчер MPC возражает использованию настраивающие веса с плавающей ставкой, которыми управляют, которые варьируются по горизонту прогноза, можно задать только изменяющиеся во времени настраивающие веса с плавающей ставкой, которыми управляют, во времени выполнения
Чтобы использовать те же настраивающие веса по горизонту прогноза, соедините du.wt с сигналом вектора-строки с элементами Nmv, где Nmv является количеством переменных, которыми управляют. Каждый элемент задает неотрицательный настраивающий вес для плавающего курса, которым управляют. Для получения дополнительной информации об определении настраивающихся весов смотрите Веса Мелодии.
Чтобы варьироваться настраивающиеся веса по горизонту прогноза со времени k ко времени k +p-1, соедините du.wt с матричным сигналом со столбцами Nmv и до строк p. Здесь, k является текущим временем, и p является горизонтом прогноза. Каждая строка содержит настраивающиеся веса для одного шага горизонта прогноза. Если вы задаете меньше, чем строки p, настраивающиеся веса в итоговой строке запрашивают остаток от горизонта прогноза. Для получения дополнительной информации о различных весах по горизонту прогноза смотрите Изменяющиеся во времени Веса и Ограничения.
Чтобы включить этот порт, выберите параметр MVRate weights.
ecr.wt
— Ослабьте переменный настраивающий весЧтобы задать время выполнения ослабляют переменный настраивающий вес, включают этот входной порт и соединяют скалярный сигнал. Если этот порт отключен, блок использует настраивающийся вес, заданный в Weights.ECR
свойство его объекта контроллера.
Слабый переменный настраивающий вес не оказывает влияния, если ваш объект контроллера не задает мягкие ограничения, чьи связанные значения ECR являются ненулевыми. Если существуют мягкие ограничения, увеличивание значения ecr.wt делает эти ограничения относительно тяжелее. Контроллер затем помещает более высокий приоритет в минимизацию величины предсказанного ограничительного нарушения худшего случая.
Чтобы включить этот порт, выберите параметр ECR weight.
p
— Горизонт прогнозаГоризонт прогноза, заданный как положительный целочисленный сигнал. Значение сигналов горизонта прогноза должно быть меньше чем или равно параметру Maximum prediction horizon.
Во время выполнения, значения p
заменяет горизонт прогноза по умолчанию, заданный в объекте контроллера. Для получения дополнительной информации смотрите, Настраивают Горизонты во Время выполнения.
Чтобы включить этот порт, выберите параметр Adjust prediction horizon and control horizon at run time.
m
— Управляйте горизонтомУправляйте горизонтом, заданным как одно из следующего:
Положительный целочисленный сигнал, меньше чем или равный горизонту прогноза.
Векторный сигнал положительного целочисленного определения, блокирующего длины интервала. Для получения дополнительной информации смотрите Переменное Блокирование, которым Управляют.
Во время выполнения, значения m
заменяет горизонт управления по умолчанию, заданный в объекте контроллера. Для получения дополнительной информации смотрите, Настраивают Горизонты во Время выполнения.
Чтобы включить этот порт, выберите параметр Adjust prediction horizon and control horizon at run time.
mv
— Оптимальное действие управления переменными, которым управляют,Оптимальное действие управления переменными, которым управляют, выход как сигнал вектор-столбца длины Nmv, где Nmv является количеством переменных, которыми управляют.
Если решатель сходится к решению для локального оптимума (qp.status положителен), то mv содержит оптимальное решение.
Если решатель перестал работать (qp.status отрицателен), то mv остается в своем новом успешном решении; то есть, контроллер вывел замораживания.
Если решатель достигает максимального количества итераций, не находя оптимальное решение (qp.status является нулем), и Optimization.UseSuboptimalSolution
свойство контроллера:
true
, затем mv содержит субоптимальное решение
false
, затем mv затем mv остается в его новом успешном решении
cost
— Целевая функция стоитсяСтоимость целевой функции, выход как неотрицательный скалярный сигнал. Стоимость определяет количество степени, до которой контроллер достиг ее целей. Величина затрат вычисляется с помощью масштабированной функции стоимости MPC, в которой каждый термин является без смещений и безразмерным.
Величина затрат только значима, когда qp.status выход является неотрицательным.
Чтобы включить этот порт, выберите параметр Optimal cost.
qp.status
— Состояние OptimizationСостояние Optimization, выход как целочисленный сигнал.
Если контроллер решает задачу 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.
est.state
— Предполагаемые состояния контроллераПредполагаемый диспетчер утверждает в каждый момент управления, выход как векторный сигнал. Предполагаемые состояния включают объект, воздействие и шумовые состояния модели.
Чтобы включить этот порт, выберите параметр Estimated controller states.
mv.seq
— Оптимальная переменная последовательность, которой управляют,Оптимальная переменная последовательность, которой управляют, возвращенная как матричный сигнал с p +1 строка и столбцы Nmv, где p является горизонтом прогноза и Nmv, является количеством переменных, которыми управляют.
Первые строки p mv.seq содержат расчетные оптимальные значения переменных, которыми управляют, с текущего времени k ко времени k +p-1. Первая строка mv.seq содержит текущие значения переменных, которыми управляют (выход mv). Поскольку контроллер не вычисляет перемещения оптимального управления во время k +p, итоговые две строки mv.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal control sequence.
x.seq
— Оптимальная модель прогноза утверждает последовательностьОптимальная модель прогноза утверждает последовательность, возвращенный как матричный сигнал с p +1 столбец строк и Nx, где p является горизонтом прогноза и Nx, является количеством состояний.
Первые строки p x.seq содержат расчетные оптимальные значения состояния с текущего времени k ко времени k +p-1. Первая строка x.seq содержит текущие предполагаемые значения состояния. Поскольку контроллер не вычисляет оптимальные состояния во время k +p, итоговые две строки x.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal state sequence.
y.seq
— Оптимальная последовательность выходной переменнойОптимальная последовательность выходной переменной, возвращенная как матричный сигнал с p +1 строка и столбцы Ny, где p является горизонтом прогноза и Ny, является количеством выходных переменных.
Первые строки p y.seq содержат расчетные оптимальные выходные значения с текущего времени k ко времени k +p-1. Первая строка y.seq вычисляется на основе текущих предполагаемых состояний и текущих измеренных воздействий (первая строка входа md). Поскольку контроллер не вычисляет оптимальные выходные значения во время k +p, итоговые две строки y.seq идентичны.
Чтобы включить этот порт, выберите параметр Optimal output sequence.
Adaptive MPC Controller
— Объект Controllermpc
имя объектаЗадайте mpc
объект, который задает контроллер MPC путем ввода имени mpc
объект спроектирован в номинальной рабочей точке блока. Во время выполнения контроллер заменяет исходную модель прогноза (A
B
C
, и D
) и номинальная стоимость (U
Y
X
, и DX
) с данными, заданными во входном порту model в каждый момент управления.
По умолчанию блок принимает, что все другие свойства объектов контроллера (например, настраивающий веса, ограничения) являются постоянными. Можно заменить это предположение с помощью опций в разделе Online Features.
Следующие ограничения применяются к mpc
объект контроллера:
Это должно существовать в рабочей области MATLAB®.
Его модель прогноза должна быть дискретным временем LTI, объектом пространства состояний без задержек. Используйте absorbDelay
команда, чтобы преобразовать задержки с дискретными состояниями. Размерности A
B
C
, и D
матрицы в прогнозе определяют размерности, требуемые model
сигнал импорта.
Параметры блоков:
mpcobj |
Ввод: строка, вектор символов |
Значение по умолчанию:
"" |
Initial Controller State
— Начальное состояниеmpcstate
имя объектаЗадайте начальное состояние контроллера. Если вы оставляете этот незаполненный параметр, блок использует номинальную стоимость, заданную в Model.Nominal
свойство mpc
объект. Чтобы заменить значение по умолчанию, создайте mpcstate
возразите в своей рабочей области и введите ее имя в поле.
Использование этот параметр заставляет состояния контроллера отразить истинную среду объекта в начале вашей симуляции в меру вашего знания. Это начальные состояния может отличаться от номинальных состояний, заданных в mpc
объект.
Если пользовательская оценка состояния включена, блок игнорирует параметр Initial Controller State.
Параметры блоков: x0 |
Ввод: строка, вектор символов |
Значение по умолчанию: "" |
Measured disturbances
— Добавьте измеренный входной порт воздействияЕсли ваш контроллер измерил воздействия, необходимо выбрать этот параметр, чтобы добавить выходной порт md в блок.
Параметры блоков: md_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию:
"on" |
External manipulated variable
— Добавьте внешний порт ввода переменной, которым управляют,Выберите этот параметр, чтобы добавить входной порт ext.mv в блок.
Параметры блоков: mv_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Targets for manipulated variables
— Добавьте переменный целевой входной порт, которым управляют,Выберите этот параметр, чтобы добавить входной порт mv.target в блок.
Параметры блоков: uref_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Optimal cost
— Нечетный оптимальный выходной порт стоимостиВыберите этот параметр, чтобы добавить выходной порт cost в блок.
Параметры блоков: return_cost |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Optimization status
— Добавьте выходной порт состояния оптимизацииВыберите этот параметр, чтобы добавить выходной порт qp.status в блок.
Параметры блоков: return_qpstatus |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Estimated controller states
— Добавьте оцененный выходной порт состоянийВыберите этот параметр, чтобы добавить выходной порт est.state в блок.
Параметры блоков: return_state |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Optimal control sequence
— Добавьте выходной порт последовательности оптимального управленияВыберите этот параметр, чтобы добавить выходной порт mv.seq в блок.
Параметры блоков: return_mvseq |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Optimal state sequence
— Добавьте оптимальный выходной порт последовательности состоянияВыберите этот параметр, чтобы добавить выходной порт x.seq в блок.
Параметры блоков: return_xseq |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Optimal output sequence
— Добавьте оптимальный выходной выходной порт последовательностиВыберите этот параметр, чтобы добавить выходной порт y.seq в блок.
Параметры блоков:
return_ovseq |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Use custom state estimation instead of using the built-in Kalman filter
— Используйте пользовательский оценочный входной порт состоянияВыберите этот параметр, чтобы удалить входной порт mo и добавить входной порт x[k|k].
Параметры блоков: state_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Linear Time-Varying (LTV) plants
— Используйте пользовательский оценочный входной порт состоянияЧтобы управлять вашим контроллером в изменяющемся во времени режиме MPC, выберите эту опцию. При работе в этом режиме соедините 3-мерный сигнал шины с входным портом model
Для примера смотрите Изменяющееся во времени MPC управление Изменяющимся во времени Объектом.
Параметры блоков:
isltv_plant |
Ввод: строка, вектор символов |
Значения:
"off" , "on" |
Значение по умолчанию:
"off" |
Lower OV limits
— Добавьте минимальный ограничительный входной порт OVВыберите этот параметр, чтобы добавить входной порт ymin в блок.
Параметры блоков: ymin_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Upper OV limits
— Добавьте максимальный ограничительный входной порт OVВыберите этот параметр, чтобы добавить входной порт ymax в блок.
Параметры блоков: ymax_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Lower MV limits
— Добавьте минимальный ограничительный входной порт мВВыберите этот параметр, чтобы добавить входной порт umin в блок.
Параметры блоков: umin_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Upper MV limits
— Добавьте максимальный ограничительный входной порт мВВыберите этот параметр, чтобы добавить входной порт umax в блок.
Параметры блоков: umax_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Custom constraints
— Добавьте пользовательские ограничительные входные портыВыберите этот параметр, чтобы добавить E, F, G и входные порты S с блоком.
Параметры блоков: cc_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
OV weights
— Добавьте OV настраивающийся входной порт весовВыберите этот параметр, чтобы добавить входной порт y.wt в блок.
Параметры блоков: ywt_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
MV weights
— Добавьте мВ, настраивающий входной порт весовВыберите этот параметр, чтобы добавить входной порт u.wt в блок.
Параметры блоков: uwt_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
MVRate weights
— Добавьте уровень мВ, настраивающий входной порт весовВыберите этот параметр, чтобы добавить входной порт du.wt в блок.
Параметры блоков: duwt_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Slack variable weight
— Добавьте ECR настраивающийся входной порт весаВыберите этот параметр, чтобы добавить входной порт ecr.wt в блок.
Параметры блоков: rhoeps_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Adjust prediction horizon and control horizon at run time
— Добавьте входные порты горизонтаВыберите этот параметр, чтобы добавить p и входной порт m с блоком.
Параметры блоков: pm_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Maximum prediction horizon
— Добавьте входные порты горизонта
(значение по умолчанию) | положительное целое числоВыберите этот параметр, чтобы добавить p и входной порт m с блоком.
Чтобы включить этот параметр, выберите параметр Adjust prediction horizon and control horizon at run time.
Параметры блоков: MaximumP |
Ввод: строка, вектор символов |
Значение по умолчанию: "10" |
Inherit sample time
— Наследуйте шаг расчета блока от объекта контроллераВыберите этот параметр, чтобы наследовать шаг расчета родительской подсистемы как шаг расчета блока. Выполнение так позволяет вам условно выполнять этот блок в блоки Triggered Subsystem или Function-Call Subsystem. Для примера смотрите Используя диспетчера MPC Блока В Вызове функции и Инициированных Подсистемах.
Необходимо выполнить Function-Call Subsystem или блоки Triggered Subsystem на уровне частоты дискретизации контроллера. В противном случае вы видите неожиданные результаты.
Чтобы просмотреть шаг расчета блока, в Редакторе Simulink, выбирают Display > Sample Time. Выберите Colors, Annotations или All. Для получения дополнительной информации, информация о Шаге расчета вида на море (Simulink).
Параметры блоков: SampleTimeInherited |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Use external signal to enable or disable optimization
— Добавьте входной порт переключателяВыберите этот параметр, чтобы добавить входной порт switch в блок.
Параметры блоков: switch_inport |
Ввод: строка, вектор символов |
Значения: "off" , "on" |
Значение по умолчанию: "off" |
Поведение изменяется в R2018b
Размерности сигнала mv.seq
выходной порт блока Adaptive MPC Controller изменился. Ранее этим сигналом был p-by-Nmv матрица, где p является горизонтом прогноза, и Nmv является количеством переменных, которыми управляют. Теперь mv.seq
(p +1)-by-Nmv матрица, где строка p +1 строка копий p.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.