Расчет значения показателя производительности и его чувствительности к диагональным весам
Определите модель завода третьего порядка с тремя управляемыми переменными и двумя управляемыми выходами.
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' (интегральная квадратичная ошибка), для которой метрика производительности
wjΔuΔuij) 2])
'IAE' (интегральная абсолютная ошибка), для которой метрика производительности
wjΔuΔuij |))
'ITSE' (интеграл взвешенной по времени квадратной ошибки), для которой метрика производительности
wjΔuΔuij) 2])
'ITAE' (интеграл взвешенной по времени абсолютной ошибки), для которой метрика производительности
wjΔuΔuij |))
В вышеприведенных выражениях ny - количество управляемых выходов, а nu - количество манипулируемых переменных. eyij - разность между выходом j и его уставкой (или опорным) значением на временном интервале i euij - разность между манипулируемой переменной j и ее целью на временном интервале i.
Параметры w являются неотрицательными весами производительности, определяемыми структурой PerfWeights
Пример: «ITAEA»;
PerfWeights - Веса рабочих функцийMPCobj.Weights (по умолчанию) | структураПараметры w являются неотрицательными весами производительности, определяемыми структурой PerfWeights, который содержит следующие поля:
OutputVariables - вектор строки элемента ny, содержащий значения wjy
ManipulatedVariables - вектор строки элемента nu, содержащий значения wju
ManipulatedVariablesRate - вектор строки элемента nu, содержащий значения wjΔu
Если 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.