转载:频谱特性曲线的绘制
(2010-04-20 21:35:57)
标签:
裕度向量传递函数频谱特性杂谈 |
分类: Matlab-Simulink |
实验八
[实验目的]
1.熟悉频谱响应曲线绘制的方法
2.了解离散时间系统的频率响应分析
3.了解时间延迟系统的频率响应
[实验原理]
MATLAB提供了多种求取并绘制频率响应曲线的函数,如Bode图绘制函数bode( ),Nyquist曲线绘制函数nyquist( ),以及Nichols曲线绘制函数nichols( )等,其中bode( )函数的调用格式为:
[m,p]=bode(num,den,w);或[m,p]=bode(A,B,C,D,iu,w);
这里num,den和A,B,C,D 分别为系统的传递函数或状态方程的参数,而w为频率点构成的向量,该向量最好由logspace( )函数来构成。 iu为一个数值,反映要求取的输入信号标号,当然对单输入系统来说,iu=1。 bode( )函数本身可以通过输入元素的个数自动地识别给出的是传递函数模型还是状态方程模型,从而可以正确地求出Bode响应的幅值向量m与相位向量p,有了这些数据之后就可以由下面的MATLAB命令。
subplot(211);semilogx(w,20 log10(m))
subplot(212);semilog(w,p)
在同一个窗口上同时绘制出系统的Bode响应曲线了,其中前面一条命令对得出的m向量求分贝(db)值。如果用户只想绘出系统的Bode图,而对获得幅值和相位的具体数值并不感性趣,则可以由如下更简洁的格式调用bode( )函数。
bode(A,B,C,D,iu,w)或bode(num,den,w)
或更简洁地
bode(A,B,C,D,iu)或bode(num,den)
这时该函数会自动地根据模型的变化情况选择一个比较合适的频率范围。Nyquist响应与Nichols特性的操作与Bode图类似。
MATLAB还提供了更直接地求取频率响应数据的函数freqresp( ),其调用格式为:
[x,y]=freqresp(num,den,sqrt(-1) w);
或
在分析系统性能时经常涉及到系统的幅度与相位裕度的问题,可使用margin( )函数,调用格式为:
[Gm,Pm,Wcg,Wcp]=margin(A,B,C,D)
或
或
可以看出,该函数可求取系统的幅值裕度Gm和相位裕度Pm,并求出幅值裕度和相位裕度处的频率值Wcg和Wcp。
离散系统频率分析调用的函数只需在原连续函数的基础上加一个“d”即可,如Bode图可以由dbode( )函数来求出。dbode函数的调用格式为
[mag,phase]=dbode(F,G,C,D,Ts,iu,w)
或
其中(F,G,C,D)为系统的离散时间状态方程的参数,Ts为采样周期,iu为输入序号,w仍为频率向量。在后一种调用格式中,num和den分别为离散时间系统传递函数模型的分子和分母多项式系数构成的向量。
带有时间延迟的连续控制系统传递函数模型可以写成
式中T为延迟时间常数。纯时间延迟环节 可以由有理函数来近似,MATLAB中提供了pade( )函数来计算 (法国数学家 提出的一种著名的有理近似方法)近似的函数,它的调用格式为:
[num,den]=pade(T,n)
或
其中T为延迟时间常数,n为要求拟合的阶数。
MATLAB还提供了连续时间系统在阶跃输入激励下的函数step( ),脉冲激励下的函数impulse( )及任意输入下的函数lsim( )等,其中阶跃响应函数的调用格式为:
[y,x]=step(num,den,t)
或
其中t为选定的时间向量。
离散时间系统的函数只需在连续时间函数前加“d”即可,且t由n代替,表示需要的采样个数。

加载中…