MATLAB控制系统仿真实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
清华大学自动化工程学院
实验报告
课程:控制系统仿真
专业自动化班级 122
姓名学号
指导教师:
时间: 2015 年 10 月 19 日— 10 月 28 日
目录
实验一 MATLAB环境的熟悉与基本运算 (1)
实验二 MATLAB语言的程序设计 (6)
实验三 MATLAB的图形绘制 (9)
实验四采用SIMULINK的系统仿真 (14)
实验五控制系统的频域与时域分析 (17)
实验六控制系统PID校正器设计法 (23)
实验一 MATLAB环境的熟悉与基本运算
一、实验时间及地点:
实验时间:2015.10.19上午8:30—9:30
实验地点:计算中心
二、实验目的:
1.熟悉MATLAB开发环境
2.掌握矩阵、变量、表达式的各种基本运算
三、实验内容:
1、新建一个文件夹(自己的名字命名,在机器的最后一个盘符)
2、启动MATLAB6.5,将该文件夹添加到MATLAB路径管理器中。
3、保存,关闭对话框
4、学习使用help命令,例如在命令窗口输入help eye,然后根据帮助说明,学习使用指
令eye(其它不会用的指令,依照此方法类推)
5、学习使用clc、clear,观察command window、command history和workspace等窗口的
变化结果。
6、初步程序的编写练习,新建M-file,保存(自己设定文件名,例如exerc1、exerc2、
exerc3……),学习使用MATLAB的基本运算符、数组寻访指令、标准数组生成函数和数组操作函数。
注意:每一次M-file的修改后,都要存盘。
练习A:
(1)help rand,然后随机生成一个2×6的数组,观察command window、command history和workspace等窗口的变化结果
(2)学习使用clc、clear,了解其功能和作用
(3)输入一个2维数值数组,体会标点符号的作用(空格和逗号的作用)。
(4)一维数组的创建和寻访,创建一个一维数组(1×8)X,查询X数组的第2个元素,查询X数组的第3个元素到第6个元素,查询X数组的第5个元素到最后
一个元素,查询X数组的第3、2、1个元素,查询X数组中≤5元素,将X数
组的第2个元素重新赋值为111,实例expm1。
(5)二维数组的创建和寻访,创建一个二维数组(4×8)A,查询数组A第2行、第3列的元素,查询数组A第2行的所有元素,查询数组A第6列的所有元素,
查询数组A按列拉长形成新的数组B(1×8),查询数组A按行拉长形成新的数组
C(1×8),以全元素赋值的方式对数组A赋值。
(6)两种运算指令形式和实质内涵的比较。设有3个二维数组A2×4,B2×4,C2×2,写出
所有由2个数组参与的合法的数组运算和矩阵指令
(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'&a<='z');
ascii_a(w)=ascii_a(w)-32;%英文大小写字母ASCLL 值差32(小-32=大)
char(ascii_a)
练习B
(10) 创建符号对象与函数命令sym ()、syms ()与 class ()的熟悉和运用。有
符号表达式:
kp cky bpx bcxy apx y acx e +++++=221,p cy e +=2 试计算?21=e 与?\21=e e
四、实验操作过程(实验说明)
>>help rand %用help 指令学习rand 的用法
rand - Uniformly distributed pseudorandom numbers
This MATLAB function returns a pseudorandom scalar drawn from 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) %随机生成一个2×6的数组
ans =
0.8147 0.1270 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) %产生单位矩阵