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 количество рабочих регионов.

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

ОбластьРазмерности
FВектор-строка длины Nx -by - Nmv.
GВектор-столбец длины Nmv
HNc -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.

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

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