varyingGoal

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

Когда настройка зафиксировала или запланированные на усиление контроллеры в нескольких точках проекта (условия работы), вы можете должны быть настроить настраивающиеся цели как функцию условий работы, например, ослабить производительность в некоторых областях рабочего диапазона. Используйте varyingGoal, чтобы создать настраивающиеся цели, которые зависят неявно или явным образом на точке проекта.

Синтаксис

VG = varyingGoal(FH,par1,par2,...)
VG = varyingGoal(___,Name,Value)

Описание

пример

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 как анонимную функцию (MATLAB).

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