[例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字,全部文档内容请下载后查看。喜欢就下载吧 ……