exponenta event banner

mpcmoveAdaptive

Вычисление оптимального управления с обновлением модели прогнозирования

Описание

mv = mpcmoveAdaptive(MPCobj,x,Plant,Nominal,ym,r,v) вычисляет оптимальные перемещения управляемой переменной в текущее время. Этот результат зависит от свойств, содержащихся в контроллере MPC, состояний контроллера, обновленной модели прогнозирования и номинальных значений. Результат также зависит от измеренных выходных переменных, исходных значений на выходе (уставок) и входных значений измеренных возмущений. mpcmoveAdaptive обновляет состояние контроллера, x, при использовании оценки состояния по умолчанию. Звонить mpcmoveAdaptive многократно для моделирования прогнозирующего управления моделью с замкнутым контуром.

[mv,info] = mpcmoveAdaptive(MPCobj,x,Plant,Nominal,ym,r,v) возвращает дополнительные сведения о решении в структуре. Чтобы просмотреть предсказанную оптимальную траекторию для всего горизонта прогнозирования, постройте график последовательностей, представленных в info. Чтобы определить, завершен ли оптимальный расчет управления в нормальном режиме, проверьте info.Iterations и info.QPCode.

[___] = mpcmoveAdaptive(___,options) изменяет выбранные настройки контроллера, используя параметры, указанные с помощью mpcmoveopt. Эти изменения применяются только к текущему моменту времени, позволяя моделировать командную строку с помощью mpcmoveAdaptive имитировать блок адаптивного контроллера MPC в Simulink ® вычислительно эффективным способом.

Входные аргументы

свернуть все

Контроллер MPC, указанный как неявный объект контроллера MPC. Для создания контроллера MPC используйте mpc команда.

Текущее состояние контроллера 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 см. в разделе Оценка состояния.

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

  • Свободное от задержки дискретное временное состояние-пространство (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.

Обновленные номинальные условия, указанные как одно из следующих:

  • Структура со следующими полями:

    Область

    Описание

    Дефолт

    X

    Состояние установки в рабочей точке

    []

    U

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

    []

    Y

    Выход установки в рабочей точке

    []

    DX

    Для моделей непрерывного времени DX - производная состояния в рабочей точке: DX= f (X,U). Для дискретно-временных моделей DX= x (k + 1) -x (k) = f (X,U)-X.

    []

  • Массив до p + 1 номинальных структур условий, где p - горизонт прогнозирования MPCobj. Эта опция используется для изменения номинальных условий контроллера в пределах горизонта прогнозирования.

    Если Nominal содержит менее p + 1 структур, последняя структура повторяется для остальной части горизонта прогнозирования.

Если Nominal пуст, []или если поле отсутствует или пустое, mpcmoveAdaptive использует соответствующий MPCobj.Model.Nominal значение.

Токовые измеряемые выходы, определяемые как вектор строки вектора длины Nym, где Nym - количество измеряемых выходов.

При использовании пользовательской оценки состояния ym игнорируется. Если установить ym = [], то mpcmoveAdaptive использует соответствующее номинальное значение.

Исходные значения выхода установки, заданные как массив p-by-Ny, где p - горизонт прогнозирования MPCobj и Ny - количество выходов. Ряд r(i,:) определяет опорные значения на шаге i горизонта прогнозирования.

r должен содержать хотя бы одну строку. Если r содержит менее p строк, mpcmoveAdaptive дублирует последнюю строку для заполнения массива p-by-Ny. Таким образом, при вводе только одной строки для всего горизонта прогнозирования применяется постоянная ссылка.

Если установить r = [], то mpcmoveAdaptive использует соответствующее номинальное значение.

Для реализации предварительного просмотра ссылок, который может улучшить отслеживание, когда ссылка изменяется предсказуемым образом, r должны содержать ожидаемые изменения, в идеале для p шагов.

Текущие и ожидаемые измеренные возмущения, определенные как массив p-by-Nmd, где p - горизонт прогнозирования MPCobj Nmd - количество измеренных возмущений. Ряд v(i,:) определяет ожидаемые измеренные значения возмущений на шаге i горизонта прогнозирования.

Моделирование измеряемых возмущений обеспечивает обратное управляющее действие. Если модель завода не включает измеренные возмущения, используйте v = [].

v должен содержать хотя бы одну строку. Если v содержит менее p строк, mpcmoveAdaptive дублирует последнюю строку для заполнения массива p-by-Nmd. Таким образом, при вводе только одной строки для всего горизонта прогнозирования применяется постоянное измеренное возмущение.

Если установить v = [], то mpcmoveAdaptive использует соответствующее номинальное значение.

Для выполнения предварительного просмотра возмущений, который может улучшить отслеживание, когда возмущение изменяется предсказуемым образом, v должны содержать ожидаемые изменения, в идеале для p шагов.

Переопределить значения для выбранных свойств MPCobj, указанный как объект опций, создаваемый с помощью mpcmoveopt. Эти параметры применяются к текущему mpcmoveAdaptive время только мгновенное. Используя options дает тот же результат, что и при переопределении или изменении MPCobj перед каждым вызовом mpcmoveAdaptive, но включает значительно меньше накладных расходов. Используя options эквивалентно использованию блока Adaptive MPC Controller Simulink в сочетании с дополнительными входными сигналами, изменяющими настройки контроллера, такими как ограничения MV и OV.

Выходные аргументы

свернуть все

Оптимальная управляемая переменная перемещается, возвращаемая в виде вектора столбца длиной Nmv, где Nmv - количество обрабатываемых переменных.

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

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

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

  • Достигнуто ли неоптимальное решение после окончательной итерации, если Optimizer.UseSuboptimalSolution свойство контроллера: true. Дополнительные сведения см. в разделе Неоптимальное решение QP.

Подробные данные решения, возвращенные в виде структуры со следующими полями.

Предсказанные оптимальные манипулируемые корректировки (перемещения) переменных, возвращаемые как (p + 1) -byNmv массив, где p - горизонт прогнозирования, а Nmv - количество манипулируемых переменных.

Uopt(i,:) содержит вычисленные оптимальные значения в момент времени k+i-1, для i = 1,...,p, где k - текущее время. Первая строка Info.Uopt содержит те же значения манипулируемой переменной, что и выходной аргумент mv. Поскольку контроллер не вычисляет оптимальные перемещения управления в момент времени k+p, Uopt(p+1,:) равно Uopt(p,:).

Оптимальная последовательность выходных переменных, возвращаемая как массив (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,:) вычисляется на основе оцененных состояний и измеренных возмущений.

Оптимальная последовательность состояний модели прогнозирования, возвращаемая в виде массива (p + 1) - by-Nx, где p - горизонт прогнозирования, а Nx - количество состояний в установке и неизмеренных моделях возмущений (состояния из моделей шума не включаются).

Xopt(i,:) содержит вычисленные значения состояния в момент времени k+i-1, для i = 2,...,p+1, где k - текущее время. Xopt(1,:) совпадает со значениями состояния текущего состояния.

Временные интервалы, возвращаемые в виде вектора столбца длиной p + 1.Topt(1) = 0, представляющее текущее время. Последующие шаги времени Topt(i) даны Ts*(i-1), где Ts = MPCobj.Ts - время выборки контроллера.

Использовать Topt при печати Uopt, Xopt, или Yopt последовательности.

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

  • start= 0 - Все ограничения были удовлетворены для всего горизонта прогнозирования.

  • start> 0 - Нарушено по крайней мере одно мягкое ограничение. Если нарушено более одного ограничения, λ представляет наихудшее нарушение мягкого ограничения (масштабируется значениями ECR для каждого ограничения).

Дополнительные сведения см. в разделе Проблема оптимизации.

Количество итераций решателя, возвращаемых как одна из следующих:

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

  • 0 - Не удалось решить задачу оптимизации в указанном максимальном числе итераций.

  • –1 - Проблема оптимизации была неосуществима. Задача оптимизации неосуществима, если ни одно решение не может удовлетворить все жесткие ограничения.

  • –2 - При решении задачи оптимизации произошла числовая ошибка.

Состояние решения по оптимизации, возвращенное как одно из следующих:

  • 'feasible' - Получен оптимальный раствор (Iterations > 0)

  • 'infeasible' - Решатель обнаружил проблему без выполнимого решения (Iterations = -1) или произошла числовая ошибка (Iterations = –2)

  • 'unreliable' - Решателю не удалось сойтись (Iterations = 0). В этом случае, если MPCobj.Optimizer.UseSuboptimalSolution является false, u замерзает при самом последнем успешном решении. В противном случае используется неоптимальное решение, найденное во время последней итерации решателя.

Стоимость целевой функции, возвращаемая как неотрицательное скалярное значение. Стоимость количественно определяет степень достижения контролером своих целей. Дополнительные сведения см. в разделе Проблема оптимизации.

Значение стоимости имеет значение только тогда, когда QPCode = 'feasible', или когда QPCode = 'feasible' и MPCobj.Optimizer.UseSuboptimalSolution является true.

Совет

  • Если модель прогнозирования инвариантна по времени, используйте mpcmove.

  • Используйте блок Simulink Adaptive MPC Controller для моделирования и генерации кода.

Представлен в R2014b