Вычислите оптимальное управление с обновлением модели предсказания
вычисляет оптимальные переменные перемещения, которыми управляют, в текущее время. Этот результат зависит от свойств, содержавшихся в контроллере MPC, состояниях контроллера, обновленной модели предсказания и номинальной стоимости. Результат также зависит от измеренных выходных переменных, выходные ссылки (заданные значения) и измеренные входные параметры воздействия. mv
= mpcmoveAdaptive(MPCobj
,x
,Plant
,Nominal
,ym
,r
,v
)mpcmoveAdaptive
обновляет состояние контроллера, x
, при использовании оценки состояния по умолчанию. Вызвать mpcmoveAdaptive
неоднократно симулировать прогнозирующее управление модели с обратной связью.
[
возвращает дополнительные детали о решении в структуре. Чтобы просмотреть предсказанную оптимальную траекторию для целого горизонта предсказания, постройте последовательности, обеспеченные в mv
,info
]
= mpcmoveAdaptive(MPCobj
,x
,Plant
,Nominal
,ym
,r
,v
)info
. Чтобы определить ли вычисление оптимального управления, завершенное обычно, проверяйте info.Iterations
и info.QPCode
.
[___] = mpcmoveAdaptive(___,
изменяет настройки выбранного контроллера с помощью опций, с которыми вы задаете options
)mpcmoveopt
. Эти изменения применяются в течение момента текущего времени только, включая использование симуляции командной строки mpcmoveAdaptive
подражать блоку Adaptive MPC Controller в Simulink® в вычислительном отношении эффективным способом.
MPCobj
— Контроллер MPCКонтроллер MPC в виде неявного контроллера MPC объект. Чтобы создать контроллер MPC, используйте mpc
команда.
x
— Текущий контроллер MPC состояниеmpcstate
объектТекущий диспетчер MPC утверждает в виде mpcstate
объект.
Прежде чем вы начнете симуляцию с mpcmoveAdaptive
, инициализируйте состояние контроллера использование x = mpcstate(MPCobj)
. Затем измените свойства по умолчанию x
как соответствующий.
Если вы используете оценку состояния по умолчанию, mpcmoveAdaptive
ожидает x
представлять x[n|n-1]
. mpcmoveAdaptive
команда обновляет значения состояния в предыдущем контрольном интервале с той информацией. Поэтому вы не должны программно обновляться x
вообще. Средство оценки состояния по умолчанию использует линейный изменяющийся во времени Фильтр Калмана.
Если вы используете пользовательскую оценку состояния, mpcmoveAdaptive
ожидает x
представлять x[n|n]
. Поэтому до каждого mpcmoveAdaptive
команда, необходимо установить x.Plant
, x.Disturbance
, и x.Noise
к наилучшим оценкам этих состояний (использующий последние измерения) в текущем контрольном интервале.
Для получения дополнительной информации об оценке состояния для адаптивного MPC и изменяющегося во времени MPC, смотрите Оценку состояния.
Plant
— Обновленная модель предсказанияОбновленная модель предсказания в виде одного из следующего:
Пространство состояний дискретного времени без задержек (ss
) модель. Этот объект является обновлением MPCobj.Model.Plant
и это должно:
Имейте тот же шаг расчета как контроллер; то есть, Plant.Ts
должен совпадать с MPCobj.Ts
Имейте те же настройки сигнала ввода и вывода, такие как тип, порядок и размерности
Задайте те же состояния как модель предсказания контроллера, MPCobj.Model.Plant
Массив до p +1 модель в пространстве состояний дискретного времени без задержек, где p является горизонтом предсказания MPCobj
. Используйте эту опцию, чтобы варьироваться модель предсказания контроллера по горизонту предсказания.
Если Plant
содержит меньше, чем p +1 модель, последние повторения модели для остальной части горизонта предсказания.
Совет
Если вы используете объект кроме модели в пространстве состояний дискретного времени без задержек, чтобы задать модель предсказания в MPCobj
, можно преобразовать его в такую модель, чтобы определить структуру модели предсказания.
Если исходный объект | То |
---|---|
Не модель в пространстве состояний | Преобразуйте его в использование модели в пространстве состояний ss . |
Модель непрерывного времени | Преобразуйте его в модель дискретного времени с тем же шагом расчета как контроллер, MPCobj.Ts , использование c2d со значением по умолчанию передают Эйлеровую дискретизацию. |
Модель с задержками | Преобразуйте задержки с использованием состояний absorbDelay . |
Nominal
— Обновленные номинальные условия[]
Обновленные номинальные условия в виде одного из следующего:
Структура со следующими полями:
Поле | Описание | Значение по умолчанию |
---|---|---|
| Состояние объекта в рабочей точке |
|
| Вход Plant в рабочей точке, включая переменные, которыми управляют, и измеренные и неизмеренные воздействия |
|
| Plant выход в рабочей точке |
|
| Для моделей непрерывного времени, |
|
Массив до p +1 номинальная структура условия, где p является горизонтом предсказания MPCobj
. Используйте эту опцию, чтобы варьироваться условия номинала контроллера по горизонту предсказания.
Если Nominal
содержит меньше, чем p +1 структура, последние повторения структуры для остальной части горизонта предсказания.
Если Nominal
isempty
, или если поле отсутствует или пустое, mpcmoveAdaptive
использует соответствующий MPCobj.Model.Nominal
значение.
ym
— Текущие измеренные выходные параметрыТекущие измеренные выходные параметры в виде вектора-строки из длины вектор Nym, где Nym является количеством измеренных выходных параметров.
Если вы используете пользовательскую оценку состояния, ym
проигнорирован. Если вы устанавливаете ym
= []
то mpcmoveAdaptive
использует соответствующую номинальную стоимость.
r
— Объект выходные значения ссылки[]
Выходные значения ссылки объекта в виде p-by-Ny массив, где p является горизонтом предсказания MPCobj
и Ny является количеством выходных параметров. Строка r(i,:)
задает ссылочные значения на шаге i горизонта предсказания.
r
должен содержать по крайней мере одну строку. Если r
содержит меньше, чем строки p, mpcmoveAdaptive
копирует последнюю строку, чтобы заполнить p-by-Ny массив. Если вы предоставляете точно одну строку, поэтому, постоянная ссылка применяется к целому горизонту предсказания.
Если вы устанавливаете r
= []
то mpcmoveAdaptive
использует соответствующую номинальную стоимость.
Реализовывать ссылочный предварительный просмотр, который может улучшить отслеживание, когда ссылка варьируется по предсказуемому способу, r
должен содержать ожидаемые изменения, идеально для шагов p.
v
— Текущие и ожидаемые измеренные воздействия[]
Текущие и ожидаемые измеренные воздействия в виде p-by-Nmd массив, где p является горизонтом предсказания MPCobj
и Nmd является количеством измеренных воздействий. Строка v(i,:)
задает ожидаемые измеренные значения воздействия на шаге i горизонта предсказания.
Моделирование измеренных воздействий обеспечивает действие управления прямого распространения. Если ваша модель объекта управления не включает измеренные воздействия, используйте v
= []
.
v
должен содержать по крайней мере одну строку. Если v
содержит меньше, чем строки p, mpcmoveAdaptive
копирует последнюю строку, чтобы заполнить p-by-Nmd массив. Если вы предоставляете точно одну строку, поэтому, постоянное измеренное воздействие запрашивает целый горизонт предсказания.
Если вы устанавливаете v
= []
то mpcmoveAdaptive
использует соответствующую номинальную стоимость.
Реализовывать предварительный просмотр воздействия, который может улучшить отслеживание, когда воздействие варьируется по предсказуемому способу, v
должен содержать ожидаемые изменения, идеально для шагов p.
options
— Замените значения для свойств выбранного контроллераmpcmoveopt
объектЗамените значения для выбранных свойств MPCobj
В виде опции возражают, что вы создаете с mpcmoveopt
. Эти опции применяются к току mpcmoveAdaptive
момент времени только. Используя options
приводит к тому же результату как переопределяющий или изменяющий MPCobj
перед каждым вызовом mpcmoveAdaptive
, но включает значительно меньше служебное. Используя options
эквивалентно использованию блока Simulink Adaptive MPC Controller в сочетании с дополнительными входными сигналами, которые изменяют настройки контроллера, такие как мВ и ограничения OV.
mv
— Оптимальные переменные перемещения, которыми управляют,Оптимальные переменные перемещения, которыми управляют, возвращенные как вектор-столбец длины Nmv, где Nmv является количеством переменных, которыми управляют.
Если контроллер обнаруживает неосуществимую задачу оптимизации или сталкивается с числовыми трудностями при решении плохо обусловленной задачи оптимизации, mv
остается в его новом успешном решении, xc.LastMove
.
В противном случае, если задача оптимизации выполнима, и решатель достигает заданного максимального количества итераций, не находя оптимальное решение, mv
:
Остается в его новом успешном решении если Optimizer.UseSuboptimalSolution
свойством контроллера является false
.
Субоптимальное решение, достигнутое после итоговой итерации если Optimizer.UseSuboptimalSolution
свойством контроллера является true
. Для получения дополнительной информации смотрите Субоптимальное Решение QP.
info
— Детали решенияДетали решения, возвращенные как структура со следующими полями.
Uopt
— Оптимальная переменная последовательность, которой управляют,Предсказанные оптимальные переменные корректировки, которыми управляют (перемещения), возвращенные как (p +1)-by-Nmv массив, где p является горизонтом предсказания и Nmv, являются количеством переменных, которыми управляют.
Uopt(i,:)
содержит расчетные оптимальные значения во время k+i-1
, для i = 1,...,p
, где k
текущее время. Первая строка Info.Uopt
содержит те же значения переменных, которыми управляют, как выходной аргумент mv
. Поскольку контроллер не вычисляет перемещения оптимального управления во время k+p
, Uopt(p+1,:)
равно Uopt(p,:)
.
Yopt
— Оптимальная последовательность выходной переменнойОптимальная последовательность выходной переменной, возвращенная как (p +1)-by-Ny массив, где p является горизонтом предсказания и Ny, является количеством выходных параметров.
Первая строка Info.Yopt
содержит расчетные выходные параметры во время k
на основе предполагаемых состояний и измеренных воздействий; это не измеренный выход во время k
. Yopt(i,:)
содержит предсказанные выходные значения во время k+i-1
, для i = 1,...,p+1
.
Yopt(i,:)
содержит расчетные выходные значения во время k+i-1
, для i = 2,...,p+1
, где k
текущее время. Yopt(1,:)
вычисляется на основе предполагаемых состояний и измеренных воздействий.
Xopt
— Оптимальная модель предсказания утверждает последовательностьОптимальная модель предсказания утверждает последовательность, возвращенную как (p +1)-by-Nx массив, где p является горизонтом предсказания, и Nx является количеством состояний на объекте, и неизмеренные возмущения (состояния из шумовых моделей не включены).
Xopt(i,:)
содержит расчетные значения состояния во время k+i-1
, для i = 2,...,p+1
, где k
текущее время. Xopt(1,:)
эквивалентен текущие состояния утверждают значения.
Topt
— Временные интервалыВременные интервалы, возвращенные как вектор-столбец длины p +1. Topt(1)
= 0, представляя текущее время. Последующие временные шаги Topt(i)
даны Ts*(i-1)
, где Ts = MPCobj.Ts
шаг расчета контроллера.
Используйте Topt
при графическом выводе Uopt
, Xopt
, или Yopt
последовательности.
Slack
— Слабая переменнаяОслабьте переменную, ε, используемый в ограничительном смягчении, возвращенном как 0
или значение положительной скалярной величины.
ε = 0 — Всем ограничениям удовлетворили для целого горизонта предсказания.
ε> 0 — По крайней мере одно мягкое ограничение нарушено. Когда больше чем одно ограничение нарушено, ε представляет худший случай мягкое нарушение ограничений (масштабируемый вашими значениями ECR для каждого ограничения).
Смотрите Задачу оптимизации для получения дополнительной информации.
Iterations
— Количество итераций решателя0
| -1
| -2
Количество итераций решателя, возвращенных как одно из следующего:
Положительное целое число — Количество итераций должно было решить задачу оптимизации, которая определяет оптимальные последовательности.
0 — Задача оптимизации не могла быть решена в заданном максимальном количестве итераций.
–1 — Задача оптимизации была неосуществима. Задача оптимизации неосуществима, если никакое решение не может удовлетворить всем трудным ограничениям.
–2 — Числовая ошибка произошла при решении задачи оптимизации.
QPCode
— Состояние решения для оптимизации'feasible'
| 'infeasible'
| 'unrealiable'
Состояние решения для оптимизации, возвращенное как одно из следующего:
'feasible'
— Оптимальное решение было получено (Iterations
> 0)
'infeasible'
— Решатель обнаружил проблему без возможного решения (Iterations
= –1), или числовая ошибка произошла (Iterations
= –2)
'unreliable'
— Решателю не удалось сходиться (Iterations
= 0). В этом случае, если MPCobj.Optimizer.UseSuboptimalSolution
false
U
замораживания в новом успешном решении. В противном случае это использует субоптимальное решение, найденное во время последней итерации решателя.
Cost
— Целевая функция стоитсяСтоимость целевой функции, возвращенная как неотрицательное скалярное значение. Стоимость определяет количество степени, до которой контроллер достиг ее целей. Для получения дополнительной информации смотрите Задачу оптимизации.
Величина затрат только значима когда QPCode = 'feasible'
, или когда QPCode = 'feasible'
и MPCobj.Optimizer.UseSuboptimalSolution
true
.
Если модель предсказания независима от времени, использовать mpcmove
.
Используйте блок Simulink Adaptive MPC Controller для симуляций и генерации кода.
getEstimator
| mpc
| mpcmove
| mpcmoveopt
| mpcstate
| review
| setEstimator
| sim
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.