如何绘制伯德图
- 格式:ppt
- 大小:1.80 MB
- 文档页数:21


关于一阶二阶传递函数的伯德图一阶惯性系统的通式为:将式子两边同时除以a0得令00a K b =为系统静态灵敏度; 01a a =τ为系统时间常数; 则有)()()1(s KX s Y s =+τ故有 )1()()()(+==s K s X s Y s H τ 以液柱式温度计为例,传递函数为 )1(1)()()(+==s s X s Y s H τ可得频率响应函数)1j (1)(+=τωs H )()()(001t x b t y a dtt dy a =+)()()(0001t x a b t y dt t dy a a =+可得传递函数的幅频与相频特性 2)1(1)()(τωωω+==j H Aωτωωϕarctan )()(-=∠=j H 在MATLAB 上输入程序(此时令1=τ)num=[1];den=[1,1];figuresys=tf(num,den);bode(sys);grid on可得bode 图二阶惯性系统的通式为:将式子两边同时除以a 0得令00a K b =为系统静态灵敏度; 20n a a =ω为系统无阻尼固有频率;1012a a a =ξ为系统阻尼器 传递函数为12)()()(22++==n ns s K s X s Y s H ωξω可得传递函数的幅频与相频特性 2222)(4)1(1)()(2n n K j H A ωωξωωωω+-==)()()()(001222t x b t y a dtt dy a dt t y d a =++)()()()(00012202t x a b t y dt t dy a a dt t y d a a =++2212arctan )()(n n j H ωωωωξωωϕ--=∠= 例如传递函数12)()()(2++==s s s X s Y s H在MATLAB 上输入程序 num=[2];den=[1,1,1]; figuresys=tf(num,den); bode(sys);grid on 可得bode 图。
百度文库里有一篇《matlab绘制bode图技巧》,非常不错。
但是在较新的matlab版本中运行时,显示最后依据有错误。
先对其进行更正。
依旧用下面这个传递函数的伯德图:1.576e010 s^2H(s)= ------------------------------------------------------------------------------------------s^4 + 1.775e005 s^3 + 1.579e010 s^2 + 2.804e012 s + 2.494e014(这是一个用butter函数产生的2阶的,频率范围为[20 20K]HZ的带通滤波器。
)我们可以用下面的语句:num=[1.576e010 0 0];den=[1 1.775e005 1.579e010 2.804e012 2.494e014];H=tf(num,den);bode(H)这样,我们就可以得到以下的伯德图:下面对其进行更改,使得:一、横坐标是HZ;二、调整横坐标的范围;三、打开网格(这点当然我们可以通过在后面加上grid on解决)。
下面,我们来看看如何定制我们自己的伯德图风格:在较新版本的matlab的命令窗口中输入:num=[1.576e010 0 0];den=[1 1.775e005 1.579e010 2.804e012 2.494e014];H=tf(num,den);h=bodeplot(H);p=getoptions(h);p.Grid=’on’;p.XLim={[10 40000]};p.XLimMode={'manual'};p.FreqUnits='Hz';setoptions(h,p);这时,我们可以得到以下的伯德图:。