exponenta event banner

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