Этот пример дает обзор доступных требований частотного диапазона для настройки системы управления с 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