exponenta event banner

setmpcsignals

Задать типы сигналов в модели завода ПДК

Описание

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 или линейная модель 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