第3章 控制系统特性分析的MATLAB实现

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.M程序文件 在MATLAB桌面建立新的M文件或打开已经建立好的M文 件 ( 点 击 桌 面 操 作 环 境 画 面 中 File→New→m File 或 File→Open→ 所 需 文 件 ) 等 操 作 , 或 直 接 在 命 令 窗 口 键 入 “ edit” , 或 直 接 点 击 图 标 , 都 能 进 入 图 3.1-2 所 示 的 MATLAB编辑和调试操作环境的窗口画面。
(s) 1 kG( s ) F ( s ) Q ( s )
可以用以下程序来校核当k=35与k=36时闭环系统的阶跃给定响应曲线: n1=[1 3];d1=conv(conv(conv([1 0],[1 5]),[1 6]),[1 2 2]); for k=35:36 n=k*n1; s1=tf(n,d1); G=feedback(s1,1); step(G);hold on end gtext('k=35'),gtext('k=36')
[A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2, inp1,out1)将系统1的指定输出(out1)连接到系统2的输入,系统2 的输出连接到系统1的指定输入(inp1),以次构】就用到了该函数。
2.主要模型变换函数表
3.主要模型特性函数表
range=[33:1:37]'; [range,cpole]
ans = Columns 1 through 4 33.0000 34.0000 35.0000 36.0000 37.0000 -5.5745 + 0.6697i -5.5768 + 0.6850i -5.5791 + 0.7001i -5.5815 + 0.7147i -5.5838 + 0.7291i -5.5745 - 0.6697i -5.5768 - 0.6850i -5.5791 - 0.7001i -5.5815 - 0.7147i -5.5838 - 0.7291i -1.7990 -1.8154 -1.8313 -1.8466 -1.8615
%运行结果: cpole = Columns 1 through 4
-5.5745 + 0.6697i -5.5768 + 0.6850i -5.5791 + 0.7001i -5.5815 + 0.7147i -5.5838 + 0.7291i
Column 5 -0.0260 - 1.3210i -0.0155 - 1.3340i -0.0052 - 1.3467i 0.0048 - 1.3591i 0.0146 - 1.3712i
4.主要时域响应函数表
0 1 A C 《线控》例2-11已知系统矩阵 2 3,输入矩阵 B 0 , 1 0 , 1
且 ,单输入u(t)为单位阶跃函数,试求系统的状态响 应和输出响应。 解:直接用MATLAB的lsim命令求解 A=[0 1;-2 -3]; B=[0 1]'; C=[1 0]; D=0; x0=[0 0.5]; [y,x]=lsim(A,B,C,D,1+t*0,t,x0); plot(x);
Columns 5 through 6 -0.0260 + 1.3210i -0.0155 + 1.3340i -0.0052 + 1.3467i 0.0048 + 1.3591i 0.0146 + 1.3712i -0.0260 - 1.3210i -0.0155 - 1.3340i -0.0052 - 1.3467i 0.0048 - 1.3591i 0.0146 - 1.3712i
图3.1-.3
求连续系统单位阶跃响应的函数step( )
函数命令调用格式如下:
step(sys)
三. 用Bode图法判断系统稳定性及其举例
图3.1-4
【例3.5】已知两个单位负反馈系统开环传递函数分别为: 2 .7 2 .7 G1 ( s ) ; G2 (s) 3 s3 5s 2 4 s s 5s 2 4 s
【例3.4】续【例3.3】,试计算当k在33—37范围内时系统的闭环极点位置,并判 断系统闭环的稳定性。 【解】根据题目要求,用函数命令编写MATLAB程序如下: num=[1 3];den=conv(conv(conv([1 0],[1 5]),[1 6]),[1 2 2]); cpole=rlocus(num,den,[33:1:37]);
n1=[2 0];d1=[ 0 1];s2=tf(n1,d1);
s12=feedback(s1,s2);
%运行结果:Transfer function: 10 ---------s^2 + 21 s
n3=[ 1 1];d3=[1 0];s3=tf(n3,d3);
sys1=s12*s3;
%运行结果:Transfer function: s+1 ----s %运行结果:Transfer function: 10 s + 10 -----------s^3 + 21 s^2 %运行结果:Transfer function: 10 s + 10 -----------------------s^3 + 21 s^2 + 10 s + 10
0 x (0) 0 .5

5.主要频域响应函数表
6.主要的根轨迹函数表
二.用根轨迹法判断系统稳定性及其举例
【例3.3】已知一个单位负反馈系统开环传递函数为G(s),试在系统闭环的根轨迹 图上选择一点,求出该点的增益k及其系统的闭环极点位置,并判断在该点系统 闭环的稳定性。 ( s 3)
G (s) k s ( s 5)( s 6)( s 2 2 s 2)
【解】根据题目要求,调用函数命令rlocfind( )的程序如下: num=[1 3];den=conv(conv(conv([1 0],[1 5]),[1 6]),[1 2 2]);
%运行结果:
den = 1 13 54 82 60 0
sys=feedback(sys1,1)
roots(sys.den{1}) ans = -20.5368 -0.2316 + 0.6582i -0.2316 - 0.6582i
补充知识:MATLAB基础Ⅱ
一.M文件
所谓M文件,就是用户把要实现的命令写在一个以.m为扩展名 的文件中。与在命令窗口中输入命令行方式比,M文件的有的是 可调试、可重复使用。M文件分为程序文件与函数(function)文件 两大类。
C=sqrt((a^2)+(b^2)); >>a=3; >>b=4; >>c=myfile(a,b); c= 5
>>
二.MATLAB控制系统工具箱函数
1.主要模型建立函数表
举例: feedback函数 功能:两个系统的反馈连接 格式: [A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2); [A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,sign); [A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2,D2,inp1,out1); [num,den]=feedback(num1,den1,num2,den2); [num,den]=feedback(num1,den1,num2,den2,sign); [A,B,C,D]=feedback(A1,B1,C1,D1,A2,B2,C2, D2,sign)可将两个系统按反馈方式连接,系统1的所有输出连接 到系统2的输入,系统2的所有输出连接到系统1的输入;sign是用 于反馈连接的符号,默认为负号。 [num,den]=feedback(num1,den1,num2,den2,sign);用于 传递函数形式所表示的系统,sign是用于反馈连接的符号,默认 为负号。
用Bode图法判断系统闭环的稳定性。
【解】根据要求,对第一个系统用margin( )函数命令给出如下程序: num=[0 0 0 2.7];den=[1 5 4 0];s1=tf(num,den); Gm = 7.4074 [Gm,Pm,Wcp,Wcg]=margin(s1) Pm = 51.7320 Wcp = 2 margin(s1) Wcg = 0.5783
第3章 控制系统特性分析的MATLAB的实现
3.1 控制系统稳定性分析的MATLAB实现
一.直接求根判定系统稳定性
求解控制系统闭环特征方程的根并判断所有根的实部是否小于零,在 MATLAB里这是很容易用函数roots( )实现的。 【例3.1】已知系统开环传递函数为: ( S ) 100 ,试判别系统的 G S ( S 1)( S 20 ) 稳定性。 【解】根据题意,利用roots( )函数给出以下MATLAB程序段: k=100;z=[-2];p=[0,-1,-20]; [n1,d1]=zp2tf(z,p,k); %运行结果:n1 =[ 0 0 100 200],d1 =[ 1 21 20 0]; G=tf(n1,d1);
如【例3.2】可以用M文件方 式建立,文件名为: zhang3L2.m
图3.1-2 MATLAB编辑和调试操作 环境的窗口画面
2.函数式M文件 在函数文件的第一行必须是以关键字“function”开始的函数 说明语句。下面是一个只有两行的函数文件的例子。
Function c=myfile(a,b)
%运行结果: Transfer function: 100 s + 200 ------------------s^3 + 21 s^2 + 20 s
( S 2)
ans = -12.8990 -5.0000 -3.1010
p=n1+d1; %运行结果:p =[ 1 21 120 200] roots(p)
-5.5745 - 0.6697i -5.5768 - 0.6850i -5.5791 - 0.7001i -5.5815 - 0.7147i -5.5838 - 0.7291i
-1.7990 -1.8154 -1.8313 -1.8466 -1.8615
-0.0260 + 1.3210i -0.0155 + 1.3340i -0.0052 + 1.3467i 0.0048 + 1.3591i 0.0146 + 1.3712i
【例3.2】已知系统的动态结构图如图3.1-1所示,试对系统闭环判别其稳定性。
图3.1-1
【解】根据题意,利用roots( )函数给出以下MATLAB程序段: n1=[ 10];d1=[1 1 0];s1=tf(n1,d1); %运行结果:Transfer function:
10 -----s^2 + s %运行结果:Transfer function: 2s
求系统根轨迹的函数 rlocus( ) 函数命令调用格式: [r,k]=rlocus(a,b,c,d) [r,k]=rlocus(sys)
函数命令使用说明: rlocus( )函数命令用来绘制SISO系统的根 轨迹图。给定前向通道传递函数G(s),反馈 补偿为k*F(s)的受控对象,其闭环传递函数 为: G (s) G (s)
sys=tf(num,den);
%运行结果:Transfer function: s+3 -------------------------------------------------s^5 + 13 s^4 + 54 s^3 + 82 s^2 + 60 s
rlocus(sys)
图3.1-2
[k,poles]=rlocfind(sys) Select a point in the graphics window selected_point = -0.6498 - 0.0585i k= 7.2349 poles = -5.8248 -5.2067 -0.6585 + 0.8155i -0.6585 - 0.8155i -0.6514 求给定一组根的系统根轨迹增益函数rlocfind( ) 函数命令调用格式: [k,poles]=rlocfind(sys) 函数命令使用说明:
相关文档
最新文档