TuningGoal. Отслеживание класса

Пакет: TuningGoal

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

Описание

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

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

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. Используйте 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:

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

responsetime

Целевое время отклика, заданное как значение положительной скалярной величины. Пропускная способность отслеживания дана ωc = 2/responsetime.Express целевое время отклика в единицах измерения времени моделей, которые будут настроены. Например, когда настройка модели 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.

Если вы настраиваетесь в дискретное время (то есть, с помощью модели 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 ограничить осуществление настраивающейся цели к конкретному диапазону частот. Выразите это значение в единицах частоты модели системы управления, которую вы настраиваете (rad/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. Используйте addPoint, чтобы добавить аналитические точки и открытия цикла к интерфейсу slTuner. Используйте getPoints, чтобы получить список аналитических точек, доступных в интерфейсе 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)

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

Советы

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