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