TuningGoal.Margins class

Пакет: TuningGoal

Требование по запасу устойчивости для настройки системы управления

Описание

Использование TuningGoal.Margins для определения цели настройки для усиления и запасов по фазе цикла обратной связи SISO или MIMO. Можно использовать эту цель настройки для проверки настроенной системы управления с viewGoal. Можно также использовать цель настройки для настройки системы управления с помощью команд настройки, таких как systune или looptune.

После того, как вы создаете цель настройки, можно сконфигурировать ее дальше, задав Свойства объекта.

После использования цели настройки для настройки системы управления можно визуализировать цель настройки и настроенное значение, используя viewGoal команда. Для получения информации о интерпретации цели полей смотрите Запасы устойчивости в Настройке системы управления.

Конструкция

Req = TuningGoal.Margins(location,gainmargin,phasemargin) создает цель настройки, которая задает минимальные запасы по усилению и фазе в заданном месте в системе управления.

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

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.

gainmargin

Необходимый минимальный запас по амплитуде для цикла обратной связи, заданный как скалярное значение в дБ. TuningGoal.Margins использует дисковые усиление и запасы по фазе, которые обеспечивают более сильную гарантию устойчивости, чем классические усиление и запасы по фазе. (Для получения дополнительной информации о полях диска см. Анализ устойчивости с использованием полей диска (Robust Control Toolbox).)

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

  • Для системы SISO установка gainmargin = 3 задает требование, чтобы система с обратной связью оставалась стабильной для изменений коэффициента усиления без разомкнутого контура до ± 3 дБ.

  • Для системы MIMO установка gainmargin = 3 задает требование, чтобы закрытая система оставалась стабильной для изменений усиления до ± 3 дБ в каждом канале обратной связи. Коэффициент усиления может изменяться во всех каналах одновременно и на разную величину в каждом канале.

phasemargin

Необходимый минимальный запас по фазе для цикла обратной связи, заданный как скалярное значение в степенях. TuningGoal.Margins использует дисковые усиление и запасы по фазе, которые обеспечивают более сильную гарантию устойчивости, чем классические усиление и запасы по фазе. (Для получения дополнительной информации о полях диска см. Анализ устойчивости с использованием полей диска (Robust Control Toolbox).)

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

  • Для системы SISO установка phasemargin = 45 задает требование, чтобы система с обратной связью оставалась стабильной для изменений до ± 45 ° в фазе отклика без разомкнутого контура.

  • Для системы MIMO установка phasemargin = 45 задает требование, чтобы закрытая система оставалась стабильной для изменения фазы до ± 45 ° в каждом канале обратной связи. Фаза может изменяться во всех каналах одновременно и на разную величину в каждом канале.

Свойства

GainMargin

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

Значение GainMargin свойство задается функцией gainmargin входной параметр при создании цели настройки.

PhaseMargin

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

Значение PhaseMargin свойство задается функцией phasemargin входной параметр при создании цели настройки.

ScalingOrder

Управляет порядком (количеством состояний) масштабирования, участвующего в вычислении запасов устойчивости MIMO. Статические масштабирования (ScalingOrder = 0) используются по умолчанию. Увеличение порядка может улучшить результаты за счет увеличения расчетов. Использовать viewGoal для оценки разрыва между оптимизированной и фактической маржой. Если эта погрешность слишком велика, рассмотрите увеличение порядка масштабирования. Смотрите Запасы устойчивости в настройке системы управления.

По умолчанию: 0 (статическое масштабирование)

Focus

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

Установите Focus свойство для ограничения применения цели настройки к конкретной полосе частот. Для наилучших результатов с требованиями по запасу устойчивости выберите полосу, простирающийся примерно на одно десятилетие с каждой стороны частот среза усиления. Например, предположим Req является TuningGoal.Margins объект, который вы используете, чтобы настроить систему с полосой пропускания приблизительно 10 рад/с. Чтобы ограничить применение цели настройки, используйте следующую команду:

Req.Focus = [1,100];

По умолчанию: [0,Inf] на непрерывное время; [0,pi/Ts] для дискретного времени, где Ts является моделью шага расчета.

Location

Расположение, в котором применяются минимальные поля усиления и фазы, заданное как массив ячеек из символьных векторов, которые идентифицируют одну или несколько точек анализа в системе управления, чтобы настроить. Для примера, если Location = {'u'}цель настройки применяет минимальные запасы по усилению и фазе в точке анализа 'u'.

Значение 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';

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

Примеры

свернуть все

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

Создайте модель системы. Для этого задайте и соедините числовые модели объекта управления G1 и G2и настраиваемые контроллеры C1 и C2. Также задайте и соедините AnalysisPoint блоки AP1 и AP2 это помечает интересующие точки для анализа и настройки.

G1 = tf(10,[1 10]);
G2 = tf([1 2],[1 0.2 10]);
C1 = tunablePID('C','pi');
C2 = tunableGain('G',1);
AP1 = AnalysisPoint('AP1');
AP2 = AnalysisPoint('AP2');
T = feedback(G1*feedback(G2*C2,AP2)*C1,AP1);

Создайте объект требования к настройке.

Req = TuningGoal.Margins('AP2',5,40);

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

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

Req.Openings = {'AP1'};

Добавление 'AP1' на Openings свойство объекта требований к настройке гарантирует, что systune оценивает требование с циклом, открытым в этом месте.

Использование systune для настройки свободных параметров T для удовлетворения требования настройки, заданного Req. Затем можно использовать viewGoal для проверки настроенной системы управления в соответствии с требованиями.

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

Требование устанавливает минимальный запас по амплитуде 10 дБ и минимальный запас по фазе 40 степеней в полосе от 0,1 до 10 рад/с.

Req = TuningGoal.Margins({'r','theta','phi'},10,40);

Имена 'r', 'theta', и 'phi' необходимо указать допустимые местоположения открытия контура в системе управления, которую вы настраиваете.

Ограничьте требование частотой, полосой от 0,1 до 10 рад/с.

 Req.Focus = [0.1 10];

Совет

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

Алгоритмы

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

Для TuningGoal.Margins, f (x) определяется:

f(x)=2αSαI.

S = D–1[I – L (s, x)]–1D - масштабированная функция чувствительности.

L (s, x) - это формируемая разомкнутым контуром реакция.

D является автоматически вычисляемым коэффициентом масштабирования цикла. Для получения дополнительной информации о D смотрите Запасы устойчивости в Настройке системы управления.

α является скалярным параметром, вычисленным из заданных запаса по амплитуде и фазе. Дополнительные сведения о α см. в разделе Анализ устойчивости с использованием полей диска (Robust Control Toolbox).

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

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

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

Введенный в R2016a