setoutdist

Измените неизмеренное выходное возмущение

Описание

пример

setoutdist(MPCobj,'model',model) устанавливает выходное возмущение, используемое прогнозирующим контроллером модели, MPCobj, к пользовательской модели.

пример

setoutdist(MPCobj,'integrators') устанавливает выходное возмущение на его значение по умолчанию. Используйте этот синтаксис, если вы ранее устанавливаете пользовательское выходное возмущение, и вы хотите возвратиться к модели по умолчанию. Для получения дополнительной информации о выходном возмущении по умолчанию см. Модели Предсказания MPC.

Примеры

свернуть все

Задайте модель объекта управления без прямого сквозного соединения и создайте контроллер 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')

Входные параметры

свернуть все

Прогнозирующий контроллер модели в виде контроллера MPC объект. Чтобы создать контроллер MPC, использовать mpc.

Пользовательское выходное возмущение в виде пространства состояний (ssПередаточная функцияtf), или нули, полюса и усиление (zpk) модель. Контроллер MPC преобразует модель в дискретное время, без задержек, модель в пространстве состояний. Исключение model или определение model как [] эквивалентно использованию setoutdist(MPCobj,'integrators').

Выходное возмущение имеет:

  • Входные сигналы белого шума модульного отклонения. Для пользовательских выходных возмущений количество входных параметров является вашим выбором.

  • Выходные параметры ny, где ny является количеством объекта выходные параметры, заданные в MPCobj.Model.Plant. Каждое возмущение выход добавляется к соответствующему объекту выход.

Эта модель, наряду с входным возмущением (если таковые имеются), управляет, как хорошо контроллер компенсирует неизмеренные воздействия и ошибки моделирования. Для получения дополнительной информации о моделировании воздействия в MPC и о модели, используемой во время оценки состояния, см. Модели Предсказания MPC и Оценку состояния Контроллера.

setoutdist не проверяет пользовательские выходные возмущения на нарушения наблюдаемости состояния. Эта проверка выполнена позже в процессе проектирования MPC, когда средство оценки внутреннего состояния создается с помощью команд такой как sim или mpcmove. Если состояния контроллера не будут полностью заметны, эти команды сгенерируют ошибку.

Советы

  • Чтобы просмотреть возмущение текущей производительности, используйте getoutdist команда.

Введен в R2006a