手机版

系统建模与仿真-第9次课-第四章(2)

时间:2025-05-11   来源:未知    
字号:

[例4.3] 试用循环语句和条件语句编程实现下述方波信号, 要求:仿真步长取为h=0.1s;建立两个向量t和U; 用MATLAB画出此方波信号。5 4 3 2 1 0 0 2 4 6 8 101

U/V

t/s

程序

h=0.1; for k=1:1:101 t1=h*(k-1); t(k)=t1; if t1>=0 & t1<2 u1=5; elseif t1>=2 & t1<4 u1=0; elseif t1>=4 & t1<6 u1=5; elseif t1>=6 & t1<8 u1=0; else u1=5; end u(k)=u1; end plot(t,u,'r-'); axis([0 11 0 5.5]); xlabel('t / s'); ylabel('U / V');

4.2.6 MATLAB的M文件及M函数的编写与调用MATLAB提供了两种文件格式,其中一种是普通的 ASCII码构成的文件,在这样的文件中只有MATLAB语言 所支持的语句,它类似于DOS下的批处理文件,这种文件 称为M文件,它的执行方式很简单,用户只需在MATLAB 的提示符>>下键入该M文件的文件名,这样MATLAB就会 自动执行该M文件中的各条语句。 MATLAB的另一种,也是最常用的特殊M文件称为 MATLAB函数,这样的函数是由function语句引导的,其 基本格式如下: function 返回变量列表 = 函数名(输入变量列表) 注释说明语句段 函数体语句3

如果返回变量多于一个,则用方括号给括起来。[例4.3] 用户想要建立函数 函数如下

y cos x e,则可编写M3x

function y=exam(x) y=cos(x)-exp(3*x);

其中exam既是该函数名,也是该文件名,即该文件名为 exam.m。[例4.4] 用户想要建立一个函数形式的一阶微分方程组

x1 x2 4 x3 x2 cos x1 x 2 x 2 3

则可编写M函数如下 function dx=exam1(t,x) dx(1)=x(2)-4*x(3); dx(2)=cos(x(1)); dx(3)=-2*x(2); dx=dx';

当MATLAB想要调用函数时,只需在程序中引用该 函数对应的文件名即可。5

上述函数还可以写成 function dx=exam1(t,x) dx=[x(2)-4*x(3); cos(x(1)); -2*x(2)] ;

现在欲求解该微分方程组,则只要给定其初值条件及 仿 真的时间区间,即可调用函数 ode45( ) 。而在函数 ode45( )中再调用函数exam1。[t,X]=ode45(‘exam1’,[0,10],[-2,0.2,0.4]);

X代表三个列向量组成的长方矩阵,这三个列向量分 别为:

x1

x2

x37

如果模型是线性的,则M函数还可进一步简写。 举例 线性系统

x1 x1 2 x2 x2 3x1 x2 x3 x 4 x x 1 3 3

function dx=f(t,x)A=[1,-2,0; -3,1,-1; -4,0,1]; dx=A*x;8

4.3 MATLAB的绘图功能MATLAB允许用户同时打开若干个图形窗口,打开一 个图形窗口可以由命令figure( )函数来完成,每产生一个图 形窗口,伴随着都有一个图形窗口的句柄。当然用户还可 以用close( )函数来关闭该图形窗口。 4.3.1 MATLAB下二维图形的绘制 简单的说,绘制二维图形的函数为plot( )函数,其基本 调用格式为 plot(x,y) [例4.5] 用户想要绘制一个周期内的正弦曲线,则首先应 当用t = 0 : 0.1 : 2*pi 命令来产生自变量t,然后键

入命令 y=sin(t),再调用plot(t,y)。绘制的曲线如下9

1 0.8

0.60.4 0.2 0 -0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 710

图4.1 用MATLAB绘制的正弦曲线

MATLAB还允许在一个窗口同时绘制多条曲线,例 如下面的命令 >>t = 0 : 0.1 : 2*pi; y=[sin(t); cos(t)]; plot(t, y) 可以同时产生一组曲线如下1 0.8 0.6 0.4 0.2

0-0.2 -0.4 -0.6 -0.8 -1 0 1 2 3 4 5 6 711

图4.2 用MATLAB绘制的正弦曲线及余弦曲线

为了区分不同曲线的不同颜色,还可以在plot函数中加入 选项,参见下例。 [例4.6] 在同一张图中绘制曲 线 y1 sin t,y2 cos t, y3 sin t cos t 。则可以先编 写一个M文件如下 t=0:0.1:2*pi; y1=sin(t); y2=cos(t); y3=sin(t).*cos(t); plot(t,y1,'-',t,y2,':',t,y3,'x');或者使用 hold on 命令,该文件还可写为:12

t=0:0.1:2*pi; y1=sin(t); y2=cos(t); y3=sin(t).*cos(t); plot(t,y1,'-’); hold on; plot(t,y2,':’); plot(t,y3,'x'); .*

含义?

设这个文件的名为exa.m,则在MATLAB的工作空间中键 入文件名exa,回车后就可得到曲线如下 13

1 0.8 0.6 0.4 0.2 0 -0.2 -0.4 -0.6 -0.8

-10 1 2 3 4 5 6 7

图4.3 MATLAB用不同线型绘制的三条曲线

在上面的文件中,plot函数中就加入了附加选项:'-'、':' 及'x',他们分别表示实线、虚线和星线。事实上, MATLAB绘图命令的各种主要选项如下表所示: 表4.1 MATLAB绘图命令的各种选项选项 含义

'-' ':' 'r' 'b''*' 'o'

实线 点线 红色 蓝色用星号绘制各数据点 用圆圈绘制各数据点

选 项 '--'

含义

虚线 点划线 绿色 黄色用点号绘制各数据点 用叉号绘制各数据点 15

'-.' 'g' 'y''.' 'x'

在画完图形后,MATLAB还允许用户使用其它手段 对图形进行进一步的修饰。grid xlabel('字符' ) ylabel('字符' ) title('字符' ) legend ('字符' ) 在图形上面加网格线 给x轴加上注释 给y轴加上注释 给图形加上标题 给曲线加上标注16

…… 此处隐藏:686字,全部文档内容请下载后查看。喜欢就下载吧 ……
系统建模与仿真-第9次课-第四章(2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
    ×
    二维码
    × 游客快捷下载通道(下载后可以自由复制和排版)
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    VIP包月下载
    特价:29 元/月 原价:99元
    低至 0.3 元/份 每月下载150
    全站内容免费自由复制
    注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
    × 常见问题(客服时间:周一到周五 9:30-18:00)