setmpcsignals

Установите типы сигнала в модели объекта управления MPC

Описание

outPlant = setmpcsignals(inPlant) устанавливает типы сигнала MPC inPlant к их значениям по умолчанию, возвращая результат в outPlant. По умолчанию все входные параметры являются переменными, которыми управляют, и всеми выходными параметрами являются измеренные выходные параметры.

пример

outPlant = setmpcsignals(inPlant,Name,Value) устанавливает типы сигнала MPC для сигналов ввода и вывода системы LTI inPlant, возвращение результата в outPlant. Задайте типы сигнала и индексы с помощью одного или нескольких аргументов пары "имя-значение". Если вы не задаете тип для каналов ввода или вывода, они сконфигурированы как переменные, которыми управляют, и выходные переменные, соответственно.

Примеры

свернуть все

Создайте с четырьмя входами, две выходных модели объекта управления пространства состояний. По умолчанию все входные сигналы являются переменными, которыми управляют, и всеми выходными параметрами являются измеренные выходные параметры.

plant = rss(3,2,4);
plant.D = 0;

Сконфигурируйте каналы ввода-вывода объекта, таким образом что:

  • Вторые и третьи входные параметры являются измеренными воздействиями.

  • Четвертый вход является неизмеренным воздействием.

  • Второй выход не измерен.

plant = setmpcsignals(plant,'MD',[2 3],'UD',4,'UO',2);
-->Assuming unspecified input signals are manipulated variables.
-->Assuming unspecified output signals are measured outputs.

Создайте контроллер MPC.

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.
   for output(s) y1 and zero weight for output(s) y2 

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

Создайте модель объекта управления с двумя выходными параметрами, одной переменной, которой управляют, одним измеренным воздействием и двумя неизмеренными воздействиями.

plant = rss(3,2,5);
plant.D = 0;
plant = setmpcsignals(plant,'MV',[1 2],'MD',3,'UD',[4 5]);

Создайте контроллер MPC, использующий этот объект.

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.

Сконфигурируйте свойства контроллера. Например, установите масштабные коэффициенты для сигналов воздействия.

MPCobj.DisturbanceVariables(1).ScaleFactor = 10;
MPCobj.DisturbanceVariables(2).ScaleFactor = 5;
MPCobj.DisturbanceVariables(3).ScaleFactor = 20;

Предположим, что вы хотите изменить второе неизмеренное воздействие, чтобы быть измеренным воздействием. Для этого необходимо одновременно обновить DisturbanceVariables свойство контроллера, начиная с порядка его записей зависят от типов воздействия (измеренные воздействия, сопровождаемые неизмеренными воздействиями).

Создайте обновленный массив структур переменной воздействия. Для этого переместите третий элемент, чтобы быть вторым элементом.

DV = MPCobj.DisturbanceVariables;
DV = [DV(1) DV(3) DV(2)];
DV(2).Name = 'MD2';

Чтобы установить внутренние типы сигнала модели объекта управления, получите Model свойство от диспетчера, и изменяет типы сигнала своего Plant элемент.

model = MPCobj.Model;
model.Plant = setmpcsignals(model.Plant,'MV',[1 2],'MD',[3 5],'UD',4);

Установите модель и свойства переменной воздействия контроллера к их обновленным значениям.

set(MPCobj,'Model',model,'DisturbanceVariables',DV);

В общем случае это - лучшая практика не изменить типы сигнала после создания контроллера. Вместо этого создайте и сконфигурируйте новый объект контроллера с новой настройкой сигнала.

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

свернуть все

Введите модель объекта управления или в виде модели LTI или в виде модели Identification Toolbox™ линейной системы.

Аргументы в виде пар имя-значение

Задайте дополнительные разделенные запятой пары Name,Value аргументы. Name имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: 'UnmeasuredDisturbances',[2 3] конфигурирует вторые и третьи входные параметры как измеренные воздействия

Переменные индексы, которыми управляют, в виде разделенной запятой пары 'ManipulatedVariables' сопровождаемый вектором положительных целых чисел. Максимальное значение индекса не должно превышать количество входных каналов в inPlant. Индексы, заданные с помощью ManipulatedVariables, MeasuredDisturbances, и UnmeasuredDisturbances не должен перекрываться.

Вместо 'ManipulatedVariables', можно использовать сокращение 'MV'.

Измеренные индексы воздействия в виде разделенной запятой пары 'MeasuredDisturbances' сопровождаемый вектором положительных целых чисел. Максимальное значение индекса не должно превышать количество входных каналов в inPlant. Индексы, заданные с помощью ManipulatedVariables, MeasuredDisturbances, и UnmeasuredDisturbances не должен перекрываться.

Вместо 'MeasuredDisturbances', можно использовать сокращение 'MD'.

Неизмеренные индексы воздействия в виде разделенной запятой пары 'UnmeasuredDisturbances' сопровождаемый вектором положительных целых чисел. Максимальное значение индекса не должно превышать количество входных каналов в inPlant. Индексы, заданные с помощью ManipulatedVariables, MeasuredDisturbances, и UnmeasuredDisturbances не должен перекрываться.

Вместо 'UnmeasuredDisturbances', можно использовать сокращение 'UD'.

Измеренные выходные индексы в виде разделенной запятой пары 'MeasuredOutputs' сопровождаемый вектором положительных целых чисел. Максимальное значение индекса не должно превышать количество выходных каналов в inPlant. Индексы, заданные с помощью MeasuredOutputs и UnmeasuredOutputs не должен перекрываться.

Вместо 'MeasuredOutputs', можно использовать сокращение 'MO'.

Неизмеренные выходные индексы в виде разделенной запятой пары 'UnmeasuredOutputs' сопровождаемый вектором положительных целых чисел. Максимальное значение индекса не должно превышать количество выходных каналов в inPlant. Индексы, заданные с помощью MeasuredOutputs и UnmeasuredOutputs не должен перекрываться.

Вместо 'UnmeasuredOutputs', можно использовать сокращение 'UO'.

Выходные аргументы

свернуть все

Выведите модель объекта управления, возвращенную как линейная динамическая модель. outPlant имеет заданные типы канала ввода и вывода. В противном случае, outPlant идентично inPlant.

Советы

В общем случае установите типы сигнала объекта с помощью setmpcsignals прежде, чем создать ваш объект контроллера.

Если вы изменяете типы сигнала внутренней модели объекта управления существующего контроллера, необходимо гарантировать, что новые типы канала ввода-вывода сопоставимы со следующими свойствами контроллера:

  • Weights

  • ManipulatedVariables

  • OutputVariables

  • DisturbanceVariables

  • Model.Noise

Смотрите также

|

Представлено до R2006a