sensitivity

Вычислите значение метрики эффективности и ее чувствительность к диагональным весам

Описание

пример

[J,sens] = sensitivity(MPCobj,PerfFunc,PerfWeights,Ns,r,v,SimOptions,utarget) вычисляет скалярную метрику эффективности, Jи его чувствительность к диагональным весам sens, для контроллера, заданного объектом контроллера MPC MPCobj.

Примеры

свернуть все

Задайте модель объекта управления третьего порядка с тремя управляемыми переменными и двумя управляемыми выходами.

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

Создайте контроллер 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.

Задайте интегральную абсолютную ошибку эффективности функцию и установите эффективность веса.

PerfFunc = 'IAE';
PerfWts.OutputVariables = [1 0.5];
PerfWts.ManipulatedVariables = zeros(1,3);
PerfWts.ManipulatedVariablesRate = zeros(1,3);

Задайте 20 второй сценарий симуляции с модулем шагом в уставке выхода 1 и уставкой в нуле для выхода 2.

Tstop = 20;
r = [1 0];

Задайте номинальные значения манипулируемых переменных, которые будут нулями.

utarget = zeros(1,3);

Вычислите метрику эффективности, J, и чувствительности, sens, для заданного контроллера и сценария симуляции.

[J,sens] = sensitivity(MPCobj,PerfFunc,PerfWts,Tstop,r,[],[],utarget);
-->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.
-->The "Model.Noise" property of the "mpc" object is empty. Assuming white noise on each measured output channel.

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

свернуть все

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

PerfFunc должно быть одно из следующих:

'ISE' (интегральная квадратичная невязка), для которой метрика эффективности

J=i=1Ns(j=1ny(wjyeyij)2+j=1nu[(wjueuij)2+(wjΔuΔuij)2])

'IAE' (интегральная абсолютная ошибка), для которой метрика эффективности

J=i=1Ns(j=1ny|wjyeyij|+j=1nu(|wjueuij|+|wjΔuΔuij|))

'ITSE' (интеграл взвешенной по времени квадратичной невязки), для которой метрика эффективности

J=i=1NsiΔt(j=1ny(wjyeyij)2+j=1nu[(wjueuij)2+(wjΔuΔuij)2])

'ITAE' (интеграл взвешенной по времени абсолютной ошибки), для которого метрика эффективности

J=i=1NsiΔt(j=1ny|wjyeyij|+j=1nu(|wjueuij|+|wjΔuΔuij|))

В приведенных выше выражениях ny количество управляемых выходов, а nu количество манипулируемых переменных. eyij - разница между выходным j и его уставкой (или уставкой) во время i интервала времени. euij - различие между манипулируемыми j переменной и ее целью в интервале времени i.

Параметры w являются неотрицательными весами эффективности, заданными структурой PerfWeights

Пример: 'ITAE'

Параметры w являются неотрицательными весами эффективности, заданными структурой PerfWeights, который содержит следующие поля:

  • OutputVariables - ny вектор-строка элемента, который содержит wjy значения

  • ManipulatedVariables - nu вектор-строка элемента, который содержит wju значения

  • ManipulatedVariablesRate - nu вектор-строка элемента, который содержит wjΔu значения

Если PerfWeights не задан, по умолчанию присваивается соответствующие веса в MPCobj. Однако в целом веса эффективности и те, что используются в контроллере, имеют различные цели и должны быть определены соответственно.

Количество шагов симуляции, заданное как положительное целое число.

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

  • Входной параметр r

  • Входной параметр v

  • The UnmeasuredDisturbance свойство SimOptions, если задано

  • The OutputNoise свойство SimOptions, если задано

Пример: 100

Опорный сигнал, заданная как массив. Этот массив имеет ny столбцы, где ny - количество выходных параметров объекта выходов. r может иметь где угодно от 1 до Ns строки. Если количество строк меньше Nsотсутствующие строки равны последней строке.

Пример: ones(100,1)

Измеренный сигнал нарушения порядка, заданный как массив. Этот массив имеет nv столбцы, где nv - количество измеренных входных нарушений порядка. v может иметь где угодно от 1 до Ns строки. Если количество строк меньше Nsотсутствующие строки равны последней строке.

Пример: [zeros(50,1);ones(50,1)]

Используйте объекты опций симуляции, чтобы задать опции, такие как сигналы шума и нарушения порядка, которые поступают в объект, но неизвестны контроллеру. Можно также использовать этот объект для задания сценария разомкнутого контура или модели объекта управления в цикле, которая отличается от модели объекта MPCobj.Model.Plant.

Для получения дополнительной информации смотрите mpcsimopt.

Необязательный вход utarget является вектором nu управляемых переменных целей. Их значения по умолчанию являются номинальными значениями управляемых переменных. Β uij - это изменение в манипулируемой переменной j и ее цели в временном интервале i.

Пример: [0.1;0;-0.2]

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

свернуть все

В зависимости от PerfFunc аргумент, эта мера эффективности может быть функцией интеграла (взвешенного по времени или нет) квадрата или абсолютного значения или (выходной и входной) ошибки. Для получения дополнительной информации см. PerfFunc.

Эта структура содержит и числовые частные производные от показателя эффективности J относительно его диагональных весов. Эти частные производные, также называемые чувствительными, предлагают корректировки веса, которые должны улучшить эффективность; то есть уменьшить J.

См. также

|

Введенный в R2009a