MATLAB仿真举例
一、MATLAB应用概要
1. MATLAB的知识与特点
MATLAB是由美国Mathworks公司于1984年推出的一种功能强大的科学计算软件,主要适用于矩阵运算、信息处理和控制等领域的分析与设计。MATLAB是“矩阵实验室”(MATrix LABoratoy)的缩写。它以矩阵运算为基础,以简洁便用的“科学便笺式”编程语言,可交互的集成环境,强大的图形可视化功能,广泛应用于科学、工程和绘图的各种领域,受到科学界和教育界的高度好评。其特点是:
(1) 数值计算功能强,每个数值元素都视为复数,用双精度(64位)一种格式,编程简化;
(2) 具有符号计算功能;
(3) 简单而强大的作图功能; (4) 人机界面适合科技人员;
(5) 功能多,可扩展性强,有多种工具箱作专门处理。
2. MATLAB的窗口与应用常识
(1) 命令窗口
以MATLAB6.x为例,其集成环境有桌面平台及8个组成部分:指令窗口、历史指令窗口、工作台及工具箱窗口、工作目录窗口、工作空间窗口、矩阵编辑器、程序编辑器和帮助浏览器。
点击桌面上的MATLAB图标进入MATLAB后,即可看到命令窗口(Command Window),它是主窗口,当显示“〉〉”时,表示系统处于准备接受命令的状态。
(2) 图形窗口
一般,只要执行任一种绘图命令,就会自动产生图形窗口,以后的绘图都在这一个图形窗口中进行。
(3) 文本编辑窗口
用MATLAB计算有两种方式,一种是简单计算,可在命令窗口一行一行地输入各命令,另一种是对复杂计算时,把多行命令组成一个M文件,让MATLAB自动执行。
(4) M文件
采用MATLAB所规定的一套语言及语法编写的源文件记作.m文件。其文件名不能以数字开头,也不能包含文字,但可以用下划线“_”。
(5) Help命令
Help命令是查询函数相关信息的最基本方式,信息会直接显示在命令窗口中。 (6) 应用常识
① MATLAB使用双精度数据,所有系统命令都是小写形式。
② 矩阵是MATLAB进行数据运算的基本元素,矩阵中的下标从1开始,而不是0,标量是作为1×1的矩阵来处理的。
③ 语句或命令的结尾的分号“;”会屏蔽当前结果的显示。 ④ 注释位于%之后,不被执行。
⑤ 使用上下箭头实现命令的滚动显示,可用于再编辑和再执行。 ⑥ 变量名必须以字母开头,可以由字母、数字和下划线组成。 ⑦ 要画出一条平滑的连续曲线,最少需要200个数据点。
⑧ 即使预先对t做了定义,也应该使用数组操作,如f(t)=(2.^(-t)).*sin(2*t); 若写作2^(-t)*sin(2*t)时会提示出错。
⑨ 要想在同一个图形坐标上绘制多条曲线,应使用plot(t,f),hold on,plot(t1,f1),hold off或plot(t,f,t1,f1)均可。
⑩ 为了在图形中标出?,?,?等特殊符号,应采用MATLAB提供的专门字母表示。如表1所示。
表1 特殊符号的表示法
字符串 符号 \\alpha \\beta 字符串 符号 \\theta \\lambda \\tao \\int \\omega 字符串 符号 \\phi \\Phi ? ? \\gamma ? \\delta ? \\epsilon ? ? ? ? ? ?? \\pi ? \\infty ? \\Omega ? ?
3. MATLAB的常用函数
(1) 基本数学函数
常用的基本数学函数如表2所示。
表2 基本数学函数
正弦 sin 余弦 cos 正切 tan 指数 exp 自然对数 log 矩阵指数函数 expm 绝对值 abs 求实部 real 求虚部 imag 平方根 sqrt 求数组的最大值 max 求数组的最小值 min 求数组的平均值 mean 求和 sum 求矩阵的特征值 eig 求复数的相角 angle 求共轭 conj 辛格函数 sinc
(2) 基本作图函数 作图函数如表3所示
表3 常用的作图函数
plot 绘制连续波形 stem 绘制离散波形 loglog 绘双对数坐标图 subplot 分割图形窗口 hold 保留当前曲线 figure 定义图形窗口 line 画直线 title 为图形加标题 grid 画网格线 xlabel 为X轴加上轴标 ylabel 为Y轴加上轴标 text 在图上加文字说明 gtext 用鼠标在图上加说明 axis 定义x,y坐标轴标度 zzplot 画符号函数的图形
4. 矩阵的创建
在MATLAB中,矩阵是运算的基本单元,所以创建矩阵非常重要。创建矩阵有三种方法:直接输入法、内部函数创建法和利用矩阵编辑器和修改矩阵。
(1) 直接输入法
实数矩阵:对于维数较小的实数矩阵,可以从键盘直接输入。具体方法是:将矩阵的元素用方括号“[]”括起来,按行输入各元素,各行用分号“;”或Enter隔开。
?123???
例如矩阵a= ?456?
?789???
可写成指令:a=[1 2 3; 4 5 6; 7 8 9]
复数矩阵:矩阵的各元素为复数时,与上述实数矩阵类似。不过写法有规定,如6+4j不可写成6+j4。应该写为6+j*4或6+i*4。
(2) 内部函数创建法
利用MATLAB提供的许多函数可以创建一些特殊矩阵。例如: ones(m,n) 生成一个元素全部为1的m行n列矩阵 eye(m,n) 生成一个主对角线元素为1的其余为0的矩阵 pascal(n) 生成一个n维帕斯卡矩阵
(3) 向量的创建
创建向量最常用的方法是利用冒号“:”运算符生成。 例如:a=m:p:n
是生成起始值为m,终值为n,步长为p的均匀等分行向量a。 例如:>>a=1:-0.1:0 则输出结果为:
a=1 0.9 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 0