exponenta event banner

Класс TuningGoal.MinLoopGain

Пакет: TuningGoal

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

Описание

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

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

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

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

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

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

Req = TuningGoal.MinLoopGain(location,loopgain) создает цель настройки для повышения усиления контура обратной связи SISO или MIMO. Цель настройки определяет, что частотная характеристика (L) разомкнутого контура, измеренная в указанных местоположениях, превышает минимальный профиль усиления, заданный loopgain.

Можно задать профиль минимального усиления как функцию плавного переноса или нарисовать кусочный профиль ошибки с помощью frd модель или makeweight (Надёжная панель инструментов управления). Применяются только значения коэффициента усиления больше 1.

Для контуров обратной связи MIMO заданный профиль усиления интерпретируется как нижняя граница наименьшего сингулярного значения L.

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

Входные аргументы

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 модель определяет минимальный коэффициент усиления 100 (40 дБ) ниже 0,1 рад/с, откатываясь со скоростью -20 дБ/dec на более высоких частотах.

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

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

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

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

fmin

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

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

gmin

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

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

Свойства

MinGain

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

Программа автоматически сопоставляет входной аргумент loopgain на zpk модель. Масштабы этого zpk модель аппроксимирует требуемый профиль усиления. Или, если вы используете fmin и gmin аргументы для указания профиля усиления, это свойство имеет значение K/s. Программное обеспечение выбирает K таким образом, что значение коэффициента усиления равно gmin на заданной частоте, fmin.

Использовать 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. Укажите, что коэффициент усиления с разомкнутым контуром, измеренный в этом месте, превышает минимальный коэффициент усиления 10 (20 дБ) ниже 0,1 рад/с со скоростью -20 дБ/дец на более высоких частотах. Использовать frd для построения эскиза этого профиля усиления.

loopgain = frd([10 10 0.1],[0 1e-1 10]);
Req = TuningGoal.MinLoopGain('PILoop',loopgain);

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

viewGoal(Req)

Figure contains an axes. The axes contains an object of type line. These objects represent Min loop gain, inv(S) bound.

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

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

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

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

Figure contains an axes. The axes contains an object of type line. These objects represent Min loop gain, inv(S) bound.

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

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

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

Figure contains an axes. The axes contains an object of type line. These objects represent Min loop gain, inv(S) bound.

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

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

Чтобы увидеть эту связь между минимальным коэффициентом усиления контура и функцией чувствительности, настройте следующую замкнутую систему с точками анализа в X1 и X2. Система управления имеет настраиваемые ПИД контроллеры C1 и C2.

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

G2 = zpk([],-2,3);
G1 = zpk([],[-1 -1 -1],10);
C20 = tunablePID('C2','pi');
C10 = tunablePID('C1','pid');
X1 = AnalysisPoint('X1');
X2 = AnalysisPoint('X2');
InnerLoop = feedback(X2*G2*C20,1);
CL0 = feedback(G1*InnerLoop*C10,X1);
CL0.InputName = 'r';
CL0.OutputName = 'y';

Укажите некоторые цели настройки, включая минимальный коэффициент усиления цикла. Настройте систему управления на эти требования.

Rtrack = TuningGoal.Tracking('r','y',10,0.01);
Rreject = TuningGoal.Gain('X2','y',0.1);
Rgain = TuningGoal.MinLoopGain('X2',100,10000);
Rgain.Openings = 'X1';

opts = systuneOptions('RandomStart',2);
rng('default');  % for reproducibility
[CL,fSoft] = systune(CL0,[Rtrack,Rreject,Rgain]);
Final: Soft = 1.07, Hard = -Inf, Iterations = 115
       Some closed-loop poles are marginally stable (decay rate near 1e-07)

Осмотрите TuningGoal.MinLoopGain цель против соответствующего настроенного ответа.

viewGoal(Rgain,CL)

Figure contains an axes. The axes contains 3 objects of type line. These objects represent inv(S), Loop gain(s), Min loop gain, inv(S) bound.

График показывает достигнутый коэффициент усиления контура при X2 (синяя линия). На графике также показана обратная достигнутая функция чувствительности, S, в месте X2 (зеленая линия). Функция обратной чувствительности в этом месте задается inv(S) = I+L. Здесь, L - передача разомкнутого контура от точки к точке, измеренная при X2.

Цель минимального усиления контура Rgain является ограничением для inv(S), представленный на сюжете зелёной затенённой областью. Ограничение на inv(S) может рассматриваться как ограничение минимального усиления на L это применимо, когда выигрыш L (или наименьшее сингулярное значение L, для циклов MIMO) больше 1.

Создайте требования, определяющие минимальный коэффициент усиления контура 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.MinLoopGain, f (x) задается следующим образом:

f (x) =‖WS (D 1SD) ‖ ∞.

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

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

WS = getWeight(Req,Ts)

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

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

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

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

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

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

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