MIMO系统的频率响应
此示例显示了如何通过两种方式研究具有多个输入和输出(MIMO)的多通道系统的频率响应:通过计算频率响应和通过计算奇异值。
在开始之前,连接包 ControlSystems.jl.
In [ ]:
import Pkg
Pkg.add("ControlSystems")
In [ ]:
using ControlSystems
s = tf('s');
计算MIMO模型的频率响应并分析输出信号的大小。
In [ ]:
H = ssrand(2,2,3)
mag, phase, w = bode(H)
Out[0]:
In [ ]:
size_mag = size(mag)
Out[0]:
数据阵列的第一维和第二维 mag —这是输出和输入的数量 . 第三个维度是频率向量w中的点的数量(如果不指定频率向量,bode命令会自动确定此数量)。 因此, mag(i,j,:) —这是来自第j个输入的频率响应 到第i个出口。 相位数据阵列 phase 具有相同的形状 mag.
绘制每个输入/输出对的频率响应 .
In [ ]:
bodeplot(H, title = ["Input 1" "Input 2" "" "" "" "" "" ""], leg = false)
Out[0]:
bodeplot 在H中反映每个输入-输出对的频率响应的幅度和相位(因为 ssrand 生成状态空间的随机模型,可以看到除图中所示特征以外的其他特征)。 第一列包含从第一输入信号到第一和第二输出的电路的频率特性的曲线图。 第二列类似,但从第二输入信号到系统的两个输出。
绘制奇异值 取决于频率。
In [ ]:
sigmaplot(H)
Out[0]:
图表 sigmaplot 示MIMO系统的奇异值的依赖性 取决于频率。 某个频率下的最大奇异值是系统在该频率下输入信号的所有线性组合上的最大增益。 与逐信道波特图相比,奇异值可以更好地了解MIMO系统的整体响应、稳定性和调谐。
计算奇异值 在从0.1到10rad/s的范围内。
In [ ]:
ω = collect(1:0.001:10);
sv,w = sigma(H,ω)
display([sv,w])
当你打电话 sigma 该命令返回数据数组中的奇异值 sv. 阵列输入数据 表示 sigma 需要计算频率范围从0.1到10rad/s的奇异值。 sigma 在向量w中返回这些频率。 sv 包含奇异值 于w的频率。
结论
通过这个例子,我们学习了如何研究MIMO系统的频率响应。