当前位置:文档之家› Matlab Simulink 仿真步骤

Matlab Simulink 仿真步骤

MATLAB基础与应用简明教程张明等编著北京航空航天大学出版社(2001.01)MATLAB软件环境是美国New Mexico大学的Cleve Moler博士首创的,全名为MATrix LABoratory(矩阵实验室)。

它建立在20世纪七八十年代流行的LINPACK(线性代数计算)和ESPACK(特征值计算)软件包的基础上。

LINPACK和ESPACK软件包是从Fortran语言开始编写的,后来改写为C语言,改造过程中较为复杂,使用不便。

MATLAB是随着Windows环境的发展而迅速发展起来的。

它充分利用了Windows环境下的交互性、多任务功能语言,使得矩阵计算、数值运算变得极为简单。

MATLAB语言是一种更为抽象的高级计算机语言,既有与C语言等同的一面,又更为接近人的抽象思维,便于学习和编程。

同时,它具有很好的开放性,用户可以根据自己的需求,利用MATLAB提供的基本工具,灵活地编制和开发自己的程序,开创新的应用。

本书重点介绍了MATLAB的矩阵运算、符号运算、图形功能、控制系统分析与设计、SimuLink仿真等方面的内容。

Chap1 MATLAB入门与基本运算本章介绍MATLAB的基本概念,包括工作空间;目录、路径和文件的管理方式;帮助和例题演示功能等。

重点介绍矩阵、数组和函数的运算规则、命令形式,并列举了可能得到的结果。

由于MATLAB的符号工具箱是一个重要分支,其强大的运算功能在科技领域有特殊的帮助作用。

1.1 MATLAB环境与文件管理1.2 工作空间与变量管理1.2.1 建立数据x1=[0.2 1.11 3]; y1=[1 2 3;4 5 6]建立一维数组x1和二维矩阵y1。

分号“;”表示不显示定义的数据。

MATLAB还提供了一些简洁方式,能有规律地产生数组:xx=1:10 %xx从1到10,间隔为1xx=-2:0.5:1 %xx从-2到1,间隔为0.5linespace命令等距离产生数组,logspace在对数空间中等距离产生数组。

对于这一类命令,只要给出数组的两端数据和维数就可以了。

xx=linespace(d1,d2,n) %表示xx从d1到d2等距离取n个点xx=logspace(d1,d2,n) %表明xx从10d1到10d2等距离取n个点1.2.2 who和whos命令who: 查看工作空间中有哪些变量名whos: 了解这些变量的具体细节1.2.3 exist命令查询当前的工作空间内是否存在一个变量,可以调用exist()函数来完成。

调用格式:i=exist(‘A’);式中,A为要查询的变量名。

返回的值i表示A存在的形式:i=1 表示当前工作空间内存在一个变量名为A的矩阵;i=2 表示存在一个名为A.m的文件;i=3 表示MATLAB的工作路径下存在一个名为A.mex的文件;i=4 表示存在一个编译好的名为A.mdl的SimuLink的文件;i=5 表示存在一个内部的MATLAB函数A();i=0 表示不存在和A有关的变量和文件1.2.4 clear命令删除一些不再使用的变量。

变量之间用空格分开,不能加逗号。

1.2.5 format命令选择数值格式。

命令数据显示说明format long35.8333333333333416位format short e35.833e+015位加指数format long e35.83333333333334e+0116位加指数format hex4041eaaaaaaaaaab十六进制format blank35.832个十进制位format ++正、负或零format rat215/6有理数近似format short35.8333缺省显示1.2.6 在线查询与功能演示1.help命令help sqrt: 了解求平方根命令的功能和使用方式。

2 lookfor命令通过搜索所有MATLAB help标题,以及MATLAB搜索路径中M文件的第一行,返回包含所指定关键词的那些项。

Lookfor riccati: 得到所有解riccati方程的命令和解释语句 3. 菜单驱动的帮助1.3 变量、数据与函数1.3.1 变量变量名必须是不含空格的单个词,其命名规则如下:变量名区分大小写;变量名最多不超过19个字符;必须以字母打头,之后可以是任意字母、数字或下划线。

标点符号在MATLAB中具有特殊含义,所以变量名中不允许使用标点符号。

realmin最小可用正实数realmax最大可用正实数1.3.2 注释和标点百分号后所有的文字为注释。

多条命令可以放在同一行,中间用逗号或分号隔开。

逗号要求显示结果,分号禁止显示结果。

1.3.3 复数表示用和(是任意整数、实数)表示。

复数和数学运算可以写成与实数相,i j ()sqrt x x 同的形式。

MATLAB 还可以用real,imag,abs,angle 命令来表示一个复数的实部、虚部、幅值和相角。

1.3.4 数学函数命令说明Abs(x)绝对值或复数的幅值Acos(x)反余弦Acosh(x)反双曲余弦Angle(x)四象限内取复数相角Asin(x)反正弦Asinh(x)反双曲正弦Atan(x)反正切Atan2(x,y)四象限内反正切atanh(x)反双曲正切ceil(x)对+∞方向取整数conj(x)复数共轭cos(x)余弦cosh(x)双曲余弦exp(x)指数函数e x fix(x)对零方向取整数floor(x)对-∞方向取整数gcd(x)整数x 和y 的最大公约数imag(x)复数虚部lcm(x,y)整数x 和y 的最大公倍数log(x)自然对数log10(x)常用对数real(x)复数实部rem(x,y)除后余数;rem(x,y)给出x/y 的余数round(x)四舍五入到最接近的整数sign(x)符号函数;返回自变量的符号,例如sign(1.5)-1,sign(-2.4)=-1,sign(0)=0sin(s)正弦sinh(x)双曲正弦sqrt(x)平方根tan(x)正切tanh(x)双曲正切1.4 数据的输入与输出 1.4.1 save 和load 命令(1) save: 以二进制格式将所有变量存入到matlab.mat 文件中; (2) save data: 以二进制格式将所有变量存入到data.mat 文件中; (3) save data x y z: 以二进制格式将变量x,y,z 存入到data.mat 文件中 1.4.2 低级文件输入输出MATLAB 提供了基于C 语言的低级文件I/O 命令,可以读写任意格式文件。

1.5 数组与矩阵运算由于数组可以定义为只有一行(或一列)的矩阵,因此,所有有关矩阵的运算可以用于数组运算。

1.5.1 矩阵表示与块操作 1. 矩阵表达式MATLAB 的数组与矩阵用[ ]表示,程序可以自行解读矩阵的行、列标志和元素。

定义矩阵的原则是:矩阵元素间用空格或逗号隔开,行用分号隔开。

如:a=[1 2 3;4 5 6],b=[7 8 9] 2. 矩阵转置矩阵的转置(行、列互换)用表示。

'A 若矩阵为复数矩阵,求转置时首先对矩阵元素进行转置,然后再逐项求取其共轭数值,这种转置方式双称为Hermit 转置。

若x=[5.0000+1.0000i -2.0000+1.000i; 4.0000 +3.0000i]则xx=x’=[5.0000-1.0000i 4.0000; -2.0000-1.0000i 0-3.0000i]3. 矩阵大小 查询矩阵大小命 令说 明whos 显示工作空间中存在的变量及其大小size(A)返回A 矩阵的行数和列数length(A)返回A 矩阵的最大行、列数find(A)给出特殊要求的矩阵元素的行、列标记size: 格式为:[n,m]=size(A)。

n 和m 分别为A 矩阵的行数与列数。

length: 格式为:n=length(A)。

n 为A 数组的元素个数或A 矩阵的行、列数之最大值。

该函数等效于max(size(A))。

find 命令:进行特殊要求的矩阵元素的定位。

如[i,j]=find(A>3)指出矩阵元素中大于3的元素的行、列位置。

4. 矩阵的块操作MATLAB 提供了很多简便、智能的方式,可以对矩阵进行元素更改、插入子块、提取子块、重排子块、扩大维数等操作。

冒号“:”表示“全部”。

a(1,:)=b %将a 的第1行中所有元素用b 的元素替代。

a(:,:)=1 %将a 的所有元素设为1。

a(2,3)=10 %第2行第3列元素等于10。

MATLAB 已定义的矩阵的维数可以扩大,但不能缩小,除非利用clear 命令删除该矩阵。

如果输入的同名矩阵的维数小于矩阵维数,MATLAB 认为是原矩阵矩阵修改了部分元素或子块。

增加矩阵的维数时,可以只给出非零元素,MATLAB 自动将未定义元素设为0。

5. 矩阵的翻转操作矩阵上下翻转:flipud 命令将n 行矩阵作上下翻转,将A 的行按照n....1的顺序重新排列,A 的列保持不变。

如a=[1 2 3; 4 5 6; 7 8 9; 10 11 12],则b=flipud(a)=[10 11 12; 7 8 9; 4 5 6; 1 2 3]矩阵左右翻转:fliplr 命令将m 列矩阵A 作左右翻转,将A 的列按照m...1的顺序重新排列,A 的行保持不变。

如c=fliplr(a)=[3 2 1; 6 5 4; 9 8 7; 12 11 10]矩阵逆时针90°旋转:如d=rot90(a)=[3 6 9 12; 2 5 8 11; 1 4 7 10] 矩阵操作函数命 令说 明flipud(A)矩阵作上下翻转fliplr(A)矩阵作左右翻转rot90(A)矩阵逆时针翻转90°diag(A)提取矩阵A 的对角元素,返回列向量diag(V)以列向量V 作对角元素创建对角矩阵tril(A)提取A 的下三角矩阵triu(A)提取A 的上三角矩阵1.5.2 矩阵运算矩阵运算包括矩阵与标量、矩阵与矩阵的运算;矩阵函数和稀疏矩阵应用等。

1. 矩阵与标量的运算运算包括+、-、×、÷和乘方等运算。

矩阵与标量运算完成矩阵的每个元素对该标量的运算。

MATLAB 用符号“^”表示乘方。

求矩阵乘方时要求矩阵为方矩阵。

已知矩阵: b=[2 4; 1 5],则b^2=[8 28; 7 29](其平方为b×b );b^(-1)=[0.8333 -0.6667; -0.1667, 0.3333](实际是求b 的逆矩阵)p=b^(0.2)=[1.0862 0.3448; 0.0862 1.3448](将b 矩阵开5次方,即b=p 5)2. 矩阵与矩阵的运算矩阵加减法运算:矩阵A 和B 的维数完全相同时,可以进行矩阵加减法运算。

相关主题