浙师大机械控制工程基础实验报告_文库吧
2020-12-14 06:05:41
【导读】示形式如图1所示。操作是走入MATLAB世界的第一步。命令行操作实现了对程序设计而言简单而又重要的人机交互,通过对。命令行操作,避免了编程序的麻烦,体现了MATLAB所特有的灵活性。在运行MATLAB后,当命令窗口为活动窗口时,将出现一个光标,光标的左侧还出现提示符“>>”,表示MATLAB正在等待执行命令。否则MATLAB将只计算一行的值,而不理会该行是否已输入完毕。算整个输入的结果。在MATLAB命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。出前一个命令行,“↓”可调出后一个命令行,避免了重新输入的麻烦。所有命令的历史记录,并标明使用时间,以方便使用者的查询。最后修改时间以及该文件的说明信息等并提供搜索功能。工作空间管理窗口是MATLAB的重要组成部分。在工作空间管理窗口中将显示所有目前保存在内存中。的MATLAB变量的变量名、数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标。MATLAB的数值采用十进制,可以带小数点或负号。以下表示都合法。
【正文】
机械控制工程基础实验报告
学院工学院职业技术教育学院
班级机械设计制造及其自动化
姓名XXX
学号xxxxxxxx
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
实验项目名称:Matlab语言基础实验
《机械控制工程基础》实验报告之一
一、实验目的和要求
1、掌握Matlab软件使用的基本方法
2、熟悉Matlab的数据表示、基本运算和程序控制语句
3、熟悉Matlab绘图命令及基本绘图控制
4、掌握Matlab软件求拉普拉斯变换与逆变换基本方法
二、实验内容
1)MATLAB工作环境平台
图1在英文Windows平台上的MATLAB工作平台
①命令窗口(CommandWindow)
命令窗口是对MATLAB进行操作的主要载体,默认的情况下,启动MATLAB时就会打开命令窗口,显
示形式如图1所示。一般来说,MATLAB的所有函数和命令都可以在命令窗口中执行。掌握MALAB命令行
操作是走入MATLAB世界的第一步。命令行操作实现了对程序设计而言简单而又重要的人机交互,通过对
命令行操作,避免了编程序的麻烦,体现了MATLAB所特有的灵活性。
在运行MATLAB后,当命令窗口为活动窗口时,将出现一个光标,光标的左侧还出现提示符“>>”,
表示MATLAB正在等待执行命令。注意:每个命令行键入完后,都必须按回车键!
当需要处理相当繁琐的计算时,可能在一行之内无法写完表达式,可以换行表示,此时需要使用续行
符“„”否则MATLAB将只计算一行的值,而不理会该行是否已输入完毕。
使用续行符之后MATLAB会自动将前一行保留而不加以计算,并与下一行衔接,等待完整输入后再计
算整个输入的结果。
在MATLAB命令行操作中,有一些键盘按键可以提供特殊而方便的编辑操作。比如:“↑”可用于调
出前一个命令行,“↓”可调出后一个命令行,避免了重新输入的麻烦。当然下面即将讲到的历史窗口也
具有此功能。
②历史窗口(CommandHistory)
历史命令窗口是MATLAB6新增添的一个用户界面窗口,默认设置下历史命令窗口会保留自安装时起
所有命令的历史记录,并标明使用时间,以方便使用者的查询。而且双击某一行命令,即在命令窗口中执
Command
Window
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
行该命令。
③当前目录窗口(CurrentDirectory)
在当前目录窗口中可显示或改变当前目录,还可以显示当前目录下的文件,包括文件名、文件类型、
最后修改时间以及该文件的说明信息等并提供搜索功能。
④工作空间管理窗口(Workspace)
工作空间管理窗口是MATLAB的重要组成部分。在工作空间管理窗口中将显示所有目前保存在内存中
的MATLAB变量的变量名、数据结构、字节数以及类型,而不同的变量类型分别对应不同的变量名图标。
2)MATLAB的基本规定
(1)数值的表示
MATLAB的数值采用十进制,可以带小数点或负号。以下表示都合法。0,-100,,,
,
(2)变量命名规定
①变量名、函数名:字母大小写表示不同的变量名。如A和a表示不同的变量名;sin是MATLAB定
义的正弦函数,而Sin,SIN等都不是。
②变量名的第一个字母必须是英文字母,不能是数字,最多可包含31个字符(英文、数字和下连字
符)。如A21是合法的变量名,而3A21是不合法的变量名。
③变量名中不得包含空格、标点,但可以有下连字符。如变量名A_b21是合法变量名,而A,21是
不合法的。
(3)基本运算符
表1MATLAB表达式的基本运算符
数学表达式MATLAB运算符MATLAB表达式
加a+b+a+b
减a-b-a-b
乘a×b*a*b
除a÷b/或\a/b或a\b
幂ab^a^b
点乘两矩阵元素相乘.*a.*b
(4)MATLAB默认的预定义变量
在MATLAB中有一些预定义变量(predefinedvariable)。每当MATLAB启动,这些变量就被产生。
用户在定义变量时,尽量避开表2所列预定义变量名,以免产生混淆。
表2MATLAB的预定义变量
预定义变量含义预定义变量含义
ans计算结果的缺省变量名NaN或nan未定式,如0/0
eps机器零阈值nargin函数输入宗量数目
flops浮点运算次数nargout函数输出宗量数目
Inf或inf无穷大,如1/0realmax最大正实数
i或j
虚单元i=j=1
realmin最小正实数
pi圆周率π
3)MATLAB图形绘制
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
在二维曲线绘制中,最基本的指令是plot()函数。如果用户将x和y两组数据分别在向量x和y中
存储,且它们的长度相同,调用该函数的格式为:
plot(x,y)
这时将在一个图形窗口上绘出所需要的二维图形。在MATLAB命令窗口提示符“>>”下键入help
plot,可得到plot()函数的相关内容,如曲线颜色和线型的改变。
(1)绘制余弦曲线y=cos(t),t∈[0,2π]
解:
>>t=0:pi/100:2*pi;
>>y=cos(t)‟
>>plot(t,y)
01234567
-1
-0.8
-0.6
-0.4
-0.2
0
0.2
0.4
0.6
0.8
1
时间
速度
(2)在同一坐标系中绘制余弦曲线y=cos()和正弦曲线y=sin(),t∈[0,2π]
解:
t=0:pi/100:2*pi;
>>y1=cos();y2=sin();
>>plot(t,y1,t,y2)
0123456
-1
-0.5
0
0.5
1
X:1.162
Y:0.615
时间
速度
X:4.304
Y:-0.615
X:3.393
Y:-1
X:2.042
Y:0.9996
cos
sin
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
4)MATLAB求拉普拉斯变换与逆变换
(1)在系统默认自变量和参变量情况下求f=t3e3t-1的Laplace变换。
>>symsxyzt%定义符号变量
>>f=t^3*exp(3*t-1);%定义符号函数
>>laplace(f)%求laplace变换
ans=
6*exp(-1)/(s-3)^4
调用格式说明
L=laplace(F)在默认自变量和默认参变量s的情况下,计算符号函数
F的Laplace变换。若F中默认自变量为x,则L(s)=
L=laplace(F,z)在默认自变量和指定参变量z的情况下,计算符号函数
F的Laplace变换。若F中默认自变量为x,则L(z)=
L=laplace(F,w,z)在指定自变量w和指定参变量z的情况下,计算符号函
数F的Laplace变换。即L(z)=
调用格式说明
F=ilaplace(L)在默认自变量s和参变量t情况下,计算L(s)的laplace
逆变换L
-1
[L(s)]=F(t)=,其中c为使函
数L(s)的所有奇点都位于s=c直线左边的实数。
F=ilaplace(L,v)在指定参变量v和默认自变量s情况下,计算L(s)的
laplace逆变换L
-1
[L(s)]=F(v)=,其中
c为使函数L(s)的所有奇点都位于s=c直线左边的实数。
F=ilaplace(L,x,v)在指定自变量x和参变量v情况下,计算L(x)的laplace
逆变换L
-1
[L(x)]=F(v)=,其中c为使函
数L(s)的所有奇点都位于s=c直线左边的实数。
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
(2)在系统默认自变量和参变量情况下求函数(s2+4)/(s3+s2+2s)的laplace逆变换。
>>symsxytszabu%定义符号变量
>>f=(s^2+4)/(s^3+2*s^2+2*s);%定义符号函数
>>ilaplace(f)%求符号函数的laplace逆变换
ans=
-exp(-t)*cos(t)-3*exp(-t)*sin(t)+2
三.实验结果与分析
(包括运行结果截图、结果分析等)
(1)利用MATLAB求[(学号后2位)t]与{[班级号]sin([学号后2位]t)}的拉普拉斯变换
学号13;班级2;
即求:1)13t2)2sin13t
1)
2)
(2)建立P73页2-3(6、8、12、18)的传递函数;并利用MATLAB求其相应的原函数
[]:使用matlab进行下列函数的拉式反变换
(2)3()
(1)(2)sGsss
(4)
21()(1)(4)Gsss
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
(6)
2210()(4)(1)Gssss
(8)2
2328()(24)(2)ssGsssss
(10)212
2()()sasaGsssa
(12)
22(1)()(2)sGssss
(14)
2212()25sGsss
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
(16)(3)(4)(5)()
(1)(2)sssGsss
(18)4322345()
(1)ssssGsss
diarc狄拉克函数/单位脉冲函数
(3)求P73页2-5(1-2)传递函数的零、极点并绘制零极点图
1)
25(1)()(2)(5)sGssss
clc;clear;closeall;
Gs=zpk([-1],[00-2-5],5)
pzmap(Gs)
[p,z]=pzmap(Gs)
p=00-2-5z=-1
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
2)2
2(1)()(2)(32)ssGssss
clc;clear;closeall;
Gs=tf([1100],[1584])
pzmap(Gs)
[p,z]=pzmap(Gs)p=z=00-1
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
四.总结及其心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。)
这节实验课我们主要了解了拉普拉斯变换与拉普拉斯逆变换的matlab编程方法,以计
算机的程序算法解决传递函数的繁杂的变换。也学习啦零点极点的画图程序。主要是掌握程
序的编程规则。有时候一个传递函数有多种表示方法,需要了解哪个更适用、更简便。总的
来说,初次的实验掌握的基本的程序书写方法是比较重要的。老师上课很幽默舒畅,讲课主
次内容分的比较好,课上实验节奏感掌握的很好。
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
实验项目名称:控制系统建模及模型转换
《机械控制工程基础》实验报告之二
一、实验目的和要求
1、掌握建立控制系统模型的函数及方法;
2、掌握控制系统模型间的转换方法及相关函数;
3、掌握典型系统模型的生成方法;
4、掌握环节方框图的化简方法。
二、实验内容
(1)tf()函数
若要在MATLAB环境下得到传递函数的形式,可以调用tf()函数。该函数的调用格式为
G=tf(num,den);
其中num,den分别为系统传递函数的分子和分母多项式系数向量。返回的G为传递函数形式。
但如果分子或分母多项式给出的不是完全的展开的形式,而是若干个因式的乘积,则事先需要将其变
换为完全展开的形式,两个多项式的乘积在MATLAB下借用卷积求取函数conv()得出,其调用格式为
p=conv(p1,p2)
其中p1和p2为两个多项式,调用这个函数就能返回乘积多项式p。如果有3个多项式的乘积,就需要嵌套使
用此函数,即
p=conv(p1,conv(p2,p3))或p=conv(conv(p1,p2),p3)
请注意在调用时括号的匹配。
MATLAB还支持一种特殊的传递函数的输入格式,在这样的输入方式下,应该先用s=tf(‟s‟)定义传递
函数算子,然后用数学表达式直接输入系统的传递函数。请自己通过下面两个例子来演示和掌握tf()和
s=tf(‟s‟)算子这两种输入方式。
例1设系统传递函数
134223523423sssssssG
输入方式一:num=[1,5,3,2];den=[1,2,4,3,1];%分子多项式和分母多项式
G=tf(num,den);%这样就获得系统的数学模型G了。
这些命令可在命令行输入也可编成一个M文件。在MATLB提示符“>>”下键入G,或省略最后命令中
分号,则可显示该数学模型。
输入方式二:s=tf(‟s‟);G=(s^3+5*s^2+3*s+2)/(s^4+2*s^3+4*s^2+3*s+1);
任务一:设系统传递函数
432534ssssG
采用上面两种输入方式,输入其传递函数,并记录命令。
例2设系统传递函数
)1)(43()1()(5222sssssG
此题分子或分母多项式给出的不是完全展开的形式,而是若干个因式的乘积,采用tf()这一种输入法
之前,应先用conv()函数获得分子和分母多项式给出的完全展开的形式num和den,即输入命令:
num=conv([0,5],[1,]);
den=conv(conv(conv([1,1],[1,1]),[1,3,4]),[1,0,1]);
G=tf(num,den)%语句没有分号结尾,故将显示系统传递函数
Transferfunction:
5s+12
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
-------------------------------------------------
s^6+5s^5+12s^4+16s^3+15s^2+11s+4
这种情况用算子方法可以更直观地输入系统模型,输入命令为
s=tf('s');G=5*(s+)/((s+1)^2*(s^2+3*s+4)*(s^2+1));
任务二:在MATLAB命令窗口中对例2的这两种输入方法进行验证。
(2)tfdata()函数
如果有了传递函数G,则提取控制系统的传递函数的分子多项式num和分母多项式den可以由tfdata()
函数来实现。如输入命令:
s=tf('s');G=5*(s+)/((s+1)^2*(s^2+3*s+4)*(s^2+1))
[num,den]=tfdata(G,'v')%其中'v'表示想获得num和den的数值
任务三:在MATLAB命令窗口中对该例进行验证。
(3)zpk()函数
若要得到控制系统零极点传递函数,可以调用zpk()函数。该函数的调用格式为
G=zpk(Z,P,K);
其中K为系统的增益,Z,P分别为系统传递函数的零点和极点列向量。返回的G为传递函数形式。
例3设系统传递函数
)1)(2)(3)(4())()((ssssjsjssG
输入下面的命令:
Z=[;+;];%注意使用列向量,另外注意符号
P=[-1;-2;-3;-4];G=zpk(Z,P,1);
在MATLB提示符“>>”下键入G,或省略最后命令中分号,则可显示该数学模型。
>>G%下面是MATLB的显示结果
Zero/pole/gain:
(s+)(s^2++)
-----------------------------------------
(s+1)(s+2)(s+3)(s+4)
任务四:应用tf2zp()函数求出例1和任务五中系统的零极点。
(3)环节方框图的化简
[1].环节串联连接的化简
对于上图的两个环节串联,它们的传递函数分别为:
)(1)(1)(1sdensnumsG
,
)(2)(2)(2sdensnumsG
则两个环节串联连阶的等效传递函数为
)(2)(1)(2)(1)()()(21sdensdensnumsnumsGsGsG
在MATLAB中,实现两个环节传递函数串联连接的运算为:
sys1=tf(num1,den1)
sys2=tf(num2,den2)
G1(s)G2(s)
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
sys=sys1*sys2
[2].环节并联连接的化简
G1(s)
+
G2(s)
实现两个环节传递函数串联连接的运算为:
sys=sys1+sys2
[3].反馈环节的化简
实现反馈环节化简的运算为:
sys=feedback(sys1,sys2,sign)
式中sign为反馈符号,‘+’表示正反馈,‘-’为负反馈。缺省为‘-’。
三.实验结果与分析
(包括运行结果截图、结果分析等)
任务一:设系统传递函数
432534ssssG
采用上面两种输入方式,输入其传递函数,并记录命令。
(1)采用num=[];den=[];G=tf(num,den)的形式
(2)采用s=tf(‟s‟);G=(函数表达式)的形式
任务二:在MATLAB命令窗口中对例2的这两种输入方法进行验证。
(1)
G1(S)
G2(S)
-
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
(2)
任务三:在MATLAB命令窗口中对该例进行验证。
任务四:应用tf2zp()函数求出例1和任务五中系统的零极点。
例1
134223523423sssssssG
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
任务五没有找到
四.总结及其心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。)
这节实验课的实验内容主要是传递函数相关的一些函数编码格式
tf()函数conv()函数
num=[];den=[];G=tf(num,den);
s=tf(‟s‟);G=(s^3+5*s^2+3*s+2)/(s^4+2*s^3+4*s^2+3*s+1)
tfdata()函数zpk()函数
这些函数根据例题的格式来做,还是很容易编制相关程序。但是给出一个同时涉及多
个函数的问题,还是不容易去编制和简化程序的。
建议:对于任务四种用到的tf2zp()函数,实验PPT中没有涉及,实验报告例题中也
没有看到。需要查找资料了解其程序编码格式。任务四中提到的求任务五的零极点,实验
报告中没有找到任务五的内容。
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
实验项目名称:控制系统的时域分析实验
《机械控制工程基础》实验报告之三
一、实验目的和要求
1.利用MATLAB对一、二阶系统进行时域分析。
2.熟练掌握step()函数和impulse()函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜
坡函数作用下的响应。
3.掌握一阶系统的时域特性,理解时间常数T对系统性能的影响。
4.通过响应曲线观测特征参量和n对二阶系统动态特性的影响。
5.通过观察典型环节在单位阶跃信号作用下的动态特性,加深对各典型环节响应曲线的理解。
二、实验内容
1.观察函数step()和impulse()的调用格式,假设系统的传递函数模型为
146473)(
234
2sssssssG
可以用几种方法绘制出系统的阶跃响应曲线?试分别绘制。
2.对典型二阶系统
22
2
2)(nnnsssG
1)分别绘出)/(2sradn,分别取0,,,和时的单位阶跃响应曲线,分析
参数对系统的影响,并计算=时的时域性能指标sssprpettt,,,,。
2)绘制出当=,n分别取1,2,4,6时单位阶跃响应曲线,分析参数n对系统的影响。
3)某系统的开环传递函数为
43220G(s)=83640ssss
试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量。
>>sys=tf([10],[14182010])
Transferfunction:
10
--------------------------------
s^4+4s^3+18s^2+20s+10
>>step(sys)
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
StepResponse
Time(sec)
A
m
p
li
t
u
d
e
0123456789
0
0.2
0.4
0.6
0.8
1
1.2
1.4
System:sys
Peakamplitude:1.02
Overshoot(%):2.39
Attime(sec):5.89
4)典型二阶系统2
22G()2nnnsss
编程求当ωn=6,ζ取、、、、、、单位阶跃响应曲线。
>>sys=tf([36],[136])
Transferfunction:
36
----------------
s^2+s+36
>>step(sys)
>>holdon
>>sys=tf([36],[136])
Transferfunction:
36
----------------
s^2+s+36
>>step(sys)
>>holdon
>>sys=tf([36],[136])
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
Transferfunction:
36
----------------
s^2+s+36
>>step(sys)
>>sys=tf([36],[136])
Transferfunction:
36
----------------
s^2+s+36
>>step(sys)
>>holdon
>>sys=tf([36],[136])
Transferfunction:
36
-----------------
s^2+s+36
>>step(sys)
012345678910
0
0.2
0.4
0.6
0.8
1
1.2
1.4
1.6
1.8
StepResponse
Time(sec)
A
m
p
li
t
u
d
e
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
5)典型二阶系统传递函数为:
22
2
2)(nnnsssG
绘制当ζ=,ωn取2、4、6、8、10、12时的单位阶跃响应曲线。
>>sys=tf([1],[11])
Transferfunction:
1
---------------
s^2+s+1
>>step(sys)
>>holdon
>>sys=tf([4],[14])
Transferfunction:
4
---------------
s^2+s+4
>>step(sys)
>>holdon
>>sys=tf([64],[164])
Transferfunction:
64
-----------------
s^2+s+64
>>step(sys)
>>holdon
>>sys=tf([256],[1256])
Transferfunction:
256
------------------
s^2+s+256
>>step(sys)
>>
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
012345678
0
0.2
0.4
0.6
0.8
1
1.2
1.4
StepResponse
Time(sec)
A
m
p
li
tu
d
e
6)某系统的开环传递函数为
试编程求系统在单位负反馈下的阶跃响应曲线,并求最大超调量。
>>sys=tf([20],[18364020])
Transferfunction:
20
--------------------------------
s^4+8s^3+36s^2+40s+20
>>step(sys)
(对以上图形要有数据分析,解释参数的含义)
3.在MATLAB环境中求系统的时域响应如下图。输入下面的命令:
>>num=[50];den=[15,25];step(num,den)。(1)试解释以上命令的
含义,求出系统的传递函数;(2)根据传递函数确定系统的2个参数
和nw;(3)结合以下响应图形,指出二阶系统时域分析主要性能指标?
作图直观求解本系统的稳态值、超调量和调整时间。
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
StepResponse
Time(sec)
A
m
p
li
tu
d
e
00.511.522.5
0
0.5
1
1.5
2
2.5
System:sys
Peakamplitude:2.33
Overshoot(%):16.3
Attime(sec):0.729
System:sys
SettlingTime(sec):1.62
解:(对以上图形要有数据分析,详细弄懂每个参数的含义,求指标)
(1)命令含义:系统传递函数分子、分母的代数表达式,step为求阶跃响应,系统的闭
环传递函数为:824)(2ssssG
(2)二阶系统时域分析主要性能指标:上升时间、峰值时间、调整时间;超调量,调整次
数等。
稳态值为:
超调量为:()/=(峰值时间为)
调整时间为,误差为()/=2%
三.实验结果与分析
(包括运行结果截图、结果分析等)
(1)求以学号后两位为时间常数的一阶惯性环节的单位脉冲、单位阶跃、单位速度、单位加速
度响应。
时间常数13一阶惯性环节11()=1131Gsss
单位阶跃响应:
在MATLAB中,其单位阶跃响应计算程序为:
num=[1];
den=[131];
step(num,den)
grid
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
单位脉冲响应
在MATLAB中,其单位脉冲响应计算程序为:
num=[10];
den=[131];
step(num,den)
grid
单位速度响应
在MATLAB中,其单位速度响应计算程序为:
num=[1];
den=[1310];
step(num,den)
grid
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
单位加速度响应
在MATLAB中,其单位加速度响应计算程序为:
num=[1];
den=[13100];
step(num,den)
grid
(2)P1253-18典型二阶系统2
22G()2nnnsss
,试用MATLAB绘制出
1)当固有频率n=6rad/s,阻尼比ζ分别取、、…、、、时的单位阶跃和单位
脉冲的响应曲线;
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
2)阻尼比ζ=,固有频率n分别为2、4、6、8、10、12rad/s时的单位阶跃和单位脉冲的
响应曲线。
解:1)单位阶跃的响应曲线
clc;clear;closeall;
sys=tf([36],[136])
step(sys)
holdon
sys=tf([36],[136])
step(sys)
holdon
sys=tf([36],[136])
step(sys)
holdon
sys=tf([36],[136])
step(sys)
holdon
sys=tf([36],[1636])
step(sys)
holdon
sys=tf([36],[136])
step(sys)
holdon
sys=tf([36],[136])
step(sys)
holdon
sys=tf([36],[136])
step(sys)
holdon
sys=tf([36],[136])
step(sys)
holdon
sys=tf([36],[11236])
step(sys)
holdon
sys=tf([36],[12436])
step(sys)
holdon
单位脉冲的响应曲线
clc;clear;closeall;
sys=tf([360],[136])
step(sys)
holdon
sys=tf([360],[136])
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
step(sys)
holdon
sys=tf([360],[136])
step(sys)
holdon
sys=tf([360],[136])
step(sys)
holdon
sys=tf([360],[1636])
step(sys)
holdon
sys=tf([360],[136])
step(sys)
holdon
sys=tf([360],[136])
step(sys)
holdon
sys=tf([360],[136])
step(sys)
holdon
sys=tf([360],[136])
step(sys)
holdon
sys=tf([360],[11236])
step(sys)
holdon
sys=tf([360],[12436])
step(sys)
holdon
2)单位阶跃的响应曲线
clc;clear;closeall;
sys=tf([4],[14])
step(sys)
holdon
sys=tf([16],[116])
step(sys)
holdon
sys=tf([36],[136])
step(sys)
holdon
sys=tf([64],[164])
step(sys)
holdon
sys=tf([100],[114100])
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
step(sys)
holdon
sys=tf([144],[1144])
step(sys)
holdon
单位脉冲的响应曲线
clc;clear;closeall;
sys=tf([40],[14])
step(sys)
holdon
sys=tf([160],[116])
step(sys)
holdon
sys=tf([360],[136])
step(sys)
holdon
sys=tf([640],[164])
step(sys)
holdon
sys=tf([1000],[114100])
step(sys)
holdon
sys=tf([1440],[1144])
step(sys)
holdon
(3)画出以学号后两位为固有频率和以(班级号*1/10、班级号*1/5)为阻尼比,以及以(班
级号*1/20)为阻尼比与以(学号后两位、2*学号后两位)为固有频率的振荡环节的SIMULINK
仿真模型,并记录单位阶跃响应波形,并分析参数对响应曲线的影响
解:学号13,班级号2振荡环节2
22G()2nnnsss
即固有频率=13n;即阻尼比ζ=、
阻尼比ζ=;固有频率=1326n
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
观察并分析了以上几个单位阶跃响应波形,发现阻尼比ζ一定时,固有频率Wn越大,响应曲线的
上升时间越短,峰值时间越短;固有频率Wn一定时,阻尼比ζ越大,上升时间越长,峰值时
间越长,最大超调量越小。
四.心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。)
控制系统的时域分析实验内容主要是掌握一些函数编码格式,如step()函数和
impulse()函数的使用方法,研究线性系统在单位阶跃、单位脉冲及单位斜坡函数作用下的
响应;掌握一阶系统的时域特性,理解时间常数T对系统性能的影响;通过响应曲线观测特
征参量和对二阶系统动态特性的影响等。
通过观察SIMULINK仿真模型与典型环节在单位阶跃信号作用下的响应曲线,加深对各
典型环节响应曲线的理解。
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
实验项目名称:控制系统的频域分析实验
《机械控制工程基础》实验报告之四
一、实验目的和要求
1.加深理解频率特性的概念,掌握系统频率特性的测试原理及方法;
2.掌握用MATLAB语句绘制各种频域曲线;
3.掌握nyquist图、bode图的绘制方法,对控制系统特性进行分析;
4.掌握Matlab中系统的频域特征量的求解方法,能够用Matlab求系统的频域特征量。
二、实验内容
频域分析法是应用频域特性研究控制系统的一种经典方法。它是通过研究系统对正弦信
号下的稳态和动态响应特性来分析系统的。采用这种方法可直观的表达出系统的频率特性,
分析方法比较简单,物理概念明确。
1.频率曲线主要包括三种:Nyquist图和Bode图。
1)Nyquist图的绘制与分析
MATLAB中绘制系统Nyquist图的函数调用格式为:
nyquist(num,den)频率响应w的范围由软件自动设定
nyquist(num,den,w)频率响应w的范围由人工设定
[Re,Im]=nyquist(num,den)返回奈氏曲线的实部和虚部向量,不作图
例1:已知系统的开环传递函数为25262)(
23sssssG
,试绘制Nyquist图,并判断系
统的稳定性。
num=[26];
den=[1252];
[z,p,k]=tf2zp(num,den);p
nyquist(num,den)
极点的显示结果及绘制的Nyquist图如图1所示。由于系统的开环右根数P=0,系统的Nyquist
曲线没有逆时针包围(-1,j0)点,所以闭环系统稳定。
p=
+
图1开环极点的显示结果及Nyquist图
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
-
若上例要求绘制)10,10(32间的Nyquist图,则对应的MATLAB语句为:
num=[26];
den=[1252];
=logspace(-1,1,100);即在10-1和101之间,产生100个等距离的点
nyquist(num,den,w)
2)Bode图的绘制与分析
系统的Bode图又称为系统频率特性的对数坐标图。Bode图有两张图,分别绘制开环频
率特性的幅值和相位与角频率的关系曲线,称为对数幅频特性曲线和对数相频特性曲线。
MATLAB中绘制系统Bode图的函数调用格式为:
bode(num,den)频率响应w的范围由软件自动设定
bode(num,den,w)频率响应w的范围由人工设定
[mag,phase,w]=bode(num,den,w)指定幅值范围和相角范围的伯德图
例2:已知开环传递函数为
)10016()(30)(2sssssG
,试绘制系统的伯德图。
num=[001530];
den=[1161000];
w=logspace(-2,3,100);
bode(num,den,w)
grid
绘制的Bode图如图2(a)所示,其频率范围由人工选定,而伯德图的幅值范围和相角范围
是自动确定的。当需要指定幅值范围和相角范围时,则需用下面的功能指令:
[mag,phase,w]=bode(num,den,w)
图2(a)幅值和相角范围自动确定的Bode图图2(b)指定幅值和相角范围的Bode图
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
mag,phase是指系统频率响应的幅值和相角,由所选频率点的w值计算得出。其中,幅
值的单位为dB,它的算式为magdB=20lg10(mag)。
指定幅值范围和相角范围的MATLAB调用语句如下,图形如图4-2(b)所示。
num=[001530];
den=[1161000];
w=logspace(-2,3,100);
[mag,phase,w]=bode(num,den,w);%指定Bode图的幅值范围和相角范围
subplot(2,1,1);%将图形窗口分为2*1个子图,在第1个子图处绘制图形
semilogx(w,20*log10(mag));%使用半对数刻度绘图,X轴为log10刻度,Y轴为线性刻度
gridon
xlabel(„w/s^-1‟);ylabel(„L(w)/dB‟);
title(„BodeDiagramofG(s)=30(1+)/[s(s^2+16s+100)]‟);
subplot(2,1,2);%将图形窗口分为2*1个子图,在第2个子图处绘制图形
semilogx(w,phase);
gridon
xlabel(„w/s^-1‟);ylabel(„(0)‟);
注意:半Bode图的绘制可用semilgx函数实现,其调用格式为semilogx(w,L),其中
L=20*log10(abs(mag))。
2.幅值裕量和相位裕量
幅值裕量和相位裕量是衡量控制系统相对稳定性的重要指标,需要经过复杂的运算求取。
应用MATLAB功能指令可以方便地求解幅值裕量和相位裕量。
其MATLAB调用格式为:
[Gm,Pm,Wcg,Wcp]=margin(num,den)
其中,Gm,Pm分别为系统的幅值裕量和相位裕量,而Wcg,Wcp分别为幅值裕量和相位
裕量处相应的频率值。
另外,还可以先作bode图,再在图上标注幅值裕量Gm和对应的频率Wcg,相位裕量
Pm和对应的频率Wcp。其函数调用格式为:
margin(num,den)
例3:单位负反馈的开环传递函数为ssssG9310)(
23
,求其稳定裕度,对应的MATLAB
语句如下:
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
num=10;den=[1390];
[gm,pm,wcg,wcp]=margin(num,den);
gm,pm,wcg,wcp
gm=
pm=
wcg=
wcp=
如果已知系统的频域响应数据,还可以由下面的格式调用函数:
[Gm,Pm,Wcg,Wcp]=margin(mag,phase,w)
其中(mag,phase,w)分别为频域响应的幅值、相位与频率向量。
3.综合练习
1)典型二阶系统传递函数为:(二阶传递函数任选3个,画在同一图形中)
绘制当ζ=,ωn取2、4、6、8、10、12时的伯德图。
>>sys=tf([4],[14])
Transferfunction:
4
---------------
s^2+s+4
>>bode(sys)
>>holdon
>>sys=tf([16],[116])
Transferfunction:
16
----------------
s^2+s+16
>>bode(sys)
>>holdon
>>sys=tf([36],[136])
Transferfunction:
36
----------------
s^2+s+36
>>bode(sys)
>>holdon
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
(注意图形的标注,对以上图形要有数据分析,对比数据得出结论)
2)典型二阶系统传递函数为:
22
2
2)(nnncsssG
绘制当ωn=6,ζ取、、、、、、的伯德图。
>>sys=tf([36],[136])
Transferfunction:
36
----------------
s^2+s+36
>>bode(sys)
>>holdon
>>sys=tf([36],[136])
Transferfunction:
36
----------------
s^2+s+36
>>bode(sys)
>>holdon
>>sys=tf([36],[136])
Transferfunction:
36
----------------
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
s^2+s+36
>>bode(sys)
>>holdon
>>sys=tf([36],[136])
Transferfunction:
36
----------------
s^2+s+36
>>bode(sys)
>>holdon
>>sys=tf([36],[136])
Transferfunction:
36
-----------------
s^2+s+36
>>bode(sys)
>>
-100
-80
-60
-40
-20
0
20
M
a
g
n
it
u
d
e
(
d
B
)
10
-1
10
0
10
1
10
2
10
3
-180
-135
-90
-45
0
P
h
a
s
e
(
d
e
g
)
BodeDiagram
Frequency(rad/sec)
三、实验结果与分析
(包括运行结果截图、结果分析等)
1.典型二阶系统
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
22
2
2)(nnnsssG
绘制出n为学号后两位,,,,,2的bode图,记录并分析对系统bode
图的影响。
解:学号13即=13n0.1/0.3/0.5/0.8/2时的Bode图
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
2.系统的开环传递函数为
(1)
)5)(15(10)(2ssssG
(2)
)106)(15()1(8)(22ssssssG
(3)
))()(()13/(4)(ssssssG
绘制系统的Nyquist曲线和Bode图,说明系统的稳定性,并通过绘制阶跃响应曲线验证。
解:(1)
Bode图Nyquist图
(2)
Bode图Nyquist图
通过=13n0.1/0.3/0.5/0.8/2时的Bode图看出,的大小确定了谐振
峰值的幅值。越小,幅值越大;用渐近线表示时的误差大小也与有关。
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
(3)
Bode图Nyquist图
系统的稳定性,(1)(-1,j0)点从系统的Nyquist曲线右边经过,N≠q/2,故闭环系统不稳定。
由单位阶跃响应曲线可以看书系统是不稳定的。
(2)(-1,j0)点从系统的Nyquist曲线左边经过,N=q/2,所以闭环系统稳定。
由单位阶跃响应曲线可以看书系统是稳定的。
(3)系统的Nyquist曲线逆时针不包围(-1,j0)点,q/2=0,所以闭环系统稳定。
由单位阶跃响应曲线可以看书系统是稳定的。
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
3.已知系统的开环传递函数为
)(1)(2ssssG
。求系统的开环幅值穿越频率、相位穿越频
率、幅值裕度和相位裕度。应用频率稳定判据判定系统的稳定性。
解:
由上图可以看出:系统的开环幅值穿越频率、相位穿越频率0rad/s、幅值裕度-lnfdB
和相位裕度
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
q=0即q/2=0,N=0,N=q/2,所以系统稳定
四、心得体会
(记录实验感受、上机过程中遇到的困难及解决办法、遗留的问题、意见和建议等。)
掌握频率曲线的两种表现形式:Nyquist图Bode图,学习了用MATLAB语句绘制各种频域
曲线;幅值裕度和相位裕度来衡量控制系统相对稳定性。
通过以上频率曲线图和相关特性指标最终来判断开环系统、闭环系统的稳定性。
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
实验项目名称:控制系统的稳定性分析实验
《机械控制工程基础》实验报告之五
一、实验目的
1.加深理解稳定性的概念,掌握判断系统的稳定性的原理及方法;
2.学会运用各种稳定判据来判断系统的稳定性及对控制系统稳定性进行分析;
3.掌握roots函数、margin函数的用法;
4.学会运用MATLAB对系统稳定性进行仿真。
5.掌握Matlab中系统特征根的求解方法,掌握Matlab中系统稳定性的判定方法
6.用margin函数求出系统的幅值裕度、相位裕度、幅值穿越频率和相位穿越频率,并判定系统的相
对稳定性。
二、实验原理
线性系统稳定的充要条件是系统的特征根均位于S平面的左半部分。系统的零极点模型可以直接被用
来判断系统的稳定性。另外,MATLAB语言中提供了有关多项式的操作函数,也可以用于系统的分析和计
算。
(1)直接求特征多项式的根
设p为特征多项式的系数向量,则MATLAB函数roots()可以直接求出方程p=0在复数范围内的解v,
该函数的调用格式为:
v=roots(p)
例已知系统的特征多项式为:
123235xxxx
特征方程的解可由下面的MATLAB命令得出。
>>p=[1,0,3,2,1,1];
v=roots(p)
结果显示:
v=
+
-
+
-
利用多项式求根函数roots(),可以很方便的求出系统的零点和极点,然后根据零极点分析系统稳定性和
其它性能。
(2)由根创建多项式
如果已知多项式的因式分解式或特征根,可由MATLAB函数poly()直接得出特征多项式系数向量,其
调用格式为:
p=poly(v)
如上例中:
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
v=[+;;
;+;];
>>p=poly(v)
结果显示
p=
由此可见,函数roots()与函数poly()是互为逆运算的。
(3)多项式求值
在MATLAB中通过函数polyval()可以求得多项式在给定点的值,该函数的调用格式为:
polyval(p,v)
对于上例中的p值,求取多项式在x点的值,可输入如下命令:
>>p=[1,0,3,2,1,1];
x=1
polyval(p,x)
结果显示
ans=
8
(4)部分分式展开
考虑下列传递函数:
nnn
nnnasasabsbsbdennumsNsM1
10
110
)()(
式中0a0,但是ia和jb中某些量可能为零。
MATLAB函数可将
)()(sNsM
展开成部分分式,直接求出展开式中的留数、极点和余项。该函数的调用
格式为:
),(,,dennumresiduekpr
则
)()(sNsM
的部分分式展开由下式给出:
)(
)()()2()2()1()1()()(sknpsnrpsrpsrsNsM
式中1)1(pp,2)2(pp,…,npnp)(,为极点,
1)1(rr,2)2(rr,…,nrnr)(为各极点的留数,)(sk为余项。
例设传递函数为:
61166352)(
23
23sssssssG
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
该传递函数的部分分式展开由以下命令获得:
>>num=[2,5,3,6];
den=[1,6,11,6];
[r,p,k]=residue(num,den)
命令窗口中显示如下结果
r=p=k=
2
中留数为列向量r,极点为列向量p,余项为行向量k。
由此可得出部分分式展开式:
2132436)(ssssG
该函数也可以逆向调用,把部分分式展开转变回多项式
)()(sNsM
之比的形式,命令格式为:
[num,den]=residue(r,p,k)
对上例有:
>>[num,den]=residue(r,p,k)
结果显示
num=
den=
应当指出,如果p(j)=p(j+1)=…=p(j+m-1),则极点p(j)是一个m重极点。在这种情况下,部分分式展开
式将包括下列诸项:
mjpsmjrjpsjrjpsjr)()1()()1()()(2
例设传递函数为:
13332)1(32)(23
2
3
2
sssssssssG
则部分分式展开由以下命令获得:
>>v=[-1,-1,-1]
num=[0,1,2,3];
den=poly(v);
[r,p,k]=residue(num,den)
结果显示
r=
p=
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
k=
[]
其中由poly()命令将分母化为标准降幂排列多项式系数向量den,k=[]为空矩阵。
由上可得展开式为:
0
)1(2)1(011)(32ssssG
(5)由传递函数求零点和极点。
在MATLAB控制系统工具箱中,给出了由传递函数对象G求出系统零点和极点的函数,其调用格式
分别为:
Z=tzero(G)
P={1}
注意:式19中要求的G必须是零极点模型对象,且出现了矩阵的点运算“.”和大括号{}表示的矩阵
元素,详细内容参阅后面章节。
例已知传递函数为:
sssssssG)(
234
2
输入如下命令:
num=[,,];
den=[1,,22,,0];
G=tf(num,den);
G1=zpk(G);
Z=tzero(G)
P={1}
结果显示
Z=
-7
-2
P=
0
+
-
其结果与例8完全一致。
(6)零极点分布图
在MATLAB中,可利用pzmap()函数绘制连续系统的零、极点图,从而分析系统的稳定性,该函数
调用格式为:
pzmap(num,den)
例给定传递函数:
姓名:XXX《机械控制工程基础》实验报告学号:xxxxxxxx
2724364523)(2
教学课件相关推荐
文库吧 www.wenkub.com
鄂ICP备17016276号-1