simplify

Уменьшайте явный контроллер MPC сложность и требования к памяти

Описание

пример

EMPCreduced = simplify(EMPCobj,'exact') попытки сократить количество кусочных аффинных областей (PWA) в явном контроллере MPC путем слияния областей, которые имеют идентичные усиления контроллера и чье объединение является выпуклым набором. Сокращение количества областей PWA уменьшает требования к памяти контроллера. Эта команда возвращает уменьшаемый контроллер, EMPCreduced. Если второй аргумент не использован затем, он принят, чтобы быть 'точным'.

EMPCreduced = simplify(EMPCobj,'exact',uniteeps) задает допуск к идентификации областей, которые могут быть объединены.

EMPCreduced = simplify(EMPCobj,'radius',r) сохраняет только области, Чебышевский радиус которых (радиус самого большого мяча, содержавшегося в области), больше, чем r.

EMPCreduced = simplify(EMPCobj,'sequence',index) устраняет все области кроме заданных в векторе индекса.

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

Примеры

свернуть все

Задайте модель объекта управления. В данном примере задайте модель объекта управления как двойной интегратор.

plant = tf(1,[1 0 0])                   % plant model
plant =
 
   1
  ---
  s^2
 
Continuous-time transfer function.

Создайте контроллер MPC со временем выборки 0,1 секунд, горизонта предсказания или 10 шагов и горизонта управления 3 шагов. Также задайте ограничение на переменную, которой управляют.

mpcobj = mpc(plant, 0.1, 10, 3);        % MPC controller
-->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.
mpcobj.ManipulatedVariables = struct('Min',-1,'Max',1);   % hard constraint on manipulated variable

Создайте структуру области значений, чтобы указать диапазоны для входа, состояния и опорных сигналов.

range.ManipulatedVariable.Min = -1.1;   % input signal min
range.ManipulatedVariable.Max = 1.1;    % input signal max

range.State.Min(:) = [-10;-10];         % states min
range.State.Max(:) = [10;10];           % states max

range.Reference.Min = -2;               % reference min
range.Reference.Max = 2;                % reference max

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

mpcobjExplicit = generateExplicitMPC(mpcobj,range)
-->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.


Regions found / unexplored:       19/       0

 
Explicit MPC Controller
---------------------------------------------
Controller sample time:    0.1 (seconds)
Polyhedral regions:        19
Number of parameters:      4
Is solution simplified:    No
State Estimation:          Default Kalman gain
---------------------------------------------
Type 'mpcobjExplicit.MPC' for the original implicit MPC design.
Type 'mpcobjExplicit.Range' for the valid range of parameters.
Type 'mpcobjExplicit.OptimizationOptions' for the options used in multi-parametric QP computation.
Type 'mpcobjExplicit.PiecewiseAffineSolution' for regions and gain in each solution.

Обратите внимание на то, что у получившегося явного контроллера есть 19 многогранных областей.

Используйте simplify упростить явный контроллер MPC и отобразить получившийся контроллер.

reducedEMPC = simplify(mpcobjExplicit)
Regions to analyze:       15/      15

 
Explicit MPC Controller
---------------------------------------------
Controller sample time:    0.1 (seconds)
Polyhedral regions:        15
Number of parameters:      4
Is solution simplified:    Yes
State Estimation:          Default Kalman gain
---------------------------------------------
Type 'reducedEMPC.MPC' for the original implicit MPC design.
Type 'reducedEMPC.Range' for the valid range of parameters.
Type 'reducedEMPC.OptimizationOptions' for the options used in multi-parametric QP computation.
Type 'reducedEMPC.PiecewiseAffineSolution' for regions and gain in each solution.

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

Входные параметры

свернуть все

Явный контроллер MPC, чтобы уменьшать в виде Явного контроллера MPC объект. Использование generateExplicitMPC создать явный контроллер MPC.

Допуск к присоединению областей PWA в виде положительной скалярной величины.

Минимальный Чебышевский радиус для сохранения областей PWA в виде неотрицательного скаляра. Когда вы используете 'radius' опция, simplify сохраняет только области, Чебышевский радиус которых больше, чем r. Значение по умолчанию 0, который заставляет все области быть сохраненными.

Индексы областей PWA, чтобы сохранить в виде вектора. Значением по умолчанию является [1:nr], где nr количество областей PWA в EMPCobj. Таким образом, по умолчанию, все области сохраняются. Можно получить последовательность областей, чтобы сохранить путем выполнения симуляций с помощью EMPCobj и запись индексов областей, с которыми на самом деле сталкиваются.

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

свернуть все

Уменьшаемый контроллер MPC, возвращенный как Явный контроллер MPC объект.

Введенный в R2014b