Вычислите значение показателя производительности и его чувствительности к диагональным весам
Задайте модель объекта управления третьего порядка с тремя переменными, которыми управляют, и двумя управляемыми выходными параметрами.
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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.