频域指标

此示例展示了使用 systune 或 looptune 进行控制系统调优时可用的频域要求。

systune 和 looptune 函数用于调优固定结构控制系统的参数,以满足各种时域和频域要求。要指定这些要求,请使用调优目标对象。

增益限制

TuningGoal.Gain 要求对 SISO 或 MIMO 闭环传递函数施加增益限制。此要求对于确保足够的扰动抑制和滚降、限制灵敏度和控制作用以及防止饱和非常有用。对于 MIMO 传递函数,“增益”指的是频率响应矩阵的最大奇异值。增益限制可以是频率相关的。例如

s = tf(‘s’);
R1 = TuningGoal.Gain(‘d’,‘y’,s/(s+1)^2);

指定从 d 到 y 的增益不应超过传递函数 s/(s+1)2s/(s+1)^2s/(s+1)2 的幅值。

viewGoal(R1)

增益限制可视化

通常,仅勾画所需增益曲线的渐近线更为方便。例如,我们可以不指定传递函数 s/(s+1)2s/(s+1)^2s/(s+1)2,而只是在频率 0.01、1、100 处指定增益值 0.01、1、0.01,其中点 (1,1) 是两条渐近线 sss1/s1/s1/s 的转折点。

Asymptotes = frd([0.01,1,0.01],[0.01,1,100]);
R2 = TuningGoal.Gain(‘d’,‘y’,Asymptotes);

要求对象会自动将此离散增益曲线转换为在所有频率上定义的增益限制。

bodemag(Asymptotes,R2.MaxGain)
legend(‘Specified’,‘Interpolated’)

插值增益曲线

方差放大

TuningGoal.Variance 要求限制从指定输入到指定输出的噪声方差放大。用技术术语来说,此要求约束闭环传递函数的 H2H_2H2 范数。当输入信号是随机过程且平均增益比峰值增益更重要时,此要求优于 TuningGoal.Gain。例如,

R = TuningGoal.Variance(‘n’,‘y’,0.1);

将单位方差白噪声输入 n 下 y 的输出方差限制为 0.120.1^20.12

参考跟踪与超调抑制

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 rad/s(两秒响应时间的带宽)时接近 1(100%)。您可以使用 viewGoal 来可视化此频域约束。请注意,黄色区域表示违反要求的地方。

viewGoal(R1)

跟踪要求可视化

如果响应存在过大超调,请将 TuningGoal.Overshoot 要求与 TuningGoal.Tracking 要求结合使用。例如,您可以使用以下命令将 r 到 y 的超调限制在 10%:

R3 = TuningGoal.Overshoot(‘r’,‘y’,10);

扰动抑制

在图 1 所示的反馈回路中,从扰动 ddd 到输出 yyy 的开环和闭环响应关系为

GCL(s)=GOL(s)1+L(s) G_{CL} (s) = { G_{OL} (s) \over 1 + L(s) } GCL(s)=1+L(s)GOL(s)

其中 L(s)L(s)L(s) 是在扰动注入点测得的回路传递函数。1+L1+L1+L 的增益是扰动衰减因子,即开环和闭环对扰动的灵敏度之比。其倒数 S=1/(1+L)S = 1/(1+L)S=1/(1+L) 是扰动输入处的灵敏度。

示例反馈回路。

图 1:示例反馈回路。

TuningGoal.Rejection 要求将扰动衰减指定为频率的函数。在控制带宽内,衰减因子大于 1,因为反馈控制减少了扰动的影响。根据经验,衰减增加 10 倍需要回路增益增加 10 倍。例如

R1 = TuningGoal.Rejection(‘u’,10);
R1.Focus = [0 1];

指定在频率带 0 到 1 rad/s 内,从被控对象输入 “u” 注入的扰动应衰减 10 倍。

viewGoal(R1)

抑制要求可视化

更一般地,您可以指定一个频率相关的衰减曲线,例如

s = tf(‘s’);
R2 = TuningGoal.Rejection(‘u’,(s+10)/(s+0.1));

指定在 0.1 rad/s 以下衰减因子为 100,在 10 rad/s 之后逐渐减小到 1(无衰减)。

viewGoal(R2)

频率相关抑制曲线

您也可以不使用最小衰减,而使用 TuningGoal.Sensitivity 要求来指定最大灵敏度,即 S=1/(1+L)S = 1/(1+L)S=1/(1+L) 的最大增益。例如,

R3 = TuningGoal.Sensitivity(‘u’,(s+0.1)/(s+10));

等同于上述抑制要求 R2。灵敏度从 0.1 rad/s 以下的 0.01(1%)增加到 10 rad/s 以上的 1(100%)。

viewGoal(R3)

灵敏度要求可视化

频率加权增益与方差

TuningGoal.WeightedGain 和 TuningGoal.WeightedVariance 要求是 TuningGoal.Gain 和 TuningGoal.Variance 要求的推广。这些要求约束频率加权闭环传递函数 WL(s)T(s)WR(s)W_L(s) T(s) W_R(s)WL(s)T(s)WR(s)H∞H_\inftyHH2H_2H2 范数,其中 WL(s)W_L(s)WL(s)WR(s)W_R(s)WR(s) 是用户定义的加权函数。例如,指定以下归一化增益约束。

∥(1s+0.001Tres0.001s+1Try)∥∞<1 \left\| \left( \begin{array}{c} {1 \over s+0.001} T_{re} \\ {s \over 0.001s+1} T_{ry} \end{array} \right) \right\|_\infty < 1 (s+0.0011Tre0.001s+1sTry) <1

WL = blkdiag(1/(s+0.001),s/(0.001*s+1));
WR = [];
R = TuningGoal.WeightedGain(‘r’,{‘e’,‘y’},WL,[]);

viewGoal®

加权增益要求可视化

另请参阅

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

相关主题

  • 时域指标
  • 回路形状与稳定裕度指标

版权标注与来源说明

本文译文对应的原文内容,均来源于 MathWorks 官方网站(https://www.mathworks.com/)及官方帮助中心,原文版权均独家归属MathWorks 公司所有。

译文系基于原文进行的非官方翻译,仅为方便个人学习、理解MathWorks相关产品(含MATLAB等)的功能、操作及技术细节而制作,不代表MathWorks公司官方立场,也不构成官方翻译版本。

建议使用者优先查阅官方原文。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐