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

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

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