目录概述 (1)一、实验目的 (1)二、简述MATLAB语言的特点及其主要功能 (1)三、控制系统仿真时常用的方法和指令 (2)1、控制系统仿真时常用的方法 (2)a、数学仿真 (2)b、半物理仿真 (2)c、全物理仿真 (2)2、控制系统仿真时常用的指令 (2)1)、Bode图 (2)①、绘制Bode图 (2)②、系统的增益裕度和相角裕度 (2)2)、Nichols图 (3)3)、Nyquist图 (3)4)、一般频率响应图 (3)5)、频率响应的奇异值图 (3)6)、绘制根轨迹 (4)四、实验内容 (4)五、心得体会 (22)六、参考文献 (22)概述MATLAB 是一种直观、高效的计算机语言,同时也是一个科学计算平台。
它的伴随工具Simulink 是用来对真实世界的动力学系统建模、模拟仿真和分析的软件。
我们可将综合性和设计性实验项目通过MATLAB 在计算机上仿真,使系统的观察实验的动态过程。
目前,MATLAB 已经成为我们当代大学生必须掌握的基本技能,在设计研究单位和工业部门,MATLAB 已经成为研究和解决各种具体工程问题的一种标准软件。
在完成了验证性、综合性和设计性实验后,课程设计必不可少。
课程设计是工科实践教学的一个重要的环节,目的是培养我们综合运用理论知识分析和解决实际问题的方法和能力,实现由知识向技能的初步化。
所以课程设计是培养我们思维创造能力最有效的途径。
一、实验目的1、培养理论联系实际的科学态度,训练综合运用经典控制理论和相关课程知识的能力。
2、掌握自动控制原理的时域分析法,根轨迹法,频域分析法,以及各种(矫正)装置的作用及用法,能够利用不同的分析方法对给定系统进行性能分析,能根据不同的系统性能指标要求进行合理的系统设计,并调试满足系统的指标。
3、学会使用MATLAB语言及Simulink动态仿真工具进行系统的仿真与调试。
4、锻炼独立思考和动手解决控制系统实际问题的能力。
二、简述MATLAB语言的特点及其主要功能MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。
它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。
MATLAB和Mathematica、Maple并称为三大数学软件。
它在数学类科技应用软件中在数值计算方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 matlab开发工作界面接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
三、控制系统仿真时常用的方法和指令1、控制系统仿真时常用的方法a、数学仿真也称计算机仿真,就是在计算机上实现描写系统物理过程的数学模型,并在这个模型上对系统进行定量的研究和实验。
这种仿真方法常用于系统的方案设计阶段和某些不适合做实物仿真的场合(包括某些故障模式)。
它的特点是重复性好、精度高、灵活性大、使用方便、成本较低、可以是实时的、也可以是非实时的。
数学仿真的逼真度和精度取决于仿真计算机的精度和数学模型的正确性与精确性。
数学仿真可采用模拟计算机、数字计算机和数字-模拟混合计算机。
b、半物理仿真即采用部分物理模型和部分数学模型的仿真。
其中物理模型采用控制系统中的实物,系统本身的动态过程则采用数学模型。
半物理仿真系统通常由满足实时性要求的仿真计算机、运动模拟器(一般采用三轴机械转台)、目标模拟器、控制台和部分实物组成。
c、全物理仿真即全部采用物理模型的仿真,又称实物模拟。
全物理仿真技术复杂,一般只在必要时才采用。
2、控制系统仿真时常用的指令1)、Bode图①、绘制Bode图bode函数绘制控制系统幅频和相频图[调用格式] bode(sys) bode(sys, w) bode(sys1,sys2..sysn)bode(sys1,sys2..sysn,w) bode(sys1,’plotstyle1’,sys2,’plotstyle2’,..sysn,’p lotstylen’,)[mag, phase, w]=bode(sys)w—频率区间矢量,控制频率起止范围[mag, phase, w]—输出幅值矢量输出相角输出频率区间绘制系统幅频图[调用格式] bodemag(sys) bodemag(sys,w) bodemag(sys1,sys2..sysn) bodemag(sys1,sys2..sysn,w) bode mag(sys1,’plotsty le1’,sys2,’plotstyle2’,..sysn,’plotstylen’,)②、系统的增益裕度和相角裕度增益裕度定义:正好使系统频率响应穿过临界点的增益与实际系统增益的比值。
相角裕度:为了使系统的频率响应通过临界点必须引入的纯相位滞后量。
[调用格式] [gm pm wcg wcp]=margin(sys)[gm pm wcg wcp ]=margin(mag, phase, w)Gm—系统增益裕度 pm—系统相角裕度wcg wcp---表示交叉频率2)、Nichols图对数幅相特性图(Nichols图)是描述系统频率特性的图示方法。
该图纵坐标表示频率特性的对数幅值,以分贝为单位;横坐标表示频率特性的相位角。
[调用格式] nichols(sys) nichols(sys, w) nichols(sys1,sys2..sysn)nichols(sys1,sys2..sysn,w) nichols(sys1,’plotstyle1’,sys2,’plotstyle2’,..sys n,’plotstylen’,)[mag, phase, w]=nichols(sys)[mag, phase]=nichols(sys, w)3)、Nyquist图系统频率特性的极坐标图——Nyquist图[调用格式] nyquist(sys) nyquist(sys, w) nyquist(sys1,sys2..sysn)nyquist(sys1,sys2..sysn,w) nyquist(sys1,’plotstyle1’,sys2,’plotstyle2’,..sy s n,’plotstylen’,)[mag, phase, w]=nyquist(sys)[mag, phase]=nyquist(sys, w)4)、一般频率响应图[调用格式] h=freqs(num , den, w)[h ,w]=freqs(num, den)[h ,w]=freqs(num ,den, f) freqs(num ,den)Num—传递函数分子矢量 den—传递函数分母矢量W—频率区间矢量5)、频率响应的奇异值图[调用格式] sigma(sys) sigma(sys, w) sigma(sys ,w, type)sigma(sys1,sys2..sysn) sigma(sys1,sys2..sysn,w)sigma(sys1,sys2..sysn,w, type)sigma(sys1,’plotstyle1’,sys2,’plotstyle2’,..sysn,’plotstylen’,) [sv, w]=sigma(sys) sv=sigma(sys, w)Type—绘制奇异值图的类型Type=1 控制系统的频率响应H的奇异值图Type=2 控制系统的频率响应I+H的奇异值图Type=3 控制系统的频率响应I+H-1的奇异值图Sv—频率的奇异值 plotstyle—绘制奇异值曲线的特性6)、绘制根轨迹①、求系统的零点、极点、增益[调用格式] p=pole(sys) 计算控制系统的极点Z=zero(sys) 计算控制系统的零点[z, gain]=zero(sys) 计算控制系统的零点、增益②、绘制系统极点、零点图[调用格式] pzmap(sys) pzmap(sys1,sys2,…sysn)[p z]=pzmap(sys)③、绘制根轨迹图[调用格式] rlocus(sys) rlocus(sys ,k)Rlocus(sys1,sys2,…)[r k]=rlocus(sys) r=rlocus(sys,k)k—表示增益 r—系统的极点四、实验内容1.用matlab语言编制程序,实现以下系统:【实验原理】:线性系统的传递函数模型可一般地表示为:m n a s a s a s b s b s b s b s G nn n n m m m m ≥++⋅⋅⋅++++⋅⋅⋅++=--+- )(1111121 将系统的分子和分母多项式的系数按降幂的方式以向量的形式输入给两个变量num 和den ,就可以轻易地将传递函数模型输入到MATLAB 环境中。
命令格式为:],,,,[121+⋅⋅⋅=m m b b b b num ;],,,,,1[121n n a a a a den -⋅⋅⋅=;在MATLAB 控制系统工具箱中,定义了tf() 函数,它可由传递函数分子分母给出的变量构造出单个的传递函数对象。
从而使得系统模型的输入和处理更加方便。
该函数的调用格式为:G =tf(num ,den);将系统增益、零点和极点以向量的形式输入给三个变量KGain 、Z 和P ,就可以将系统的零极点模型输入到MATLAB 工作空间中,命令格式为:;K KGain =;;;;][21m z z z Z -⋅⋅⋅--=;;;;][21n p p p P -⋅⋅⋅--= 在MATLAB 控制工具箱中,定义了zpk()函数,由它可通过以上三个MATLAB 变量构造出零极点对象,用于简单地表述零极点模型。
该函数的调用格式为:G=zpk(Z,P,KGain)1)226418245)(23423++++++=s s s s s s s G 【程序】>> num=[5,24,0,18];den=[1,4,6,2,2];sys=tf(num,den)Transfer function:5 s^3 + 24 s^2 + 18-----------------------------------s^4 + 4 s^3 + 6 s^2 + 2 s + 22))523()1()66)(2(4)(23322+++++++=s s s s s s s s s G 【程序】>> A=[1,6,6];roots(A) 注释:求解662++s s 的根ans =-4.7321-1.2679>> B=[1,3,2,5];roots(B) 注释:求解52323+++s s s 的根ans =-2.9042-0.0479 + 1.3112i-0.0479 - 1.3112i>>z=[-2,-4.7321,-4.7321,-1.2679,-1.2679];p=[0,-1,-1,-1,-2.9042,-0.0479+ 1.3112i,-0.0479 - 1.3112i];k=[4];sys=zpk(z,p,k)Zero/pole/gain:4 (s+2) (s+1.268)^2 (s+4.732)^2-----------------------------------------------s (s+1)^3 (s+2.904) (s^2 + 0.0958s + 1.722)2.两环节G1、G2串联,求等效的整体传递函数G(s)【实验原理】:若假定两环节均为单输入单输出的系统SA 和SB 。