setoutdist

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

Синтаксис

setoutdist(MPCobj,'model',model)
setoutdist(MPCobj,'integrators')

Описание

пример

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