Вычисление оптимального управления с обновлением модели прогнозирования
вычисляет оптимальные перемещения управляемой переменной в текущее время. Этот результат зависит от свойств, содержащихся в контроллере 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 имитировать блок адаптивного контроллера MPC в Simulink ® вычислительно эффективным способом.
MPCobj - Контроллер ПДККонтроллер MPC, указанный как неявный объект контроллера MPC. Для создания контроллера MPC используйте mpc команда.
x - Текущее состояние контроллера MPCmpcstate объектТекущее состояние контроллера 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 с дискретизацией Euler по умолчанию. |
| Модель с задержками | Преобразование задержек в состояния с помощью absorbDelay. |
Nominal - Обновленные номинальные условия[]Обновленные номинальные условия, указанные как одно из следующих:
Структура со следующими полями:
Область | Описание | Дефолт |
|---|---|---|
| Состояние установки в рабочей точке |
|
| Вход установки в рабочей точке, включая управляемые переменные и измеренные и неизмеренные возмущения |
|
| Выход установки в рабочей точке |
|
| Для моделей непрерывного времени |
|
Массив до p + 1 номинальных структур условий, где p - горизонт прогнозирования MPCobj. Эта опция используется для изменения номинальных условий контроллера в пределах горизонта прогнозирования.
Если Nominal содержит менее p + 1 структур, последняя структура повторяется для остальной части горизонта прогнозирования.
Если Nominal пуст, []или если поле отсутствует или пустое, 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 эквивалентно использованию блока Adaptive MPC Controller Simulink в сочетании с дополнительными входными сигналами, изменяющими настройки контроллера, такими как ограничения MV и OV.
mv - Оптимальные манипулируемые перемещения переменныхОптимальная управляемая переменная перемещается, возвращаемая в виде вектора столбца длиной Nmv, где Nmv - количество обрабатываемых переменных.
Если контроллер обнаруживает невыполнимую задачу оптимизации или сталкивается с численными трудностями в решении плохо обусловленной задачи оптимизации, mv остается на своем последнем успешном решении, xc.LastMove.
В противном случае, если задача оптимизации выполнима и решатель достигает указанного максимального числа итераций без нахождения оптимального решения, mv:
Остается на своем последнем успешном решении, если Optimizer.UseSuboptimalSolution свойство контроллера: false.
Достигнуто ли неоптимальное решение после окончательной итерации, если Optimizer.UseSuboptimalSolution свойство контроллера: true. Дополнительные сведения см. в разделе Неоптимальное решение QP.
info - Сведения о решенииПодробные данные решения, возвращенные в виде структуры со следующими полями.
Uopt - Оптимальная управляемая последовательность переменныхПредсказанные оптимальные манипулируемые корректировки (перемещения) переменных, возвращаемые как (p + 1) -byNmv массив, где 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 или положительное скалярное значение.
start= 0 - Все ограничения были удовлетворены для всего горизонта прогнозирования.
start> 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.