varyingGoal

Переменная настраивающая цель для запланированных на усиление контроллеров

Описание

Когда настройка зафиксировала или запланированные на усиление контроллеры в нескольких точках проекта (условия работы), вы можете должны быть настроить настраивающиеся цели в зависимости от условий работы, например, ослабить эффективность в некоторых областях рабочего диапазона. Использование 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 задает функцию одного или нескольких параметров, которая оценивает к одному из 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 абсолютный индекс в сетку точек проекта.

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

Выходные аргументы

свернуть все

Переменная настраивающая цель, возвращенная как varyingGoal объект. Этот объект получает настраивающуюся цель и ее изменение через точки проекта в переменной MATLAB. Используйте VG во входном параметре к systune так же, как вы использовали бы любой TuningGoal объект.

VG имеет следующие свойства.

СвойствоОписание
Template

Обработайте по шаблону для различной цели, сохраненной как указатель на функцию к функции одного или нескольких параметров, значения которых переключают рабочий диапазон для настройки. Начальное значение этого свойства установлено FH входной параметр.

Parameters

Настройка целевых параметров в каждой точке проекта, сохраненной как массив ячеек. Каждая запись в массиве ячеек является числовым массивом, содержащим значения параметров в каждой точке проекта. Например, для переменной цели полей с шаблоном

FG = FH = @(gm,pm) TuningGoal.Margins('u',gm,pm);
значением этого свойства является {GM,PM}, где GM и PM массивы, содержащие желаемые запасы по амплитуде и фазе в каждой точке проекта.

Начальное значение этого свойства установлено входными параметрами par1,par2,....

Settings

Имена свойства и значения, которые будут применены к каждому целевому экземпляру в различной цели, сохраненной как массив ячеек.

Значение по умолчанию: {}

SamplingGrid

Спроектируйте точки, сохраненные как структура, содержащая массив значений для каждой переменной выборки. Точки проекта не должны лежать на прямоугольной сетке и могут быть рассеяны в рабочем диапазоне. Размеры массивов в SamplingGrid и Parameters свойства должны соответствовать.

Для получения дополнительной информации о выборке сеток, смотрите SamplingGrid описание свойства на ss страница с описанием.

Значение по умолчанию: struct без полей

Name

Назовите для переменной цели. Установите Name к строке, чтобы пометить цель.

Значение по умолчанию: ''

Советы

Введенный в R2017b