当前位置:首页 > matlab在自控原理中的应用
控制系统的模拟试验与MATLAB仿真
1 MATLAB简介
(略)
2 MATLAB基本操作命令
本节简单介绍与本书内容相关的一些基本知识和操作命令。
(1)简单矩阵的输入
MATLAB是一种专门为矩阵运算设计的语言,所以在MATLAB中处理的所有变量都是矩阵。这就是说,MATLAB只有一种数据形式,那就是矩阵,或者数的矩形阵列。标量可看作为1×1的矩阵,向量可看作为n×1或1×n的矩阵。这就是说,MATLAB语言对矩阵的维数及类型没有限制,即用户无需定义变量的类型和维数,MATLAB会自动获取所需的存储空间。
输入矩阵最便捷的方式为直接输入矩阵的元素,其定义如下: (1) 元素之间用空格或逗号间隔;
(2) 用中括号([])把所有元素括起来; (3) 用分号(;)指定行结束。
例如,在MATLAB的工作空间中,输入:
5 6 9] >> a?[2 3 4; 则输出结果为:
a?234
569矩阵a被一直保存在工作空间中,以供后面使用,直至修改它。
MATLAB的矩阵输入方式很灵活,大矩阵可以分成n行输入,用回车符代替分号或用续行符号(?)将元素续写到下一行。例如:
a?[1, 2, 3; 4, 5, 6; 7, 8, 9]
a?[ 1 2 3 4 5 6 7 8 9]a?[1, 2, 3; 4, 5, ???
6; 7, 8, 9]以上三种输入方式结果是相同的。一般若长语句超出一行,则换行前使用续行符号(?)。
在MATLAB中,矩阵元素不限于常量,可以采用任意形式的表达式。同时,除了直接输入方式之外,还可以采用其它方式输入矩阵,如:
(1) 利用内部语句或函数产生矩阵; (2) 利用M文件产生矩阵;
- 1 -
(3) 利用外部数据文件装入到指定矩阵。
(2)复数矩阵输入
MATLAB允许在计算或函数中使用复数。输入复数矩阵有两种方法: (1) a=[12;34]+i*[56;78]
(2) a=[1+5i 2+6i;3+7i 4+8i]
注意,当矩阵的元素为复数时,在复数实部与虚部之间不允许使用空格符。如1 +5i将被认为是1和5i两个数。另外,MATLAB表示复数时,复数单位也可以用j。
(3) MATLAB语句和变量
MATLAB是一种描述性语言。它对输入的表达式边解释边执行,就象BASIC语言中直接执行语句一样。
MATLAB语句的常用格式为:
变量=表达式[;]
或简化为:
表达式[;]
表达式可以由操作符、特殊符号、函数、变量名等组成。表达式的结果为一矩阵,它赋给左边的变量,同时显示在屏幕上。如果省略变量名和“=”号,则MATLAB自动产生一个名为ans的变量来表示结果,如:
1900∕81 结果为:
ans? 23.4568
ans 是MATLAB提供的固定变量,具有特定的功能,是不能由用户清除的。常用的固定
变量还有eps、pi、Inf、NaN等。其特殊含义可以用7.2.10节介绍的方法查阅帮助。
MATAB允许在函数调用时同时返回多个变量,而一个函数又可以由多种格式进行调用,语句的典型格式可表示为:
[返回变量列表]=fun-name(输入变量列表)
例如用bode()函数来求取或绘制系统的Bode图,可由下面的格式调用:
[mag,phase]?bode(num,den,W)
其中变量num、den表示系统传递函数分子和分母,W表示指定频段,mag为计算幅值,phase为计算相角。
(4)语句以“%”开始和以分号“;”结束的特殊效用
在MATLAB中以“%”开始的程序行,表示注解和说明。符号“%”类似于C++中的“//”。这些注解和说明是不执行的。这就是说,在MATLAB程序行中,出现“%”以后的一切内容都是可以忽略的。
分号用来取消打印,如果语句最后一个符号是分号,则打印被取消,但是命令仍在执行,而结果不再在命令窗口或其它窗口中显示。这一点在M文件中大量采用,以抑制不必要的信息显示。
(5)获取工作空间信息
MATLAB开辟有一个工作空间,用于存储已经产生的变量。变量一旦被定义,MATLAB系统会自动将其保存在工作空间里。在退出程序之前,这些变量将被保留在存储器中。
为了得到工作空间中的变量清单,可以在命令提示符>>后输入who 或 whos 命令,当
- 2 -
前存放在工作空间的所有变量便会显示在屏幕上。
命令clear能从工作空间中清除所有非永久性变量。如果只需要从工作空间中清除某个特定变量,比如“x”,则应输入命令clear x。
(6)常数与算术运算符
MATLAB采用人们习惯使用的十进制数。如: 3 –99 0.0001 9.6397238 1.60210e?20 6.62252e23 2i -3.14159i 3e5i 其中 i??1。
数值的相对精度为eps,它是一个符合IEEE标准的16位长的十进制数,其范围为:
10?308~10308。
MATLAB提供了常用的算术运算符:+,-,?,∕(﹨),^(幂指数)。 应该注意:(∕)右除法和(﹨)左除法这两种符号对数值操作时,其结果相同,其斜线下为分母,如1∕4与4﹨1,其结果均为0.25,但对矩阵操作时,左、右除法是有区别的。
(7)选择输出格式
输出格式是指数据显示的格式,MATLAB提供format命令可以控制结果矩阵的显示,而不影响结果矩阵的计算和存储。所有计算都是以双精度方式完成的。
(1) 如果矩阵的所有元素都是整数,则矩阵以不带小数点的格式显示。 如输入:
0 1] x?[?1 则显示:
x? -1 0 1
(2) 如果矩阵中至少有一个元素不是整数,则有多种输出格式。常见格式有以下四
种:
① format short(短格式,也是系统默认格式) ② format short e(短格式科学表示) ③ format long(长格式)
④ format long e(长格式科学表示) 如:
1.2345e?6] x?[4/3 对于以上四种格式,其显示结果分别为:
x?
1.3333 0.0000x? 短格式5位表示
1.3333e?00 1.2345e?06
短格式科学表示
x? 1.33333333333333 0.00000123450000- 3 -
长格式16位表示
x? 1.33333333333333 e?00 1.234500000000000e?06(8)MATLAB图形窗口
长格式科学表示
一旦调用了某种格式,则这种被选用的格式将保持,直到对格式进行了改变为止。
当调用了一个产生图形的函数时,MATLAB会自动建立一个图形窗口。这个窗口还可分裂成多个窗口,并可在它们之间选择,这样在一个屏上可显示多个图形。
图形窗口中的图形可通过打印机打印出来。若想将图形导出并保存,可用鼠标点击菜单File|Export,导出格式可选emp、bmp、jpg等。命令窗口的内容也可由打印机打印出来:如果事先选择了一些内容,则可打印出所选择的内容;如果没有选择内容,则可打印出整个工作空间的内容。
(9)剪切板的使用
利用Windows的剪切板可在MATLAB与其它应用程序之间交换信息。
(1) 要将MATLAB的图形移到其它应用程序,首先按Alt-Print Screen键,将图形复制到剪切板中,然后激活其它应用程序,选择edit(编辑)中的paste(粘贴),就可以在应用程序中得到MATLAB中的图形。当然还可以借助于copy to Bitmap 或copy to Metafile 选项来传递图形信息。
(2) 要将其它应用程序中的数据传递到MATLAB,应先将数据放入剪切板,然后在MATLAB中定义一个变量来接收。
如键入: q=[
然后选择Edit中的paste,最后加上“]”,这样可将应用程序中的数据送入MATLAB的q变量中。
(10)MATLAB编程指南
MATLAB的编程效率比BASIC、C、FORTRAN和PASCAL等语言要高,且易于维护。在编写小规模的程序时,可直接在命令提示符>>后面逐行输入,逐行执行。对于较复杂且经常重复使用的程序,可按7.1.3介绍的方法进入程序编辑器编写M文件。
M文件是用MATLAB语言编写的可在MATLAB环境中运行的磁盘文件。它为脚本文件(Script File)和函数文件(Function File),这两种文件的扩展名都是.m。
(1) 脚本文件是将一组相关命令编辑在一个文件中,也称命令文件。脚本文件的语句可以访问MATLAB工作空间中的所有数据,运行过程中产生的所有变量都是全局变量。例如下述语句如果以.m为扩展名存盘,就构成了M脚本文件,我们不妨将其文件名取为“Step_Response”。
% 用于求取一阶跃响应。
num=[1 4]; den=[1 2 8]; step(num,den)
当你键入help Step_Response时,屏幕上将显示文件开头部分的注释: 用于求取一阶跃响应。
很显然,在每一个M文件的开头,建立详细的注释是非常有用的。由于MATLAB提供了大量的命令和函数,想记住所有函数及调用方法一般不太可能,通过联机帮助命令help可容易地对想查询的各个函数的有关信息进行查询。该命令使用格式为:
help 命令或函数名
注意:若用户把文件存放在自己的工作目录上,在运行之前应该使该目录处在MATLAB
- 4 -
共分享92篇相关文档