做一个没有bode()的bode图?

123次浏览(过去30天)
Kebels3
Kebels3 2020年3月3日
编辑: 里克 2021年3月4日
是否有一种方法可以在不使用函数bode()的情况下绘制bode图?
这就是传递函数
S = tf(' S ');H = (s^3 + 2*s + 5)/(s^4+7*s^3+4*s²+8*s+12)
4评论
里克
里克 2021年3月4日
删掉你的问题是非常粗鲁的。我会把它从 谷歌缓存

登录评论。

答案(1)

罗伯特你
罗伯特你 2020年3月4日
编辑:罗伯特你 2020年3月4日
大家好,Jeroen von der Klip,
你的任务听起来像是你想要省略工具箱的使用。尽管控制系统工具箱通过bode-command或bodeploy -command提供了更多的额外功能,但您当然可以从头开始绘制传递函数。
%传递函数为匿名函数
H = @(s)(s。^3+ 2*s + 5)./(s.^4+7*s.^3+4*s.²+8*s+12);
%待计算域的频率向量
= 2 * logspace(-3,3,1000);
幅度估计
mag = abs(H(1j*omega));
magDB = 20 * log10(mag);
%相位估计
phaseDeg = rad2deg(角(H(1j* ω)));
%绘图结果
Fh =图;
Ah = subplot(2,1,1,“父”、跳频);
Bh = subplot(2,1,2,“父”、跳频);
semilogx(啊,ω/ 2π,magDB)
semilogx (bhω/ 2 /π,phaseDeg)
啊。XGrid =“上”
啊。YGrid =“上”
黑洞。XGrid =“上”
黑洞。YGrid =“上”
ah.XLabel.String =的频率(赫兹)
ah.YLabel.String =“(dB)级”
bh.XLabel.String =的频率(赫兹)
bh.YLabel.String =相位角[°]
ah.Title.String = func2str(H);
亲切的问候,
罗伯特。

社区寻宝

在MATLAB Central中找到宝藏,并发现社区如何帮助您!

开始狩猎!