基于MATLAB的控制系统数学建模ppt课件.ppt

上传人:牧羊曲112 文档编号:1325190 上传时间:2022-11-09 格式:PPT 页数:85 大小:3.64MB
返回 下载 相关 举报
基于MATLAB的控制系统数学建模ppt课件.ppt_第1页
第1页 / 共85页
基于MATLAB的控制系统数学建模ppt课件.ppt_第2页
第2页 / 共85页
基于MATLAB的控制系统数学建模ppt课件.ppt_第3页
第3页 / 共85页
基于MATLAB的控制系统数学建模ppt课件.ppt_第4页
第4页 / 共85页
基于MATLAB的控制系统数学建模ppt课件.ppt_第5页
第5页 / 共85页
点击查看更多>>
资源描述

《基于MATLAB的控制系统数学建模ppt课件.ppt》由会员分享,可在线阅读,更多相关《基于MATLAB的控制系统数学建模ppt课件.ppt(85页珍藏版)》请在三一办公上搜索。

1、MATLAB与控制系统仿真实践,第1章基于MATLAB的控制系统数学建模,本章主要内容,原理要点1.1 控制系统的传递函数模型 1.1.1 系统传递函数模型简述1.1.2 传递函数的MATLAB相关函数1.1.3 建立传递函数模型实例1.2 控制系统的零极点函数模型1.2.1 零极点函数模型简述1.2.2 零极点函数的MATLAB相关函数,1.2.3 建立零极点函数模型实例1.3 控制系统的状态空间函数模型1.3.1 状态空间函数模型简述1.3.2 状态空间函数的MATLAB相关函数1.3.3 建立状态空间函数模型实例1.4 系统模型之间的转换1.4.1 系统模型转换的MATLAB相关函数1.

2、4.2 系统模型之间转换实例,1.5 方框图模型的连接化简1.5.1 方框图模型的连接化简简述1.5.2 系统模型连接化简的MATLAB相关函数1.5.3 系统模型连接化简实例,1.1控制系统的传递函数模型,1.1.1系统传递函数模型简述1.1.2传递函数的MATLAB相关函数 1.1.3 建立传递函数模型实例,1.1.1系统传递函数模型简述,连续系统一般由微分方程来描述。而线性系统又是以线性常微分方程来描述的。 设系统的输入信号为u(t),且输出信号为y(t),则系统的微分方程可写成:,在零初始条件下,经Laplace变换后,线性系统的传递函数模型:MATLAB中可以方便地由分子和分母系数构

3、成的两个向量唯一地确定出来,这两个向量分别用num(numerator,分子)和den(denominator,分母)表示。,1.1.2传递函数的MATLAB相关函数,用不同向量分别表示分子和分母多项式,就可以利用控制系统工具箱的函数表示传递函数变量G: tf函数的具体用法见表1.1。,表1.1 tf函数的具体用法,1.1.3建立传递函数模型实例,例1:12 s + 15 - s3 + 16 s2 + 64 s + 192输入到MATLAB工作空间中。,方式1 num=12 15; den=1 16 64 192; G=tf(num,den),方式2: s=tf(s); %先定义Laplace

4、算子 %直接给出系统传递函数表达式 G=(12*s+15)/(s3+16*s2+64*s+192) Transfer function: 12 s + 15 - s3 + 16 s2 + 64 s + 192分析:可以采用不同方法得到系统传递函数。第一种方式需先求出分子分母多项式,再将其作为tf函数的参数使用。第二种方式需先定义Laplace算子,将传递函数直接赋值给对象G。,例2:已知传递函数模型 将其输入到MATLAB工作空间中。方式1: num=conv(10,2,1); %计算分子多项式 den=conv(1 0 0,1 7 13); %计算分母多项式 G=tf(num,den) %求

5、系统传递函数,Transfer function: 20 s + 10-s4 + 7 s3 + 13 s2方式2: s=tf(s) %定义Laplace算子 Transfer function: s G=10*(2*s+1)/s2/(s2+7*s+13)%直接给出系统传递函 数表达式 Transfer function: 20 s + 10-s4 + 7 s3 + 13 s2,分析: 当传递函数不是以标准形式给出时,在应用sys = tf(num,den)前,需将传递函数分子分母转化成多项式。为此可以手工将多项式展开或借助conv函数完成多项式相乘后,再使用tf函数。 第2种方式对多项式形式不

6、做要求。这样在得到Laplace算子后,可以直接按照原格式输入传递函数,从而得到系统函数的MATLAB表示。可见第2种方式在处理非标准格式的传递函数时更方便。,例3:设置传递函数模型 时间延迟常数为 e-4s,即系统模型在已有MATLAB模型基础上,设置时间延迟常数。接例2所得系统G。方式1: set(G,ioDelay,4) %为传递函数设置时间延迟 G %显示传递函数,Transfer function: 20 s + 10exp(-4*s) * - s4 + 7 s3 + 13 s2方式2: G.ioDelay=4 %设置G的延时 Transfer function: 20 s + 10

7、exp(-4*s) * - s4 + 7 s3 + 13 s2分析:在得到系统的传递函数之后,可以进 一步对其参数进行设置。可通过set函 数设定属性值,也可直接给属性赋值。,例4:已知系统传递函数模型为,提取系统的分子和分母多项式。 s=tf(s);%定义Laplace算子 G=(s2+2*s+3)/(s3+3*s+4)/(s+2)%直接给出系统传递 函数表达式 Transfer function: s2 + 2 s + 3-s4 + 2 s3 + 3 s2 + 10 s + 8, num1,den1=tfdata(G,v)%得到系统的分子和分母多项 式num1 = 0 0 1 2 3den

8、1 = 1 2 3 10 8 get(G) %查看所得系统的所有参数 %参数的具体含义请参阅帮助文档中tf的相关内容 num: 0 0 1 2 3 den: 1 2 3 10 8 ioDelay: 0 Variable: s Ts: 0 InputDelay: 0 OutputDelay: 0,InputName: OutputName: InputGroup: 1x1 struct OutputGroup: 1x1 struct Name: Notes: UserData: num2=G.num1,1 %取出G中具体单元值 num2 = 0 0 1 2 3 den2=G.den1,1 %取出

9、G中具体单元值 den2 = 1 2 3 10 8 G.num %num是以单元数组表示的, 这种方式只能看到其结构,ans = 1x5 double分析: 可以利用tfdata函数取出传递函数的分子分母向量,注意参数v表示以行向量的形式表示。也可通过操作传递函数对象G的参数来获取分子分母向量,此时要注意分子分母在G结构体中是以单元数组的形式存在的,需以操作单元数组的方式获取。,1.2控制系统的零极点函数模型,1.2.1零极点函数模型简述1.2.2零极点函数的MATLAB相关函数1.2.3建立零极点函数模型实例,1.2.1零极点函数模型简述,零极点模型实际上是传递函数模型的另一 种表现形式,其

10、原理是分别对原系统传递 函数的分子、分母进行分解因式处理,以 获得系统的零点和极点的表示形式。,K为系统增益,zi为零点,pj为极点。显然,对实系数的传递函数模型来说,系统的零极点或者为实数,或者以共轭复数的形式出现。 离散系统的传递函数也可表示为零极点模式:,1.2.2零极点函数的MATLAB相关函数,在MATLAB中零极点增益模型用z,p,K矢量组表示。即:然后调用zpk()函数就可以输入这个零极点模型了。zpk函数的具体用法见表1.2。,表1.2 zpk函数的具体用法,与零极点增益模型相关的函数见表1.3。,1.2.3建立零极点函数模型实例,例5:将零极点模型输入MATLAB工作空间 方

11、式1: z1=-5;-5; p1=-1;-2;-2-2*j;-2+2*j; k=4; G1=zpk(z1,p1,k),Zero/pole/gain: 4 (s+5)2-(s+1) (s+2) (s2 + 4s + 8)方式2: s=zpk(s); %高版本MatLab中符号运算不支持复数零极点%下面的形式在高版本MatLab中不能通过 G2=4*(s+5)2/(s+1)/(s+2)/(s+2+2*j)/(s+2-2*j) Zero/pole/gain: 4 (s+5)2 - (s+1) (s+2) (s2 + 4s + 8),分析: 和传递函数的表示一样,可以用不同方法得到系统零极点模型。一种

12、是直接将零极点向量和增益值赋给zpk函数,一种是先定义零极点形式的Laplace算子,再输入零极点模型。 另外在低版本MATLAB的零极点模型显示中,如果存在复数零极点,则用二阶多项式来表示这两个因式,而不直接展开成一阶复数因式。例中第二种方式求零极点传递函数时的警告提示了这一点。,例6:已知一系统的传递函数 求取其零极点向量和增益值,并得到系统的零极点增益模型。 Gtf=tf(7 2 8,4 12 4 2) %得到系统传递函数 Transfer function: 7 s2 + 2 s + 8-4 s3 + 12 s2 + 4 s + 2 z,p,k=zpkdata(Gtf,v)%得到系统零

13、极点向量和增益值,z = -0.1429 + 1.0595i -0.1429 - 1.0595ip = -2.6980 -0.1510 + 0.4031i -0.1510 - 0.4031ik = 1.7500 Gzpk=zpk(z,p,k) %求系统零极点增益模型Zero/pole/gain: 1.75 (s2 + 0.2857s + 1.143)-(s+2.698) (s2 + 0.302s + 0.1853), p1,z1 = pzmap(Gtf) %求取系统零极点p1 = -2.6980 -0.1510 + 0.4031i -0.1510 - 0.4031iz1 = -0.1429 +

14、 1.0595i -0.1429 - 1.0595i 分析: 系统零极点可以由不同方式求取。zpkdata函数需指定参数v,否则得到的是单元数组形式的零极点。pzmap函数带返回值使用时只返回系统的零极点向量,而不绘制零极点分布图。,例7:已知一系统的传递函数 求其零极点及增益,并绘制系统零极点分布图。 num=1 4 11; den=conv(1 6 3,1 2 0); G=tf(num,den) %得到系统传递函数 Transfer function: s2 + 4 s + 11-s4 + 8 s3 + 15 s2 + 6 s, z,p,k=zpkdata(G,v)%得到系统零极点向量和增

15、益值z = -2.0000 + 2.6458i -2.0000 - 2.6458ip = 0 -5.4495 -2.0000 -0.5505k = 1 pzmap(G) %得到系统零极点分布图例7得到的系统零极点分布图见图1.1。,分析:由MATLAB既可以求得系统的零极点向量,也可以由图形的方式显示其分布状态。pzmap函数不带返回值使用时,显示系统零极点分布图。当在图上点击各点时,将显示该点的各属性及其值。,图1.1 例7系统零极点分布图,1.3 控制系统的状态空间函数模型,本节主要内容,1.3.1状态空间函数模型简述1.3.2状态空间函数的MATLAB相关函数1.3.3建立状态空间函数模

16、型实例,1.3.1状态空间函数模型简述,系统的状态空间模型。 这种方式是基于系统的内部的状态变量的,所以又往往称为系统的内部描述方法。和传递函数模型不同,状态方程可以描述更广的一类控制系统模型,包括非线性系统。 具有n个状态、m个输入和p个输出的线性时不变系统,用矩阵符号表示的状态空间模型是:,1.3.2状态空间函数的MATLAB相关函数,1.3.3建立状态空间函数模型实例,例8:将以下系统的状态方程模型输入 MATLAB工作空间中。 A=6 5 4;1 0 0;0 1 0; B=1 0 0; C=0 6 7; D=0; G=ss(A,B,C,D) %输入并显示系统状态空间模型,a = x1

17、x2 x3 x1 6 5 4 x2 1 0 0 x3 0 1 0 b = u1 x1 1 x2 0 x3 0 c = x1 x2 x3 y1 0 6 7d = u1 y1 0,例9:已知系统求系统参数。 A=0 1;-3 -4; B=0 1; C=5 2; D=1; Gss=ss(A,B,C,D) %得到系统状态空间模型,a = x1 x2 x1 0 1 x2 -3 -4b = u1 x1 0 x2 1c = x1 x2 y1 5 2d = u1 y1 1, aa,bb,cc,dd=ssdata(Gss)%得到系统模型参数aa = 0 1 -3 -4bb = 0 1cc = 5 2dd = 1

18、, get(Gss) %得到对象Gss所有参数列表 a: 2x2 double b: 2x1 double c: 5 2 d: 1 e: StateName: 2x1 cell InternalDelay: 0 x1 double Ts: 0 InputDelay: 0 OutputDelay: 0 InputName: OutputName: InputGroup: 1x1 struct OutputGroup: 1x1 struct Name: Notes: UserData: , Gss.a %求取一个系统模型参数ans = 0 1 -3 -4分析:系统状态空间模型参数可由不同方式 得到

19、。与tf模型和zpk模型相比不同的 一点是,状态空间模型参数A,B, C,D是矩阵形式,可直接由Gss.a的 方式,此时无需按照单元数组格式获 得其参数。,1.4系统模型之间的转换,本节主要内容,1.4.1系统模型转换的MATLAB相关函数1.4.2系统模型之间转换实例,10.4.1系统模型转换的MATLAB相关函数,系统的线性时不变(LTI)模型有传递函数(tf)模型、零极点增益(zpk)模型和状态空间(ss)模型,它们之间可以相互转换。转换形式如图1.2所示。,模型之间的转换函数可分成2类:第一类是把其它类型的模型转换为函数表示的模型自身见表1.6。,表1.6第一类函数(把其它类型的模型转

20、换为函数表示的模型自身),表1.7 第二类函数(将本类型传递函数参数转换为其它类型传递函数参数),1.4.2系统模型之间转换实例,例10:已知系统传递函数模型 试求其零极点模型及状态空间模型。 num=5; den=conv(1 2,1 2 1); Gtf=tf(num,den) %得到系统多项式传递函数表示,Transfer function: 5-s3 + 4 s2 + 5 s + 2 Gzpk=zpk(Gtf) %将多项式传递函数模型转换为zpk模型 Zero/pole/gain: 5-(s+2) (s+1)2 Gss=ss(Gtf) %将多项式传递函数模型转换为ss模型,a = x1

21、x2 x3 x1 -4 -2.5 -1 x2 2 0 0 x3 0 1 0 b = u1 x1 2 x2 0 x3 0 c = x1 x2 x3 y1 0 0 1.25d = u1 y1 0Continuous-time model.,分析:采用第一类函数进行传递函数类型的 转换,可直接得到转换后的函数表示。例11:已知一系统的零极点模型 求其tf模型及状态空间模型。 z=-2 -4; p=-1 -3; k=5; Gzpk=zpk(z,p,k) %得到系统zpk模型,Zero/pole/gain:5 (s+2) (s+4)- (s+1) (s+3) a,b,c,d=zp2ss(z,p,k)%由

22、系统zpk模型转换得到ss模型参数a = -4.0000 -1.7321 1.7321 0b = 1 0c = 10.0000 14.4338d = 5, num,den=zp2tf(z,p,k)%得到tf模型分子分母参数num = 5 30 40den = 1 4 3 num,den=zp2tf(Gzpk) %错误调用,注意应传递参数z,p,k? Input argument p is undefined.Error in = zp2tf at 24den = real(poly(p(:); Gtf=zp2tf(z,p,k) %错误调用,注意应返回分子分母两个参数Gtf = 5 30 40,

23、分析:采取第二类函数进行传递函数类型,只得到转换后的系统参数。这一点与第 一类函数调用有很大差别。此外,在第二类函数的调用中要特别注意传入参数和返回参数的使用,否则会报错或得到错误结果。例12:将双输入单输出的系统模型转换为多 项式传递函数模型。, a=0 1;-2 -3; b=1 0;0 1; c=1 0; d=0 0; num,den=ss2tf(a,b,c,d,1)%得到第1路输入对应的传递函数参数num = 0 1.0000 3.0000den = 1 3 2 num2,den2=ss2tf(a,b,c,d,2)%得到第2路输入对应的传递函数参数num2 = 0 0.0000 1.00

24、00,den2 = 1 3 2 Gss=ss(a,b,c,d); Gtf=tf(Gss)%直接得到各路传递函数 Transfer function from input 1 to output: s + 3-s2 + 3 s + 2 Transfer function from input 2 to output: 1-s2 + 3 s + 2,分析:系统传递函数矩阵为 对以上双输入单输出的系统模型,在使用ss2tf函数时需要使用参数iu来指定输入输出对应关系。 从例题结果知,对于输入1和输入2(考虑输入1时,设输入2为0。反之亦然),传递函数分别为:,例13:系统传递函数为将其转换为状态空间

25、模型。, num=1 2; den=1 1 2; a,b,c,d=tf2ss(num,den)%转换方式1a = -1 -2 1 0b = 1 0c = 1 2d = 0, Gss=ss(tf(num,den)%转换方式2 a = x1 x2 x1 -1 -2 x2 1 0 b = u1 x1 2 x2 0 c = x1 x2 y1 0.5 1 d = u1 y1 0,Continuous-time model.分析:使用不同方法得到系统的不同状态空 间模型。这也表明具有同一传递函数的系统具有不同的状态空间模型。事实上,状态空间模型是无穷多的。,1.5方框图模型的连接化简,本节主要内容,1.5

26、.1方框图模型的连接化简简述1.5.2系统模型连接化简的MATLAB相关 函数1.5.3系统模型连接化简实例,1.5.1方框图模型的连接化简简述,在实际应用中,整个控制系统由受控对象和控制装置组成的,有多个环节。由多个单一的模型组合而成。每个单一的模型都可以用一组微分方程或传递函数来描述。基于模型不同的连接和互连信息,合成后的模型有不同的结果。模型间连接主要有串联连接、并联连接、串并联连接和反馈连接等。对系统的不同连接情况,我们可以进行模型的化简。,1.5.1方框图模型的连接化简简述串联连接的化简,图1.3是一般情况下模型串联连接的结构框图。,1.5.1 方框图模型的连接化简简述并联连接的化简

27、,图1.4是一般情况下模型并联连接的结构框图。单输入单输出(SISO)系统G1(s)和G2(s)并联连接时,合成系统 G:G(s)G1(s)+G2(s) 图1.4 并联连接结构框图,1.5.1 方框图模型的连接化简简述反馈连接的化简,(a)正反馈连接结构框图,(b)负反馈连接结构构图,对于如图1.5的正反馈连接 负反馈连接,表1.8 系统模型连接化简函数,MATLAB提供了系统模型连接化简的不同函数,其中主要函数及功能说明见表1.8。,1.5.3系统模型连接化简实例,例13:已知系统 求G1(s)和G2(s)分别进行串联、并联和反馈连接后的系统模型。, clear num1=1; den1=1

28、 5 23; num2=1; den2=1 4; G1=tf(num1,den1); %得到G1 G2=tf(num2,den2); %得到G2 Gs=G2*G1 %进行串联,串联方式1,Transfer function: 1-s3 + 9 s2 + 43 s + 92, Gs1=series(G1,G2) %进行串联,串联方式2,结果与串 联方式1相同 Transfer function: 1-s3 + 9 s2 + 43 s + 92 Gp=G1+G2 %进行并联,方式1 Transfer function: s2 + 6 s + 27-s3 + 9 s2 + 43 s + 92 Gp1

29、=parallel(G1,G2) %进行并联,并联方式2,结果与并 联方式1相同,Transfer function: s2 + 6 s + 27-s3 + 9 s2 + 43 s + 92 Gf=feedback(G1,G2) %进行负反馈化简,反馈方式1 Transfer function: s + 4-s3 + 9 s2 + 43 s + 93 Gf1=G1/(1+G1*G2) %进行负反馈化简,反馈方式 2,模 型阶次高于实际阶次Transfer function: s3 + 9 s2 + 43 s + 92-s5 + 14 s4 + 111 s3 + 515 s2 + 1454 s

30、+ 2139, Gf2=minreal(Gf1) %获得系统的最小实现模型,结果与反馈方式1相同Transfer function: s + 4-s3 + 9 s2 + 43 s + 93分析:1.系统串联、并联和反馈连接化简可由不同方式完成。2.注意在串联实现方面,如果传递函数是状态空间形式,结果显然是不相同的。而对于非SISO系统,不一定存在,即使存在也极有可能得不出正确结果来。,3. 对于反馈连接,虽然运算式与feedback函数等效,但得到的系统阶次可能高于实际系统阶次,需要通过minreal函数进一步求其最小实现。此外,较早版本的教材中有很多用cloop函数来求系统反馈连接,这一函数

31、在新版本的MATLAB中会提示已过时,并建议用feedback代替之。(CLOOP is obsolete, use FEEDBACK instead.),例14:化简如图1.7的系统,求系统的传递函数。 图1.7 例14系统框图, clear G1=tf(1,1 1); G2=tf(1,3 4 1); Gp=G1+G2; %系统并联部分的化简 G3=tf(1,1 0); Gs=series(G3,Gp); %系统串联部分的化简 Gc=Gs/(1+Gs) %系统负反馈连接 Transfer function: 9 s6 + 36 s5 + 56 s4 + 42 s3 + 15 s2 + 2 s-9 s8 + 42 s7 + 88 s6 + 112 s5 + 95 s4 + 52 s3 + 16 s2 + 2 s, Gc1=minreal(Gc) %得到系统的最小实现 Transfer function: s + 0.6667-s3 + 1.333 s2 + 1.333 s + 0.6667分析: 系统中往往同时含有不同的连接方式。在化简时需正确使用不同的MATLAB化简函数。如果系统连接更复杂的话,可能需要首先进行节点的前移或后移,或者分支点的前移或后移,然后再进行系统化简。,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号