TuningGoal.Sensitivity class

Пакет: TuningGoal

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

Описание

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

Конструкция

Req = TuningGoal.Sensitivity(location,maxsens) создает цель настройки для ограничения чувствительности нарушений порядка ввода цикла обратной связи в заданном местоположении. maxsens задает максимальную чувствительность как функцию частоты. Можно задать профиль максимальной чувствительности как гладкая передаточная функция или нарисовать кусочно- ошибку профиль с помощью frd модель или makeweight (Robust Control Toolbox).

Посмотрите getSensitivity (Simulink Control Design) для получения дополнительной информации о функциях чувствительности.)

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

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.

maxsens

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

Можно задать maxsens как плавная передаточная функция SISO (tf, zpk, или ss модель). Также можно нарисовать кусочно-усилительный профиль с помощью frd модель или makeweight (Robust Control Toolbox). Для примера выполните следующее frd модель задает максимальную чувствительность 0,01 (-40 дБ) при 1 рад/с, увеличиваясь до 1 (0 дБ) после 50 рад/с.

maxsens = frd([0.01 1 1],[1 50 100]);
bodemag(maxsens)
ylim([-45,5])

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

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

Свойства

MaxSensitivity

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

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

Focus

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

Установите Focus свойство для ограничения применения цели настройки к конкретной полосе частот. Выразите это значение в частотных модулях системной модели управления, которую вы настраиваете (рад/ TimeUnit). Например, предположим Req - цель настройки, которую вы хотите применить только между 1 и 100 рад/с. Чтобы ограничить цель настройки этой полосой, используйте следующую команду:

Req.Focus = [1,100];

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

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

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

Примеры

Чувствительность к нарушениям порядка на входе в объект

Создайте цель настройки, которая ограничивает чувствительность к нарушениям порядка на входе объекта следующей системы управления. Система управления содержит точку анализа с именем 'X' на входе объекта.

Задайте максимальную чувствительность 0,01 (-40 дБ) при 1 рад/с, увеличившись до 1 (0 дБ) за 10 рад/с. Использование frd модель, чтобы нарисовать эту целевую чувствительность.

maxsens = frd([0.01 1 1],[1 10 100]);
Req = TuningGoal.Sensitivity('X',maxsens);

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

viewGoal(Req)

Figure contains an axes. The axes contains an object of type line. These objects represent Max sensitivity, Effective bound.

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

Цель чувствительности с ограниченной частотной областью значений и применением модели

Создайте цель настройки, которая задает максимальную чувствительность 0,1 (10%) на частотах ниже 5 рад/с. Сконфигурируйте цель настройки, чтобы применить только ко второй и третьей моделям объекта управления.

Req = TuningGoal.Sensitivity('u',0.1);
Req.Focus = [0 5];
Req.Models = [2 3];

Можно использовать Req как вход в looptune или systune при настройке системы управления, которая имеет точку анализа, называемую 'u'. Установка Focus свойство ограничивает применение цели настройки частотами от 0 до 5 рад/с. Установка Models свойство ограничивает применение цели настройки ко второй и третьей моделям в массиве, когда вы используете цель настройки, чтобы настроить массив системных моделей управления.

Совет

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

Алгоритмы

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

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

f(x)=WS(s)S(s,x),

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

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

WS = getWeight(Req,Ts)

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

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

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

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

Введенный в R2016a