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