一、课程设计的目的与要求本课程为《自动控制原理》的课程设计,是课堂的深化。
设置《自动控制原理》课程设计的目的是使MATLAB 成为学生的基本技能,熟悉MATLAB 这一解决具体工程问题的标准软件,能熟练地应用MATLAB 软件解决控制理论中的复杂和工程实际问题,并给以后的模糊控制理论、最优控制理论和多变量控制理论等奠定基础。
使相关专业的本科学生学会应用这一强大的工具,并掌握利用MATLAB 对控制理论内容进行分析和研究的技能,以达到加深对课堂上所讲内容理解的目的。
通过使用这一软件工具把学生从繁琐枯燥的计算负担中解脱出来,而把更多的精力用到思考本质问题和研究解决实际生产问题上去。
通过此次计算机辅助设计,学生应达到以下的基本要求: 1.能用MATLAB 软件分析复杂和实际的控制系统。
2.能用MATLAB 软件设计控制系统以满足具体的性能指标要求。
3.能灵活应用MATLAB 的CONTROL SYSTEM 工具箱和SIMULINK 仿真软件,分析系统的性能。
二、设计正文1.控制系统的数学建模相关知识:研究一个自动控制系统,单是分析系统的作用原理及其大致的运动过程是不够的,必须同时进行定量的分析,才能作到深入地研究并将其有效地应用到实际工程上去。
这就需要把输出输入之间的数学表达式找到,然后把它们归类,这样就可以定量地研究和分析控制系统了。
1.有理函数模型线性系统的传递函数模型可一般地表示为: mn a s a sa sb s b sb sb s G nn n n m m m m≥++⋅⋅⋅++++⋅⋅⋅++=--+- )(1111121 (1)将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量num 和den ,就可以轻易地将传递函数模型输入到MATLAB 环境中。
命令格式为:],,,,[121+⋅⋅⋅=m m b b b b num ; (2) ],,,,,1[121n n a a a a den -⋅⋅⋅=;(3)在MATLAB 控制系统工具箱中,定义了tf() 函数,它可由传递函数分子分母给出的变量构造出单个的传递函数对象。
从而使得系统模型的输入和处理更加方便。
该函数的调用格式为:G =tf(num ,den); (4) 2.零极点模型线性系统的传递函数还可以写成极点的形式:)())(()())(()(2121n m p s p s p s z s z s z s Ks G +⋅⋅⋅+++⋅⋅⋅++= (5)将系统增益、零点和极点以向量的形式输入给三个变量KGain 、Z 和P ,就可以将系统的零极点模型输入到MATLAB 工作空间中,命令格式为:;K KGain = (6) ;;;;][21m z z z Z -⋅⋅⋅--= (7);;;;][21n p p p P -⋅⋅⋅--=(8)在MATLAB 控制工具箱中,定义了zpk()函数,由它可通过以上三个MATLAB 变量构造出零极点对象,用于简单地表述零极点模型。
该函数的调用格式为: G=zpk(Z,P,KGain) (9) 3. 反馈系统结构图模型 设反馈系统结构图如图1所示。
图1 反馈系统结构图控制系统工具箱中提供了feedback()函数,用来求取反馈连接下总的系统模型,该函数调用格式如下:G=feedback(G1,G2,sign); (10) 其中变量sign 用来表示正反馈或负反馈结构,若sign=-1表示负反馈系统的模型,若省略sign 变量,则仍将表示负反馈结构。
G1和G2分别表示前向模型和反馈模型的LTI(线性时不变)对象。
4. 有理分式模型与零极点模型的转换有了传递函数的有理分式模型之后,求取零极点模型就不是一件困难的事情了。
在控制系统工具箱中,可以由zpk()函数立即将给定的LTI对象G转换成等效的零极点对象G1。
该函数的调用格式为:G1=zpk(G) (11) [例题10-6]生成一个§=0.5,wn=1的标准二阶系统,随机生成一个五阶稳定的系统,并实现两个模型的串联,并联和反馈连接。
解:生成一个§=0.5,wn=1的标准二阶系统,随机生成一个五阶稳定的系统,并实现两个模型的串联的程序如下:[num1,den1]=ord2(1,0.5);G1=tf(num1,den1);[num2,den2]=rmodel(5);G2=t f(num2,den2);Gs=series(G1,G2)运行结果如下:Transfer function:-1.336 s^4 - 0.09719 s^3 - 1.028 s^2 - 0.1628 s - 0.08916------------------------------------------------------------------- s^7 + 7.559 s^6 + 61.58 s^5 + 266.3 s^4 + 529.3 s^3 + 586.4 s^2 + 380.7 s + 111.1生成一个§=0.5,wn=1的标准二阶系统,随机生成一个五阶稳定的系统,并实现两个模型的并联的程序如下:[num1,den1]=ord2(1,0.5);G1=tf(num1,den1);[num2,den2]=rmodel(5);G2=t f(num2,den2);Gp=parallel(G1,G2)运行结果如下:Transfer function:s^5 + 6.309 s^4 + 96.76 s^3 + 330.1 s^2 + 2154 s + 1883------------------------------------------------------------------- s^7 + 7.309 s^6 + 105.7 s^5 + 436.6 s^4 + 2587 s^3 + 4371 s^2 + 4039 s + 1883生成一个§=0.5,wn=1的标准二阶系统,随机生成一个五阶稳定的系统,并实现两个模型的负反馈的程序如下:[num1,den1]=ord2(1,0.5);G1=tf(num1,den1);[num2,den2]=rmodel(5);G2=t f(num2,den2);Gf=feedback(G1,G2,-1)运行结果如下:Transfer function:s^5 + 7.902 s^4 + 20.31 s^3 + 21.67 s^2 + 9.436 s + 1.404 ------------------------------------------------------------------- s^7 + 8.902 s^6 + 29.21 s^5 + 49.88 s^4 + 51.41 s^3 + 32.51 s^2 + 9.918 s + 1.6072.控制系统的时域分析相关知识:时域分析法是一种直接准确的分析方法,易为人们所接受,它可以接受系统时域内的全部信息。
时域分析法包括稳定性分析、稳态性能分析、动态性能分析三大方面。
在MATLAB软件中稳定性能的分析可以直接求出特征根或用古尔维茨判据判定稳定性,而稳态误差的求取可根据静态误差系数,利用求极限的方法求取,还可以直接从响应曲线中读取。
对控制系统性能的分析,主要方法是从稳定性、稳态性能、动态性三个方面着手,即通常所说的“快”、“稳”、“准”。
时域分析法,就是根据输入、输出微分方程或传递函数数学模型,在时间域中分析控制系统的稳定性、稳态性能、动态性能。
稳定性的概念:设控制系统处于某一起始的平衡状态,在外作用的影响下,它离开了平衡状态,当外作用消失后,如果经过足够长的时间它能恢复到起始的平衡状态,则称这样的系统为稳定的系统,否则为不稳定的系统。
线性定常系统稳定的充要条件是:闭环系统特征方程式的所有根全部为负实数或具有负实部的共轭复数,也就是所有闭环特征根全部位于复平面的左平面。
如果至少有一个闭环特征根分布在右半平面上,则系统就是不稳定的;如果没有右半平面的根,但在虚轴上有根,则系统是临界稳定的。
代数稳定判据:(1)劳斯判据:若劳斯表中第一列所有元素都大于零,则系统是稳定的;如劳斯表第一列出现负元素,则系统不稳定。
(2)古尔维茨判据:将特征方程的系数按下列规则组成一个n阶行列式,叫古尔维茨行列式。
古尔维茨行列式构造的规则是:主对角线元素自左上向右下依次为an-1,an-2,...,a1,a2,a0。
在主对角线以下的各行中各项系数的下标逐次增加,而在主对角线以上的各行中各项系数的下标逐次减小,当系数的下标小于零或大于n时,行列式中的各项取零。
系统稳定的充分必要条件是古尔维茨行列式的各阶主子行列式均大于零,即Di>0(i=1,2,...,n)。
单位阶跃响应的求法:控制系统工具箱中给出了一个函数step()来直接求取线性系统的阶跃响应,如果已知传递函数为:dennum s G =)(则该函数可有以下几种调用格式:step(num,den) (12) step(num,den,t) (13) 或step(G) (14) step(G,t) (15)该函数将绘制出系统在单位阶跃输入条件下的动态响应图,同时给出稳态值。
对于式 13和15,t 为图像显示的时间长度,是用户指定的时间向量。
式12和14的显示时间由系统根据输出曲线的形状自行设定。
如果需要将输出结果返回到MATLAB 工作空间中,则采用以下调用格式: c=step(G) (16) 此时,屏上不会显示响应曲线,必须利用plot()命令去查看响应曲线。
[10-24]已知二阶系统的传递函数为:2nn 22ns 2s )s (ω+ξω+ω=Φ,求当ξ=0.3,ωn =1,2,3,4,5…,10时的阶跃响应和脉冲响应曲线。
求当ωn =2,ξ=0,0.5,0.7,1,2,3,10时的阶跃响应和脉冲响应曲线。
解:获得当ξ=0.3,ωn =1,2,3,4,5…,10时的阶跃响应和脉冲响应曲线编程如下:for ks=1:2:10 %定义ks 从1到10取值wn=ks;w2=wn*wn;num=w2;den=[1 2*0.3*ks w2];figure(1); step(num,den); hold on; figure(2); impulse(num,den); hold on end图2为系统的单位阶跃响应曲线,图3为系统的单位脉冲响应曲线Time (sec)A m p l i t u d e图2 单位阶跃响应曲线2468101214161820-3-2-101234567Impulse ResponseTime (sec)A m p l i t u d e图3 单位脉冲响应曲线获得当ωn =2,ξ=0,0.5,0.7,1,2,3,10时的阶跃响应和脉冲响应曲线编程如下:wn=2;w2=wn*wn; num=w2;ks=[0 0.5 0.7 1 2 3 4 5 6 7 8 9 10] for i=1:7 定义i 从1到7den=[1 2*wn*ks(i) w2]; figure(1); step(num,den); hold on; figure(2);impulse(num,den);hold on end运行结果为:ks = Columns 1 through 120 0.5000 0.7000 1.0000 2.0000 3.0000 4.0000 5.0000 6.0000 7.0000 8.0000 9.0000 Column 13 10.0000得到图4为系统的单位阶跃响应曲线,图5为系统的单位脉冲响应曲线05101520250.20.40.60.811.21.41.61.82Step ResponseTime (sec)A m p l i t u d e图4 单位阶跃响应曲线0510152025-2-1.5-1-0.50.511.52Impulse ResponseTime (sec)A m p l i t u d e图5 单位脉冲响应曲线3. 控制系统的频域分析相关知识:频域分析法使用控制系统的频率特性作为数学模型,并且不必求解系统的微分方程或动态方程,而是绘制出系统频率特性的图形,然后通过频域与时域之间的关系来分析系统的性能,因而比较方便。