MATLAB控制系统仿真实验报告30700.pdf
《MATLAB控制系统仿真实验报告30700.pdf》由会员分享,可在线阅读,更多相关《MATLAB控制系统仿真实验报告30700.pdf(31页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、清华大学自动化工程学院 实验报告 课程:控制系统仿真 专业 自动化 班级 122 姓名 学号 指导教师:时间:2015 年 10 月 19 日 10 月 28 日 目 录 实验一 MATLAB 环境的熟悉与基本运算1 实验二 MATLAB 语言的程序设计6 实验三 MATLAB 的图形绘制9 实验四 采用 SIMULINK 的系统仿真 14 实验五 控制系统的频域与时域分析17 实验六 控制系统 PID 校正器设计法23 实验一 MATLAB 环境的熟悉与基本运算 一、实验时间及地点:实验时间:2015.10.19 上午 8:309:30 实验地点:计算中心 二、实验目的:1 熟悉 MATLA
2、B 开发环境 2掌握矩阵、变量、表达式的各种基本运算 三、实验内容:1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符)2、启动 MATLAB6.5,将该文件夹添加到 MATLAB 路径管理器中。3、保存,关闭对话框 4、学习使用 help 命令,例如在命令窗口输入 help eye,然后根据帮助说明,学习使用指令 eye(其它不会用的指令,依照此方法类推)5、学习使用 clc、clear,观察 command window、command history 和 workspace 等窗口的变化结果。6、初步程序的编写练习,新建 M-file,保存(自己设定文件名,例如 exerc1、ex
3、erc2、exerc3),学习使用 MATLAB 的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。注意:每一次 M-file 的修改后,都要存盘。练习 A:(1)help rand,然后随机生成一个 26 的数组,观察 command window、command history 和 workspace 等窗口的变化结果(2)学习使用 clc、clear,了解其功能和作用(3)输入一个 2 维数值数组,体会标点符号的作用(空格和逗号的作用)。(4)一维数组的创建和寻访,创建一个一维数组(18)X,查询 X 数组的第 2 个元素,查询 X 数组的第 3 个元素到第 6 个元素,查询
4、X 数组的第 5 个元素到最后一个元素,查询 X 数组的第 3、2、1 个元素,查询 X 数组中5 元素,将 X 数组的第 2 个元素重新赋值为 111,实例 expm1。(5)二维数组的创建和寻访,创建一个二维数组(48)A,查询数组 A 第 2 行、第3 列的元素,查询数组 A 第 2 行的所有元素,查询数组 A 第 6 列的所有元素,查询数组 A 按列拉长形成新的数组 B(18),查询数组 A 按行拉长形成新的数组C(18),以全元素赋值的方式对数组 A 赋值。(6)两种运算指令形式和实质内涵的比较。设有 3 个二维数组 A24,B24,C22,写出所有由 2 个数组参与的合法的数组运算
5、和矩阵指令(7)学习使用表 8 列的常用函数(通过 help 方法)(8)学习使用表 9 数组操作函数(9)学习字符串的创建,a=This is an example.串数组的大小 size(a)串数组的元素标识 a14=a(1:4)ra=a(end:-1:1)对字符串 ASCLL 码的数组操作 w=find(a=a&ahelp rand%用 help 指令学习 rand 的用法 rand-Uniformly distributed pseudorandom numbers This MATLAB function returns a pseudorandom scalar drawn fro
6、m the standard uniform distribution on the open interval(0,1).r=rand r=rand(n)r=rand(sz1,.,szN)r=rand(sz)r=rand(classname)r=rand(n,classname)r=rand(sz1,.,szN,classname)r=rand(sz,classname)r=rand(like,p)r=rand(n,like,p)r=rand(sz1,.,szN,like,p)r=rand(sz,like,p)rand(2,6)%随机生成一个 26 的数组 ans=0.8147 0.1270
7、 0.6324 0.2785 0.9575 0.1576 0.9058 0.9134 0.0975 0.5469 0.9649 0.9706 clear%清除命令窗口 1 2;3 4%输入一个二维数组 ans=1 2 3 4 1,2;3,4%将空格改为逗号效果一致 ans=1 2 3 4 a=1 2 3 4;5 6 7 8;b=a(2:2,3:4)%逗号前面是行,后面是列,冒号前后的数表示所选范围 b=7 8 eye(3)%产生单位矩阵 ans=1 0 0 0 1 0 0 0 1 magic(3)%产生魔方矩阵 ans=8 1 6 3 5 7 4 9 2 flipud(ans)%以数组“水平中
8、线”为对称轴,交换上下对称位置上的元素 ans=4 9 2 3 5 7 8 1 6 rot90(ans)%逆时针旋转数组 90 ans=2 7 6 9 5 1 4 3 8 a=hello a=hello b=size(a)%字符串 a 的大小为 1x5 b=1 5 syms x y p k a b c%创建符号对象 e1=x2*a*c*y+a*p*x2+b*p*x+c*k*y+k*p%创建函数命令 e1=k*p+a*p*x2+c*k*y+b*p*x+a*c*x2*y e2=c*y+p e2=p+c*y e1/e2 ans=(k*p+a*p*x2+c*k*y+b*p*x+a*c*x2*y)/(p
9、+c*y)a=1 2 a=1 2 c=reshape(a,2,1)%改变数组 a 的行数和列数 c=1 2 五、实验结果及讨论 1.熟悉了 MATLAB 的基本软件操作。2.通过本次实验熟悉了 MATLAB 的开发环境掌握了矩阵、变量、表达式的各种运算了解了*与.*、/与、与.等区别以及绝对值、开方 e 的阶乘、正弦、正切的运算的符号。3.让我明白了 MATLAB 的实用性。实验二 MATLAB 语言的程序设计 一、实验时间及地点:实验时间:2015.10.19 上午 8:309:30 实验地点:黄岛老校区计算中心 二、实验目的:1、熟悉 MATLAB 程序编辑与设计环境 2、掌握各种编程语句
10、语法规则及程序设计方法 3、函数文件的编写和设计 4、了解和熟悉跨空间变量传递和赋值 三、实验内容:练习 A 1、熟悉 MATLAB 程序编辑与设计环境 2、用 for 循环语句实现求 1100 的和 3、用 for 循环语句实现编写一个求n阶乘的函数文件 练习 B 思考题 4、已知一维数组10,8,5,4,2A、4,7,6,9,4B,用 for 循环语句实现niiniBA11。求和函数可用()sum 5、(1)编写求解一维数组平均值的函数文件。(2)编写求解二维数组平均值的函数文件。四、实验操作过程(实验说明)1 用 for 循环语句实现求 1100 的和,函数名为 theSec().程序:
11、a=0;for i=1:100 a=i+a;end fprintf(%dn,a)执行结果:theSec%求1100 的和 5050 2 用 for 循环语句实现编写一个求n阶乘的函数文件,函数名为 jiex(x).程序:function jiex(x)a=1;for i=1:x a=a*i;end fprintf(%dn,a)执行结果:jiex(4)%求 4 的阶乘 24 3.已知一维数组10,8,5,4,2A、4,7,6,9,4B,用 for 循环语句实现niiniBA11。求和,函数名用 ABsum()程序:function y=ABsum()a=2,4,5,8,10;b=4,9,6,7,
12、4;n=5;sum=0;for i=1:n sum=sum+a(1,i)*b(1,n-i+1);end y=sum;执行结果:ABsum()ans=178 4.编写求解任意数组平均值的函数文件,函数名为 avg(f).程序:function y=avg(f)m,n=size(f);sum=0;for i=1:m for j=1:n sum=sum+f(i,j);end end y=sum/(m*n);执行结果:a=1,2,3,4;5,6,7,8%定义一个数组 a=1 2 3 4 5 6 7 8 avg(2*a)%求数组 2*a 的平均值 ans=9 五、实验结果及讨论 1.编程语句:循环语句有
13、 for 循环和 while 循环,我习惯使用 for 循环,使用格式如下:for 循环变量=表达式 1(初值):表达式 2(增量):表达式 3(终值)循环语句组 end 条件判断语句 if 语句格式为:if 表达式 执行语句 end 实验三 MATLAB 的图形绘制 一、实验时间及地点:实验时间:2015.10.21 上午 8:309:30 实验地点:黄岛老校区计算中心 二、实验目的:1、学习 MATLAB 图形绘制的基本方法;2、熟悉和了解 MATLAB 图形绘制程序编辑的基本指令;3、熟悉掌握利用 MATLAB 图形编辑窗口编辑和修改图形界面,并添加图形的各种标注;4、掌握 plot、s
14、ubplot 的指令格式和语法。三、实验内容:练习 A【1】二维曲线绘图基本指令演示。t=(0:pi/50:2*pi);k=0.4:0.1:1;Y=cos(t)*k;plot(t,Y)01234567-1-0.8-0.6-0.4-0.200.20.40.60.81 plot 指令基本操作演示 【2】用图形表示连续调制波形)9sin()sin(tty 及其包络线。t=(0:pi/100:pi);y1=sin(t)*1,-1;y2=sin(t).*sin(9*t);t3=pi*(0:9)/9;y3=sin(t3).*sin(9*t3);plot(t,y1,r:,t,y2,b,t3,y3,bo)ax
15、is(0,pi,-1,1)00.511.522.53-1-0.8-0.6-0.4-0.200.20.40.60.81 【3】通过绘制二阶系统阶跃响应,综合演示图形标识。本例比较综合,涉及的指令较广。请耐心读、实际做、再看例后说明,定会有匪浅收益。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.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MATLAB 控制系统 仿真 实验 报告 30700
限制150内