generateExplicitOptions

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

Синтаксис

opt = generateExplicitOptions(MPCobj)

Описание

пример

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.

Чтобы сгенерировать явный контроллер 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 объект. Используйте команду mpc, чтобы создать традиционный контроллер MPC.

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

свернуть все

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

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

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

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

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

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

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

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

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

Смотрите также

Введенный в R2014b