TuningGoal. Получите класс

Пакет: 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. Используйте addPoint, чтобы добавить, что анализ указывает на интерфейс slTuner. Используйте getPoints, чтобы получить список аналитических точек, доступных в интерфейсе 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. Используйте addPoint, чтобы добавить, что анализ указывает на интерфейс slTuner. Используйте getPoints, чтобы получить список аналитических точек, доступных в интерфейсе 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. Когда вы делаете так, программное обеспечение автоматически сопоставляет профиль усиления на модель zpk. Значение этой модели zpk аппроксимирует желаемый профиль усиления. Используйте viewGoal(Req), чтобы построить значение модели zpk.

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

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

Свойства

MaxGain

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

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

Focus

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

Установите свойство Focus ограничить осуществление настраивающейся цели к конкретному диапазону частот. Выразите это значение в единицах частоты модели системы управления, которую вы настраиваете (rad/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 (s) Di. Диагональные матрицы Do и Di имеют OutputScaling и значения InputScaling на диагонали, соответственно.

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

Значение по умолчанию: []

OutputScaling

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

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

Предположим, что T (s) является передаточной функцией с обратной связью от Input до Output. Настраивающаяся цель оценена для масштабированной передаточной функции Do –1T (s) 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. Используйте addPoint, чтобы добавить аналитические точки и открытия цикла к интерфейсу slTuner. Используйте getPoints, чтобы получить список аналитических точек, доступных в интерфейсе 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)

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

Советы

  • Эта настраивающая цель налагает неявное ограничение устойчивости на передаточную функцию с обратной связью от Input до Output, оцененного с циклами, открытыми в точках, идентифицированных в Openings. Движущими силами, затронутыми этим неявным ограничением, является stabilized dynamics для этой настраивающей цели. 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