Получите смешанные ограничения ввода/вывода от прогнозирующего диспетчера модели
Создайте модель объекта управления третьего порядка с двумя переменными, которыми управляют, одним измеренным воздействием и двумя измеренными выходными параметрами.
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
применяется ко всем ограничительным неравенствам, и все ограничения являются мягкими. Это поведение совпадает с поведением по умолчанию для выходных границ, как описано в Стандартной Функции стоимости.
Сделать ith ограничение трудно, задайте V (i) = 0.
Сделать ith мягкое ограничение, задайте V (i)> 0 в соответствии с величиной нарушения ограничений, которую можно терпеть. Нарушение величины зависит от числовой шкалы переменных, вовлеченных в ограничение.
В общем случае как V (i) уменьшения, контроллер укрепляет ограничения путем уменьшения нарушения ограничений, которое позволено.
S
— Измеренное постоянное ограничение воздействия[]
Измеренное постоянное ограничение воздействия, возвращенное как Nc-by-Nv массив, где Nv является количеством измеренных воздействий.
Если нет никаких измеренных воздействий в смешанных ограничениях ввода/вывода или MPCobj
не имеет никаких смешанных ограничений ввода/вывода, затем S
[]
.
Общая форма смешанных ограничений ввода/вывода:
E u (k + j) + F y (k + j) + S v (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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.