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

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

loopgain

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

Можно задать loopgain как плавная передаточная функция SISO (tf, zpk, или ss модель). Также можно нарисовать кусочно-усилительный профиль с помощью 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, программное обеспечение автоматически сопоставляет ваш заданный профиль усиления с zpk модель. Величина этой модели аппроксимирует желаемый профиль усиления. Использование viewGoal(Req) чтобы построить график величины этого zpk модель.

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

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

fmax

Частота максимального усиления gmax, заданный как скалярное значение в рад/с.

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

gmax

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

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

Свойства

MaxGain

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

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

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

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

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

Примеры

свернуть все

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

Предположим, что вы настраиваете систему управления, которая имеет положение открытия цикла, идентифицированное 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)

Figure contains an axes. The axes contains an object of type line. These objects represent Max loop gain, T bound.

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

Figure contains an axes. The axes contains an object of type line. These objects represent Max loop gain, T bound.

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

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

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

Figure contains an axes. The axes contains an object of type line. These objects represent Max loop gain, T bound.

Затененная область отражает измененный профиль усиления.

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

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

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 для этой цели настройки. The 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 |. Поэтому применение требования максимального усиления без разомкнутого контура, |<reservedrangesplaceholder6>| < 1/|<reservedrangesplaceholder5>|, примерно эквивалентно применению |<reservedrangesplaceholder4>| < 1. Для циклов MIMO применяются аналогичные аргументы с ||<reservedrangesplaceholder3>|| ≈ σ max (L), где σ max является наибольшим сингулярным значением.

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

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

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

Введенный в R2016a