Переменная цель настройки для контроллеров с запланированным коэффициентом усиления
При настройке контроллеров с фиксированным или запланированным усилением в нескольких точках проекта (условиях работы), возможно, потребуется настроить цели настройки как функцию рабочих условий, например, чтобы ослабить эффективность в некоторых областях рабочей области значений. Использовать varyingGoal
создать цели настройки, которые зависят неявно или явно от проекта точки.
задает различную цель с помощью шаблона и наборов значений параметров цели. Шаблон VG
= varyingGoal(FH
,par
1,par
2,...)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));
Точно так же, если параметры tuning-goal не помещаются в числовых массивах, можно использовать индекс design-point как вход в FH
. Например, предположим, что данные о запасах по амплитуде и фазе хранятся в массиве структур, S
, с полями GM
и PM
, можно использовать следующее.
FH = @(idx) TuningGoal.Margins('u',S(idx).GM,S(idx).PM);
idx
- абсолютный индекс в сетку проекта точек.
par
- Настройка параметров целиНастройка параметров цели, заданная как числовой массив с теми же размерностями, что и массив моделей, используемый для настройки по расписанию усиления. Предоставьте массив для каждого параметра в цели настройки, где каждая запись в массиве является значением параметров, которое вы хотите применить к соответствующей точке проекта. Для примера, TuningGoal.Overshoot
цель имеет только один параметр, максимальное перерегулирование. Поэтому задайте параметры следующим образом.
par = osvals;
osvals
- массив значений перерегулирования для применения в каждой точке проекта.
The 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.