Опции оптимизации для явной генерации MPC
создает набор опций, используемых при преобразовании традиционного контроллера 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.
Чтобы сгенерировать явный контроллер, необходимо задать области значений параметров, таких как значения состояний и манипулируемые переменные. Для этого сгенерируйте структуру области значений. Затем измените значения в структуре на желаемые области значений параметров.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.