一、 实验目的
1. 学会利用MATLAB绘制系统的根轨迹,并对系统进行分析。 2. 学会利用MATLAB对系统进行频域特性分析。
二、 实验设备
安装Windows系统和MATLAB软件的计算机一台。
三、 实验内容
1、 基于MATLAB的控制系统根轨迹分析 利用MATLAB绘制系统的根轨迹
利用rlocus( )函数可绘制出当根轨迹增益k由0至+∝变化时,闭环系统的特征根在s平面变化的轨迹,该函数的调用格式为
[r,k]=rlocus(num,den) 或 [r,k]=rlocus(num,den,k)
其中,返回值r为系统的闭环极点,k为相应的增益。rlocus( )函数既适用于连续系统,也适用于离散系统。rlocus(num,den)绘制系统根轨迹时,增益k是自动选取的,rlocus(num,den,k)可利用指定的增益k来绘制系统的根轨迹。在不带输出变量引用函数时,rolcus( )可在当前图形窗口中绘制出系统的根轨迹图。当带有输出变量引用函数时,可得到根轨迹的位置列向量r及相应的增益k列向量,再利用plot(r,’x’)可绘制出根轨迹。 利用MATLAB获得系统的根轨迹增益 在系统分析中,常常希望确定根轨迹上某一点处的增益值k,这时可利用MATLAB中的rlocfind( )函数,在使用此函数前要首先得到系统的根轨迹,然后再执行如下命令
[k,poles]=rlocfind(num,den) 或 [k,poles]=rlocfind(num,den,p)
其中,num和den分别为系统开环传递函数的分子和分母多项式的系数按降幂排列构成的系数向量;poles为所求系统的闭环极点;k为相应的根轨迹增益;p为系统给定的闭环极点。
(1)已知某反馈系统的开环传递函数为
𝑮(𝒔)𝑯(𝒔)=
𝒌
𝒔(𝒔+𝟏)(𝒔+𝟐)
试绘制该系统根轨迹,并利用根轨迹分析系统稳定的k值范围。 解: 将该传递函数用MATLAB命令表示为 num=1;
den=conv([1,0],conv([1,1],[1,2])); 绘制根轨迹
rlocus(num,den);[k,poles]=rlocfind(num,den)
实验过程及结果如下:
1
《自动控制原理》实验报告
执行以上命令后,用鼠标在绘制出的根轨迹图中点击根轨迹与虚轴的交点,结果如下:
由此可知根轨迹与虚轴交点处的增益k约为6,这说明当k<6时系统稳定,当k>6时,系统不稳定;利用rlocfind( )函数也可找出根轨迹从实轴上的分离点处的增益k =0.38, 这说明当0 𝑮(𝒔)𝑯(𝒔)= 𝒌 𝒔(𝒔+𝟏)(𝒔+𝟐) 试绘制系统根轨迹,并计算根轨迹上点−𝟐.𝟑±𝐣𝟐.𝟎𝟐处的根轨迹增益和此时系统的稳定性。 解: 该传递函数用MATLAB命令表示为 num=1; den=conv([1,0],conv([1,1],[1,2])); 绘制根轨迹 rlocus(num,den); 计算点−2.3±j2.02处的根轨迹增益 [k,poles]=rlocfind(-num,den,-2.3+2.02j) 2 《自动控制原理》实验报告 实验过程及结果如下: 由此可见,点−2.3±j2.02确实为根轨迹上的,且该点处的增益为15.0166,而由于另一个闭环极点位于正实轴上的1.6021点处,故此时系统不稳定。实际上由于系统的一条根轨迹一直位于正实轴上,因此该系统在所有的正值增益k值下均不稳定。 2、 基于MATLAB的控制系统频域分析 利用MATLAB绘制系统的Bode图 MATLAB提供的函数bode( )可以绘制系统Bode图,该函数的调用格式为 [mag,phase,w]=bode(num,den) 式中,num和den分别为系统开环传递函数的分子和分母多项式的系数按降幂排列构成的系数行向量;w为频率点构成的向量;mag为系统的幅值;phase为系统的相位。 频率向量可由logspace( )函数来构成。此函数的调用格式为 ω=logspace(m,n,npts) 此命令可生成一个以10为底的指数向量(10𝑚~10𝑛),点数由npts任意选定。 当bode( )函数带输出变量引用函数时,可得系统Bode图相应的幅值mag,相位phase及频率点ω向量,有了这些数据就可利用下面的MATLAB命令绘制系统的Bode图。 subplot(2,1,1);semilogx(w,20*log10(mag));subplot(2,1,2);semilogx(w,phase) 如果只想绘制出系统的Bode图,而对获得幅值和相位的具体数值并不感兴趣,则可以采用如下简单的调用格式 bode(num,den) (3)知某正反馈系统的开环传递函数为 𝝎𝟐𝒏 𝑮(𝒔)𝑯(𝒔)=𝟐 𝒔+𝟐𝛇𝝎𝒏𝒔+𝝎𝟐𝒏 绘制出当𝝎𝒏=𝟑和𝛇=𝟎.𝟑时系统的Bode图。 3 《自动控制原理》实验报告 解: 先用TLAB命令表示该正反馈系统的传递函数 wn=3;zeta=0.3; w=logspace(-1,2); num=wn.^2; den=[1 2*zeta*wn wn.^2]; 使用bode( )函数求出Bode图 bode(num,den,w);grid; 实验过程及结果如下: 执行后获得Bode图。在曲线上点击任意一点即可获得此点所对应的系统在该点的频率与幅值或频率与相位等有关信息。(实验中点击了两次,获得了两组任意数据,如下两图所示) 利用MATLAB绘制系统的Nyquist图 MATLAB提供的函数nyquist( )可以绘制系统Nyquist图,该函数的调用格式为 [Re,Im,w]=nyquist(num,den) 其中,num和den分别为系统开环传递函数的分子和分母多项式的系数按降幂排列构成的系数行向量;Re,Im和w分别为频率特性的实部向量、虚部向量和对应的频率向量。 有了这些值就可利用命令plot(Re,Im)来直接绘出系统的Nyquist图。当然,Nyquist图也可采用与Bode图类似的简单命令来直接绘制。 (4)已知系统的开环传递函数为 𝟎.𝟓 𝒔𝟑+𝟐𝒔𝟐+𝒔+𝟎.𝟓 绘制Nyquist图,并判断系统的稳定性。 𝑮(𝒔)𝑯(𝒔)= 4 《自动控制原理》实验报告 解: 该传递函数可用MATLAB命令表示为 num=0.5; den=[1,2,1,0.5]; 然后使用nyquist( )函数求出系统的Nyquist图 nyquist(num,den) 实验过程及结果如下: 执行后获得系统的Nyquist图 观察可知由于Nyquist曲线没有包围(-1,j0)点,且P=0,所以由𝐺(𝑠)𝐻(𝑠)构成的单位负反馈闭环系统稳定。在曲线上点击任意一点即可获得此点所对应的系统的开环频率特性、在该点的实部和虚部及其频率的值。(实验中点击了三次,如上三图所示,获得了三组任意数据) 5 《自动控制原理》实验报告 四、 实验心得及总结 6 因篇幅问题不能全部显示,请点此查看更多更全内容