exponenta event banner

Класс TuningGoal.LoopShape

Пакет: TuningGoal

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

Описание

Использовать TuningGoal.LoopShape задание целевого профиля усиления (усиления как функции частоты) отклика с разомкнутым контуром. 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 (Надёжная панель инструментов управления). При этом программа автоматически сопоставляет указанный профиль усиления с zpk модель, величина которой аппроксимирует требуемый профиль усиления. Использовать viewGoal(Req) для построения графика величины этого zpk модель.

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

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