exponenta event banner

упростить

Снижение явной сложности контроллера 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