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