TuningGoal.Gain class

Пакет: TuningGoal

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

Описание

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

Когда вы используете TuningGoal.Gainпрограммное обеспечение пытается настроить систему так, чтобы коэффициент усиления от заданного входа до заданного выхода не превышал заданного значения. По умолчанию ограничение применяется с замкнутым циклом. Чтобы применить ограничение к отклику без разомкнутого контура, используйте Openings свойство TuningGoal.Gain объект.

Можно использовать ограничение усиления для:

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

  • Включите пользовательскую скорость отключения в конкретной полосе частот, задав профиль усиления в этой полосе

Конструкция

Req = TuningGoal.Gain(inputname,outputname,gainvalue) создает цель настройки, которая ограничивает коэффициент усиления от inputname на outputname чтобы оставаться ниже значения gainvalue.

Можно задать inputname или outputname как массивы ячеек (векторные сигналы). Если вы это делаете, то цель настройки ограничивает самое большое сингулярное значение передаточной матрицы из inputname на outputname. Посмотрите sigma для получения дополнительной информации о сингулярных значениях.

Req = TuningGoal.Gain(inputname,outputname,gainprofile) задает максимальный коэффициент усиления как функцию от частоты. Можно задать целевой профиль усиления (максимальное усиление через пару ввода-вывода) как плавную передаточную функцию. Также можно нарисовать кусочно- ошибку профиль с помощью frd модель.

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

inputname

Входные сигналы для цели настройки, заданные как вектор символов или, для целей настройки с несколькими входами, массив ячеек из векторов символов.

  • Если вы используете цель настройки, чтобы настроить Simulink® модель системы управления, затем inputname может включать:

    • Любой вход модели.

    • Любая точка линейного анализа, отмеченная в модели.

    • Любая точка линейного анализа в slTuner (Simulink Control Design) интерфейс, сопоставленный с моделью Simulink. Использовать addPoint (Simulink Control Design), чтобы добавить точки анализа к slTuner интерфейс. Использовать getPoints (Simulink Control Design), чтобы получить список точек анализа, доступных в slTuner интерфейс с вашей моделью.

    Например, предположим, что slTuner интерфейс содержит точки анализа u1 и u2. Использование 'u1' обозначить эту точку как входной сигнал при создании целей настройки. Использование {'u1','u2'} для обозначения двухканального входа.

  • Если вы используете цель настройки, чтобы настроить обобщенное пространство состояний (genss) модель системы управления, затем inputname может включать:

    • Любой вход genss модель

    • Любой AnalysisPoint местоположение в системной модели управления

    Для примера, если вы настраиваете системную модель управления, T, затем inputname может быть любым входным именем в T.InputName. Кроме того, если T содержит AnalysisPoint блок с именем местоположение AP_u, затем inputname может включать 'AP_u'. Использовать getPoints чтобы получить список точек анализа, доступных в genss модель.

    Если inputname является AnalysisPoint местоположение обобщенной модели, входной сигнал для цели настройки является подразумеваемым входом, сопоставленным со AnalysisPoint блок:

Для получения дополнительной информации о точках анализа в системных моделях управления, см. «Маркируйте интересующие сигналы» для анализа и проекта систем управления.

outputname

Выходные сигналы для цели настройки, заданные как вектор символов или, для целей настройки с несколькими выходами, массив ячеек из векторов символов.

  • Если вы используете цель настройки, чтобы настроить модель Simulink системы управления, то outputname может включать:

    • Любая модель выхода.

    • Любая точка линейного анализа, отмеченная в модели.

    • Любая точка линейного анализа в slTuner (Simulink Control Design) интерфейс, сопоставленный с моделью Simulink. Использовать addPoint (Simulink Control Design), чтобы добавить точки анализа к slTuner интерфейс. Использовать getPoints (Simulink Control Design), чтобы получить список точек анализа, доступных в slTuner интерфейс с вашей моделью.

    Например, предположим, что slTuner интерфейс содержит точки анализа y1 и y2. Использование 'y1' обозначить эту точку как выход сигнал при создании целей настройки. Использование {'y1','y2'} для обозначения двухканального выхода.

  • Если вы используете цель настройки, чтобы настроить обобщенное пространство состояний (genss) модель системы управления, затем outputname может включать:

    • Любой выход genss модель

    • Любой AnalysisPoint местоположение в системной модели управления

    Для примера, если вы настраиваете системную модель управления, T, затем outputname может быть любым выходным именем в T.OutputName. Кроме того, если T содержит AnalysisPoint блок с именем местоположение AP_u, затем outputname может включать 'AP_u'. Использовать getPoints чтобы получить список точек анализа, доступных в genss модель.

    Если outputname является AnalysisPoint местоположение обобщенной модели, выходной сигнал для цели настройки является подразумеваемым выходом, сопоставленным со AnalysisPoint блок:

Для получения дополнительной информации о точках анализа в системных моделях управления, см. «Маркируйте интересующие сигналы» для анализа и проекта систем управления.

gainvalue

Максимальное усиление (линейное). Ограничение по усилению Req задает коэффициент усиления от inputname на outputname меньше gainvalue.

gainvalue является скалярным значением. Если сигналы inputname или outputname являются векторными сигналами, затем gainvalue ограничивает наибольшее сингулярное значение передаточной матрицы из inputname на outputname. Посмотрите sigma для получения дополнительной информации о сингулярных значениях.

gainprofile

Профиль усиления как функция частоты. Ограничение по усилению Req задает коэффициент усиления от inputname на outputname на определенной частоте меньше gainprofile. Можно задать gainprofile как плавная передаточная функция (tf , zpk, или ss модель). Также можно нарисовать кусочно-усилительный профиль с помощью frd модель или makeweight (Robust Control Toolbox) функция. Когда вы делаете это, программное обеспечение автоматически сопоставляет профиль усиления с zpk модель. Величина этого zpk модель аппроксимирует желаемый профиль усиления. Использование viewGoal(Req) чтобы построить график величины zpk модель.

gainprofile является передаточной функцией SISO. Если inputname или outputname являются массивами ячеек, gainprofile применяется ко всем парам ввода-вывода от inputname на outputname

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

Свойства

MaxGain

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

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

Focus

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

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

Req.Focus = [1,100];

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

Stabilize

Требование устойчивости по динамике замкнутого контура, заданное как 1 (true) или 0 (false).

По умолчанию TuningGoal.Gain предъявляет требование устойчивости передаточной функции с обратной связью от заданных входов к выходам, в дополнение к требованию усиления. Если стабильность не требуется или не может быть достигнута, установите Stabilize на false для снятия требования к устойчивости. Для примера, если ограничение усиления применяется к нестабильной передаточной функции разомкнутого контура, установите Stabilize на false.

По умолчанию: 1 (true)

InputScaling

Масштабирование входного сигнала, заданное как вектор положительных вещественных значений.

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

Предположим, T (s) является передаточной функцией с обратной связью от Input на Output. Цель настройки оценивается для масштабированной передаточной функции Do–1T (<reservedrangesplaceholder4>) Di. Диагональные матрицы Do и Di имеют OutputScaling и InputScaling значения на диагонали, соответственно.

Значение по умолчанию, [] , означает отсутствие масштабирования.

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

OutputScaling

Масштабирование выходного сигнала, заданное как вектор положительных вещественных значений.

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

Предположим, T (s) является передаточной функцией с обратной связью от Input на Output. Цель настройки оценивается для масштабированной передаточной функции Do–1T (<reservedrangesplaceholder4>) Di. Диагональные матрицы Do и Di имеют OutputScaling и InputScaling значения на диагонали, соответственно.

Значение по умолчанию, [] , означает отсутствие масштабирования.

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

Input

Имена входного сигнала, заданные как массив ячеек из векторов символов, которые идентифицируют входы передаточной функции, которые ограничивает цель настройки. Начальное значение Input свойство задается функцией inputname входной параметр при построении цели настройки.

Output

Выходы сигнала, заданные как массив ячеек из векторов символов, которые идентифицируют выходы передаточной функции, которые ограничивает цель настройки. Начальное значение Output свойство задается функцией outputname входной параметр при построении цели настройки.

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

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

Примеры

свернуть все

Создайте ограничение усиления, которое применяет требование подавления помех от сигнала 'du' в сигнальное 'u'.

Req = TuningGoal.Gain('du','u',1);

Это требование задает, что максимальное усиление отклика от 'du' на 'u' не превышает 1 (0 дБ).

Создайте цель настройки, которая ограничивает ответ от сигнала 'du' в сигнальное 'u' для схода со скоростью 20 дБ/декада на частотах более 1. Цель настройки также задает подавление помех (максимальное усиление 1) в частотной области значений [0,1].

gmax = frd([1 1 0.01],[0 1 100]);
Req = TuningGoal.Gain('du','u',gmax);

Эти команды используют frd модель, чтобы задать профиль усиления как функцию от частоты. Максимальный коэффициент усиления 1 дБ на частоте 1 рад/с, вместе с максимальным коэффициентом усиления 0,01 дБ на частоте 100 рад/с, задает желаемый коэффициент отката 20 дБ/десятилетие.

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

viewGoal(Req)

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

Штриховая линия показывает профиль усиления, и область указывает, где нарушается требование.

Совет

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

Алгоритмы

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

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

f(x)=WF(s)Do1T(s,x)Di,

или его эквивалент в дискретном времени для настройки в дискретном времени. Здесь T (s, x) является передаточной функцией с обратной связью от Input на Output. Do и Di являются диагональными матрицами с OutputScaling и InputScaling значения свойств на диагонали, соответственно. обозначает H ∞ норму ( см.getPeakGain).

Функция взвешивания частот WF является регуляризованным профилем усиления, полученным из заданного вами максимального профиля усиления. Усиления WF и 1/MaxGain примерно совпадают внутри полосы частот Focus. WF всегда стабильно и правильно. Потому что полюса WF близки к s = 0 или s = Inf может привести к плохому числовому обусловлению systune задача оптимизации, не рекомендуется задавать максимальные профили усиления с очень низкочастотной или очень высокочастотной динамикой.

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

WF = getWeight(Req,Ts)

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

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

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

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

Введенный в R2016a