Получите смешанные ограничения ввода/вывода от прогнозирующего контроллера модели
Создайте модель объекта управления третьего порядка с двумя манипулированными переменными, одним измеренным нарушением порядка и двумя измеренными выходами.
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
применяется ко всем неравенствам ограничений, и все ограничения являются мягкими. Это поведение аналогично поведению по умолчанию для выхода границ, как описано в Standard Cost Function.
Чтобы сделать ith жесткое ограничение, задайте V (i) = 0 .
Чтобы сделать ith мягкое ограничение, задайте V (i) > 0 в соответствии с величиной нарушения ограничений, которую можно допустить. Нарушение величины зависит от численной шкалы переменных, участвующих в ограничении.
В целом, когда V (i) уменьшается, контроллер усиливает ограничения, уменьшая допустимое нарушение ограничений.
S
- Измеренная константа возмущения| []
Измеренная константа возмущения, возвращенная как Nc -by - Nv массив, где Nv - количество измеренных нарушений порядка.
Если нет измеренных нарушений порядка в смешанных входных/выходных ограничениях, или MPCobj
не имеет смешанных входных/выходных ограничений, тогда S
является []
.
Общая форма смешанных входных/выходных ограничений:
<reservedrangesplaceholder14> <reservedrangesplaceholder13> (k + j) + <reservedrangesplaceholder10> <reservedrangesplaceholder9> (k + j) + <reservedrangesplaceholder6> <reservedrangesplaceholder5> (k + j) ≤ <reservedrangesplaceholder2> + <reservedrangesplaceholder1> <reservedrangesplaceholder0>
Здесь 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.