exponenta event banner

generateExplicitMPC

Преобразование неявного контроллера MPC в явный контроллер MPC

Описание

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

пример

EMPCobj = generateExplicitMPC(MPCobj,range) преобразует традиционный (неявный) контроллер MPC в эквивалентный явный контроллер MPC, используя указанные границы параметров. Этот расчет обычно требует значительных вычислительных усилий, поскольку во время преобразования решается многопараметрическая задача квадратичного программирования.

пример

EMPCobj = generateExplicitMPC(MPCobj,range,opt) преобразует контроллер MPC с помощью дополнительных опций оптимизации.

Примеры

свернуть все

Создание явного 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.

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

свернуть все

Традиционный контроллер MPC, указанный как mpc объект

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

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

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

свернуть все

Явный контроллер MPC, эквивалентный входному традиционному контроллеру, возвращаемый как explicitMPC объект.

СобственностьОписание
MPCТрадиционный (неявный) объект контроллера, используемый для создания явного MPC-контроллера. Вы создаете этот MPC контроллер, используя mpc команда. Это первый аргумент для generateExplicitMPC при создании явного контроллера MPC.
Range1-D структура, содержащая границы параметров, используемые для создания явного контроллера MPC. Они определяют допустимый рабочий диапазон контроллера. Это свойство автоматически заполняется range входной аргумент для generateExplicitMPC при создании явного контроллера MPC. Посмотрите generateExplicitRange для получения подробной информации об этой структуре.
OptimizationOptions1-D структура, содержащая изменяемые пользователем опции, используемые для создания явного MPC-контроллера. Это свойство автоматически заполняется opt аргумент для generateExplicitMPC при создании явного контроллера MPC. Посмотрите generateExplicitOptions для получения подробной информации об этой структуре.
PiecewiseAffineSolutionnr-мерная структура, где nr - количество кусочно-аффинных (PWA) областей, необходимых для представления закона контроля. i-й элемент содержит детали, необходимые для вычисления оптимальных управляемых переменных, когда решение находится в пределах i-й области. См. раздел Реализация.
IsSimplifiedЛогический переключатель, указывающий, был ли изменен закон явного управления с помощью simplify команда таким образом, что закон явного управления аппроксимирует базовый (неявный) контроллер MPC. Если закон управления не был изменен, явный контроллер должен точно воспроизводить поведение базового контроллера при условии, что оба работают в пределах, описанных Range собственность.

Совет

  • Использование явного MPC, скорее всего, обеспечит наилучшую производительность при небольших проблемах управления, которые включают небольшое количество вводов/выходов/состояний установки, а также количество ограничений.

  • Перед попыткой преобразования тщательно протестируйте неявный контроллер. Это помогает определить диапазон состояний контроллера и другие параметры, необходимые для генерации явного контроллера.

  • Моделирование явной производительности контроллера с помощью sim или mpcmoveExplicit команды или явный блок контроллера MPC в Simulink ®.

  • generateExplicitMPC отображает сообщения о ходе выполнения в окне команд. Использовать mpcverbosity для отключения дисплея.

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