Этот пример дает обзор доступных требований частотного диапазона для настройки системы управления с systune или looptune.
The systune и looptune команды настраивают параметры систем управления с фиксированной структурой, удовлетворяющие различным требованиям во временной и частотной областях. The TuningGoal пакет является репозиторием для таких требований проекта.
The TuningGoal.Gain требование обеспечивает пределы на передаточные функции SISO или MIMO с обратной связью. Это требование полезно для обеспечения адекватного подавления помех и крена, предела чувствительности и усилий по управлению и предотвращения насыщения. Для передаточных функций MIMO «усиление» относится к наибольшему сингулярному значению матрицы частотной характеристики. Предел усиления может быть частотно-зависимым. Для примера
s = tf('s'); R1 = TuningGoal.Gain('d','y',s/(s+1)^2);
задает коэффициент усиления от d на y не должен превышать величину передаточной функции.
viewGoal(R1)

Часто удобно просто набросать асимптоты нужного профиля усиления. Например, вместо передаточной функции
мы могли бы просто задать значения усиления 0,01,1,0,01 на частотах 0,01,1,100, причем точка (1,1) является точкой останова двух асимптот
и.
Asymptotes = frd([0.01,1,0.01],[0.01,1,100]); R2 = TuningGoal.Gain('d','y',Asymptotes);
Объект требования автоматически превращает этот дискретный профиль усиления в предел усиления, заданный на всех частотах.
bodemag(Asymptotes,R2.MaxGain) legend('Specified','Interpolated')

The TuningGoal.Variance требование ограничивает усиление отклонения шума от заданных входов к заданным выходам. С технической точки зрения это требование ограничивает
норму передаточной функции с обратной связью. Это требование предпочтительнее TuningGoal.Gain когда входные сигналы являются случайными процессами, и средний коэффициент усиления имеет значение больше, чем пиковый коэффициент усиления. Для примера,
R = TuningGoal.Variance('n','y',0.1);
ограничивает выход отклонения y для
единичного отклонения «белый шум» входной n.
The TuningGoal.Tracking требование обеспечивает соблюдение целей отслеживания уставки и цикла развязки в частотном диапазоне. Для примера
R1 = TuningGoal.Tracking('r','y',2);
задает, что выходной y отследить ссылку r с двухсекундным временем отклика. Так же
R2 = TuningGoal.Tracking({'Vsp','wsp'},{'V','w'},2);
задает, что V должен отслеживать Vsp и w должен отслеживать wsp с минимальной перекрестной связью между двумя реакциями. Требования к отслеживанию преобразуются в ограничения частотного диапазона на ошибку отслеживания как функцию от частоты. Для первого требования R1, для примера, коэффициент усиления от r к ошибке отслеживания e = r-y должен быть маленьким на низкой частоте и приближаться к 1 (100%) на частотах, превышающих 1 рад/с (полоса пропускания для времени отклика в две секунды). Можно использовать viewGoal чтобы визуализировать это ограничение частотного диапазона. Обратите внимание, что желтая область указывает, где нарушается требование.
viewGoal(R1)

Если реакция имеет чрезмерное перерегулирование, используйте TuningGoal.Overshoot требование в сочетании с TuningGoal.Tracking требование. Например, можно ограничить перерегулирование с r на y до 10% с использованием
R3 = TuningGoal.Overshoot('r','y',10);
В циклах с обратной связью, таких как тот, что показан на фигура, отклики в разомкнутом и замкнутом контурах от нарушения порядка
до выхода
связаны между

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

Фигура 1: Пример цикла обратной связи.
The TuningGoal.Rejection требование задает ослабление нарушения порядка как функцию частоты. Коэффициент ослабления больше, чем коэффициент внутри полосы управления, поскольку управление с обратной связью уменьшает влияние нарушений порядка. Как правило, в 10-кратном увеличении затухания требуется в 10 раз больше коэффициент усиления цикла. Для примера
R1 = TuningGoal.Rejection('u',10);
R1.Focus = [0 1];
задает, что нарушение порядка, входящий на вход объекта u, должен быть ослаблен на множитель 10 в частоте полосы от 0 до 1 рад/с.
viewGoal(R1)

В более общем случае можно задать частотно-зависимый профиль ослабления, например
s = tf('s'); R2 = TuningGoal.Rejection('u',(s+10)/(s+0.1));
задает коэффициент ослабления 100 ниже 0,1 рад/с, постепенно уменьшаясь до 1 (без ослабления) после 10 рад/с.
viewGoal(R2)

Вместо определения минимального ослабления можно использовать TuningGoal.Sensitivity требование задать максимальную чувствительность, то есть максимальный коэффициент усиления.
Для примера,
R3 = TuningGoal.Sensitivity('u',(s+0.1)/(s+10));
эквивалентно требованию к отклонению R2 выше. Чувствительность увеличивается с 0,01 (1%) ниже 0,1 рад/с до 1 (100%) выше 10 рад/с.
viewGoal(R3)

The TuningGoal.WeightedGain и TuningGoal.WeightedVariance требования являются обобщениями TuningGoal.Gain и TuningGoal.Variance требования. Эти требования ограничивают
или
норму частотно-взвешенной передаточной функции замкнутого контура,
где и
являются
пользовательскими функциями взвешивания. Для примера
WL = blkdiag(1/(s+0.001),s/(0.001*s+1)); WR = []; R = TuningGoal.WeightedGain('r',{'e','y'},WL,[]);
задает ограничение

Обратите внимание, что это нормированное ограничение усиления (единичная граница по частоте).
viewGoal(R)

TuningGoal.Gain | TuningGoal.Overshoot | TuningGoal.Rejection | TuningGoal.Sensitivity | TuningGoal.Tracking | TuningGoal.Variance | TuningGoal.WeightedGain | TuningGoal.WeightedVariance