TuningGoal.MaxLoopGain class

Пакет: TuningGoal

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

Описание

Используйте TuningGoal.MaxLoopGain осуществлять максимальное усиление цикла и желаемый спад в конкретном диапазоне частот. Используйте эту настраивающую цель с настраивающими командами системы управления, такими как systune или looptune.

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

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

Следующий рисунок показывает типичный заданный максимальный профиль усиления (пунктирная линия) и получившееся настроенное усиление цикла, L (синяя линия). Теневая область представляет значения профиля усиления, которые запрещаются этой настраивающей целью. Рисунок показывает, что то, когда L намного меньше, чем 1, налагая максимальное усиление на T, является хорошим прокси для максимального коэффициента усиления разомкнутого контура.

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

Конструкция

Req = TuningGoal.MaxLoopGain(location,loopgain) создает настраивающуюся цель по ограничению усиления обратной связи MIMO или SISO. Настраивающаяся цель ограничивает частотную характеристику разомкнутого контура, измеренную в заданных местоположениях к максимальному профилю усиления, заданному loopgain. Можно задать максимальный профиль усиления как сглаженную передаточную функцию или делать набросок кусочного ошибочного профиля с помощью frd модель или makeweight (Robust Control Toolbox) команда. Только получите значения, меньшие, чем 1, осуществляются.

Req = TuningGoal.MaxLoopGain(location,fmax,gmax) задает максимальный профиль усиления формы loopgain = K/s (интегральное действие). Программное обеспечение выбирает K таким образом, что значением усиления является gmax на заданной частоте, fmax.

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

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 получить список аналитических точек, доступных в a genss модель.

Если location массив ячеек открывающих цикл местоположений, затем максимальное требование усиления применяется к получившемуся циклу MIMO.

loopgain

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

Можно задать loopgain как сглаженная передаточная функция SISO (tf, zpk, или ss модель). В качестве альтернативы можно делать набросок кусочного профиля усиления с помощью a frd модель или makeweight (Robust Control Toolbox) команда. Например, следующий frd модель задает максимальное усиление 1 (0 дБ) на уровне 1 рад/с, прокручивающегося прочь на уровне-20 дБ/декабрей до 10 рад/с и уровне-40 дБ/декабрей на более высоких частотах.

loopgain = frd([1 1e-1 1e-3],[1 10 100]);
bodemag(loopgain)

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

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

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

fmax

Частота максимального усиления gmaxВ виде скалярного значения в rad/s.

Используйте этот аргумент, чтобы задать максимальный профиль усиления формы loopgain = K/s (интегральное действие). Программное обеспечение выбирает K таким образом, что значением усиления является gmax на заданной частоте, fmax.

gmax

Значение максимального усиления, происходящего в fmaxВ виде скалярного абсолютного значения.

Используйте этот аргумент, чтобы задать максимальный профиль усиления формы loopgain = K/s (интегральное действие). Программное обеспечение выбирает K таким образом, что значением усиления является gmax на заданной частоте, fmax.

Свойства

MaxGain

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

Программное обеспечение автоматически сопоставляет входной параметр loopgain на a zpk модель. Величина этого zpk модель аппроксимирует желаемый профиль усиления. В качестве альтернативы, если вы используете fmax и gmax аргументы, чтобы задать профиль усиления, это свойство установлено в K/s. Программное обеспечение выбирает K таким образом, что значением усиления является gmax на заданной частоте, fmax.

Используйте viewGoal(Req) чтобы построить величину максимума разомкнутого контура получают профиль.

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 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';

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

Примеры

свернуть все

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

Предположим, что вы настраиваете систему управления, которая имеет открывающее цикл расположение, идентифицированное PILoop. Ограничьте коэффициент усиления разомкнутого контура, измеренный в том местоположении к 1 (0 дБ) на уровне 1 рад/с, прокручивающегося прочь на уровне-20 дБ/декабрей до 10 рад/с и уровне-40 дБ/декабрей на более высоких частотах. Используйте frd модель, чтобы делать набросок этого профиля усиления.

loopgain = frd([1 1e-1 1e-3],[1 10 100]);
Req = TuningGoal.MaxLoopGain('PILoop',loopgain);

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

viewGoal(Req)

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

Можно использовать Req как вход к looptune или systune при настройке системы управления. Затем используйте viewGoal(Req,T) сравнить настроенное усиление цикла с минимальным усилением задало в настраивающейся цели, где T представляет настроенную систему управления.

Создайте настраивающуюся цель, которая задает максимальное усиление цикла формы L = K / s. Максимальное усиление достигает значения-20 дБ (0.01) на уровне 100 рад/с.

Req = TuningGoal.MaxLoopGain('X',100,0.01);
viewGoal(Req)

viewGoal подтверждает, что настраивающаяся цель правильно задана. Можно использовать эту настраивающую цель настроить систему управления, которая имеет открывающее цикл расположение, идентифицированное как 'X'. Поскольку значения усиления цикла, больше, чем 1, проигнорированы, это требование задает спад на 20 дБ/десятилетие выше 1 рад/с без ограничения на усиление цикла ниже той частоты.

Несмотря на то, что заданный профиль усиления (пунктирная линия) является чистым интегратором по числовым причинам, профиль усиления, осуществленный во время настройки, выравнивается на очень высоких частотах, как описано в Алгоритмах. Чтобы видеть упорядоченный профиль усиления, расширьте оси целевого настройкой графика.

xlim([10^-2,10^4])
ylim([-80,20])

Теневая область отражает модифицированный профиль усиления.

Создайте требования, которые задают минимальное усиление цикла 20 дБ (100) на уровне 50 рад/с и максимальное усиление цикла-20 дБ (0.01) на уровне 1 000 рад/с на внутреннем цикле следующей системы управления.

Создайте максимальные и минимальные требования усиления цикла.

RMinGain = TuningGoal.MinLoopGain('X2',50,100);
RMaxGain = TuningGoal.MaxLoopGain('X2',1000,0.01);

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

RMinGain.Openings = 'X1';
RMaxGain.Openings = 'X1';

Установка Req.Openings говорит настраивающемуся алгоритму осуществлять требования с циклом, открытым в заданном местоположении. С открытым внешним контуром требования применяются только к внутреннему циклу.

По умолчанию, настройка использования TuningGoal.MinLoopGain или TuningGoal.MaxLoopGain налагает требование устойчивости, а также минимальное или максимальное усиление цикла. Практически, в некоторых системах управления не возможно достигнуть устойчивого внутреннего цикла. В этом случае удалите требование устойчивости для внутреннего цикла путем установки Stabilize свойство к false.

RMinGain.Stabilize = false;
RMaxGain.Stabilize = false;

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

Советы

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

Алгоритмы

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

Для TuningGoal.MaxLoopGain, f (x) дают:

f(x)=WT(D1TD).

Здесь, D является масштабированием диагонали (для циклов MIMO). T является дополнительной функцией чувствительности в Location. WT является функцией взвешивания частоты, выведенной из максимального профиля усиления цикла, MaxGain. Усиление этой функции примерно совпадает с 1/MaxGain для значений в пределах от-60 дБ к 20 дБ. По числовым причинам функция взвешивания выравнивается вне этой области значений, если заданный профиль усиления не изменяет наклон вне этой области значений. Эта корректировка называется regularization. Поскольку полюса WT близко к s = 0 или s = Inf может привести к плохому числовому созданию условий systune задача оптимизации, не рекомендуется задать профили усиления с очень низкочастотной или очень высокочастотной динамикой.

Чтобы получить WT, используйте:

WT = getWeight(Req,Ts)

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

Несмотря на то, что T является передаточной функцией с обратной связью, управление f (x) <1 эквивалентно осуществлению верхней границы на передаче разомкнутого контура, L, в диапазоне частот, где усиление L меньше того. Чтобы видеть почему, обратите внимание что T = L / (I + L). Для циклов SISO, когда |L | <<1, |T | ≈ |L |. Поэтому осуществление требования усиления максимума разомкнутого контура, |L | <1 / | WT |, примерно эквивалентно осуществлению |WTT | <1. Для циклов MIMO подобное обоснование применяется, с || T || ≈ σ, макс. (L), где σ макс. является самым большим сингулярным значением.

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

развернуть все

Поведение изменяется в R2016a

Введенный в R2016a