Получение смешанных ограничений ввода/вывода от контроллера прогнозирования модели
Создайте модель завода третьего порядка с двумя управляемыми переменными, одним измеренным возмущением и двумя измеренными выходами.
plant = rss(3,2,3); plant.D = 0; plant = setmpcsignals(plant,'mv',[1 2],'md',3);
Создайте контроллер MPC для этого завода.
MPCobj = mpc(plant,0.1);
-->The "PredictionHorizon" property of "mpc" object is empty. Trying PredictionHorizon = 10. -->The "ControlHorizon" property of the "mpc" object is empty. Assuming 2. -->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.
E = [1 1; 0 0]; F = [0 0; 0 1]; G = [5;10]; V = [1;1]; S = [0;1]; setconstraint(MPCobj,E,F,G,V,S)
Извлеките ограничения из контроллера.
[E,F,G,V,S] = getconstraint(MPCobj)
E = 2×2
1 1
0 0
F = 2×2
0 0
0 1
G = 2×1
5
10
V = 2×1
1
1
S = 2×1
0
1
MPCobj - Прогнозирующий контроллер моделиКонтроллер прогнозирования модели, указанный как объект контроллера MPC. Для создания контроллера MPC используйте mpc.
E - константа регулируемой зависимости[]Константа изменяемой зависимости, возвращаемая как массив Nc-by-Nmv, где Nc - количество зависимостей, а Nmv - количество обрабатываемых переменных.
Если MPCobj не имеет смешанных ограничений ввода/вывода, то E является [].
F - Константа регулируемого выходного ограничения[]Константа ограничения управляемого выхода, возвращаемая как массив Nc-by-Ny, где Ny - количество контролируемых выходов (измеренных и неизмеренных).
Если MPCobj не имеет смешанных ограничений ввода/вывода, то F является [].
G - Константа смешанного ограничения ввода/вывода[]Константа смешанного ограничения ввода/вывода, возвращаемая в виде вектора столбца длиной Nc., где Nc - число ограничений.
Если MPCobj не имеет смешанных ограничений ввода/вывода, то G является [].
V - Константа смягчения ограничения[]Константа смягчения ограничения, представляющая равную заботу о релаксации (ECR), возвращается в виде вектора столбца длины Nc, где Nc - число ограничений. Если MPCobj не имеет смешанных ограничений ввода/вывода, то V является [].
Если V не указано, значение по умолчанию: 1 применяется ко всем неравенствам ограничений, и все ограничения являются мягкими. Это поведение совпадает с поведением по умолчанию для границ вывода, как описано в разделе Функция стандартных затрат.
Чтобы сделать ограничение i жестким, укажите V (i) = 0 .
Чтобы сделать ограничение i мягким, укажите V (i) > 0 в соответствии с допустимой величиной нарушения ограничения. Нарушение величины зависит от численного масштаба переменных, участвующих в ограничении.
В общем случае, когда V (i) уменьшается, контроллер усиливает ограничения, уменьшая допустимое нарушение ограничения.
S - Измеренная константа ограничения возмущения[]Измеренная константа ограничения возмущения, возвращаемая в виде матрицы Nc-by-Nv, где Nv - количество измеренных возмущений.
Если нет измеренных возмущений в смешанных ограничениях ввода/вывода, или MPCobj не имеет смешанных ограничений ввода/вывода, то S является [].
Общая форма смешанных ограничений ввода/вывода:
Eu (k + j) + Fy (k + j) + Sv (k + j) ≤ G + αV
Здесь j = 0,..., p и:
p - горизонт прогнозирования.
k - индекс текущего времени.
u - переменная, управляемая вектором столбца.
y - вектор столбца всех выходных переменных установки.
v - вектор столбца измеренных переменных возмущений.
λ - это скалярная переменная ослабления, используемая для смягчения ограничений (как в функции стандартной стоимости).
E, F, G, V и S - постоянные матрицы.
Поскольку контроллер MPC не оптимизирует u (k + p),getconstraint вычисляет последнее ограничение в момент времени k+p предполагая, что u (k + p) = u (k + p-1).
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.