TuningGoal. Класс LoopShape

Пакет: 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. Используйте addPoint, чтобы добавить, что анализ указывает на интерфейс slTuner. Например, если интерфейс slTuner содержит аналитическую точку u, можно использовать 'u', чтобы относиться к той точке при создании настраивающихся целей. Используйте getPoints, чтобы получить список аналитических точек, доступных в интерфейсе 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 в модулях rad/TimeUnit, где TimeUnit является свойством TimeUnit модели системы управления, вы настраиваетесь.

wcrange

Расположитесь для целевой перекрестной частоты, заданной как вектор формы [wc1,wc2]. Выразите wc в модулях rad/TimeUnit, где TimeUnit является свойством TimeUnit модели системы управления, вы настраиваетесь.

Свойства

LoopGain

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

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

CrossTol

Допуск на усилении перекрестно соединяет частоту в десятилетиях.

Начальное значение CrossTol установлено входом crosstol, когда вы создаете настраивающуюся цель.

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

Focus

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

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

Зеленые и красные области указывают на границы для обратной чувствительности, 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 = 50

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

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

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

viewGoal(Req)

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

Советы

  • Эта настраивающая цель налагает неявное ограничение устойчивости на функцию чувствительности с обратной связью, измеренную в Location, оцененном с циклами, открытыми в точках, идентифицированных в Openings. Движущими силами, затронутыми этим неявным ограничением, является stabilized dynamics для этой настраивающей цели. 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