自动控制原理实验指导书b.doc
47页自动控制原理实验指导书b———————————————————————————————— 作者:———————————————————————————————— 日期: ?自动控制原理?实验指导龙岩学院物理与机电工程学院电子系编2021年2月目录实验一 控制系统的数学模型……………………………………………….1实验二 典型环节的模拟方法和动态特性………………………………….10实验三 控制系统的时域分析……………………………………………….11实验四 控制系统的根轨迹分析……………………………………………22实验五 控制系统的频域分析………………………………………………28实验六 串联校正环节的设计………………………………………………36实验七 离散控制系统分析…………………………………………………39实验一 控制系统的数学模型一、 实验目的1、了解MATLAB软件的根本特点和功能;2、掌握用MATLAB创立各种控制系统模型;3、掌握多环节串联、并联、反应连接时整体传递函数的求取方法二、实验原理〔一〕 用MATLAB建立传递函数模型1.多项式模型线性系统的传递函数模型可一般地表示为: (1)将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量和,就可以轻易地将传递函数模型输入到MATLAB环境中。
命令格式为:; 〔2〕; 〔3〕在MATLAB控制系统工具箱中,定义了tf() 函数,它可由传递函数分子分母给出的变量构造出单个的传递函数对象从而使得系统模型的输入和处理更加方便该函数的调用格式为: G=tf(num,den); 〔4〕例1-1 一个简单的传递函数模型: 可以由下面的命令输入到MATLAB工作空间中去 >> num=[1,5];den=[1,2,3,4,5];G=tf(num,den)运行结果:Transfer function: s + 5-----------------------------s^4 + 2s^3 + 3s^2 + 4s + 5这时对象G可以用来描述给定的传递函数模型,作为其它函数调用的变量例1-2 一个稍微复杂一些的传递函数模型:该传递函数模型可以通过下面的语句输入到MATLAB工作空间>> num=6*[1,5]; den=conv(conv([1,3,1],[1,3,1]),[1,6]); tf(num,den)运行结果Transfer function: 6 s + 30-----------------------------------------s^5 + 12 s^4 + 47 s^3 + 72 s^2 + 37 s + 6其中conv()函数〔标准的MATLAB函数〕用来计算两个向量的卷积,多项式乘法当然也可以用这个函数来计算。
该函数允许任意地多层嵌套,从而表示复杂的计算线性系统的传递函数还可以写成极点的形式: 〔5〕将系统增益、零点和极点以向量的形式输入给三个变量、Z和P,就可以将系统的零极点模型输入到MATLAB工作空间中,命令格式为: (6) (7) (8)在MATLAB控制工具箱中,定义了zpk()函数,由它可通过以上三个MATLAB变量构造出零极点对象,用于简单地表述零极点模型该函数的调用格式为:G=zpk(Z,P,K) (9)例1-3 某系统的零极点模型为: 该模型可以由下面的语句输入到MATLAB工作空间中>> K=6;Z=[-1.9294;-0.0353+0.9287j;-0.0353-0.9287j];P=[-0.9567+1.2272j;-0.9567-1.2272j;0.0433+0.6412j;0.0433-0.6412j];G=zpk(Z,P,K)运行结果:Zero/pole/gain: 6 (s+1.929) (s^2 + 0.0706s + 0.8637)----------------------------------------------(s^2 - 0.0866s + 0.413) (s^2 + 1.913s + 2.421)注意:对于单变量系统,其零极点均是用列向量来表示的,故Z、P向量中各项均用分号〔;〕隔开。
3. 反应系统构造图模型设反应系统构造图如图1-1所示控制系统工具箱中提供了feedback()函数,用来求取反应连接下总的系统模型,该函数调用格式如下: G=feedback(G1,G2,sign); 〔10〕 其中变量sign用来表示正反应或负反应构造,假设sign=-1表示负反应系统的模型,假设省略sign变量,那么仍将表示负反应构造G1和G2分别表示前向模型和反应模型的LTI(线性时不变)对象图1-1 反应系统构造图 例1-4 假设反应系统图5中的两个传递函数分别为: , 那么反应系统的传递函数可由以下的MATLAB命令得出>> G1=tf(1,[1,2,1]); G2=tf(1,[1,1]); G=feedback(G1,G2)运行结果:Transfer function: s + 1---------------------s^3 + 3 s^2 + 3 s + 2假设采用正反应连接构造输入命令>> G=feedback(G1,G2,1)那么得出如下结果:Transfer function: s + 1-----------------s^3 + 3 s^2 + 3 s例1-5 假设反应系统为更复杂的构造如图1-2所示。
其中,,那么闭环系统的传递函数可以由下面的MATLAB命令得出:>> G1=tf([1,7,24,24],[1,10,35,50,24]);G2=tf([10,5],[1,0]);H=tf([1],[0.01,1]);G_a=feedback(G1*G2,H)得到结果:Transfer function: 0.1 s^5 + 10.75 s^4 + 77.75 s^3 + 278.6 s^2 + 361.2 s + 120--------------------------------------------------------------------0.01 s^6 + 1.1 s^5 + 20.35 s^4 + 110.5 s^3 + 325.2 s^2 + 384 s + 120 图1-2 复杂反应系统 4. 多项式模型与零极点模型的转换有了传递函数的有理分式模型之后,求取零极点模型就不是一件困难的事情了在控制系统工具箱中,可以由zpk()函数立即将给定的LTI对象G转换成等效的零极点对象G1该函数的调用格式为: G1=zpk(G) (11)例1-6 给定系统传递函数为: 对应的零极点格式可由下面的命令得出>> num=[6.8, 61.2, 95.2]; den=[1, 7.5, 22, 19.5, 0]; G=tf(num,den); G1=zpk(G)显示结果:Zero/pole/gain: 6.8 (s+7) (s+2)-------------------------s (s+1.5) (s^2 + 6s + 13)可见,在系统的零极点模型中假设出现复数值,那么在显示时将以二阶因子的形式表示相应的共轭复数对。
同样,对于给定的零极点模型,也可以直接由MATLAB语句立即得出等效传递函数模型调用格式为: G1=tf(G) (12)例1-7 给定零极点模型: 可以用下面的MATLAB命令立即得出其等效的传递函数模型输入程序的过程中要注意大小写>> Z=[-2,-7];P=[0,-3-2j,-3+2j,-1.5];K=6.8;G=zpk(Z,P,K);G1=tf(G)结果显示:Transfer function: -------------------------------s^4 + 7.5 s^3 + 22 s^2 + 19.5 s5.模型的连接5.1并联:parallel格式: [num,den]=parallel(num1,den1,num2,den2,out1,out2) %将并联连接的传递函数进展相加out1和out2分别指定要作相加的输出端编号.5.2串联:series格式:[num,den]=series(num1,den1,num2,den2) %将串联连接的传递函数进展相乘。
5.3闭环:cloop〔单位反应〕格式: [numc,denc]=cloop(num,den,sign) %表示由传递函数表示的开环系统构成闭环系统,当sign=1时采用正反应;当sign= -1时采用负反应;sign缺省时,默认为负反应6. Simulink建模方法在一些实际应用中,如果系统的构造过于复杂,不适合用前面介绍的方法建模在这种情况下,功能完善的Simulink程序可以用来建立新的数学模型Simulink是由Math Works 软件公司1990年为MATLAB提供的新的控制系统模型图形输入仿真工具它具有两个显著的功能:Simul(仿真)与Link(连接),亦即可以利用鼠标在模型窗口上“画〞出所需的控制系统模型然后利用SIMULINK提供的功能来对系统进展仿真或线性化分析与MATLAB中逐行输入命令相比,这样输入更容易,分析更直观下面简单介绍SIMUL。





