TuningGoal.Tracking class

Пакет: TuningGoal

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

Описание

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

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

MaxError=(PeakError)s+ωc(DCError)s+ωc.

Здесь ωc равен 2/( время отклика). Следующий график иллюстрирует эти отношения для примера множества значений.

Конструкция

Req = TuningGoal.Tracking(inputname,outputname,responsetime,dcerror,peakerror) создает цель настройки Req что ограничивает эффективность отслеживания от inputname на outputname в частотный диапазон. Эта цель настройки задает максимальный профиль ошибки как функцию от частоты, заданной:

MaxError=(PeakError)s+ωc(DCError)s+ωc.

Пропускная способность отслеживания ωc = 2/ responsetime. Максимальная относительная установившаяся ошибка задается dcerror, и peakerror задает пиковую относительную погрешность на всех частотах.

Можно задать требование отслеживания MIMO, задав имена сигналов или массив ячеек из нескольких имен сигналов для inputname или outputname. Для отслеживания требований MIMO используйте InputScaling свойство для ограничения сцепления. См. «Свойства».

Req = TuningGoal.Tracking(inputname,outputname,maxerror) задает максимальную относительную погрешность как функцию от частоты. Можно задать профиль целевой ошибки (максимальное усиление от опорного сигнала до сигнала ошибки отслеживания) как гладкая передаточная функция. Также можно нарисовать кусочно- ошибку профиль с помощью 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 блок:

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

responsetime

Целевое время отклика, заданное как положительная скалярная величина значение. Пропускная способность отслеживания задается ωc = 2/ responsetime.Экспрессируйте целевое время отклика в единицах времени моделей, которые будут настроены. Для примера при настройке модели T, если T.TimeUnit является 'minutes', затем выразите целевое время отклика в минутах.

dcerror

Максимальная установившаяся дробная ошибка отслеживания, заданная как положительная скалярная величина значение. Для примера, dcerror = 0.01 устанавливает максимальную установившуюся ошибку 1%.

Если inputname или outputname являются векторными, dcerror применяется ко всем парам ввода-вывода от inputname на outputname.

По умолчанию: 0.001

peakerror

Максимальная дробная ошибка отслеживания на всех частотах, заданная как положительная скалярная величина значение, больше 1.

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

maxerror

Профиль ошибки отслеживания цели как функция от частоты, заданный как числовая модель LTI SISO.

maxerror является максимальным усилением от опорного сигнала до сигнала ошибки отслеживания. Можно задать maxerror как плавная передаточная функция (tf, zpk, или ss модель). Также можно нарисовать кусочно- ошибку профиль с помощью frd модель. Когда вы делаете это, программное обеспечение автоматически сопоставляет профиль ошибки с zpk модель. Величина zpk модель аппроксимирует нужный профиль ошибки. Использование show(Req) чтобы построить график величины zpk модель.

maxerror должна быть моделью SISO LTI. Если inputname или outputname являются массивами ячеек, maxerror применяется ко всем парам ввода-вывода от inputname на outputname.

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

Свойства

MaxError

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

Если вы используете синтаксис Req = TuningGoal.Tracking(inputname,outputname,maxerror), затем MaxError свойство является zpk эквивалент или приближение модели LTI, которую вы предоставили в качестве maxerror входной параметр.

Если вы используете синтаксис Req = TuningGoal.Tracking(inputname,outputname,resptime,dcerror,peakerror), затем MaxError является zpk передаточная функция, заданная:

MaxError=(PeakError)s+ωc(DCError)s+ωc.

MaxError является моделью SISO LTI. Если inputname или outputname являются массивами ячеек, MaxError применяется ко всем парам ввода-вывода от inputname на outputname.

Использование show(Req) для построения графика величины MaxError.

Focus

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

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

Req.Focus = [1,100];

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

InputScaling

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

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

Например, предположим, что Req является целью настройки, которая сигнализирует {'y1','y2'} отслеживать опорные сигналы {'r1','r2'}. Предположим далее, что вы требуете, чтобы выходы отслеживали ссылки с менее чем 10% перекрестной связи. Если r1 и r2 имеют сопоставимые амплитуды, тогда этого достаточно, чтобы сохранить усиления от r1 на y2 и r2 и y1 ниже 0,1. Однако, если r1 в 100 раз больше r2, коэффициент усиления от r1 на y2 должно быть меньше 0,001, чтобы убедиться, что r1 изменяет y2 менее чем на 10% r2 цель. Чтобы гарантировать этот результат, установите InputScaling свойство следующим образом.

Req.InputScaling = [100,1];

Это говорит программному обеспечению учитывать, что первый опорный сигнал в 100 раз больше, чем второй опорный сигнал.

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

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

Input

Имена опорного сигнала, заданные как вектор символов или массив ячеек из векторов символов, задающих имена сигналов, которые будут отслеживаться, заполняемые inputname аргумент.

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

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

Примеры

Отслеживать цель с временем отклика и максимальной установившейся ошибкой отслеживания

Создайте цель отслеживания, указывающую, что сигнал 'theta' отследите сигнал 'theta_ref'. Необходимое время отклика - 2, во временных модулях системы управления, которую вы настраиваете. Максимальная установившаяся ошибка составляет 0,1%.

 Req = TuningGoal.Tracking('theta_ref','theta',2,0.001);

Начиная с peakerror не задан, эта цель настройки использует значение по умолчанию, 1.

Отслеживать цель с максимальной ошибкой отслеживания как функцию частоты

Создайте цель отслеживания, указывающую, что сигнал 'theta' отследите сигнал 'theta_ref'. Максимальная относительная погрешность составляет 0,01 (1%) в частотной области значений [0,1]. Относительная погрешность увеличивается до 1 (100%) на частоте 100.

Использование frd модель, чтобы задать профиль ошибки как функцию от частоты.

err = frd([0.01 0.01 1],[0 1 100]);
Req = TuningGoal.Tracking('theta_ref','theta',err);

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

viewGoal(Req)

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

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

Совет

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

Алгоритмы

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

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

f(x)=WF(s)(T(s,x)I),

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

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

WF = getWeight(Req,Ts)

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

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

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

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

Введенный в R2016a