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.

Чтобы сгенерировать явный контроллер 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