通过函数绘制一阶二阶传递函数伯德图
- 格式:doc
- 大小:141.11 KB
- 文档页数:4
Matlab中Bode图的绘制技巧2010-06-04 21:21:48 阅读54 评论0 字号:大中小订阅我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画bode图的,这个函数是Matlab内部提供的一个函数,我们可以很方便的用它来画伯德图,但是对于初学者来说,可能用起来就没有那么方便了。
譬如我们要画出下面这个传递函数的伯德图:s^2H(s)=------------------------------------------------------------------------------------------s^4 + s^3 + s^2 + s +(这是一个用butter函数产生的2阶的,频率范围为[20 20K]HZ的带通滤波器。
) 我们可以用下面的语句:num=[ 0 0];den=[1 ];H=tf(num,den);bode(H)这样,我们就可以得到以下的伯德图:可能我们会对这个图很不满意,第一,它的横坐标是rad/s,而我们一般希望横坐标是HZ;第二,横坐标的范围让我们看起来很不爽;第三,网格没有打开(这点当然我们可以通过在后面加上grid on解决)。
下面,我们来看看如何定制我们自己的伯德图风格:在命令窗口中输入:bodeoptions我们可以看到以下内容:ans =Title: [1x1 struct]XLabel: [1x1 struct]YLabel: [1x1 struct]TickLabel: [1x1 struct]Grid: 'off'XLim: {[1 10]}XLimMode: {'auto'}YLim: {[1 10]}YLimMode: {'auto'}IOGrouping: 'none'InputLabels: [1x1 struct]OutputLabels: [1x1 struct]InputVisible: {'on'}OutputVisible: {'on'}FreqUnits: 'rad/sec'FreqScale: 'log'MagUnits: 'dB'MagScale: 'linear'MagVisible: 'on'MagLowerLimMode: 'auto'MagLowerLim: 0PhaseUnits: 'deg'PhaseVisible: 'on'PhaseWrapping: 'off'PhaseMatching: 'off'PhaseMatchingFreq: 0PhaseMatchingValue: 0我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图:P=bodeoptions;='on';={[10 40000]};={'manual'};='HZ';num=[ 0 0];den=[1 ];H=tf(num,den);bode(H,P)这时,我们将会看到以下的伯德图:上面这张图相对就比较好了,它的横坐标单位是HZ,范围是[10 40K]HZ,而且打开了网格,便于我们观察-3DB处的频率值。
5.3.2 开环系统Bode 图的绘制将开环传递函数()G s 表示成式(5-48)形式的典型环节组合形式,有12121212()20lg ()20lg[()()()]20lg ()20lg ()20lg ()()()()()()()()l l l l L A A A A A A A L L L ω=ω=ωωω⎧⎪=ω+ω++ω⎪⎨=ω+ω++ω⎪⎪ϕω=ϕω+ϕω+ϕω⎩ (5-58) 式中,)(ωi L 和)(ωϕi 分别表示各典型环节的对数幅频特性和对数相频特性。
式(5-58)表明,只要能作出)(ωj G 所包含的各典型环节的对数幅频和对数相频曲线,将它们进行代数相加,就可以求得开环系统的Bode 图。
实际上,在熟悉了对数幅频特性的性质后,可以采用更为简捷的办法直接画出开环系统的Bode 图,具体步骤如下。
(1) 将开环传递函数写成尾1标准形式:()211()2211(1)[()21]()(1)[()21]m p pzh i h i zh zh n q v qv pk j k j pk pks s s K z G s s s s s p -==--==+++=+++∏∏∏∏ξωωξωω 确定系统开环增益K 和型别v ,把各典型环节的转折频率由小到大依次标在频率轴上。
(2) 绘制开环对数幅频特性低频段的渐近线。
由于低频段渐近线的频率特性为()v K j ω,所以它就是过点(K lg 20,1)、斜率为20dB/dec v -的直线。
(3) 在低频段渐近线的基础上,沿频率增大的方向每遇到一个转折频率就改变一次斜率,其规律是遇到惯性环节的转折频率,斜率变化20dB/dec -;遇到一阶复合微分环节的转折频率,斜率变化20dB/dec ;遇到二阶复合微分环节的转折频率,斜率变化40dB/dec ;遇到振荡环节的转折频率,斜率变化40dB/dec -;直到所有转折全部进行完毕。
最右端转折频率之后的渐近线斜率应该是20()dB/dec n m --,其中,m n ,分别为)(s G 分母、分子的阶数。
控制系统的开环频率特性目的:掌握开环Bode图的绘制根据Bode图确定最小相位系统的传递函数重点:开环Bode图的绘制、根据Bode图确定最小相位系统的传递函数1 开环伯德图手工作图的一般步骤:1)将开环传递函数表示为时间常数表达形式,计算各个典型环节的交接频率2)求20lgK的值,并明确积分环节的个数ν3)通过(1,20lgK)绘制斜率为-20vdB/dec低频段4)随着频率增加,每遇到一个典型环节的交接频率,就改变一次斜率最小相位系统定义:递函数的零点、极点全部位于S 左半平面,同时又无纯滞后环节的系统称为最小相位系统。
否则就是非最小相位系统。
对数幅频特性与相频特性之间存在确定的对应关系。
对于一个最小相位系统,我们若知道了其幅频特性,它的相频特性也就唯一地确定了。
也就是说:只要知道其幅频特性,就能写出此最小相位系统所对应的传递函数,而无需再画出相频特性。
非最小相位系统高频时相角迟后大,起动性能差,响应缓慢。
对响应要求快的系统,不宜采用非最小相位元件。
Tf函数用来建立实部或复数传递函数模型或将状态方程、或零级增益模型转化成传递函数形式。
sys = tf(num,den)命令可以建立一个传递函数,其中分子和分母分别为num和den。
输出sys 是储存传递函数数据的传递函数目标。
单输入单输出情况下,num和den是s的递减幂级数构成的实数或复数行向量。
这两个向量并不要求维数相同。
如h = tf([1 0],1)就明确定义了纯导数形式h(s)=s。
若要构建多输入多输出传递函数,要分别定义每一个单输入单输出系统的端口的分子与分母。
2 典型环节的伯德图绘制曲线在MA TLAB中实现,利用下述的程序段:num=[b2 b1 b0];den=[1 a2 a1 a0];H=tf(num,den);bode(H)margin(H)hold on2.1 比例环节传递函数:()G s K=频率特性:()G j Kω=对数幅频特性:()20lgL j Kω=对数相频特性:()0ϕω=程序段:num=[0 10]; den=[0 1]; H=tf(num,den);bode(H)margin(H) holdon结论:放大环节的对数幅频特性是一条幅值为20lgK分贝,且平行于横轴的直线,相频特性是一条和横轴重合的直线。
Matlab中Bode图的绘制技巧学术收藏 2010-06-04 21:21:48 阅读54 评论0 字号:大中小订阅我们经常会遇到使用Matlab画伯德图的情况,可能我们我们都知道bode这个函数是用来画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=[11.775e005 1.579e0102.804e012 2.494e014]; H=tf(num,den;bode(H这样,我们就可以得到以下的伯德图:可能我们会对这个图很不满意,第一,它的横坐标是rad/s,而我们一般希望横坐标是HZ;第二,横坐标的范围让我们看起来很不爽;第三,网格没有打开(这点当然我们可以通过在后面加上grid on解决)。
下面,我们来看看如何定制我们自己的伯德图风格:在命令窗口中输入:bodeoptions我们可以看到以下内容:ans =Title: [1x1 struct]XLabel: [1x1 struct]YLabel: [1x1 struct]TickLabel: [1x1 struct]Grid: 'off'XLim: {[1 10]}XLimMode: {'auto'}YLim: {[1 10]}YLimMode: {'auto'}IOGrouping: 'none'InputLabels: [1x1 struct]OutputLabels: [1x1 struct]InputVisible: {'on'}OutputVisible: {'on'}FreqUnits: 'rad/sec'FreqScale: 'log'MagUnits: 'dB'MagScale: 'linear'MagVisible: 'on'MagLowerLimMode: 'auto'MagLowerLim: 0PhaseUnits: 'deg'PhaseVisible: 'on'PhaseWrapping: 'off'PhaseMatching: 'off'PhaseMatchingFreq: 0PhaseMatchingValue: 0我们可以通过修改上面的每一项修改伯德图的风格,比如我们使用下面的语句画我们的伯德图:P=bodeoptions;P.Grid='on';P.XLim={[10 40000]};P.XLimMode={'manual'};P.FreqUnits='HZ';num=[1.576e010 0 0];den=[11.775e005 1.579e0102.804e012 2.494e014];H=tf(num,den;bode(H,P这时,我们将会看到以下的伯德图:上面这张图相对就比较好了,它的横坐标单位是HZ,范围是[10 40K]HZ,而且打开了网格,便于我们观察-3DB处的频率值。
关于一阶二阶传递函数的伯德图
一阶惯性系统的通式为:
将式子两边同时除以a0得
令0
0a K b =为系统静态灵敏度; 0
1a 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 dt
t 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];
figure
sys=tf(num,den);
bode(sys);grid on
可得bode 图
二阶惯性系统的通式为:
将式子两边同时除以a 0得
令0
0a K b =为系统静态灵敏度; 20
n a a =ω为系统无阻尼固有频率;
1
012a a a =ξ为系统阻尼器 传递函数为
12)
()()(22++==n n
s s K s X s Y s H ωξω
可得传递函数的幅频与相频特性 2222)(4)1(1
)()(2n n K j H A ωωξωωωω+-==
)()()()(001222t x b t y a dt
t 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]; figure
sys=tf(num,den); bode(sys);grid on 可得bode 图。