清华大学自动化工程学院
实验报告
课程: 控制系统仿真
专业 自动化 班级 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.'
1
串数组的大小size(a)
串数组的元素标识a14=a(1:4) 对字符串ASCLL码的数组操作
ra=a(end:-1:1)
w=find(a>='a'&a<='z');
ascii_a(w)=ascii_a(w)-32;%英文大小写字母ASCLL值差32(小-32=大) char(ascii_a) 练习B
(10) 创建符号对象与函数命令sym()、syms()与 class()的熟悉和运用。有符
号表达式:
e1?acx2y?apx2?bcxy?bpx?cky?kp,e2?cy?p
试计算e1e2??与e1\\e2??
四、实验操作过程(实验说明)
>>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的数组
2
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) %产生单位矩阵
ans =
1 0 0 0 1 0 0 0 1
>> magic(3) %产生魔方矩阵
ans =
3