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
Для просмотра документации необходимо авторизоваться на сайте