实验三 控制系统的根轨迹分析法 一、实验目的: 通过实验熟悉matlab中与根轨迹分析相关的函数,借助这些函数对控制系统进行根轨迹分析,观察系统的零极点分布,根据根轨迹判断系统的稳定性,寻找特定闭环极点。 二、实验内容: 1、常用Matlab控制系统工具箱提供的根轨迹分析函数 (1)pzmap( )——绘制零极点函数 ①调用格式: pzmap (sys) pzmap(sys1,sys2,………) [p,z]= pzmap (sys) ②使用说明: pzmap(sys)函数可绘制线性定常系统的零极点图,对于SISO系统而言就是绘制传递函数的零极点。 pzmap(sys1,sys2,……….)函数可在同一复平面绘制不同系统的零极点图,为区别起见可用不同颜色表示,如pzmap(sys1,’r’,sys2,’b’………) 。 [p,z]= pzmap (sys),返回零极点数据,不绘制零极点图。 (2)绘制根轨迹的函数rlocus( ) ①调用格式 rlocus (sys) rlocus(sys,k) rlocus (sys1,sys2,………) [r,k]=rlocus (sys)或r=rlocus(sys,k) ②使用说明 rlocus计算并绘制SISO系统的根轨迹。适用于连续时间系统和离散时间系统。 rlocus(sys,k)绘制增益为k时的闭环极点。 rlocus (sys1,sys2,………) 在同一个复平面中画出多个SISO系统的根轨迹,为区分系统的根轨迹也可以用不同颜色来区别,如: rlocus (sys1,’r’,sys2,’b:’,sys3,’gx’) [r,k]= rlocus (sys)或r=rlocus(sys,k)返回增益为k时复根位置的矩阵R,R有length(k)行,其第j行列出的是增益K(j)时的闭环根。 (3)计算给定一组根的根轨迹增益的函数rlocfind( ) ①调用格式 [k,poles]=rlocfind(sys) [k,poles]=rlocfind(sys,p) ②使用说明 rlocfind( )函数可计算出与根轨迹上极点对应的根轨迹增益。适用于连续时间系统和离散时间系统。 [k,poles]=rlocfind(sys)执行后,在根轨迹图形窗口显示十字形光标,当用户在根轨迹上选择一点时,其相应的增益由k记录,与增益相关的所有极点记录于poles中。 [k,poles]=rlocfind(sys,p)函数可对指定根计算对应的增益与根矢量。 (4)在连续系统根轨迹图上加等阻尼线和等自然振荡线的函数sgrid ①调用格式 sgrid sgrid(z,wn) ②使用说明 sgrid( )函数命令可在连续系统的根轨迹或零极点图上绘制出栅格线,栅格线由等阻尼系 1 数与自然振荡角频率构成。阻尼线间隔为0.1,范围从0到1,自然振荡角频率的间隔为1rad/s,范围从1到10。绘制栅格线之前,当前窗口必须有连续时间系统的根轨迹或零极点图,或者该函数必须与函数pzmap( )或rlocus( )一起使用。 sgrid(z,wn)函数可以指定阻尼系数z与自然振荡角频率wn。 2、仿真分析应用(一般根轨迹程序仿真) (1)系统的传递函数为: G(s) 2.5s(6)(s22s3)(s5)作出零极点图。程序如下: num=[2.5 15]; den=conv([1,2,3],[1,5]); sys=tf(num,den) pzmap(sys)%输出零极点 [p,z]=pzmap(sys)title('零极点图') (2)单位负反馈系统的开环传递函数为: G(s)K(s1)(0.5s1)(4s1),绘制闭环根轨迹。程序代码如下: num=[1]; den=conv([1,1],conv([0.5,1],[4,1])); sys=tf(num,den) %绘制根轨迹图 rlocus(sys) [p,z]=pzmap(sys) title('根轨迹图') (3)已知某单位负反馈系统开环传递函数为: G(s)K(s5)(s1)(s3)(s12),绘制闭环根轨迹并在根轨迹上任选一点计算该点增益k机所有极点的位置。代码如下: num=[1,5]; den=conv([1,1],conv([1,3],[1,12])); sys=tf(num,den) %绘制根轨迹图 rlocus(sys) [k,poles]=rlocfind(sys) %计算用户所选定点处的增益和其他闭环极点 title('根轨迹图') (4)系统的闭环传递函数为: 2 2s25s1G(s)2s2s3,做出系统带栅格线的根轨迹图。程序代码如下: num=[2,5,1]; den=[1,2,3]; sys=tf(num,den) %绘制根轨迹图 rlocus(sys) %添加栅格线 sgrid title('带栅格线的根轨迹图') (5)参数根轨迹 G(s)单位负反馈的开环传递函数为:代码如下: den=conv([1,1],conv([1,3],[1,12])); k=5 %定义数组存储结果 clpoles=[]; param=[]; %a从2变化到10 for alpha=2:10 num=[0 0 k k*alpha]; clpoly=num+den; 5(sa)(s1)(s3)(s12),绘制参数a的根轨迹,%计算闭环极点 clp=roots(clpoly); clpoles=[clpoles;clp']; param=[param;alpha]; end disp([param,clpoles]) %打印a和极点表格 plot(clpoles,'*') axis equal; %调整绘制区域 axis([-4 0 -2 2]) 3、系统分析 已知单位负反馈开环传递函数为G(s)K s(s1)(0.5s1) (1)作出系统闭环根轨迹,分析其稳定性,找出其临界稳定K值。 (2)K取何值时,系统响应无振荡? (3)分析系统主导极点具有0.5的阻尼比时K及其闭环极点的取值。 三、思考与实验报告要求 1、如何在matlab中寻找特定的阻尼比下K值和全部闭环特征根。 2、设定一高阶不稳定系统,分析如何让系统稳定并画出稳定系统的根轨迹。 3、记录实验中遇到的问题。 实验四 控制系统的频域分析法 一、实验目的 3 本文来源:https://www.wddqw.com/doc/b17541d6a76e58fafbb00350.html