sensitivity

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

Описание

пример

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

Примеры

свернуть все

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

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, к весу, заданному в mpcobj, для заданного сценария симуляции.

[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.
J = 1.1426
sens = struct with fields:
             OutputVariables: [-0.0041 -0.1285]
        ManipulatedVariables: [0.0378 -0.0465 0.0523]
    ManipulatedVariablesRate: [0.4007 0.2433 0.6805]

Положительное, и относительно выше, значения чувствительности к плавающим курсам, которыми управляют, предполагают, что уменьшение весов, которые заданы в mpcobj поскольку плавающие курсы, которыми управляют, способствовали бы больше всего, чтобы уменьшить IAE показатель производительности задан PerfWts.

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

свернуть все

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

Форма функции показателя производительности в виде одного из следующего:

  • '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 в виде структуры со следующими полями:

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

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

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

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

Поэтому веса эффективности и используемые в контроллере имеют различные цели; задайте эти веса соответственно.

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

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

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

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

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

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

Пример: 100

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

Если r пусто или не задан, это принимает значение по умолчанию к номинальной стоимости объекта выход, MPCobj.Model.Nominal.Y.

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

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

Если v пусто или не задан, это принимает значение по умолчанию к номинальной стоимости измеренного входного воздействия, MPCobj.Model.Nominal.U(md), где md вектор, содержащий индексы измеренных сигналов воздействия, как задано setmpcsignals.

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

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

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

Дополнительный вход utarget вектор из переменных целей nu, которыми управляют. Их значениями по умолчанию является номинальная стоимость переменных, которыми управляют.

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

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

свернуть все

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

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

Представленный в R2009a