exponenta event banner

explicitMPC

Явный прогнозирующий контроллер модели

Описание

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

Чтобы реализовать явный MPC, сначала разработайте традиционный (неявный) контроллер прогнозирования модели для вашего приложения, а затем используйте этот контроллер, чтобы создать явный контроллер MPC для использования в управлении в реальном времени. Дополнительные сведения см. в разделе Рабочий процесс конструирования явного MPC.

Создание

Создание explicitMPC объект:

  1. Создание неявного контроллера MPC с помощью mpc объект.

  2. Определите рабочий диапазон для явного контроллера MPC, создав структуру диапазона с помощью generateExplicitRange и задание границ с помощью точечной нотации.

  3. Определите параметры оптимизации для преобразования неявного контроллера в явный контроллер с помощью generateExplicitOptions функция.

  4. Создайте явный MPC-контроллер на основе неявного контроллера, рабочего диапазона и параметров оптимизации с помощью generateExplicitMPC функция.

Свойства

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

Неявный контроллер MPC, указанный как mpc объект.

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

ОбластьОписание
StateГраницы значений состояния контроллера
ReferenceГраницы значений опорного сигнала контроллера
MeasuredDisturbanceГраницы по измеренным значениям возмущений
ManipulatedVariableГраницы для обрабатываемых значений переменных

Определите это свойство с помощью range входной аргумент для generateExplicitMPC , которая создается с помощью generateExplicitRange и изменить, используя точечную нотацию. Подробное описание параметров диапазона см. в разделе generateExplicitRange.

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

ОбластьОписание
zerotolДопуск нулевого обнаружения
removetolДопуск обнаружения избыточных ограничений неравенства
flattolДопуск обнаружения плоской области
normalizetolДопуск нормализации ограничений
maxiterNNLSМаксимальное число итераций решателя NNLS
maxiterQPМаксимальное количество итераций решателя QP
maxiterBSМаксимальное число итераций метода секционирования
polyreductionМетод устранения избыточных неравенств

Определите это свойство с помощью opt входной аргумент для generateExplicitMPC , которая создается с помощью generateExplicitOptions функция. Подробное описание этих параметров см. в разделе generateExplicitOptions.

Кусочно-аффинное решение для различных рабочих областей, указанное как структурный массив с элементами Nr, где Nr - количество рабочих областей.

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

ОбластьРазмеры
FВектор строки длиной Nx-на-Nmv.
GВектор столбца длиной Nmv
HМассив Nc-by-Nx
KВектор столбца длиной Nc

Здесь:

  • Nx - количество независимых переменных.

  • Nmv - количество манипулируемых переменных.

  • Nc - количество ограничений неравенства в регионе.

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

Функции объекта

simplifyСнижение явной сложности контроллера MPC и требований к памяти
plotSectionВизуализация явного закона управления MPC в виде секционного графика 2-D
mpcmoveExplicitВычисление оптимального управления с помощью явного MPC
simМоделирование контроллера MPC в замкнутом контуре с линейной установкой
mpcstateСостояние контроллера MPC
getCodeGenerationDataСоздание структур данных для mpcmoveCodeGeneration

Примеры

свернуть все

Создание явного MPC-контроллера на основе традиционного MPC-контроллера для установки двойного интегратора.

Определите установку двойного интегратора.

plant = tf(1,[1 0 0]);

Создайте традиционный (неявный) контроллер MPC для этого завода с временем выборки 0,1, горизонтом прогнозирования 10 и горизонтом управления 3.

Ts = 0.1;
p = 10;
m = 3;
MPCobj = mpc(plant,Ts,p,m);
-->The "Weights.ManipulatedVariables" property of "mpc" object is empty. Assuming default 0.00000.
-->The "Weights.ManipulatedVariablesRate" property of "mpc" object is empty. Assuming default 0.10000.
-->The "Weights.OutputVariables" property of "mpc" object is empty. Assuming default 1.00000.

Чтобы создать явный MPC-контроллер, необходимо указать диапазоны параметров, таких как значения состояния и управляемые переменные. Для этого создайте структуру диапазона. Затем измените значения в структуре на требуемые диапазоны параметров.

range = generateExplicitRange(MPCobj);
-->Converting the "Model.Plant" property of "mpc" object to state-space.
-->Converting model to discrete time.
   Assuming no disturbance added to measured output channel #1.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
range.State.Min(:) = [-10;-10];
range.State.Max(:) = [10;10];
range.Reference.Min = -2;
range.Reference.Max = 2;
range.ManipulatedVariable.Min = -1.1;
range.ManipulatedVariable.Max = 1.1;

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

opt = generateExplicitOptions(MPCobj);
opt.polyreduction = 1;

Создайте явный контроллер MPC.

EMPCobj = generateExplicitMPC(MPCobj,range,opt)
 
Explicit MPC Controller
---------------------------------------------
Controller sample time:    0.1 (seconds)
Polyhedral regions:        1
Number of parameters:      4
Is solution simplified:    No
State Estimation:          Default Kalman gain
---------------------------------------------
Type 'EMPCobj.MPC' for the original implicit MPC design.
Type 'EMPCobj.Range' for the valid range of parameters.
Type 'EMPCobj.OptimizationOptions' for the options used in multi-parametric QP computation.
Type 'EMPCobj.PiecewiseAffineSolution' for regions and gain in each solution.
Представлен в R2014b