Опции оптимизации для явной генерации MPC
opt = generateExplicitOptions(MPCobj)
создает набор опций, чтобы использовать при преобразовании традиционного контроллера MPC, opt
= generateExplicitOptions(MPCobj
)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.
MPCobj
— Традиционный контроллер MPCТрадиционный контроллер MPC, заданный как контроллер MPC объект. Используйте команду mpc
, чтобы создать традиционный контроллер MPC.
opt
— Опции для генерации явного контроллера MPCОпции для генерации явного контроллера MPC, возвращенного как структура. Когда вы создаете структуру, все опции установлены в значения по умолчанию. Используйте запись через точку, чтобы изменить любые опции, которые вы хотите изменить. Поля и их значения по умолчанию следующие.
zerotol
— Допуск нулевого обнаружения1e-8
(значение по умолчанию) | значение положительной скалярной величиныДопуск нулевого обнаружения используется решателем NNLS, заданным как значение положительной скалярной величины.
removetol
— Допуск обнаружения избыточного ограничения неравенства1e-4
(значение по умолчанию) | значение положительной скалярной величиныДопуск обнаружения избыточного ограничения неравенства, заданный как значение положительной скалярной величины.
flattol
— Плоский допуск обнаружения области1e-5
(значение по умолчанию) | значение положительной скалярной величиныПлоский допуск обнаружения области, заданный как значение положительной скалярной величины.
normalizetol
— Ограничительный допуск нормализацииОграничительный допуск нормализации, заданный как значение положительной скалярной величины.
maxiterNNLS
— Максимальное количество итераций решателя NNLSМаксимальное количество итераций решателя NNLS, заданных как положительное целое число.
maxiterQP
— Максимальное количество итераций решателя QPМаксимальное количество итераций решателя QP, заданных как положительное целое число.
maxiterBS
— Максимальное количество итераций метода деления пополамМаксимальное количество итераций метода деления пополам раньше обнаруживало плоскость области, заданную как положительное целое число.
polyreduction
— Метод для удаления избыточных неравенствМетод раньше удалял избыточные неравенства, заданные или как 1 (устойчивый) или как 2 (быстро).
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.