收藏 分享(赏)

第2课符号计算绘图和simulink仿真.ppt

上传人:dzzj200808 文档编号:3347199 上传时间:2018-10-16 格式:PPT 页数:102 大小:773.50KB
下载 相关 举报
第2课符号计算绘图和simulink仿真.ppt_第1页
第1页 / 共102页
第2课符号计算绘图和simulink仿真.ppt_第2页
第2页 / 共102页
第2课符号计算绘图和simulink仿真.ppt_第3页
第3页 / 共102页
第2课符号计算绘图和simulink仿真.ppt_第4页
第4页 / 共102页
第2课符号计算绘图和simulink仿真.ppt_第5页
第5页 / 共102页
点击查看更多>>
资源描述

1、第4章 MATLAB符号计算 1.符号计算基础 2.符号微积分 3. 级 数 4.符号方程求解 5.积分变换,4.1符号计算基础 4.1.1符号对象的建立 1.创建符号变量 MATLAB提供了两个建立符号对象的函数:sym和syms,两个函数的用法不同。 (1) sym函数 sym函数用来建立单个符号量,一般调用格式为: 符号量名=sym(符号字符串) 该函数可以建立一个符号量,符号字符串可以是常量、变量、 函数或表达式。, a=sym(a) a = a,注意:符号变量a和非符号变量a是不同的。非符号变量在参与运算之前必须赋值,变量的运算实际上是该变量对应的值进行运算,其结果是一个和变量类型对

2、应的值;而符号变量参与运算之前无须赋值,其结果是一个由参与运算的变量名组成的表达式。,a=sym(a);b=sym(b);c=sym(c);d=sym(d); A=a,b;c,d A = a, b c, d w=1;x=2;y=3;z=4; B=w,x;y,z B =1 23 4, det(A) ans = a*d-b*c (A=sym(a,b;c,d) det(B) ans =-2,应用sym函数还可以定义符号常数,使用符号常数进行代数运算时和数值常量进行的运算不同。下面的命令用于比较符号常量与数值常量在代数运算时的差别。, a=sym(8); b=8; sqrt(a) %结果为符号常量 a

3、ns = 2*2(1/2) sqrt(b) %结果为数值常量 ans =2.8284,eval(a)%计算符号表达式的值 ans =8,(2) syms函数 MATLAB提供了另一个函数syms,一次可以定义多个符号 变量。syms函数的一般调用格式为: syms 符号变量名1 符号变量名2 符号变量名n 用这种格式定义符号变量时不要在变量名上加字符串 分界符(),变量间用空格而不要用逗号分隔。,例如用syms定义a、b、c三个符号变量: syms a b c,2建立符号表达式和符号矩阵建立符号表达式有以下2种方法: (1)用sym函数建立符号表达式。 (2) 使用已经定义的符号变量组成符号表

4、达式。, f=sym(a*x2+b*x+c) f = a*x2+b*x+c syms x a b c f=a*x2+b*x+c f = a*x2+b*x+c,创建符号矩阵的方法同创建符号表达式如: syms a11 a12 a21 a22 A=a11 a12;a21 a22 A = a11, a12 a21, a22 sym(a11 a12;a21 a22),法一,法二,符号表达式的因式分解与展开 MATLAB提供了符号表达式的因式分解与展开的函 数,函数的调用格式为: factor(f):对符号表达式f分解因式。 expand(f):对符号表达式f进行展开。 collect(f):对符号表达

5、式f合并同类项。 collect(f,v):对符号表达式f按变量v合并同类项。,4.1.2 基本的符号运算, syms x y f=(2*x+3*y)*(x+1) f = (2*x+3*y)*(x+1) a=expand(f) a = 2*x2+2*x+3*y*x+3*y a=collect(a,x) a = 2*x2+(2+3*y)*x+3*y factor(a) ans = (2*x+3*y)*(x+1),符号矩阵也是一种符号表达式,所以前面介绍的 符号表达式运算都可以在矩阵意义下进行。但应注意 这些函数作用于符号矩阵时,是分别作用于矩阵的每 一个元素。由于符号矩阵是一个矩阵,所以符号矩阵

6、还能进 行有关矩阵的运算。MATLAB还有一些专用于符号 矩阵的函数,这些函数作用于单个的数据无意义。 例如 transpose(s):返回符号矩阵s的转置矩阵。 s:返回符号矩阵s的共轭转置矩阵。 det(s):返回s矩阵的行列式值。 其实,曾介绍过的许多应用于数值矩阵的函数,如 diag、triu、tril、inv、det、rank、eig等,也可直接 应用于符号矩阵。,符号表达式与数值表达式之间的转换 利用函数sym可以将数值表达式变换成它的符号表达式。 函数numeric或eval可以将符号表达式变换成数值表达式。 符号表达式中变量的确定 MATLAB中的符号可以表示符号变量和符号常量

7、。 findsym可以帮助用户查找一个符号表达式中的的 符号变量。该函数的调用格式为:findsym(s,n) 函数返回符号表达式s中的n个符号变量,若没有指定n, 则返回s中的全部符号变量。 仅作了解。,4.2.1符号函数的极限 limit函数的调用格式为: limit(f,x,a):求符号函数f(x)的极限值。即计算当变量x趋近于常数a时,f(x)函数的极限值。 注:其中a可以为一个确定的数,也可以为无穷大。在应用 时,先用syms命令把x声明为符号变量 (2) limit(f,a):求符号函数f(x)的极限值。由于没有指定 符号函数f(x)的自变量,则使用该格式时,符号函数f(x) 的变

8、量为函数findsym(f)确定的默认自变量,即变量x趋 近于a。,4.2 微分运算,(3) limit(f):求符号函数f(x)的极限值。符号函数f(x)的变量为函数findsym(f)确定的默认变量;没有指定变量的目标值时,系统默认变量趋近于0,即a=0的情况。 (4) limit(f,x,a,right):求符号函数f的极限值。right表示变量x从右边趋近于a。 (5) limit(f,x,a,left):求符号函数f的极限值。left表示变量x从左边趋近于a。,例如:求极限, syms x limit(sin(x)/x,x,0) ans = 1 limit(sin(x)/x) ans

9、 = 1, limit(1/x,x,0) ans = NaN limit(1/x,x,0,left) ans = -inf limit(1/x,x,0,right) ans = inf,例 求下列极限。 极限1: syms a m x; f=(x*(exp(sin(x)+1)-2*(exp(tan(x)-1)/(x+a); limit(f,x,a) ans = (1/2*a*exp(sin(a)+1/2*a-exp(tan(a)+1)/a 极限2: syms x t; limit(1+2*t/x)(3*x),x,inf) ans = exp(6*t),极限3: syms x; f=x*(sqr

10、t(x2+1)-x); limit(f,x,inf,left) ans = 1/2 极限4: syms x; f=(sqrt(x)-sqrt(2)-sqrt(x-2)/sqrt(x*x-4); limit(f,x,2,right) ans = -1/2,4.2.2 符号函数的微分 diff函数用于对符号表达式求微分(导数)。该函数 的一般调用格式为: diff(f):没有指定变量和导数阶数,则系统按findsym 函数指示的默认变量对符号表达式f求一阶导数。 diff(f, x):以x为自变量,对符号表达式f求一阶导数。 diff(f,n):按findsym函数指示的默认变量对符号表达式 f求

11、n阶导数,n为正整数。 diff(f, x,n):以x为自变量,对符号表达式f求n阶导数。, syms x diff(x*cos(x),x) ans = cos(x)-x*sin(x) diff(x*cos(x),x,2) ans = -2*sin(x)-x*cos(x) diff(x*cos(x),x,3) ans = -3*cos(x)+x*sin(x),4.3积分运算 符号积分由函数int来实现。该函数的一般调用格式为: int(f):没有指定积分变量和积分阶数时,系统按findsym函数指 示的默认变量对被积函数或符号表达式f求不定积分。 int(f,x):以v为自变量,对被积函数或符

12、号表达式s求不定积分。 int(f,x,a,b):求定积分运算。a,b分别表示定积分的下限和上限。 该函数求被积函数在区间a,b上的定积分。a和b可以是两个具体 的数,也可以是一个符号表达式,还可以是无穷(inf)。当函数f关 于变量x在闭区间a,b上可积时,函数返回一个定积分结果。当 a,b中有一个是inf时,函数返回一个广义积分。当a,b中有一个符 号表达式时,函数返回一个符号函数。, syms x int(1/(x2+1) ans = atan(x), syms x t; f1=x2/(x+1); a1=int(f1,1,2) a1 = log(3)+1/2-log(2) double(

13、a1) ans =0.9055, f2=1/(x2+1) ; a2=int(f2,-inf,inf) a2 = pi, f3=2*t*x; a3=int(f3,x,1,sin(t) a3 = t*(sin(t)2-1),4.4 级 数 1.级数符号求和求无穷级数的和需要符号表达式求和函数symsum,其 调用格式为:symsum(s,v,n,m)其中s表示一个级数的通项,是一个符号表达式。v是求和变量,v省略时使用系统的默认变量。n和m是求和的开始项和末项。,例:分别求级数的和。和syms k symsum(1/k,k,1,inf) ans = inf symsum(1/(k*(k+1),k,

14、1,inf) ans = 1,2. 函数的泰勒级数 MATLAB提供了taylor函数将函数展开为幂级数, 其调用格式为:taylor(f,x,n,a) 该函数将函数f按变量x展开为泰勒级数,展开到第n项 (即变量x的n-1次幂)为止,n的缺省值为6。x的缺省值与 diff函数相同。参数a指定将函数f在自变量x=a处展开, a的缺省值是0。, f=(1+2*x+3*x2)/(1-2*x-3*x2); taylor(f,x,5) ans = 1+4*x+14*x2+40*x3+122*x4,4.5.1 代数方程 在MATLAB中,求解用符号表达式表示的代数方程 可由函数solve实现,其调用格式

15、为: solve(f):求解符号表达式f的代数方程,求解变量为默 认变量。 solve(f,x):求解符号表达式f的代数方程,求解变量为x。 solve(f1,f2,fn,x1,x2,xn):求解符号表达式f1,f2,fn 组成的代数方程组,求解变量分别x1,x2,xn。,4.5 求解方程,例如求解一元二次方程的解, syms x a b c y=a*x2+b*x+c y = a*x2+b*x+c solve(y) ans = 1/2/a*(-b+(b2-4*a*c)(1/2) 1/2/a*(-b-(b2-4*a*c)(1/2), solve(y,a) %求解未知变量a ans = -(b*x

16、+c)/x2,在求解后,有时解的表示是有理分式形式,可以用double函数将结果化为小数,但会使结果不够精确。, y=x2+3*x+4; solve(y) ans = -3/2+1/2*i*7(1/2) -3/2-1/2*i*7(1/2) double(ans) ans =-1.5000 + 1.3229i-1.5000 - 1.3229i,若要求解的是 形式的方程,可给出整个方程,并用单引号引起来,或将方程改为 ,并将 赋给另一个变量,然后再使用函数。,求解方程组:,x,y=solve(x*y=2,x2+y2=4) x = 2(1/2) -2(1/2) y = 2(1/2) -2(1/2),

17、4.5.3 符号常微分方程求解 在MATLAB中,用大写字母D表示导数。例如,Dy表示y,D2y表示y,Dy(0)=5表示y (0)=5。 D3y+D2y+Dy-x+5=0表示微分方程y (3) +y +y -x+5=0。 符号常微分方程求解可以通过函数dsolve来实现, 其调用格式为:dsolve(e,c,v) 该函数求解常微分方程e在初值条件c下的特解。参数v描 述方程中的自变量,省略时按缺省原则处理,若没有给出 初值条件c,则求方程的通解。 dsolve在求常微分方程组时的调用格式为: dsolve(e1,e2,en,c1,cn,v1,vn) 该函数求解常微分方程组e1,en在初值条件

18、c1,cn下的 特解,若不给出初值条件,则求方程组的通解,v1,vn 给出求解变量。,dsolve(Dy=1+y2)%求一阶微分方程的通解 ans = tan(t+C1) dsolve(Dy=1+y2,y(0)=1)%给定初始条件,求特解 ans = tan(t+1/4*pi) dsolve(Dy=1+y2,y(0)=1,x)%改变自变量为x ans = tan(x+1/4*pi),dsolve(D2y=cos(t)-y,Dy(0)=0,y(0)=1) ans =cos(t)+1/2*sin(t)*t,x,y=dsolve(Dx=3*x+4*y,Dy=-4*x+3*y,x(0)=0,y(0)=

19、1) x = exp(3*t)*sin(4*t) y = exp(3*t)*cos(4*t),求解二阶微分方程,求解一阶微分方程组,4.6 积分变换 常见的积分变换有傅立叶变换、拉普拉斯变换和Z变换。 1傅立叶(Fourier)变换 在MATLAB中,进行傅立叶变换的函数是: F=fourier(f):计算函数f对默认变量x的fourier变换, 返回关于w的函数。 F= fourier(f,v):对默认变量x进行fourier变换, 返回关于v的函数。 F= fourier(f,u,v):对关于u的函数f进行fourier变换, 返回关于v的函数F。,syms x f w f=exp(-x.

20、2); F=fourier(f); y=-3:0.05:3; fy=subs(f,x,y); subplot(2,1,1) plot(y,fy); t=-5:0.1:5; ft=subs(F,w,t); subplot(2,1,2); plot(t,ft);,subs(f, old, new)可以在符号表达式中进行变量替换,用new字符串代替各old个字符串,f=ifourier(F): F对默认变量w作ifourier逆变换,返回关于x的函数。 f=ifourier(F,u): 返回关于u的函数f。 f=ifourier(F,u,v): 对关于u的函数F作ifourier逆变换,返回关于v的

21、函数f。,Fourier逆变换使用函数ifourier,格式与fourier相同,2拉普拉斯(Laplace)变换 在MATLAB中,进行拉普拉斯变换的函数是:laplace, ilaplace laplace(f):求函数f对默认变量t的Laplace变换, ,默认 返回关于s的函数。 laplace(f,u):返回关于u的函数。 laplace(f,u,v):对关于u的函数f作Laplace变换,返回关于 v的函数。 ilaplace(F,u,v):求拉普拉斯像函数F(u)的原函数f(v)。,3Z变换和逆Z变换 当函数f(x)呈现为一个离散的数列f(n)时,对数列f(n) 进行z变换的MA

22、TLAB函数是: ztrans(f,n,z):求f(n)的Z变换像函数F(z)。 iztrans(F,z,n):求F的z变换原函数f(n)。,第五章MATLAB绘图,77页图形窗口工具栏专用按钮 5.1二维图形 5.1.1绘制二维图形的基本函数 表5-1 plot x轴和y轴均为线性坐标 semilogx x 轴为对数坐标,y轴为线性坐标 semilogy x 轴为线性坐标,y轴为对数坐标 polar 绘制极坐标曲线 grid 在图形窗口中添加网格(grid on)或去掉网格(grid off) zoom 允许(zoom on)或不允许(zoom off)对图形进行放大或缩小 ginput 用

23、鼠标获取图形中点的坐标patch, fill,一、plot函数绘制二维图形的最基本函数是plot,它是针对向 量或矩阵的列来绘制曲线的。也就是说,使用plot函 数之前,必须首先定义好曲线上每一点的x及y坐标, 常用格式有: plot(y) 只有一个参数时,以y参数的值为纵坐标,横坐标x从1开始,长度与参数y相同 2. plot(x,y) 以x元素为横坐标值,y元素为纵坐标值绘制曲线。 3. plot(x,y1,x,y2,) 以公共的x元素为横坐标值,以y1,y2等为纵坐标值,绘制多条曲线。,4. plot(x,y,选项) 选项包括线形、颜色、数据点标记符号等特性的设置。 80页表5-2。,y

24、=0 1 2 3 2 1 0 ; plot(y,*-);plot(y) 只有一个 参数时, 以y参数的 值为纵坐标, 横坐标x 从1开始, 长度与 参数y相同,2.plot(x,y) 以x元素 为横坐标 值,y元素 为纵坐标 值绘制曲 线。,t=0:0.1:7; x=sin(t); plot(t,x,k); title(正弦曲线); xlabel(x轴); ylabel(y轴);,t=0:0.1:7; x=sin(t); plot(t,x,k);,t=0:0.1:7; y=0; x=sin(t); plot(t,x,r-*,t,y,-.b+) ; axis off %取消坐标轴, 默认为显示坐

25、标轴即axis on 3.plot(x,y1,x,y2,) 以公共的x元素 为横坐标值, 以y1,y2等 为纵坐标值, 绘制多条曲线。,例:画出一条正弦曲线 和一条余弦曲线。 x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) text(1.5,0.2,y2=cosx) %在坐标(x,y)处标注说明文字 gtext(y1=sinx) %用鼠标在特定处标注说明文字,在0x2区间内,绘制曲线y=2e-0.5xcos(4x) x=0:pi/100:2*pi; y=2*exp(0.5*x).*cos(4*pi*x); plot(x,y) text

26、(3,0.5,y=2exp(-0.5x)cos(4pix) %输入特定的文字 需要用反斜杠()开头 pi alpha beta leftarrow rightarrow bullet .,例: 4.plot(x1,y1,x2,y2,xn,yn) x1=0:pi/10:2*pi; %x1=linspace(0,2*pi,100); x2=0:pi/10:3*pi; %x2=linspace(0,3*pi,100); y1=sin(x1); y2=cos(x2); plot(x1,y1,x2,y2) text(1.5,0.2,y2=cosx) text(2.7,0.5,y1=sinx) x1和y1

27、,x2和y2,xn 和yn分别组成一组向量对, 每一组向量对的长度可以 不同。一个向量对绘制出 一条曲线,这样可以在同 一坐标内绘制出多条曲线.,plot函数的输入参数是矩阵形式 (1) 当x是向量,y是有一维与x同维的矩阵时,则绘制出多根不同颜色的曲线。曲线条数等于y矩阵的另一维数,x被作为这些曲线共同的横坐标。 (2) 当x,y是同维矩阵时,则以x,y对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。 (3) plot(Y) :当输入参数Y是实矩阵时,则按列绘制每列元素值相对其下标的曲线,曲线条数等于输入参数矩阵的列数。当输入参数Y是复数矩阵时,则按列分别以元素实部和虚部为横、纵

28、坐标绘制多条曲线。,(4)含多个输入参数的plot函数 plot(x1,y1,x2,y2,xn,yn) 1.当输入参数都为向量时,x1和y1,x2和y2,xn和yn分别组成一组向量对,每一组向量对的长度可以不同。一个向量对绘制出一条曲线,这样可以在同一坐标内绘制出多条曲线。 2.当输入参数有矩阵形式时,配对的x,y按对应列元素为横、纵坐标分别绘制曲线,曲线条数等于矩阵的列数。,例 分析下列程序绘制的曲线。 x1=linspace(0,2*pi,100); x2=linspace(0,3*pi,100); x3=linspace(0,4*pi,100); y1=sin(x1); y2=1+sin

29、(x2); y3=2+sin(x3); x =x1;x2;x3;%x=x1 x2 x3 y=y1;y2;y3; %y=y1 y2 y3 plot(x,y,x1,y1-1) legend(y1=sin(x1) , y2=1+sin(x2) , y3=2+sin(x3) , y1-1=sin(x1) ,4) %该参数的选择项为0,1,2,3,4,-1; %1为默认值,可省略。,二、特殊坐标二维图形 1.对数坐标曲线 绘制对数和半对数坐标曲线的函数,调用格式为: semilogx(x1,y1,选项1,x2,y2,选项2,) semilogy(x1,y1,选项1,x2,y2,选项2,) loglog(

30、x1,y1,选项1,x2,y2,选项2,) 2.极坐标曲线 polar(theta,rho,选项) theta为极坐标极角,rho为极坐标矢径, 选项内容与plot函数相似。,3.双y轴图形(具有两个纵坐标标度的图形) 使用plotyy绘图函数,可以绘制出具有不同纵坐标标 度的两个图形。plotyy(x1,y1,x2,y2)plotyy(x1,y1,x2,y2,fun)plotyy(x1,y1,x2,y2,fun1,fun2 ) 其中x1,y1对应一条曲线,x2,y2对应另一条曲线。 横坐标的标度相同,纵坐标有两个, 左纵坐标用于x1,y1数据对,右纵坐标用于x2,y2数据对。 fun为字符串

31、格式,选项可以为semilogy,plot, 82页例。,例 用不同标度在同一坐标内绘制曲线y1=0.2e-0.5xcos(4x) 和y2=2e-0.5xcos(x)。 x=0:pi/100:2*pi; y1=0.2*exp(-0.5*x).*cos(4*pi*x); y2=2*exp(-0.5*x).*cos(pi*x); plotyy(x,y1,x,y2); grid on%给坐标加网格线,默认为不加即grid off,4.复数数据polt(x,y)当输入参数x,y中至少有一个是复数向量时, plot(z)当输入参数z是复数向量时, 当输入参数z是复数矩阵时,则按列分别以元素实部和虚部为横

32、、纵坐标绘制多条曲线。,5.1.2图形处理 MATLAB为用户提供了一些图形修饰函数,详细情况见下表。,1图形标注 有关图形标注函数的调用格式为: title(图形名称) xlabel(x轴说明) ylabel(y轴说明) text(x,y,图形说明) legend(图例1,图例2,) 除legend外,其他函数均可用于三维图形。,例 在0x2区间内,绘制曲线y1=2e-0.5x和y2=cos(4x),并给图形添加图形标注。 程序如下: x=0:pi/100:2*pi; y1=2*exp(-0.5*x); y2=cos(4*pi*x); plot(x,y1,x,y2); title(x fro

33、m 0 to 2pi); %加图形标题 xlabel(Variable X); %加X轴说明 ylabel(Variable Y); %加Y轴说明 text(0.8,1.5,曲线y1=2e-0.5x); %在指定位置添加图形说明 text(2.5,1.1,曲线y2=cos(4pix); legend(y1, y2) %加图例,2坐标控制 axis函数的调用格式为: axis(xmin xmax ymin ymax zmin zmax) axis函数功能丰富,常用的格式还有: axis equal:纵、横坐标轴采用等长刻度。 axis square:产生正方形坐标系(缺省为矩形)。 axis a

34、uto:使用缺省设置。 axis off:取消坐标轴。 axis on:显示坐标轴。,hold on/off命令控制是保持原有图形还是刷新 原有图形,不带参数的hold命令在两种状态之间 进行切换。 给坐标加网格线用grid命令来控制。 grid on/off命令控制是画还是不画网格线, 不带参数的grid命令在两种状态之间进行切换。 给坐标加边框用box命令来控制。 box on/off命令控制是加还是不加边框线, 不带参数的box命令在两种状态之间进行切换。,例 在同一坐标中,可以绘制3个同心圆,并加坐标控制。t=0:0.01:2*pi;%列x=exp(i*t);y=x;2*x;3*x;p

35、lot(y)grid on; %加网格线box on; %加坐标边框axis equal %坐标轴采用等刻度,3图形窗口的分隔 subplot函数的调用格式为: subplot(m,n,p) 该函数将当前图形窗口分成mn个绘图区, 即每行n个,共m行,区号按行优先编号, 且选定第p个区为当前活动区。 在每一个绘图区允许以不同的坐标系单独绘制图形。,例: x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); plot(x,y1,x,y2) grid on %添加网格 xlabel(Independent Variable X) ylabel(Dependent Variab

36、le Y1&Y2) title(Sin and Cosine Curve) text(1.5,0.3,cos(x) gtext(sin(x) axis(0 6 -1 1),例:在同一窗口中 绘制线段。 x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); y3=x; plot(x,y1,r,x,y2,b) hold on %hold off plot(x,y3,m) plot(x,y2+y1,b) % hold on保持原有图形 %hold off刷新原有图形,例:在多个窗口中 绘制图形。 x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); y3=

37、exp(x); y4=y1+y2;subplot(221); plot(x,y1); subplot(222) plot(x,y2); subplot(223); plot(x,y3); subplot(224); plot(x,y4);,5.2三维图形 5.2.1基本函数 。 5.2.2三维线条图 plot3函数与plot函数用法十分相似,其调用格式为: plot3(x1,y1,z1,选项1,x2,y2,z2,选项2,xn,yn,zn,选项n) 其中每一组x,y,z组成一组曲线的坐标参数,选项 的定义和plot函数相同。当x,y,z是同维向量时,则x,y,z对应元素构成一条三维曲线。当x,y

38、,z是同维矩阵时, 则以x,y,z对应列元素绘制三维曲线,曲线条数等于矩 阵列数。,例 绘制三维曲线。 程序如下: t=0:pi/100:20*pi; x=sin(t); y=cos(t); z=t.*sin(t).*cos(t); plot3(x,y,z); title(Line in 3-D Space); xlabel(X);ylabel(Y);zlabel(Z); grid on;,例:绘制下面方程在t=0 2的空间图形。x=0:pi/10:2*pi; y1=sin(x); y2=cos(x); plot3(y1,y2,x,m:p) grid on xlabel(Dependent V

39、ariable Y1) ylabel(Dependent Variable Y2) zlabel(Dependent Variable X) title(Sine and Cosine Curve),5.2.3三维网格图 X,Y=meshgrid(x,y):产生三维网格数据点 将向量x(1m), y(1n),转换为三位网格数据矩阵X(nm), Y(nm). X,Y=meshgrid(1 2 3 4,5 6 7) Z=X.2+Y.2 ,mesh(X,Y,Z) X =1 2 3 41 2 3 41 2 3 4 Y =5 5 5 56 6 6 67 7 7 7 Z =26 29 34 4137 40

40、 45 5250 53 58 65,mesh建立网格图的函数。 5.2.4三维表面图 surf建立曲面图的 函数。 X,Y,Z=peaks(10) %生成三位向量 X,Y,Z=sphere(10) %生成球面向量,X,Y=meshgrid(1 2 3 4,5 6 7); Z=X.2+Y.2 surf(X,Y,Z),第六章simulink仿真,前面涉及到的仿真都是较为简单的静态仿真,为了处理更复杂的和时间有关的 动态系统,就必须学习simulink的使用。Simulink是matlab提供的实现系统建模和仿真的一个软件包。它让用户把精力从编程转向模型的构造。simulink的一个很大的优点是为用

41、户省去了很多重复的代码编写工作,用户就不必一步步的从最底层开始编起了。,启动simulink, 只需要在matlab命令窗口输入:simulink 或者单击命令窗口里工具栏上的按钮。,Simulink库浏览器,模型窗口,Simulink最让人振奋的一点就是支持图形用户界面。,演示p112到113,6.1 SIMULINK的基本操作,1、SIMULINK窗口:库浏览器、 SIMULINK模型窗口,2、 SIMULINK模块操作: 模块是建立SIMULINK模型的基本单元,用适当的方式把各种模块连接在一起就能够建立任何动态系统模型。,选取模块、放大或缩小模块、改变模块名字,双击某一模块或在模块上单

42、击鼠标右键,选择Block Parameters可以对参数进行设置,选择Block Properties可以设置和查看模块的特性。,模块的连线:移动鼠标到某一模块的输出端,鼠标的箭头会变成十字形光标,按住鼠标左键移动鼠标到另一模块的输入端,当十字光标出现重影时,释放左键即可。P115,6.2 SIMULINK的基本模块,在SIMULINK中包含: 连续系统模块库(Continuous)、 离散系统模块库(Discrete)、 数学运算模块库(Math)、 非线性模块库(Nonlinear)、 信号与系统模块库(Signal&System)、 接收(输出)模块库(Sinks)、 输入源模块库(S

43、ources)等。 每一个模块又包含很多子模块。,连续系统模块Continuous功能:,模块名,功能简介,Integrator 积分环节 Derivative 微分环节 State-Space 状态方程 Transfer Fcn 传递函数 Zero-Pole 零极点模型 Memory 把前一步的输入作为输出 Transport Delay 把输入信号按给定的时间做延迟 Variable Transport Delay 按第二个输入指定的时间把第一个输入做延迟,离散系统模块Discrete功能:,模块名,功能简介,Zero-Order Hold 零阶保持器 Unite Delay 采样保持,延

44、迟一个周期 Discrete-Time Integrator 离散时间积分 Discrete State-Space 离散状态方程 Discrete Filter 离散滤波器(IIR、FIR) Discrete Transfer Fcn 离散传递函数 Discrete Zero-Pole 离散零极点模型 First-Order Hold 一阶保持器,表6-4非线性模块库,Rate Limiter 限制输入变化率的变化大小Saturation 让输出超过某一值时能够饱和Quantizer 把输入转化成阶梯状的量化输出Backlash 由deadband设定,输出依据输入的改变而改变Dead Zo

45、ne 死区特性Relay 限制输出值在某一范围内变化Switch 根据临界值自动判断选择所接受的输入端Manual Switch 人工判断选择所接受的输入端Mutiport Swith 在多输入中选一个输出Coulumb & Viscous Friction 当输出值达到一定值时,输出才会根据输入而改变,表6-6接收模块sink功能:,模块名,功能简介,Scope 示波器 XY Graph 两个信号的关系图,用MATLAB图形显示 Display 实时数值显示 To File 保存到文件 To Workspace 输出到当前工作空间的变量 Stop Simulation 输入不为零时停止仿真,

46、用示波器模块来观察输出 Sinks库 Scope 示波器窗口 X Y graph 绘制二维的图形 Display 将数据以数字的形式显示出来 使用Workspace模块 将信号输入至Workspace模块,该模块将数据输出到Matlab的命令窗口中,以simout变量名保存下来,也可以改变变量名用另外的名字保存 时间数据用sources中的clock模块 使用返回值将输出返回Matlab命令窗口中 out1,表6-7输入源模块source功能:,模块名,功能简介,Constant 常数 Signal Generator 信号发生器 Step 阶跃信号 Ramp 线性增加或减少的信号 Sine Wave 正弦波 Repeating Sequence 重复的线性信号,类似锯齿形 Discrete Pulse Generator 离散脉冲发生器,和采样时间有关 Pulse Generator 脉冲发生器,和采样时间无关 Chirp Signal 频率不断变化的正弦信号 Clock 输出当前的仿真时间,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 大学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报