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