Вычислите значение метрики эффективности и ее чувствительность к диагональным весам
Задайте модель объекта управления третьего порядка с тремя управляемыми переменными и двумя управляемыми выходами.
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.
MPCobj
- Моделируйте прогнозирующий контроллерМоделируйте прогнозирующий контроллер, заданный как объект контроллера MPC. Чтобы создать контроллер MPC, используйте mpc
.
PerfFunc
- Форма функции эффективностиPerfFunc
должно быть одно из следующих:
'ISE'
(интегральная квадратичная невязка), для которой метрика эффективности
'IAE'
(интегральная абсолютная ошибка), для которой метрика эффективности
'ITSE'
(интеграл взвешенной по времени квадратичной невязки), для которой метрика эффективности
'ITAE'
(интеграл взвешенной по времени абсолютной ошибки), для которого метрика эффективности
В приведенных выше выражениях ny количество управляемых выходов, а nu количество манипулируемых переменных. eyij - разница между выходным j и его уставкой (или уставкой) во время i интервала времени. euij - различие между манипулируемыми j переменной и ее целью в интервале времени i.
Параметры w являются неотрицательными весами эффективности, заданными структурой PerfWeights
Пример: 'ITAE'
PerfWeights
- Веса функций эффективностиMPCobj.Weights
(по умолчанию) | структуруПараметры w являются неотрицательными весами эффективности, заданными структурой PerfWeights
, который содержит следующие поля:
OutputVariables
- ny вектор-строка элемента, который содержит значения
ManipulatedVariables
- nu вектор-строка элемента, который содержит значения
ManipulatedVariablesRate
- nu вектор-строка элемента, который содержит значения
Если PerfWeights
не задан, по умолчанию присваивается соответствующие веса в MPCobj
. Однако в целом веса эффективности и те, что используются в контроллере, имеют различные цели и должны быть определены соответственно.
Ns
- Количество шагов симуляцииКоличество шагов симуляции, заданное как положительное целое число.
Если вы опускаете Ns
значение по умолчанию является размером строки в зависимости от того, какой из следующих массивов имеет наибольший размер строки:
Пример: 100
r
- УставкаMPCobj.Model.Nominal.Y
(по умолчанию) | матрицаОпорный сигнал, заданная как массив. Этот массив имеет ny
столбцы, где ny
- количество выходных параметров объекта выходов. r
может иметь где угодно от 1 до Ns
строки. Если количество строк меньше Ns
отсутствующие строки равны последней строке.
Пример: ones(100,1)
v
- Измеренное входное нарушение порядкаMPCobj.Model.Nominal.U
(по умолчанию) | матрицаИзмеренный сигнал нарушения порядка, заданный как массив. Этот массив имеет nv
столбцы, где nv
- количество измеренных входных нарушений порядка. v
может иметь где угодно от 1 до Ns
строки. Если количество строк меньше Ns
отсутствующие строки равны последней строке.
Пример: [zeros(50,1);ones(50,1)]
SimOptions
- Объект опций симуляции[]
(по умолчанию) | mpcsimopt
объектИспользуйте объекты опций симуляции, чтобы задать опции, такие как сигналы шума и нарушения порядка, которые поступают в объект, но неизвестны контроллеру. Можно также использовать этот объект для задания сценария разомкнутого контура или модели объекта управления в цикле, которая отличается от модели объекта MPCobj.Model.Plant
.
Для получения дополнительной информации смотрите mpcsimopt
.
utarget
- Цель для манипулируемых переменныхMPCobj.Model.Nominal.U
(по умолчанию) | векторНеобязательный вход utarget
является вектором nu управляемых переменных целей. Их значения по умолчанию являются номинальными значениями управляемых переменных. Β uij - это изменение в манипулируемой переменной j и ее цели в временном интервале i.
Пример: [0.1;0;-0.2]
J
- Метрика эффективности для данного контроллера'double'
sens
- Чувствительность показателя эффективности Эта структура содержит и числовые частные производные от показателя эффективности J
относительно его диагональных весов. Эти частные производные, также называемые чувствительными, предлагают корректировки веса, которые должны улучшить эффективность; то есть уменьшить J
.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.