Цель переменной настройки для контроллеров с планированием усиления
При настройке фиксированных или запланированных по коэффициенту усиления контроллеров в нескольких точках проектирования (рабочих условиях) может потребоваться настройка целей настройки в зависимости от рабочих условий, например, для снижения производительности в некоторых областях рабочего диапазона. Использовать varyingGoal для построения целей настройки, которые неявно или явно зависят от точки проектирования.
задает переменную цель с помощью шаблона и наборов значений параметра цели. Шаблон VG = varyingGoal(FH,par1,par2,...)FH - дескриптор функции, определяющий функцию, TG = FH(p1,p2,...), что приводит к одному из TuningGoal объекты. Множества par1,par2,... укажите значения параметров цели настройки p1,p2,... в каждой точке проектирования. Использовать VG как вы бы использовали любой TuningGoal объект на входе в systune.
настраивает дополнительные свойства цели настройки.VG = varyingGoal(___,Name,Value)
Создайте цель настройки, определяющую переменный коэффициент усиления и поля фазы по сетке точек проектирования.
Предположим, что для настройки контроллера используется следующая сетка точек проектирования 5 на 5.
[alpha,V] = ndgrid(linspace(0,20,5),linspace(700,1300,5));
Предположим далее, что имеются массивы 5 на 5 целевых полей усиления и целевых полей фазы, соответствующих каждой из точек проектирования, например, следующие.
[GM,PM] = ndgrid(linspace(7,20,5),linspace(45,70,5));
Чтобы применить указанные поля в каждой точке проектирования, сначала создайте шаблон для цели полей. Шаблон представляет собой функцию, которая принимает значения коэффициента усиления и запаса по фазе и возвращает TuningGoal.Margins объект с этими полями.
FH = @(gm,pm) TuningGoal.Margins('u',gm,pm);Используйте шаблон и массивы полей для создания изменяющейся цели.
VG = varyingGoal(FH,GM,PM);
Чтобы упростить отслеживание того, какая цель относится к какой точке конструкции, используйте SamplingGrid свойство для присоединения информации о точке проектирования к VG.
VG.SamplingGrid = struct('alpha',alpha,'V',V);
Использовать VG с systune как вы бы использовать любую другую цель настройки. Использовать viewGoal визуализировать цель настройки и определить точки проектирования, которые не соответствуют целевым полям.
Создайте цель настройки, определяющую форму цикла, которая зависит от одной переменной планирования. a.
Предположим, что требуется задать форму контура с частотой пересечения, которая изменяется следующим образом: 2*a более трех расчетных точек. Чтобы выполнить это требование, сначала создайте шаблон для цели в форме цикла. Шаблон представляет собой функцию, которая принимает числовой скалярный входной параметр и возвращает TuningGoal.LoopShape объект. Ввод функции должен быть скалярным, поэтому функция создает модели LTI, представляющие формы цикла.
a = [5;10;15]; s = tf('s'); FH = @(A) TuningGoal.LoopShape('u',2*A/s);
Здесь, 'u' является точкой анализа в системе, в которой требуется задать требования к форме контура.
Используйте шаблон и массив для создания изменяющейся цели.
VG = varyingGoal(FH,a);
Прикрепить информацию о точке проектирования к VG.
VG.SamplingGrid = struct('a',a);Теперь каждое значение a связан с целью настройки, которая обеспечивает соответствующую форму цикла. Например, подтвердите, что третья запись в a, a = 15, связан с формой третьей петли, 30/s.
LS3 = getGoal(VG,'index',3);
tf(LS3.LoopGain)ans = 30 -- s Continuous-time transfer function.
Создайте цель настройки, определяющую переменный коэффициент усиления и поля фазы по сетке точек проектирования. Настройка цели настройки для оценки с размыканием цикла в местоположении 'LO' и применять только в диапазоне частот от 1 до 100 рад/с.
Укажите сетку расчетных точек и соответствующую сетку целевых полей усиления и полей фазы. Кроме того, создайте функцию шаблона для цели изменяющихся полей.
[alpha,V] = ndgrid(linspace(0,20,5),linspace(700,1300,5));
[GM,PM] = ndgrid(linspace(7,20,5),linspace(45,70,5));
FH = @(gm,pm) TuningGoal.Margins('u',gm,pm);Используйте функцию шаблона и массивы полей для создания изменяющейся цели. Кроме того, используйте Name,Value пары для указания:
Расположение, в котором открывается цикл для оценки цели настройки (Openings свойство).
Диапазон частот, в котором применяется изменяющаяся цель (Focus свойство).
Имена свойств и значения, указанные для базовой цели настройки, хранятся в Settings свойство изменяющейся цели.
VG = varyingGoal(FH,GM,PM,'Openings','LO','Focus',[1,100])
VG =
varyingGoal with properties:
Template: @(gm,pm)TuningGoal.Margins('u',gm,pm)
Parameters: {[5x5 double] [5x5 double]}
Settings: {'Openings' 'LO' 'Focus' [1 100]}
SamplingGrid: [1x1 struct]
Name: ''
Variable tuning goal acting over a 5x5 grid of (gm,pm) values.
Чтобы упростить отслеживание того, какая цель относится к какой точке конструкции, используйте SamplingGrid свойство для присоединения информации о точке проектирования к VG.
VG.SamplingGrid = struct('alpha',alpha,'V',V);
FH - Шаблон для изменяющейся целиШаблон для изменяющейся цели, указанный как дескриптор функции. FH задает функцию одного или нескольких параметров, которые вычисляются как один из TuningGoal объекты. Например, предположим, что требуется ограничить превышение в отклике шага от ввода r на вывод y в системе, и необходимо разрешить, чтобы ограничение изменялось в разных точках проектирования. Укажите шаблон как функцию, возвращающую TuningGoal.Overshoot объект. Например, можно указать FH как анонимная функция.
FH = @(os) TuningGoal.Overshoot('r','y',os);
Поскольку TuningGoal.Overshoot имеет только один параметр помимо входного и выходного сигналов, FH является дескриптором функции одного аргумента. Для других целей настройки используйте больше аргументов. Например, TuningGoal.Margins имеет два параметра, запас усиления и запас фазы. Поэтому для цели переменной маржи FH имеет два аргумента.
FH = @(gm,pm) TuningGoal.Margins('u',gm,pm);Функция шаблона обеспечивает большую гибкость при построении целей проектирования. Например, можно записать функцию, goalspec(a,b), которая конструирует спецификацию цели настройки как нетривиальную функцию параметров (a,b)и сохраните функцию в файле MATLAB ®. Затем вызывается функция шаблона. goalspec следующим образом.
FH = @(a,b) TuningGoal.Margins('u',goalspec(a,b)); Аналогично, если параметры цели настройки не помещаются в числовые массивы, можно использовать индекс точки проектирования в качестве входных данных для FH. Например, предположим, что данные коэффициента усиления и запаса по фазе хранятся в массиве структуры, S, с полями GM и PM, можно использовать следующее.
FH = @(idx) TuningGoal.Margins('u',S(idx).GM,S(idx).PM);idx - абсолютный индекс в сетке точек проектирования.
par - Настройка параметров целиПараметры цели настройки, заданные как числовой массив с теми же размерами, что и массив модели, используемый для настройки по расписанию усиления. Укажите массив для каждого параметра в цели настройки, где каждая запись в массиве является значением параметра, которое требуется применить к соответствующей точке проектирования. Например, TuningGoal.Overshoot цель имеет только один параметр, максимальное превышение. Поэтому задайте параметры следующим образом.
par = osvals;
osvals представляет собой массив значений превышения, которые необходимо применить в каждой точке проектирования.
TuningGoal.Margins цель имеет два параметра - запас усиления и запас фазы. Поэтому для цели с переменными полями укажите следующие параметры:
par1 = GM; par2 = PM;
Здесь, GM является массивом значений коэффициента усиления и PM - массив значений полей фаз, которые необходимо принудительно применять в каждой точке проектирования.
Чтобы сделать цель настройки переменной неактивной в определенной точке проектирования, задайте соответствующую запись par массив (или массивы) в NaN.
Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.
Использовать Name,Value для задания свойств базовой цели настройки. Например, предположим, что требуется создать переменную цель усиления, которая задает переменный профиль усиления между точками 'L' и 'V'. Вы также хотите обеспечить достижение цели усиления только в полосе частот [0 pi/Ts], с проемом контура в точке анализа с меткой OuterLoop. Вы используете Name,Value пары, чтобы задать эти свойства для цели усиления.
FH = @(w) TuningGoal.Gain('F','V',tf(w,[1 w])); VG = varyingGoal(FH,wdata,'Focus',[0 pi/Ts],'Openings','OuterLoop');
Какие свойства можно задать, зависит от того, какие из TuningGoal обьектует вашу функцию FH вычисляется как. Например, для большинства изменяющихся целей настройки можно задать такие свойства, как Openings, Models, и Focus. Для переменной TuningGoal.Gain цель, вы также можете использовать Name,Value пар для установки таких свойств, как Stabilize, InputScaling, и OutputScaling. Просмотр отдельных данных TuningGoal страницы ссылок на объекты для списка свойств каждой цели настройки.
VG - Цель переменной настройкиvaryingGoal объектЦель переменной настройки, возвращенная как varyingGoal объект. Этот объект фиксирует цель настройки и ее изменение в точках проектирования в переменной MATLAB. Использовать VG во входном аргументе для systune точно так же, как вы бы использовали любой TuningGoal объект.
VG имеет следующие свойства.
| Собственность | Описание |
|---|---|
Template | Шаблон для изменяющейся цели, хранящийся как дескриптор функции в функции одного или нескольких параметров, значения которых изменяются в рабочем диапазоне для настройки. Начальное значение этого свойства задается параметром |
Parameters | Настройка параметров цели в каждой точке проектирования, сохраненных в виде массива ячеек. Каждая запись в массиве ячеек является числовым массивом, содержащим значения параметров в каждой точке проектирования. Например, для цели переменных полей с шаблоном FG = FH = @(gm,pm) TuningGoal.Margins('u',gm,pm);{GM,PM}, где GM и PM представляют собой массивы, содержащие требуемые поля усиления и фазы в каждой точке проектирования. Начальное значение этого свойства задается входными аргументами |
Settings |
Имена свойств и значения, применяемые к каждому целевому экземпляру в изменяющейся цели, хранятся в виде массива ячеек. По умолчанию: |
SamplingGrid | Точки проектирования, хранящиеся в виде структуры, содержащей массив значений для каждой переменной выборки. Расчетные точки не обязательно должны лежать на прямоугольной сетке и могут быть разбросаны по всему рабочему диапазону. Размеры массивов в Дополнительные сведения о сетках выборки см. в разделе По умолчанию: |
Name | Имя цели переменной. Набор По умолчанию: |
Использовать viewGoal для визуализации целей настройки. Для различных целей настройки график цели настройки генерируется viewGoal позволяет исследовать цель настройки в каждой точке проектирования. Дополнительные сведения см. в разделе Проверка систем управления по расписанию усиления.
getGoal | systune | tunableSurface | viewGoal
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.