exponenta event banner

Класс TuningGoal.MaxLoopGain

Пакет: TuningGoal

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

Описание

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

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

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

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

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

Строительство

Req = TuningGoal.MaxLoopGain(location,loopgain) создает цель настройки для ограничения усиления цикла обратной связи SISO или MIMO. Цель настройки ограничивает частотную характеристику разомкнутого контура, измеренную в указанных местоположениях, максимальным профилем усиления, указанным loopgain. Можно задать профиль максимального усиления как функцию плавного переноса или нарисовать кусочный профиль ошибки с помощью frd модель или makeweight (Надёжная панель инструментов управления). Применяются только значения коэффициента усиления меньше 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 (Надёжная панель инструментов управления). Например, следующее: 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.

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

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

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

Алгоритмы

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

Для TuningGoal.MaxLoopGain, f (x) задается следующим образом:

f (x) =‖WT (D 1TD) ‖ ∞.

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

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

WT = getWeight(Req,Ts)

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

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

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

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

В R2016a изменилось поведение

Представлен в R2016a