Вычислите эффект контроллера, настраивающего веса на производительности
[J,sens] = sensitivity(MPCobj,PerfFunc,PerfWeights,Tstop,r,v,simopt,utarget)
[J,sens] = sensitivity(MPCobj,'perf_fun',param1,param2,...)
sensitivity
функция является контроллером, настраивающим помощь. J
задает скалярный показатель производительности. sensitivity
вычисляет J
и его частные производные относительно контроллера, настраивающего веса. Эта чувствительность предлагает настроить корректировки веса, которые должны улучшать производительность; то есть, уменьшайте J
.
[J,sens] = sensitivity(MPCobj,PerfFunc,PerfWeights,Tstop,r,v,simopt,utarget)
вычисляет скалярный показатель производительности, J
, и чувствительность, sens
, для контроллера, заданного контроллером MPC объект MPCobj
.
PerfFunc
должно быть одно из следующего:
'ISE'
(интегральная квадратичная невязка), для которого показатель производительности
'IAE'
(интегральная абсолютная погрешность), для которого показатель производительности
'ITSE'
(интеграл взвешенной временем квадратичной невязки), для которого показатель производительности
'ITAE'
(интеграл взвешенной временем абсолютной погрешности), для которого показатель производительности
В вышеупомянутых выражениях ny является количеством управляемых выходных параметров, и nu является количеством переменных, которыми управляют. eyij является различием между выходом j и его заданным значением (или ссылка) значение во временном интервале i. euij является различием между переменной j, которой управляют, и ее целью во временном интервале i.
W параметры являются неотрицательными весами производительности, заданными структурой PerfWeights
, который содержит следующие поля:
OutputVariables
— вектор-строка элемента ny, который содержит значения
ManipulatedVariables
— вектор-строка элемента nu, который содержит значения
ManipulatedVariablesRate
— вектор-строка элемента nu, который содержит значения
Если PerfWeights
не задано, это принимает значение по умолчанию к соответствующим весам в MPCobj
. В общем случае однако веса производительности и используемые в контроллере имеют различные цели и должны быть заданы соответственно.
Входные параметры Tstop
R
V
, и simopt
задайте сценарий симуляции, используемый, чтобы оценить производительность. Смотрите sim
для деталей.
Tstop
целое число интервалов выборки контроллера, которые будут симулированы. Итоговым временем для симуляций будет Tstop × Δt, где Δt является интервалом выборки контроллера, заданным в MPCobj
.
Дополнительный вход utarget
вектор переменных целей nu, которыми управляют. Их значениями по умолчанию является номинальная стоимость переменных, которыми управляют. Δuij является изменением в переменной j, которой управляют, и ее цели во временном интервале i.
Переменная sens
структуры содержит вычисленную чувствительность (частные производные
J
относительно MPCobj
настройка весов.) Его поля:
OutputVariables
— вектор-строка элемента ny из чувствительности относительно MPCobj.Weights.OutputVariables
ManipulatedVariables
— вектор-строка элемента nu из чувствительности относительно MPCobj.Weights.ManipulatedVariables
ManipulatedVariablesRate
— вектор-строка элемента nu из чувствительности относительно MPCobj.Weights.ManipulatedVariablesRate
Для получения дополнительной информации о настраивающемся контроллере весов свойство смотрите mpc
.
[J,sens] = sensitivity(MPCobj,'perf_fun',param1,param2,...)
использует функцию производительности 'perf_fun'
задавать J
. Его функциональное определение должно быть в форме
function J = perf_fun(MPCobj, param1, param2, ...)
Таким образом, это должно вычислить J
для данного контроллера и дополнительных параметров param1
, param2
... и это должно быть на пути MATLAB®.
При выполнении анализа чувствительности программное обеспечение игнорирует изменяющийся во времени, недиагональный, и ECR ослабляют переменные веса.