《MATLAB与控制系统仿真》09自动化.docx
- 文档编号:5688724
- 上传时间:2022-12-31
- 格式:DOCX
- 页数:51
- 大小:937.46KB
《MATLAB与控制系统仿真》09自动化.docx
《《MATLAB与控制系统仿真》09自动化.docx》由会员分享,可在线阅读,更多相关《《MATLAB与控制系统仿真》09自动化.docx(51页珍藏版)》请在冰豆网上搜索。
《MATLAB与控制系统仿真》09自动化
《MATLAB与控制系统仿真》
实验报告
班级:
自动化092班
学号:
6100309084
姓名:
张晓梅
时间:
2012年6月
实验一MATLAB环境的熟悉与基本运算
(一)
实验二MATLAB环境的熟悉与基本运算
(二)
实验三MATLAB语言的程序设计
实验四MATLAB的图形绘制
实验五基于SIMULINK的系统仿真
实验六控制系统的频域与时域分析
实验七控制系统PID校正器设计法
实验八线性方程组求解及函数求极值
南昌大学实验报告
学生姓名:
张晓梅学号:
6100309084专业班级:
自动化092班
实验类型:
■验证□综合□设计□创新实验日期:
实验成绩:
一、实验项目名称
实验一MATLAB环境的熟悉与基本运算
(一)
二、实验目的:
1.熟悉MATLAB开发环境
2.掌握矩阵、变量、表达式的各种基本运算
三、主要仪器设备及耗材
计算机
四、实验基本知识:
1.熟悉MATLAB环境:
MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。
2.掌握MATLAB常用命令
表1MATLAB常用命令
clc
清除命令窗口中内容
clear
清除工作空间中变量
help
对所选函数的功能、调用格式及相关函数给出说明
lookfor
查找具有某种功能的函数但却不知道该函数的准确名称
3.MATLAB变量与运算符
3.1变量命名规则
3.2MATLAB的各种常用运算符
表2MATLAB算术运算符
操作符
功能说明
操作符
功能说明
+
加
\
矩阵左除
-
减
.\
数组左除
*
矩阵乘
/
矩阵右除
.*
数组乘
./
数组右除
^
矩阵乘方
'
矩阵转置
.^
数组乘方
.'
数组转置
表3MATLAB关系运算符
操作符
功能说明
==
等于
~=
不等于
>
大于
<
小于
>=
大于等于
<=
小于等于
表4MATLAB逻辑运算符
逻辑运算符
逻辑运算
说明
&
And
逻辑与
|
Or
逻辑或
~
Not
逻辑非
Xor
逻辑异或
表5MATLAB特殊运算
符号
功能说明示例
符号
功能说明示例
:
1:
1:
4;1:
2:
11
.
;
分隔行
..
,
分隔列
…
()
%
注释
[]
构成向量、矩阵
!
调用操作系统命令
{}
构成单元数组
=
用于赋值
4.MATLAB的一维、二维数组的寻访
表6子数组访问与赋值常用的相关指令格式
四、实验内容及实验结果
1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符)
2、启动MATLAB,将该文件夹添加到MATLAB路径管理器中。
3、学习使用help命令。
Help加上所要想查询的函数,MATLAB会自动生成该函数功能和调用的说明,有助于了解没有接触的函数。
4、窗口命令
●close
●closeall
●clc
●holdon
●holdoff
了解其功能和作用,观察commandwindow、commandhistory和workspace等窗口的变化结果。
、
5、工作空间管理命令
●who
●whos
●clear
6、随机生成一个2×6的矩阵,观察commandwindow、commandhistory和workspace等窗口的变化结果,实现矩阵左旋90°或右旋90°的功能。
>>a=rand(2,6)
a=
0.84620.20260.83810.68130.83180.7095
0.52520.67210.01960.37950.50280.4289
>>b=rot90(a)
b=
0.70950.4289
0.83180.5028
0.68130.3795
0.83810.0196
0.20260.6721
0.84620.5252
7、求高阶方程的的根,求高阶多项式的值。
>>a=[123;456;789];
>>p=poly(a)
p=
1.0000-15.0000-18.0000-0.0000
>>v=roots(p)
v=
16.1168
-1.1168
-0.0000
8、创建一个二维数组A(4×8)。
查询数组A第2行、第3列的元素;查询数组A第2行的所有元素;查询数组A第6列的所有元素;查询数组A按列拉长形成新的数组B;查询数组A按行拉长形成新的数组C。
>>a=rand(4,8)
a=
0.95010.89130.82140.92180.93550.05790.13890.2722
0.23110.76210.44470.73820.91690.35290.20280.1988
0.60680.45650.61540.17630.41030.81320.19870.0153
0.48600.01850.79190.40570.89360.00990.60380.7468
>>a(2,3)
ans=
0.4447
>>a(2,:
)
ans=
0.23110.76210.44470.73820.91690.35290.20280.1988
>>a(:
6)
ans=
0.0579
0.3529
0.8132
0.0099
>>b=a(:
)
b=
0.9501
0.2311
0.6068
0.4860
0.8913
0.7621
0.4565
0.0185
0.8214
0.4447
0.6154
0.7919
0.9218
0.7382
0.1763
0.4057
0.9355
0.9169
0.4103
0.8936
0.0579
0.3529
0.8132
0.0099
0.1389
0.2028
0.1987
0.6038
0.2722
0.1988
0.0153
0.7468
五、实验心得
这是MATLAB的第一个实验,也是我第一次接触这个软件,在初步了解中可以感觉到它的功能很多而且可以解决很多工程问题等,是我们专业很重要的应用软件,它的指令简单易懂但是编写语句时不能出错,只要是一点不符合软件编程要求都不能得到想要的结果,细心耐心才能做出结果,使我匪浅!
南昌大学实验报告
学生姓名:
张晓梅学号:
6100309084专业班级:
自动化092班
实验类型:
■验证□综合□设计□创新实验日期:
实验成绩:
一、实验项目名称
MATLAB环境的熟悉与基本运算
(二)
二、实验目的:
1.熟悉MATLAB开发环境
2.掌握矩阵、变量、表达式的各种基本运算
三、主要仪器设备及耗材
计算机
四、实验基本知识:
1.MATLAB的基本运算
表1两种运算指令形式和实质内涵的异同表
2.MATLAB的常用函数
五、实验内容
1、设有3个二维数组A(2×4),B(2×4),C(2×2),参照表1写出所有由2个数组参与的合法的数组运算和矩阵指令及结果。
2、学习使用表2列出的常用函数。
3、学习使用表3列出的数组操作函数。
4、生成下列矩阵,并取出方框内的数组元素
六、实验结果
答:
1.A:
数组的运算
>>a=zeros(2,4);>>b=ones(2,4);>>c=eye(2,2)
>>a
a=
0000
0000
>>b
b=
1111
1111
>>c
c=
10
01
>>a+b
ans=
1111
1111
>>a-b
ans=
-1-1-1-1
-1-1-1-1
>>a.*b
ans=
0000
0000
>>a./b
ans=
0000
0000
>>b.\a
ans=
0000
0000
>>exp(a)
ans=
1111
1111
>>log(b)
ans=
0000
0000
>>sqrt(c)
ans=
10
01
>>c'
ans=
10
01
B:
矩阵的运算>>a=[11;22]
a=
11
22
>>a'
ans=
12
12
>>5*a
ans=
55
1010
>>a^2
ans=
33
66
>>a^1.2
ans=
1.24571.2457
2.49152.4915
>>b=[12;34]
b=
12
34
>>2*inv(b)
ans=
-4.00002.0000
3.0000-1.0000
>>4*inv(b)
ans=
-8.00004.0000
6.0000-2.0000
>>expm(b)
ans=
51.969074.7366
112.1048164.0738
>b=[12;34];
>>logm(b)
Warning:
PrincipalmatrixlogarithmisnotdefinedforAwith
nonpositiverealeigenvalues.Anon-principalmatrix
logarithmisreturned.
>Infunmat153
Inlogmat27
ans=
-0.3504+2.3911i0.9294-1.0938i
1.3940-1.6406i1.0436+0.7505i
>>sqrtm(b)
ans=
0.5537+0.4644i0.8070-0.2124i
1.2104-0.3186i1.7641+0.1458i
2、表2常用函数的使用
>>V=[1234];
>>A=diag(V)
A=
1000
0200
0030
0004
>>a=eye(3)
a=
100
010
001
>>b=magic(4)
b=
162313
511108
97612
414151
>>c=ones(3)
c=
111
111
111
>>a=rand(3)
a=
0.95010.48600.4565
0.23110.89130.0185
0.60680.76210.8214
>>a=randn(3)
a=
-0.43260.28771.1892
-1.6656-1.1465-0.0376
0.12531.19090.3273
>>a=zeros(3)
a=
000
000
000
>>a=[123,456];
>>b=size(a)
b=
16
3、表3函数的使用
>>a=[1234];
>>b=diag(a)
b=
1000
0200
0030
0004
>>c=flipud(a)
c=
1234
>>d=fliplr(a)
d=
4321
>>a=[123];
>>rot90(a)
ans=
3
2
1
>>q=[123;123;123];
>>det(q)
ans=
0
>>a=[12;21];
>>rank(a)
ans=
2
>>a=[11;22];
>>rank(a)
ans=
1
4、取出方块中的元素
>>A=1:
25;A=reshape(A,5,5)';
>>A(2,:
)=fliplr(A(2,:
));
>>A
A=
12345
109876
1112131415
1617181920
2122232425
>>A(2,2:
3)
ans=
98
>>A(2:
4,4)
ans=
7
14
19
>>A(4:
5,1:
3)
ans=
161718
212223
七、实验心得:
这个实验室考察矩阵和向量的运算,在其中有很多细节要注意,例如,在矩阵的运算中,最容易出现的问题是求逆矩阵的运算,所要求的矩阵必须是非奇异的矩阵,否则会产生错误的结果。
南昌大学实验报告
学生姓名:
张晓梅学号:
6100309084专业班级:
自动化092班
实验类型:
■验证□综合□设计□创新实验日期:
实验成绩:
一、实验项目名称
实验三MATLAB语言的程序设计
二、实验目的:
1、熟悉MATLAB程序编辑与设计环境
2、掌握各种编程语句语法规则及程序设计方法
3、函数文件的编写和设计
4、了解和熟悉跨空间变量传递和赋值
三、主要仪器设备及耗材
计算机
四、实验基本知识:
1、程序流程控制语句
for循环结构
语法:
fori=初值:
增量:
终值
语句1
……
语句n
end
说明:
1.i=初值:
终值,则增量为1。
2.初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。
while循环结构
语法:
while逻辑表达式
循环体语句
end
说明:
1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。
若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。
若表达式的值为假,则程序执行end之后的语句。
2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。
(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。
)
3、while循环也可以嵌套、其结构如下:
while逻辑表达式1
循环体语句1
while逻辑表达式2
循环体语句2
end
循环体语句3
end
if-else-end分支结构
if表达式1
语句1
elseif表达式2(可选)
语句2
else(可选)
语句3
end
end
说明:
1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出if结构。
2.elseif表达式2与else为可选项,这两条语句可依据具体情况取舍。
3.注意:
每一个if都对应一个end,即有几个if,记就应有几个end。
switch-case结构
语法:
switch表达式
case常量表达式1
语句组1
case常量表达式2
语句组2
……
otherwise
语句组n
end
说明:
1.switch后面的表达式可以是任何类型,如数字、字符串等。
2.当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。
程序流程控制指令
break、return、pause
2、函数文件的结构和编写方法
函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。
M函数文件的结构
(1)函数定义行(function)
(2)H1行(函数帮助文本的第一行)
(3)函数帮助文本
(4)函数体
(5)注释
函数文件编写后,保存时,其文件名必须与函数名相同。
注意:
函数名不要与MATLAB自身的函数命令相同。
五、实验内容:
练习A
1、熟悉MATLAB程序编辑与设计环境
2、用for循环语句实现求1~100的和
3、用for循环语句实现编写一个求阶乘n!
的函数文件
4、判断y向量的元素属于3n3n+1或3n+2,设y=[3,5,7,9,11,16]。
(使用函数rem求余数)
7、已知数组A=[2,4,6,8,10],B=[4,9,6,7,4],求
其中n=5。
六、实验结果:
1、列出实验程序代码及实验结果。
●用for循环语句实现求1~100的和
>>%ex1.m
>>mysum=0;i=1;
>>fori=1:
100
mysum=mysum+i;
end
>>mysum
mysum=
5050
●用for循环写n!
函数
函数是:
%a
t=1;
fori=1:
n;
t=i*t;
end
t
运行结果为:
>>n=3;a
t=
6
>>n=4;a
t=
24
●判断y向量的元素属于3n3n+1或3n+2,设y=[3,5,7,9,11,16]。
(使用函数rem求余数)
>>y=[3,5,7,9,11,16]
y=
35791116
>>a=rem(y,3)
a=
021021
●已知数组A=[2,4,6,8,10],B=[4,9,6,7,4],求
其中n=5
程序文件如下:
%w
A=[2,4,6,8,10];B=[4,9,6,7,4];
m=0;
fori=1:
5
m=m+A(i)*B(6-i)
end
程序调试结果:
>>w
m=
8
m=
36
m=
72
m=
144
m=
184
七.写出实验体会。
这个实验是关于小程序的编写,主要考察语句的使用和整体程序的理解,需要有语言编写的能力,而且需要耐心调试修改。
南昌大学实验报告
学生姓名:
张晓梅学号:
6100309084专业班级:
自动化092班
实验类型:
■验证□综合□设计□创新实验日期:
实验成绩:
一、实验项目名称
实验四MATLAB的图形绘制
二、实验目的:
1、学习MATLAB图形绘制的基本方法;
2、熟悉和了解MATLAB图形绘制程序编辑的基本指令;
3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注;
4、掌握plot、subplot的指令格式和语法。
三、主要仪器设备及耗材
计算机
四、实验基本知识:
1、基本的绘图命令plot(x,y,)
2、建立图形窗口命令figure
(1);figure
(2);…;figure(n)打开不同的图形窗口,以便绘制不同的图形。
3、gridon:
在所画出的图形坐标中加入栅格
gridoff:
除去图形坐标中的栅格。
4、holdon:
把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一个图形。
holdoff:
使新图覆盖旧的图形。
5、axis设定轴的范围
axis([xminxmaxyminymax])设定x轴与y轴的最大、最小坐标。
axis(‘equal’):
将x坐标轴和y坐标轴的单位刻度大小调整为一样。
6、文字标示
●text(x,y,’字符串’)
在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。
●gtext(‘字符串’)
利用鼠标在图形的任意位置标示字符串。
●title(‘字符串’)
在所画图形的最上端显示说明该图形标题的字符串。
●xlabel(‘字符串’),ylabel(‘字符串’)
设置x,y坐标轴的名称。
●输入特殊的文字需要用反斜杠(\)开头
7、subplot(m,n,k):
分割图形显示窗口,在同一个窗口中显示多个图形。
●m:
上下分割个数
●n:
左右分割个数
●k:
:
子图编号
8、semilogx:
绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。
semilogy:
绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。
五、实验内容
1、绘制下列曲线,要求尽可能多地使用二中所列命令。
①
②
③
y=sin(t)sin(9t)
2、绘制二阶系统阶跃响应,综合演示图形标识。
clf;t=6*pi*(0:
100)/100;y=1-exp(-0.3*t).*cos(0.7*t);
tt=t(find(abs(y-1)>0.05));ts=max(tt);
plot(t,y,'r-','LineWidth',3)
axis([-inf,6*pi,0.6,inf])
set(gca,'Xtick',[2*pi,4*pi,6*pi],'Ytick',[0.95,1,1.05,max(y)])
gridon
title('\ity=1-e^{-\alphat}cos{\omegat}')
text(13.5,1.2,'\fontsize{12}{\alpha}=0.3')
text(13.5,1.1,'\fontsize{12}{\omega}=0.7')
holdon;plot(ts,0.95,'bo','MarkerSize',10);holdoff
cell_string{1}='\fontsize{12}\uparrow';
cell_string{2}='\fontsize{16}\fontname{隶书}镇定时间';
cell_string{3}='\fontsize{6}';
cell_string{4}=['\fontsize{14}\rmt_{s}='num2str(ts)];
text(ts,0.85,cell_string)
xlabel('\fontsize{14}\bft\rightarrow')
ylabel('\fontsize{14}\bfy\rightarrow')
六、实验结果
1.列出实验程序(命令)代码及实验结果。
①
试验程序如下:
>>x=0:
0.1:
2*pi;y=x+(x.^3)/3;plot(x,y)
②
试验程序如下:
x=0:
0.1:
2*pi;y=(1/2.*pi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB与控制系统仿真 MATLAB 控制系统 仿真 09 自动化
![提示](https://static.bdocx.com/images/bang_tan.gif)