第7章 控制系统的MATLAB仿真

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1本章主要教学内容在MATLAB中描述控制系统的数学模型系统方框图模型的简化及应用控制系统的时域分析控制系统的频域分析利用MATLAB语言进行仿真编程的具体应用第7章控制系统的MATLAB仿真2本章教学目的及要求熟悉MATLAB的基本应用掌握利用MATLAB建立数学模型的方法熟悉控制系统的时域和频域分析掌握MATLAB的仿真编程应用第7章控制系统的MATLAB仿真37.1控制系统的模型表示MATLAB提供了数学模型的建立函数和各模型之间的转换功能函数,可以分别采用传递函数、零极点增益、状态空间以及动态结构图等4种数学模型来表示控制系统,前3种是用数学表达式描述的系统模型,每种模型都有连续系统及离散系统两种类别的表示;而动态结构图是基于传递函数的图形化形式,是采用MATLAB中提供的SIMULINK结构图来实现的。MATLAB中使用的数学模型之间的转换也很方便,使得采用MATLAB编制的程序更加简单、精炼而高效。第7章控制系统的MATLAB仿真47.1.1系统的传递函数模型表示传递函数模型通常表示线性定常时不变系统(LTI),可以是连续的时间系统,也可以是离散的时间系统。对于离散的时间系统,其脉冲传递函数可表示为:第7章控制系统的MATLAB仿真)()()()()(11101110zdenznumazazazaczczczczUzYzGnnnnmmmm不论是连续的还是离散的时间系统,其传递函数的分子/分母多项式均按s或z的降幂来排列。在MATLAB中可直接采用分子/分母多项式系数构成的两个向量num与den来表示系统,即:5在MATLAB中,可用函数命令tf()来建立控制系统的传递函数模型,其调用格式和功能分别为:(1)sys=tf(num,den);(2)sys=tf(num,den,Ts);。(3)sys=tf(M);(4)tfsys=tf(sys);第7章控制系统的MATLAB仿真],,,[],,,[2110amaaadencccnum6第7章7.1.2零极点增益模型当连续系统的传递函数表达式采用系统增益、系统零点与系统极点来表示时,称之为系统零极点增益模型。系统零极点增益模型是传递函数模型的一种特殊形式。离散系统的传递函数零极点增益模型:控制系统的MATLAB仿真)())(()())(()(2121nmpzpzpzzzzzzzkzG7第7章在MATLAB里,连续与离散系统都可直接用向量z、p、k构成的矢量组[z,p,k]来表示系统,即:控制系统的MATLAB仿真][],,,[],,,[2121kpppzzznmkpz8第7章在MATLAB中,可用函数命令zpk()来建立控制系统的零极点增益模型,其调用格式和功能分别为:(1)sys=zpk(num,den);(2)sys=zpk(num,den,Ts);(3)sys=zpk(M);(4)tfsys=zpk(sys);控制系统的MATLAB仿真97.1.3状态空间模型控制系统在主要工作区域内的一定条件下可近似为线性时不变(LTI)模型,连续LTI对象系统总是能用一阶微分方程组来表示,写成矩阵形式即为状态空间模型:第7章控制系统的MATLAB仿真)()()()()()()()(btttatttDUCXYBUAXX其中:式(a)——系统的状态方程,是由n个一阶微分方程组成的微分方程组;式(b)——系统的输出方程,是由1个线性代数方程组成的;10第7章离散系统的状态空间模型可表示为:控制系统的MATLAB仿真)1()1()1()()()1(kkkkUkkDUCXYBAXX式中:U——系统的控制输入向量;X——系统的状态向量;Y——系统的输出向量;k——特定时刻的采样点;A——状态矩阵,由控制对象的参数决定;B——控制矩阵;C——输出矩阵;D——直接传输矩阵。11MATLAB中的函数ss()可用来建立控制系统的状态空间模型,或者将传递函数模型与零极点增益模型转换为系统状态空间模型。ss()函数的调用格式为:(1)sys=ss(a,b,c,d);(2)sys=ss(a,b,c,d,Ts);(3)sys=ss(d);该函数等价于sys=ss([],[],[],d)。(4)sys_ss=ss(sys);第7章控制系统的MATLAB仿真12第7章【例7.1】已知某系统的状态空间表达式为:控制系统的MATLAB仿真)(]0123[)()(1000)(2051010000100001)(tttttXYUXX试采用MATLAB语言求出该系统的状态空间模型。13解:采用状态空间模型表示时,可在MATLAB命令窗口中输入以下命令:A=[1000;0100;0010;-1-50-2];B=[0;0;0;1];C=[3210];D=0;sys=ss(A,B,C,D)上述指令执行后可得指定系统的状态空间模型为:a=x1x2x3x4x11000x20100x30010x4-1-50-2第7章控制系统的MATLAB仿真14第7章b=u1x10x20x30x41c=x1x2x3x4y13210d=u1y10Continuous-timemodel.控制系统的MATLAB仿真157.1.4系统不同模型间的相互转换在MATLAB6.1的信号处理工具箱与控制系统工具箱中,提供了传递函数模型、零极点增益模型与状态空间模型之间转换的函数:ss2tf(),ss2zp(),tf2ss(),tf2zp(),zp2ss(),zp2tf()。这些函数之间的转换功能如表7-1所示。第7章控制系统的MATLAB仿真16第7章控制系统的MATLAB仿真表7-1数学模型之间的转换函数及其功能函数名函数功能ss2tf将系统状态空间模型转换为传递函数模型ss2zp将系统状态空间模型转换为零极点增益模型tf2ss将系统传递函数模型转换为状态空间模型tf2zp将系统传递函数模型转换为零极点增益模型zp2ss将系统零极点增益模型转换为状态空间模型zp2tf将系统零极点增益模型转换为传递函数模型17【例7.2】已知某系统的传递函数为:第7章控制系统的MATLAB仿真2264220122412)(23423ssssssssG试用MATLAB语言求出该系统的传递函数模型、状态空间模型和零极点增益模型。解:(1)求系统的传递函数模型在MATLAB命令窗口输入以下命令:num=[12241220];den=[24622];sys=tf(num,den)18第7章执行以上语句后可得系统的传递函数模型为:12s^3+24s^2+12s+20-----------------------------------------2s^4+4s^3+6s^2+2s+2(2)求系统的状态空间模型该系统的状态空间模型可以通过MATLAB的模型转换函数来完成。在MATLAB命令窗口输入以下命令:[a,b,c,d]=tf2ss(num,den);sys=ss(a,b,c,d)控制系统的MATLAB仿真19执行完上述语句后,可得系统的状态空间模型的状态矩阵a,系统控制矩阵b,系统输出矩阵c,系统直接传输矩阵d分别为:a=x1x2x3x4x1-2-3-1-1x21000x30100x40010第7章控制系统的MATLAB仿真20第7章b=u1x11x20x30x40c=x1x2x3x4y1612610d=u1y10Continuous-timemodel.控制系统的MATLAB仿真21由以上数据可写出系统的状态空间模型为:第7章控制系统的MATLAB仿真)(]106126[)()(0001)(0100001000011132)(tttttXYUXX22第7章(3)求系统的零极点增益模型该系统的零极点增益模型也可以通过MATLAB的模型转换函数来完成。在MATLAB命令窗口输入以下命令:[z,p,k]=tf2zp(num,den);sys=zpk(z,p,k)执行以上语句后可得系统的零极点增益模型为:Zero/pole/gain:6(s+1.929)(s^2+0.07058s+0.8638)--------------------------------------------------------------(s^2+0.08663s+0.413)(s^2+1.913s+2.421)控制系统的MATLAB仿真237.2环节方框图模型的化简7.2.1环节串联连接的化简多个环节串联的连接形式是控制系统最基本的组成结构形式之一。控制系统的环节串联及其化简就是模块方框图模型的串联及其化简。可以用MATLAB的函数命令series()将串联模块进行等效变换。使用series()函数命令不必做多项式的乘除运算即可实现两个环节传递函数的串联连接。如果令sys1=tf(num1,den1),sys2=tf(num2,den2),其命令格式为:sys=series(sysl,sys2)第7章控制系统的MATLAB仿真24如果已知两个环节的状态空间模型矩阵组分别为:(a1,b1,c1,d1)与(a2,b2,c2,d2),则求两个环节串联连接等效系统状态空间模型[a,b,c,d]矩阵组的命令格式为:[a,b,c,d]=series(a1,bl,cl,dl,a2,b2,c2,d2)series()函数命令还可以将多个环节按两两串联的形式多次递归调用加以连接,进行等效化简。sys=series(sysl,sys2)命令可以用命令sys=sys1*sys2*…*sysn取代,不仅省掉“series()”字符,且可以实现多个环节的串联等效传递函数的求取。第7章控制系统的MATLAB仿真25第7章【例7.3】已知双闭环调速系统电流环内的前向通道3个模块传递函数分别为:控制系统的MATLAB仿真sssG04.010128.0)(1100167.030)(2ssG10128.05.2)(3ssG试求串联连接的等效传递函数及其等效状态空间模型。26解:(1)根据MATLAB程序设计的基本方法和函数命令series(),可以编写出MATLAB程序如下:n1=[0.01281];d1=[0.040];sys1=tf(n1,d1);n2=[30];d2=[0.001671];sys2=tf(n2,d2);n3=[2.5];d3=[0.01281];sys3=tf(n3,d3);sys=sys1*sys2*sys3s1=ss(sys1);s2=ss(sys2);s3=ss(sys3);sys12=series(s1,s2);sys123=series(sys12,s3)第7章控制系统的MATLAB仿真27第7章控制系统的MATLAB仿真(2)在MATLAB命令窗口输入程序名,程序运行后得到如下电流环内前向通道的等效传递函数及等效状态空间模型:Transferfunction:0.96s+75---------------------------------------------------8.55e-007s^3+0.0005788s^2+0.04sa=x1x2x3x1-78.1322460x20-598.8800x300028b=u1x10x240.96x34c=x1x2x3y112.2100d=u1y10Continuous-timemodel.第7章控制系统的MATLAB仿真29第7章7.2.2环节并联连结的化简环节并联是指多个环节的输入信号相同,所有环节输出的代数和为其总输出。采用parallel()函数命令可以等效化简两个环节的并联连接。parallel()函数命令调用格式为:[num,den]=parallel(numl,de

1 / 101
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功