Измените неизмеренный выход возмущения
setoutdist(
устанавливает выходную модель возмущения на ее значение по умолчанию. Используйте этот синтаксис, если вы ранее установили пользовательскую модель выхода возмущения и хотите вернуться к модели по умолчанию. Для получения дополнительной информации о модели выходного возмущения по умолчанию, см. «Моделирование MPC».MPCobj
,'integrators')
Задайте модель объекта управления без прямого сквозного соединения и создайте контроллер MPC для этого объекта.
plant = rss(3,3,3); plant.D = 0; 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.
Задайте модели возмущения для каждого выхода таким образом, чтобы выходное нарушение порядка для:
Канал 1 является случайным белым шумом с величиной 2
.
Канал 2 является случайным ступенчатым шумом с величиной 0.5
.
Канал 3 является случайным наклонным шумом с величиной 1
.
mod1 = tf(2,1); mod2 = tf(0.5,[1 0]); mod3 = tf(1,[1 0 0]);
Создайте модель возмущения выхода, используя эти передаточные функции. Используйте отдельный вход шума для каждого выходного нарушения порядка.
outdist = [mod1 0 0; 0 mod2 0; 0 0 mod3];
Установите выходную модель возмущения в контроллере MPC.
setoutdist(MPCobj,'model',outdist)
Просмотрите модель выходного возмущения контроллера.
getoutdist(MPCobj)
ans = A = x1 x2 x3 x1 1 0 0 x2 0 1 0 x3 0 0.1 1 B = Noise#1 Noise#2 Noise#3 x1 0 0.05 0 x2 0 0 0.1 x3 0 0 0.005 C = x1 x2 x3 MO1 0 0 0 MO2 1 0 0 MO3 0 0 1 D = Noise#1 Noise#2 Noise#3 MO1 2 0 0 MO2 0 0 0 MO3 0 0 0 Sample time: 0.1 seconds Discrete-time state-space model.
Контроллер преобразует модель передаточной функции в непрерывном времени, outdist
, в модель пространства состояний в дискретном времени.
Задайте модель объекта управления без прямого сквозного соединения и создайте контроллер MPC для этого объекта.
plant = rss(3,3,3); plant.D = 0; 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.
Извлеките выход возмущения по умолчанию из контроллера.
distMod = getoutdist(MPCobj);
-->Converting model to discrete time. -->Assuming output disturbance added to measured output channel #1 is integrated white noise. -->Assuming output disturbance added to measured output channel #2 is integrated white noise. -->Assuming output disturbance added to measured output channel #3 is integrated white noise. -->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.
Извлеките интегратор из второго выходного канала. Создайте новую модель возмущения выхода, удалив второй входной канал и установив эффект на втором выходе двух других входов равным нулю.
distMod = sminreal([distMod(1,1) distMod(1,3); 0 0; distMod(3,1) distMod(3,3)]);
setoutdist(MPCobj,'model',distMod)
При удалении интегратора из модели возмущения выхода таким образом используйте sminreal
чтобы сделать пользовательскую модель структурно минимальной.
Посмотрите модель выхода возмущения.
tf(getoutdist(MPCobj))
ans = From input "Noise#1" to output... 0.1 MO1: ----- z - 1 MO2: 0 MO3: 0 From input "Noise#2" to output... MO1: 0 MO2: 0 0.1 MO3: ----- z - 1 Sample time: 0.1 seconds Discrete-time transfer function.
Интегратор был удален из второго канала. Модели возмущения для каналов 1
и 3
остаются на своих значениях по умолчанию в качестве интеграторов в дискретном времени.
Определите модель объекта управления без прямого сквозного соединения и создайте контроллер MPC для этого объекта.
plant = rss(3,3,3); plant.D = 0; MPCobj = mpc(plant,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.
Установите модель возмущения выхода, чтобы нуль для всех трех каналов выхода.
setoutdist(MPCobj,'model',tf(zeros(3,1)))
Посмотрите модель выхода возмущения.
getoutdist(MPCobj)
ans = D = Noise#1 MO1 0 MO2 0 MO3 0 Static gain.
Статический коэффициент усиления 0
для всех выходных каналов указывает, что выходные нарушения порядка были удалены.
Определите модель объекта управления без прямого сквозного соединения и создайте контроллер MPC для этого объекта.
plant = rss(2,2,2); plant.D = 0; 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.
Снимите выходные нарушения порядка для всех каналов.
setoutdist(MPCobj,'model',tf(zeros(2,1)))
Восстановите выход возмущения по умолчанию.
setoutdist(MPCobj,'integrators')
MPCobj
- Моделируйте прогнозирующий контроллерМоделируйте прогнозирующий контроллер, заданный как объект контроллера MPC. Чтобы создать контроллер MPC, используйте mpc
.
model
- Пользовательская выходная модель возмущения[]
(по умолчанию) | ss
| объекта tf
| объекта zpk
объектПользовательская выходная модель возмущения, заданная как пространство состояний (ss
), передаточная функция (tf
), или нули , полюса и усиления (zpk
) модель. Контроллер MPC преобразует модель в модель пространства состояний с дискретным временем, без задержки. Опускание model
или указание model
как []
эквивалентно использованию setoutdist(MPCobj,'integrators')
.
Выходная модель возмущения имеет:
Дисперсионные входные сигналы белого шума. Для пользовательских моделей выхода возмущения количество входов является вашим выбором.
ny выходы, где ny количество выходов объекта, заданное в MPCobj.Model.Plant
. Каждый выход модели возмущения добавляется к соответствующему выходу объекта управления.
Эта модель, наряду с моделью входного возмущения (если она есть), управляет тем, насколько хорошо контроллер компенсирует неизмеренные нарушения порядка и ошибки моделирования. Для получения дополнительной информации о моделировании нарушений порядка в MPC и о модели, используемой во время оценки состояния, см. Моделирование MPC и оценка состояния контроллера.
setoutdist
не проверяет пользовательские выходные модели возмущения на нарушения наблюдаемости состояния. Эта проверка выполняется позже в процессе проекта MPC, когда внутренний оценщик состояния построен с помощью таких команд, как sim
или mpcmove
. Если состояния контроллера не являются полностью наблюдаемыми, эти команды генерируют ошибку.
Чтобы просмотреть модель выходного возмущения тока, используйте getoutdist
команда.
getEstimator
| getoutdist
| mpc
| setEstimator
| setindist
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.