Пакет: TuningGoal
Требование слежения для настройки системы управления
Использование TuningGoal.Tracking
чтобы задать требование отслеживания частотного диапазона между указанными входами и выходами. Эта цель настройки задает максимальную относительную погрешность (коэффициент усиления от опорного входа до ошибки отслеживания) как функцию от частоты. Используйте эту цель настройки для настройки системы управления с помощью команд настройки, таких как systune
или looptune
.
Можно задать максимальный профиль ошибки непосредственно путем предоставления передаточной функции. Кроме того, можно задать целевую ошибку постоянного тока, пиковую ошибку и время отклика. Эти параметры преобразуются в следующую передаточную функцию, которая описывает максимальную ошибку отслеживания частотного диапазона:
Здесь ωc равен 2/( время отклика). Следующий график иллюстрирует эти отношения для примера множества значений.
создает цель настройки Req
=
TuningGoal.Tracking(inputname
,outputname
,responsetime
,dcerror
,peakerror
)Req
что ограничивает эффективность отслеживания от inputname
на outputname
в частотный диапазон. Эта цель настройки задает максимальный профиль ошибки как функцию от частоты, заданной:
Пропускная способность отслеживания ωc = 2/ responsetime
. Максимальная относительная установившаяся ошибка задается dcerror
, и peakerror
задает пиковую относительную погрешность на всех частотах.
Можно задать требование отслеживания MIMO, задав имена сигналов или массив ячеек из нескольких имен сигналов для inputname
или outputname
. Для отслеживания требований MIMO используйте InputScaling
свойство для ограничения сцепления. См. «Свойства».
задает максимальную относительную погрешность как функцию от частоты. Можно задать профиль целевой ошибки (максимальное усиление от опорного сигнала до сигнала ошибки отслеживания) как гладкая передаточная функция. Также можно нарисовать кусочно- ошибку профиль с помощью Req
= TuningGoal.Tracking(inputname
,outputname
,maxerror
)frd
модель.
|
Входные сигналы для цели настройки, заданные как вектор символов или, для целей настройки с несколькими входами, массив ячеек из векторов символов.
Для получения дополнительной информации о точках анализа в системных моделях управления, см. «Маркируйте интересующие сигналы» для анализа и проекта систем управления. |
|
Выходные сигналы для цели настройки, заданные как вектор символов или, для целей настройки с несколькими выходами, массив ячеек из векторов символов.
Для получения дополнительной информации о точках анализа в системных моделях управления, см. «Маркируйте интересующие сигналы» для анализа и проекта систем управления. |
|
Целевое время отклика, заданное как положительная скалярная величина значение. Пропускная способность отслеживания задается ωc = 2/ |
|
Максимальная установившаяся дробная ошибка отслеживания, заданная как положительная скалярная величина значение. Для примера, Если По умолчанию: 0.001 |
|
Максимальная дробная ошибка отслеживания на всех частотах, заданная как положительная скалярная величина значение, больше 1. По умолчанию: 1 |
|
Профиль ошибки отслеживания цели как функция от частоты, заданный как числовая модель LTI SISO.
Если вы настраиваете в дискретном времени (то есть используя a |
|
Максимальная ошибка как функция от частоты, выраженная как SISO Если вы используете синтаксис Если вы используете синтаксис
Использование |
|
Частота полосы в которой применяется цель настройки, задается как вектор-строка формы Установите Req.Focus = [1,100]; По умолчанию: |
|
Масштабирование опорного сигнала, заданное как вектор положительных вещественных значений. Для требования отслеживания MIMO, когда выбор модулей приводит к смешению малых и больших сигналов в разных каналах отклика, используйте это свойство, чтобы задать относительную амплитуду каждого входа в векторно-значимом шаге входного сигнала. Эта информация используется для масштабирования недиагональных членов в передаточной функции от ссылки до ошибки отслеживания. Это масштабирование гарантирует, что поперечные связи измеряются относительно амплитуды каждого опорного сигнала. Например, предположим, что Req.InputScaling = [100,1]; Это говорит программному обеспечению учитывать, что первый опорный сигнал в 100 раз больше, чем второй опорный сигнал. Значение по умолчанию, По умолчанию: |
|
Имена опорного сигнала, заданные как вектор символов или массив ячеек из векторов символов, задающих имена сигналов, которые будут отслеживаться, заполняемые |
|
Выходы сигналов, заданные как символьный вектор или массив ячеек из символьных векторов, задающих имена сигналов, которые должны отслеживать опорные сигналы, заполненные |
|
Модели, к которым применяется цель настройки, заданные как вектор индексов. Используйте Req.Models = 2:4; Когда По умолчанию: |
|
Циклы обратной связи для открытия при оценке цели настройки, заданные как массив ячеек из векторов символов, которые идентифицируют местоположения открытия цикла. Цель настройки оценивается относительно строения разомкнутого контура, созданной открытием циклов обратной связи в идентифицируемых вами местах. Если вы используете цель настройки, чтобы настроить модель Simulink системы управления, то Если вы используете цель настройки, чтобы настроить обобщенное пространство состояний ( Для примера, если По умолчанию: |
|
Имя цели настройки, заданное как вектор символов. Для примера, если 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 для этой цели настройки. The MinDecay
и MaxRadius
опции systuneOptions
управляйте границами этой неявно ограниченной динамики. Если оптимизация не соответствует границам по умолчанию или если границы по умолчанию конфликтуют с другими требованиями, используйте systuneOptions
для изменения этих значений по умолчанию.
Когда вы настраиваете систему управления, используя TuningGoal
программное обеспечение преобразует цель настройки в нормированное скалярное значение f (x), где x является вектором свободных (настраиваемых) параметров в системе управления. Затем программа настраивает значения параметров, чтобы минимизировать f (x) или привести f (x) ниже 1, если цель настройки является жестким ограничением.
Для TuningGoal.Tracking
, f (x) определяется:
или его эквивалент в дискретном времени. Здесь 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
на непрерывное время). Для получения дополнительной информации о регуляризации и ее эффектах смотрите Визуализация целей настройки.
evalGoal
| looptune
| systune
| TuningGoal.Gain
| TuningGoal.LoopShape
| viewGoal
| looptune (for slTuner)
(Simulink Control Design) | slTuner
(Simulink Control Design) | systune
(for slTuner)
(Simulink Control Design)