TuningGoal.LoopShape class

Пакет: TuningGoal

Форма целевого цикла для настройки системы управления

Описание

Использование TuningGoal.LoopShape задать целевую gain profile (коэффициент усиления как функцию от частоты) разомкнутый контур характеристики. TuningGoal.LoopShape ограничивает разомкнутый контур, ответ «точка-точка» (L) в заданном месте в системе управления. Используйте эту цель настройки для настройки системы управления с помощью команд настройки, таких как systune или looptune.

Когда вы настраиваете систему управления, целевой профиль усиления разомкнутого контура преобразуется в ограничения на функцию обратной чувствительности inv (S) = (I + L) и дополнительную функцию чувствительности T = 1- S. Эти ограничения проиллюстрированы для репрезентативной настроенной системы на следующем рисунке.

Там, где L намного больше 1, ограничение минимального усиления на inv (S) (зеленая затененная область) эквивалентно ограничению минимального усиления на L. Точно так же, когда L намного меньше 1, ограничение максимального усиления на T (красная затененная область) эквивалентно ограничению максимального усиления на L. Погрешность между этими двумя ограничениями в два раза больше CrossTol параметр, который задает полосу частот, где коэффициент усиления цикла может пересекать 0 дБ.

Для систем управления с несколькими входами и мультивыходами (MIMO) значения в профиле усиления, больше 1, интерпретируются как минимальные требования к эффективности. Такие значения являются нижними границами наименьшего сингулярного значения разомкнутого контура. Значения профиля усиления меньше единицы интерпретируются как минимальные требования к откату, которые являются верхними границами наибольшего сингулярного значения отклика без разомкнутого контура. Для получения дополнительной информации о сингулярных значениях см. sigma.

Использование TuningGoal.LoopShape когда форма цикла рядом с перекрестием проста или хорошо понятна (например, интегральное действие). Чтобы задать только ограничения высокого усиления или низкого усиления в определенных полосах, используйте TuningGoal.MinLoopGain и TuningGoal.MaxLoopGain. Когда вы делаете это, программное обеспечение определяет лучшую форму цикла рядом с перекрестием.

Конструкция

Req = TuningGoal.LoopShape(location,loopgain) создает цель настройки для формирования отклика без разомкнутого контура, измеренного в заданном месте. Величина передаточной функции с одним входом, с одним выходом (SISO) loopgain задает целевой профиль усиления без разомкнутого контура. Можно задать целевой профиль усиления (максимальное усиление через пару ввода-вывода) как плавную передаточную функцию или нарисовать кусочно- ошибку профиль с помощью frd модель.

Req = TuningGoal.LoopShape(location,loopgain,crosstol) задает допуск на местоположение частоты среза. crosstol выражает допуск на протяжении десятилетий. Для примера, crosstol = 0,5 позволяет кроссоверам усилений в течение полудесяца с каждой стороны целевой частоты среза, заданной loopgain. Когда опускаешь crosstol, цель настройки использует значение по умолчанию 0,1 десятилетия. Можно увеличить crosstol при настройке систем управления MIMO. Это позволяет более широко изменять частоты среза для различных циклов в системе.

Req = TuningGoal.LoopShape(location,wc) задает только целевую частоту среза коэффициента усиления. Этот синтаксис эквивалентен установке чистой формы цикла интегратора, loopgain = wc/s.

Req = TuningGoal.LoopShape(location,wcrange) задает область значений для целевой частоты среза коэффициента усиления. Область значений является вектором вида wcrange = [wc1,wc2]. Этот синтаксис эквивалентен использованию среднего геометрического sqrt(wc1*wc2) как wc и настройка crosstol по половинной ширине wcrange через десятилетия. Использование области значений вместо одной wc значение увеличивает способность алгоритма настройки применять форму целевого цикла для всех циклов в системе управления MIMO.

Входные параметры

location

Место, где измеряется форма разомкнутого контура отклика, подлежащая ограничению, задается как вектор символов или массив ячеек векторов символов, которые идентифицируют одно или несколько местоположений в системе управления для настройки. Какие локации доступны, зависит от того, какую систему вы настраиваете:

  • Если вы настраиваете Simulink® модель системы управления, можно использовать любую точку линейного анализа, отмеченную в модели, или любую точку линейного анализа в slTuner (Simulink Control Design) интерфейс, сопоставленный с моделью Simulink. Использовать addPoint (Simulink Control Design), чтобы добавить точки анализа к slTuner интерфейс. Для примера, если slTuner интерфейс содержит точку анализа u, можно использовать 'u' для обращения к этой точке при создании целей настройки. Использовать getPoints (Simulink Control Design), чтобы получить список точек анализа, доступных в slTuner интерфейс с вашей моделью.

  • Если вы настраиваете обобщенное пространство состояний (genss) модель системы управления, можно использовать любую AnalysisPoint местоположение в системной модели управления. Например, следующий код создает цикл PI с точкой анализа на входе объекта управления 'u'.

    AP = AnalysisPoint('u');
    G = tf(1,[1 2]);
    C = tunablePID('C','pi');
    T = feedback(G*AP*C,1);
    

    При создании целей настройки можно использовать 'u' для обращения к точке анализа на входе объекта управления. Использовать getPoints чтобы получить список точек анализа, доступных в genss модель.

Требование к форме цикла применяется к передаточной функции разомкнутого контура точка-точка в заданном месте. Эта передаточная функция является разомкнутой характеристикой, полученной путем инжектирования сигналов в местоположение и измерения обратных сигналов в той же точке.

Если location задает несколько местоположений, затем требование к форме цикла применяется к передаточной функции разомкнутого контура MIMO.

loopgain

Целевой профиль усиления разомкнутого контура как функция от частоты.

Можно задать loopgain как плавная передаточная функция SISO (tf, zpk, или ss модель). Также можно нарисовать кусочно-усилительный профиль с помощью frd модель или makeweight (Robust Control Toolbox) функция. Когда вы делаете это, программное обеспечение автоматически сопоставляет ваш указанный профиль усиления с zpk модель, величина которой аппроксимирует желаемый профиль усиления. Использование viewGoal(Req) чтобы построить график величины этого zpk модель.

Для систем управления с несколькими входами и мультивыходами (MIMO) значения в профиле усиления, больше 1, интерпретируются как минимальные требования к эффективности. Эти значения являются нижними границами наименьшего сингулярного значения L. Значения профиля усиления меньше единицы интерпретируются как минимальные требования к откату, которые являются верхними границами наибольшего сингулярного значения L. Для получения дополнительной информации о сингулярных значениях см. sigma.

Если вы настраиваете в дискретном времени (то есть используя a genss модель или slTuner интерфейс с ненулевым Ts), можно задать loopgain как модель в дискретном времени с такими же Ts. Если вы задаете loopgain за непрерывное время программа настройки дискретизирует его. Установка формы цикла в дискретном времени дает вам больше контроля над формой цикла около частоты Найквиста.

crosstol

Допуск в месте нахождения частоты среза, через десятилетия. задается как скалярное значение. Для примера, crosstol = 0,5 позволяет кроссоверам усилений в течение полудесяца с каждой стороны целевой частоты среза, заданной loopgain. Увеличение crosstol увеличивает способность алгоритма настройки применять форму целевого цикла для всех циклов в системе управления MIMO.

По умолчанию: 0.1

wc

Целевая частота среза, заданный как положительная скалярная величина значение. Экспресс- wc в модулях рад/ TimeUnit, где TimeUnit является TimeUnit свойство элемента управления, системной модели вы настраиваете.

wcrange

Область значений для целевой частоты среза, заданный как вектор вида [wc1,wc2]. Экспресс- wc в модулях рад/ TimeUnit, где TimeUnit является TimeUnit свойство элемента управления, системной модели вы настраиваете.

Свойства

LoopGain

Форма целевого цикла как функция от частоты, заданная как SISO zpk модель.

Программа автоматически отображает входной параметр loopgain на zpk модель. Величина этого zpk модель аппроксимирует желаемый профиль усиления. Использование viewGoal(Req) чтобы построить график величины zpk модели LoopGain.

CrossTol

Допуск по частоте среза, через десятилетия.

Начальное значение CrossTol устанавливается системой crosstol введите при создании цели настройки.

По умолчанию: 0.1

Focus

Частота полосы в которой применяется цель настройки, задается как вектор-строка формы [min,max].

Установите Focus свойство для ограничения применения цели настройки к конкретной полосе частот. Выразите это значение в частотных модулях системной модели управления, которую вы настраиваете (рад/ TimeUnit). Например, предположим Req - цель настройки, которую вы хотите применить только между 1 и 100 рад/с. Чтобы ограничить цель настройки этой полосой, используйте следующую команду:

Req.Focus = [1,100];

По умолчанию: [0,Inf] на непрерывное время; [0,pi/Ts] для дискретного времени, где Ts является моделью шага расчета.

Stabilize

Требование устойчивости по динамике замкнутого контура, заданное как 1 (true) или 0 (false).

Когда Stabilize является trueэто требование стабилизирует заданный цикл обратной связи, а также предъявляет требования к усилению или форме контура. Задайте Stabilize на false если стабильность для заданного цикла не требуется или не может быть достигнута.

По умолчанию: 1 (true)

LoopScaling

Переключение для автоматического масштабирования сигналов цикла, заданное как 'on' или 'off'.

В мультицикл или системы управления MIMO каналы обратной связи автоматически перерассчитываются, чтобы выровнять off-диагональные условия в передаточной функции разомкнутого контура (условия циклического взаимодействия). Задайте LoopScaling на 'off' отключить такое масштабирование и сформировать немасштабированную разомкнутым контуром характеристику.

По умолчанию: 'on'

Location

Местоположение, в котором измеряется форма отклика без разомкнутого контура, которая будет ограничена, задается как массив ячеек из векторов символов, которые идентифицируют одну или несколько точек анализа в системе управления, чтобы настроить. Для примера, если Location = {'u'}цель настройки оценивает разомкнутый контур ответ, измеренный в точке анализа 'u'. Если Location = {'u1','u2'}, цель настройки оценивает реакцию разомкнутого контура MIMO, измеренную в точках анализа 'u1' и 'u2'.

Начальное значение Location свойство задается функцией location входной параметр при создании цели настройки.

Models

Модели, к которым применяется цель настройки, заданные как вектор индексов.

Используйте Models свойство при настройке массива системных моделей управления с systune, чтобы применить цель настройки для подмножества моделей в массиве. Например, предположим, что вы хотите применить цель настройки, Req, ко второй, третьей и четвертой моделям в массиве моделей перешли к systune. Чтобы ограничить применение цели настройки, используйте следующую команду:

Req.Models = 2:4;

Когда Models = NaN, цель настройки применяется ко всем моделям.

По умолчанию: NaN

Openings

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

Если вы используете цель настройки, чтобы настроить модель Simulink системы управления, то Openings может включать любую линейную точку анализа, отмеченную в модели, или любую линейную точку анализа в slTuner (Simulink Control Design) интерфейс, сопоставленный с моделью Simulink. Использовать addPoint (Simulink Control Design), чтобы добавить точки анализа и открытия цикла к slTuner интерфейс. Использовать getPoints (Simulink Control Design), чтобы получить список точек анализа, доступных в slTuner интерфейс с вашей моделью.

Если вы используете цель настройки, чтобы настроить обобщенное пространство состояний (genss) модель системы управления, затем Openings может включать в себя любой AnalysisPoint местоположение в системной модели управления. Использовать getPoints чтобы получить список точек анализа, доступных в genss модель.

Для примера, если Openings = {'u1','u2'}, затем цель настройки оценивается с циклами, открытыми в точках анализа u1 и u2.

По умолчанию: {}

Name

Имя цели настройки, заданное как вектор символов.

Для примера, если Req является целью настройки:

Req.Name = 'LoopReq';

По умолчанию: []

Примеры

свернуть все

Создайте целевое требование к профилю усиления для следующей системы управления. Задайте интегральное действие, перекрещивание усилителя на 1 и требование отката 40 дБ/десятилетие.

Требование должно применяться к разомкнутой реакции, измеренной в AnalysisPoint блочное X. Задайте допуск кроссовера на 0,5 десятилетия.

LS = frd([100 1 0.0001],[0.01 1 100]);
Req = TuningGoal.LoopShape('X',LS,0.5);

Программное обеспечение преобразует LS в плавную функцию частоты, которая аппроксимирует кусочно-заданное требование. Просмотрите требование с помощью viewGoal.

viewGoal(Req)

Figure contains an axes. The axes contains an object of type line. These objects represent Target loop shape, S bound, T bound.

Зеленые и красные области указывают границы обратной чувствительности, inv(S) = 1-G*Cи взаимодополняющая чувствительность, T = 1-S, соответственно. Зазор между этими областями при усилении 0 дБ отражает заданный допуск на перекрещивание, который составляет полдесяти лет по обе стороны от пересечения целевого цикла.

Когда вы используете viewGoal(Req,CL) для проверки настроенной модели замкнутой системы управления, CL, настроенные значения S и T также нанесены на график.

Создайте отдельные требования к форме цикла для внутреннего и внешних контуров следующей системы управления.

Для внутреннего цикла задайте форму цикла с интегральным действием, переключение усилителя на 1 и требование отката 40 дБ/десятилетие. Кроме того, задайте, что это требование к форме цикла должно быть применено при открытом внешнем контуре.

LS2 = frd([100 1 0.0001],[0.01 1 100]);
Req2 = TuningGoal.LoopShape('X2',LS2);
Req2.Openings = 'X1';

Определение 'X2' для location указывает, что Req2 применяется к точке -к точке разомкнутого контура передаточной функции в местоположении X2. Настройка Req2.Openings указывает, что цикл открыт в точке анализа X1 когда Req2 принудительно.

По умолчанию Req2 налагает требование устойчивости на внутренний цикл, а также требование к форме цикла. Однако в некоторых системах управления устойчивость внутреннего контура может не потребоваться, или может оказаться невозможной. В этом случае снимите требование устойчивости с Req2 следующим образом.

Req2.Stabilize = false;

Для внешнего контура задайте форму цикла с интегральным действием, пересечение усилителя на 0,1 и требование отката 20 дБ/десятилетие.

LS1 = frd([10 1 0.01],[0.01 0.1 10]);
Req1 = TuningGoal.LoopShape('X1',LS1);

Определение 'X1' для location указывает, что Req1 применяется к точке -к точке разомкнутого контура передаточной функции в местоположении X1. Вам не нужно устанавливать Req1.Openings поскольку эта форма цикла принудительно закрывается внутренним циклом.

Можно хотеть настроить систему управления с обоими требованиями к формированию цикла Req1 и Req2. Для этого используйте оба требования в качестве входов для команды настройки. Например, предположим CL0 является настраиваемым genss модель системы управления с обратной связью. В этом случае используйте [CL,fSoft] = systune(CL0,[Req1,Req2]) настройка системы управления в соответствии с обоими требованиями.

Создайте требование к форме контура для цикла обратной связи на 'q' в модели Simulink rct_airframe2. Задайте, что требование к форме контура принудительно выполняется с помощью 'az' цикл разомкнут.

Откройте модель.

open_system('rct_airframe2')

Создайте требование к форме цикла, которое обеспечивает интегральное действие с перекрестием 2 рад/с для 'q' цикл. Эта форма цикла соответствует форме цикла 2/_s_.

s = tf('s');
shape = 2/s;
Req = TuningGoal.LoopShape('q',shape);

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

Req.Openings = 'az';

Чтобы использовать это требование для настройки модели Simulink, создайте slTuner интерфейс с моделью. Идентифицируйте блок для настройки в интерфейсе.

ST0 = slTuner('rct_airframe2','MIMO Controller');

Обозначить обе az и q как точки анализа в slTuner интерфейс.

addPoint(ST0,{'az','q'});

Эта команда делает q доступно как место анализа. Это также позволяет применять требование настройки, при этом цикл открыт на az.

Теперь можно настроить модель, используя Req и любые другие требования к настройке. Для примера:

[ST,fSoft] = systune(ST0,Req);
Final: Soft = 0.845, Hard = -Inf, Iterations = 51

Создайте требование настройки, указывающее, что реакция разомкнутого контура идентифицируется 'X' кросс-единица усиления между 50 и 100 рад/с.

Req = TuningGoal.LoopShape('X',[50,100]);

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

viewGoal(Req)

Figure contains an axes. The axes contains an object of type line. These objects represent Target loop shape, S bound, T bound.

Этот график показывает, что требование задает интегральную форму цикла с перекрестием вокруг 70 рад/с, геометрического среднего значения области значений [50 100]. Зазор на 0 дБ между минимальным усилением низкой частоты (зеленая область) и максимальным усилением высокой частоты (красная область) отражает допустимую область значений пересечения [50 100].

Совет

  • Эта цель настройки накладывает неявное ограничение устойчивости на функцию чувствительности с обратной связью, измеренную в Location, оцениваемый с циклами, открытыми в точках, идентифицированных в Openings. Динамика, на которую влияет это неявное ограничение, является stabilized dynamics для этой цели настройки. The MinDecay и MaxRadius опции systuneOptions управляйте границами этой неявно ограниченной динамики. Если оптимизация не соответствует границам по умолчанию или если границы по умолчанию конфликтуют с другими требованиями, используйте systuneOptions для изменения этих значений по умолчанию.

Алгоритмы

Когда вы настраиваете систему управления, используя TuningGoalпрограммное обеспечение преобразует цель настройки в нормированное скалярное значение f (x), где x является вектором свободных (настраиваемых) параметров в системе управления. Затем программа настраивает значения параметров, чтобы минимизировать f (x) или привести f (x) ниже 1, если цель настройки является жестким ограничением.

Для TuningGoal.LoopShape, f (x) определяется:

f(x)=WSSWTT.

Здесь S = D–1[I – L (s, x)]–1D - это масштабированная функция чувствительности в заданном местоположении, где L (s, x) - это формируемая разомкнутым контуром реакция. D является автоматически вычисляемым коэффициентом масштабирования цикла. (Если LoopScaling для свойства задано значение 'off', затем D = I.) T = S - I является дополнительной функцией чувствительности.

WS и WT являются функциями взвешивания частот, выведенными из заданной формы цикла. Усиления этих функций примерно совпадают LoopGain и 1/LoopGain, для значений в диапазоне от -20 дБ до 60 дБ. По числовым причинам функции взвешивания выравниваются вне этой области значений, если заданный профиль усиления цикла не изменяет наклон для коэффициентов усиления выше 60 дБ или ниже -60 дБ. Потому что полюсы WS или WT близки к s = 0 или s = Inf может привести к плохому числовому обусловлению systune задача оптимизации, не рекомендуется задавать цикл формы с очень низкочастотной или очень высокочастотной динамикой.

Для получения WS и WT используйте:

[WS,WT] = getWeights(Req,Ts)

где Req является целью настройки, и Ts - шаг расчета, в который вы настраиваете (Ts = 0 на непрерывное время). Для получения дополнительной информации о эффектах функций взвешивания на числовую стабильность, смотрите Визуализация целей настройки.

Вопросы совместимости

расширить все

Поведение изменено в R2016a

Введенный в R2016a