generateExplicitOptions

Опции оптимизации для явной генерации MPC

Описание

пример

opt = generateExplicitOptions(MPCobj) создает набор опций, используемых при преобразовании традиционного контроллера MPC, MPCobj, в явную форму, используя generateExplicitMPC. Набор опций возвращается с установленными значения по умолчанию всех опций. Используйте запись через точку для изменения опций.

Примеры

свернуть все

Сгенерируйте явный контроллер 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.

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

свернуть все

Традиционный контроллер MPC, заданный как объект контроллера MPC. Используйте mpc команда для создания традиционного контроллера MPC.

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

свернуть все

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

Допуск обнаружения нуля, используемый решателем NNLS, задается как положительная скалярная величина значение.

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

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

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

Максимальное количество итераций решателя NNLS, заданное в виде положительного целого числа.

Максимальное количество итераций решателя QP, заданное как положительное целое число.

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

Метод, используемый для удаления избыточных неравенств, заданный как 1 (устойчивый) или 2 (быстрый).

См. также

Введенный в R2014b