《《MATLAB与控制系统仿真》09自动化(共43页).doc》由会员分享,可在线阅读,更多相关《《MATLAB与控制系统仿真》09自动化(共43页).doc(43页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上MATLAB与控制系统仿真实验报告班级: 自动化092班 学号: 姓名: 张晓梅 时间:2012 年 6 月目 录实验一 MATLAB环境的熟悉与基本运算(一)实验二 MATLAB环境的熟悉与基本运算(二)实验三 MATLAB语言的程序设计实验四 MATLAB的图形绘制实验五 基于SIMULINK的系统仿真实验六 控制系统的频域与时域分析实验七 控制系统PID校正器设计法实验八 线性方程组求解及函数求极值南昌大学实验报告学生姓名: 张晓梅 学 号: 专业班级: 自动化092班 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验项目名称实验一 MATL
2、AB环境的熟悉与基本运算(一)二、实验目的: 1 熟悉MATLAB开发环境2掌握矩阵、变量、表达式的各种基本运算三、主要仪器设备及耗材计算机四、实验基本知识: 1.熟悉MATLAB环境: MATLAB桌面和命令窗口、命令历史窗口、帮助信息浏览器、工作空间浏览器、文件和搜索路径浏览器。2.掌握MATLAB常用命令表1 MATLAB常用命令clc 清除命令窗口中内容clear 清除工作空间中变量help 对所选函数的功能、调用格式及相关函数给出说明lookfor 查找具有某种功能的函数但却不知道该函数的准确名称3.MATLAB变量与运算符31变量命名规则32 MATLAB的各种常用运算符表2 MA
3、TLAB算术运算符操作符 功能说明 操作符 功能说明 + 加 矩阵左除- 减. 数组左除* 矩阵乘/ 矩阵右除.* 数组乘./ 数组右除 矩阵乘方 矩阵转置. 数组乘方. 数组转置表3 MATLAB关系运算符操作符 功能说明 = 等于= 不等于 大于= 大于等于 a=rand(2,6)a = 0.8462 0.2026 0.8381 0.6813 0.8318 0.7095 0.5252 0.6721 0.0196 0.3795 0.5028 0.4289 b=rot90(a)b = 0.7095 0.4289 0.8318 0.5028 0.6813 0.3795 0.8381 0.0196
4、 0.2026 0.6721 0.8462 0.52527、求高阶方程的的根,求高阶多项式的值。 a=1 2 3;4 5 6;7 8 9; p=poly(a)p = 1.0000 -15.0000 -18.0000 -0.0000 v=roots(p)v = 16.1168 -1.1168 -0.00008、创建一个二维数组A(48)。查询数组A第2行、第3列的元素;查询数组A第2行的所有元素;查询数组A第6列的所有元素;查询数组A按列拉长形成新的数组B;查询数组A按行拉长形成新的数组C。专心-专注-专业 a=rand(4,8)a = 0.9501 0.8913 0.8214 0.9218 0
5、.9355 0.0579 0.1389 0.2722 0.2311 0.7621 0.4447 0.7382 0.9169 0.3529 0.2028 0.1988 0.6068 0.4565 0.6154 0.1763 0.4103 0.8132 0.1987 0.0153 0.4860 0.0185 0.7919 0.4057 0.8936 0.0099 0.6038 0.7468 a(2,3)ans = 0.4447 a(2,:)ans = 0.2311 0.7621 0.4447 0.7382 0.9169 0.3529 0.2028 0.1988 a(:,6)ans = 0.0579
6、 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的第一个实验,也是我第一次接触这个软件,在初步了解中可以感觉到
7、它的功能很多而且可以解决很多工程问题等,是我们专业很重要的应用软件,它的指令简单易懂但是编写语句时不能出错,只要是一点不符合软件编程要求都不能得到想要的结果,细心耐心才能做出结果,使我匪浅!南昌大学实验报告学生姓名: 张晓梅 学 号: 专业班级: 自动化092班 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验项目名称MATLAB环境的熟悉与基本运算(二)二、实验目的: 1 熟悉MATLAB开发环境2掌握矩阵、变量、表达式的各种基本运算三、主要仪器设备及耗材计算机四、实验基本知识: 1.MATLAB的基本运算表1 两种运算指令形式和实质内涵的异同表2MATLAB的常用函数五
8、、实验内容1、设有3个二维数组A(24),B(24),C(22),参照表1写出所有由2个数组参与的合法的数组运算和矩阵指令及结果。2、学习使用表2列出的常用函数。3、学习使用表3列出的数组操作函数。4、生成下列矩阵,并取出方框内的数组元素六、实验结果答:1.A:数组的运算 a=zeros(2,4); b=ones(2,4); c=eye(2,2) aa = 0 0 0 0 0 0 0 0 bb = 1 1 1 1 1 1 1 1 cc = 1 0 0 1 a+bans = 1 1 1 1 1 1 1 1 a-bans = -1 -1 -1 -1 -1 -1 -1 -1 a.*bans = 0
9、0 0 0 0 0 0 0 a./bans = 0 0 0 0 0 0 0 0 b.aans = 0 0 0 0 0 0 0 0 exp(a)ans = 1 1 1 1 1 1 1 1 log(b)ans = 0 0 0 0 0 0 0 0 sqrt(c)ans = 1 0 0 1 cans = 1 0 0 1B:矩阵的运算 a=1 1;2 2a = 1 1 2 2 aans = 1 2 1 2 5*aans = 5 510 10 a2ans = 3 3 6 6 a1.2ans = 1.2457 1.2457 2.4915 2.4915 b=1 2;3 4b = 1 2 3 4 2*inv(b
10、)ans = -4.0000 2.0000 3.0000 -1.0000 4*inv(b)ans = -8.0000 4.0000 6.0000 -2.0000 expm(b)ans = 51.9690 74.7366 112.1048 164.0738 b=1 2 ;3 4; logm(b)Warning: Principal matrix logarithm is not defined for A with nonpositive real eigenvalues. A non-principal matrix logarithm is returned. In funm at 153
11、In logm at 27ans = -0.3504 + 2.3911i 0.9294 - 1.0938i 1.3940 - 1.6406i 1.0436 + 0.7505i sqrtm(b)ans = 0.5537 + 0.4644i 0.8070 - 0.2124i 1.2104 - 0.3186i 1.7641 + 0.1458i2、表2常用函数的使用 V=1 2 3 4; A=diag(V)A = 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 a=eye(3)a = 1 0 0 0 1 0 0 0 1 b=magic(4)b = 16 2 3 13 5 11 10 8
12、 9 7 6 12 4 14 15 1 c=ones(3)c = 1 1 1 1 1 1 1 1 1 a=rand(3)a = 0.9501 0.4860 0.4565 0.2311 0.8913 0.0185 0.6068 0.7621 0.8214 a=randn(3)a = -0.4326 0.2877 1.1892 -1.6656 -1.1465 -0.0376 0.1253 1.1909 0.3273 a=zeros(3)a = 0 0 0 0 0 0 0 0 0 a=1 2 3,4 5 6; b=size(a)b = 1 63、表3函数的使用 a=1 2 3 4; b=diag(a
13、)b = 1 0 0 0 0 2 0 0 0 0 3 0 0 0 0 4 c=flipud(a)c = 1 2 3 4 d=fliplr(a)d = 4 3 2 1 a=1 2 3; rot90(a)ans = 3 2 1 q=1 2 3;1 2 3;1 2 3; det(q)ans = 0 a=1 2;2 1; rank(a)ans = 2 a=1 1;2 2; rank(a)ans = 14、取出方块中的元素 A=1:25;A=reshape(A,5,5); A(2,:)=fliplr(A(2,:); AA = 1 2 3 4 5 10 9 8 7 6 11 12 13 14 15 16
14、17 18 19 20 21 22 23 24 25 A(2,2:3)ans = 9 8 A(2:4,4)ans = 7 14 19 A(4:5,1:3)ans = 16 17 18 21 22 23七、实验心得:这个实验室考察矩阵和向量的运算,在其中有很多细节要注意,例如,在矩阵的运算中,最容易出现的问题是求逆矩阵的运算,所要求的矩阵必须是非奇异的矩阵,否则会产生错误的结果。南昌大学实验报告学生姓名: 张晓梅 学 号: 专业班级: 自动化092班 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验项目名称实验三 MATLAB语言的程序设计二、实验目的: 1、熟悉MATLAB
15、程序编辑与设计环境2、掌握各种编程语句语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 三、主要仪器设备及耗材计算机四、实验基本知识:1、程序流程控制语句 for循环结构语法:for i初值:增量:终值 语句1 语句n end 说明:1i初值:终值,则增量为1。 2初值、增量、终值可正可负,可以是整数,也可以是小数,只须符合数学逻辑。while 循环结构 语法:while 逻辑表达式 循环体语句 end 说明:1、whiIe结构依据逻辑表达式的值判断是否执行循环体语勾。若表达式的值为真,执行循环体语句一次、在反复执行时,每次都要进行判断。若表达式的值为假,则
16、程序执行end之后的语句。2、为了避免因逻辑上的失误,而陷入死循环,建议在循环体语句的适当位置加break语句、以便程序能正常执行。(执行循环体的次数不确定;每一次执行循环体后,一定会改变while后面所跟关系式的值。) 3、while循环也可以嵌套、其结构如下: while逻辑表达式1 循环体语句1 while逻辑表达式2 循环体语句2 end 循环体语句3 end if-else-end分支结构if 表达式 1 语句1 else if 表达式 2(可选) 语句2 else(可选) 语句3 end end 说明:1.if结构是一个条件分支语句,若满足表达式的条件,则往下执行;若不满足,则跳出
17、if结构。2else if表达式2与else为可选项,这两条语句可依据具体情况取舍。3注意:每一个if都对应一个end,即有几个if,记就应有几个end。switch-case结构语法:switch表达式case常量表达式1 语句组1 case常量表达式2 语句组2 otherwise 语句组n end 说明:1switch后面的表达式可以是任何类型,如数字、字符串等。2当表达式的值与case后面常量表达式的值相等时,就执行这个case后面的语句组如果所有的常量表达式的值都与这个表达式的值不相等时,则执行otherwise后的执行语句。程序流程控制指令break、return、pause 2、
18、函数文件的结构和编写方法 函数只能在函数体内对变量进行操作,也就是只能访问函数本身工作空间中的变量。M函数文件的结构(1) 函数定义行(function) (2) H1行(函数帮助文本的第一行) (3) 函数帮助文本(4) 函数体(5) 注释函数文件编写后,保存时,其文件名必须与函数名相同。注意:函数名不要与MATLAB自身的函数命令相同。五、实验内容: 练习A 1、熟悉MATLAB程序编辑与设计环境2、用for循环语句实现求1100的和3、用for循环语句实现编写一个求阶乘n!的函数文件4、判断y向量的元素属于3n 3n+1或3n+2,设y=3,5,7,9,11,16。(使用函数rem求余数
19、)7、已知数组A=2,4,6,8,10,B=4,9,6,7,4,求,其中n=5。六、实验结果:1、列出实验程序代码及实验结果。l 用for循环语句实现求1100的和 %ex1.m mysum=0;i=1; for i=1:100 mysum=mysum+i;end mysummysum = 5050l 用for循环写n!函数函数是:%at=1;for i=1:n; t=i*t;endt运行结果为: n=3;at = 6 n=4;at = 24l 判断y向量的元素属于3n 3n+1或3n+2,设y=3,5,7,9,11,16。(使用函数rem求余数) y=3,5,7,9,11,16y = 3 5
20、 7 9 11 16 a=rem(y,3)a = 0 2 1 0 2 1l 已知数组A=2,4,6,8,10,B=4,9,6,7,4,求,其中n=5程序文件如下:%wA=2,4,6,8,10;B=4,9,6,7,4;m=0;for i=1:5 m=m+A(i)*B(6-i)end程序调试结果: wm = 8m = 36m = 72m = 144m = 184七写出实验体会。这个实验是关于小程序的编写,主要考察语句的使用和整体程序的理解,需要有语言编写的能力,而且需要耐心调试修改。 南昌大学实验报告学生姓名: 张晓梅 学 号: 专业班级: 自动化092班 实验类型: 验证 综合 设计 创新 实验
21、日期: 实验成绩: 一、实验项目名称实验四 MATLAB的图形绘制二、实验目的: 1、学习MATLAB图形绘制的基本方法; 2、熟悉和了解MATLAB图形绘制程序编辑的基本指令; 3、熟悉掌握利用MATLAB图形编辑窗口编辑和修改图形界面,并添加图形的各种标注; 4、掌握plot、subplot的指令格式和语法。三、主要仪器设备及耗材计算机四、实验基本知识:1、基本的绘图命令plot(x,y,)2、建立图形窗口命令figure(1);figure(2);figure(n)打开不同的图形窗口,以便绘制不同的图形。3、grid on:在所画出的图形坐标中加入栅格grid off:除去图形坐标中的栅
22、格。4、hold on:把当前图形保持在屏幕上不变,同时允许在这个坐标内绘制另外一个图形。hold off:使新图覆盖旧的图形。5、axis设定轴的范围axis(xmin xmax ymin ymax)设定x 轴与y轴的最大、最小坐标。axis(equal):将x坐标轴和y坐标轴的单位刻度大小调整为一样。6、文字标示l text(x,y,字符串)在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。l gtext(字符串)利用鼠标在图形的任意位置标示字符串。l title(字符串)在所画图形的最上端显示说明该图形标题的字符串。l xlabel(字符串),ylabel(字符串)设置x,y坐
23、标轴的名称。l 输入特殊的文字需要用反斜杠()开头7、subplot(m,n,k):分割图形显示窗口,在同一个窗口中显示多个图形。l m:上下分割个数l n:左右分割个数l 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.
24、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) grid on title(it y = 1 - e -alphatcosomegat) text(13.5,1.2,fontsize12alpha=0.3) text(13.5,1.1,fontsize12omega=0.7) hold on;plot(ts,0.95,bo,MarkerSize,10);h
25、old off cell_string1=fontsize12uparrow; cell_string2=fontsize16 fontname隶书镇定时间; cell_string3=fontsize6 ; cell_string4=fontsize14rmt_s = num2str(ts); text(ts,0.85,cell_string) xlabel(fontsize14 bft rightarrow)ylabel(fontsize14 bfy rightarrow)六、实验结果1列出实验程序(命令)代码及实验结果。试验程序如下: x=0:0.1:2*pi;y=x+(x.3)/3;p
26、lot(x,y)试验程序如下:x=0:0.1:2*pi;y=(1/2.*pi).*exp(x.2/2);plot(x,y) 试验程序如下:t=0:0.1:2*pi;r=2.5;x=r*sin(t);y=r*cos(t);plot(x,y) y=sin(t)sin(9t)试验程序如下:x=0:0.1:2*pi;y=sin(x).*sin(9*x);plot(x,y)实验图一实验图二:实验图三:实验图四七、心得体会: 这个实验是首次运用MATLAB的绘图功能,需要先写出原函数,在窗口中调用,主要是考察plot函数的使用,难点在于源文件的而编写,在整个程序中不能出现一点差错就不能得到想要的图,考验编
27、程能力和耐心细心程度。 南昌大学实验报告学生姓名: 张晓梅 学 号: 专业班级: 自动化092班 实验类型: 验证 综合 设计 创新 实验日期: 实验成绩: 一、实验项目名称实验五 基于SIMULINK的系统仿真二、实验目的: 1、熟悉SIMULINK 工作环境及特点2、掌握线性系统仿真常用基本模块的用法3、掌握SIMULINK 的建模与仿真方法4、子系统的创建和封装设计三、主要仪器设备及耗材计算机四、实验基本知识:1、了解SIMULINK模块库中各子模块基本功能 2、SIMULINK 的建模与仿真方法(1)打开模块库,找出相应的模块。鼠标左键点击相应模块,拖拽到模型窗口中即可。(2)创建子系
28、统:当模型大而复杂时,可创建子系统。(3)设置仿真控制参数。五、实验内容及实验结果 1、SIMULINK仿真实际应用(1) 双环调速的电流环系统的方框图模型为: 图中参数设为Ks=44;Ts=0.00167;Ta=0.017;R=1;Tm=0.075;Ce=0.1925;Kt=0.01178;T1=0.049;T2=0.088(1)在Simulink集成环境下建立模型,在给定信号作用点处输入单位给定阶跃响应信号,0.3秒后在扰动信号点输入单位阶跃响应信号。并绘制相应的响应曲线Ks=44;Ts=0.00167;Ta=0.017;R=1;Tm=0.075;Ce=0.1925;Kt=0.01178;
29、T1=0.049;T2=0.088; qingchundou2、用Simulink对以下系统进行仿真 其中为系统输入,y(t)为系统输出,仿真当输入为正弦信号时,输出的信号的波形,仿真时间0=0t K=4;Z=-2;-1;-5;-1;-5;P=0;-1;-1;-1;-0.0479 + 1.3112i;-0.0479 - 1.3112iP = 0 -1.0000 -1.0000 -1.0000 -0.0479 + 1.3112i -0.0479 - 1.3112i A,B,C,D=zp2ss(Z,P,K),num,den=zp2tf(Z,P,K)A = -1.0000 0 0 0 0 0 1.0000 0 0 0 0 0 1.0000 1.0000 -0.0958 -1.3121 0 0 0 0 1.3121 0 0 0 1.0000 1.0000 9.9042 17.7417 -2.0000 -1.0000 0 0 0 0 1.0000 0B = 1 0 0 0 0 0