第三章matlab软件的程序设计讲义

上传人:今*** 文档编号:108204720 上传时间:2019-10-22 格式:PPT 页数:29 大小:271KB
返回 下载 相关 举报
第三章matlab软件的程序设计讲义_第1页
第1页 / 共29页
第三章matlab软件的程序设计讲义_第2页
第2页 / 共29页
第三章matlab软件的程序设计讲义_第3页
第3页 / 共29页
第三章matlab软件的程序设计讲义_第4页
第4页 / 共29页
第三章matlab软件的程序设计讲义_第5页
第5页 / 共29页
点击查看更多>>
资源描述

《第三章matlab软件的程序设计讲义》由会员分享,可在线阅读,更多相关《第三章matlab软件的程序设计讲义(29页珍藏版)》请在金锄头文库上搜索。

1、1,第三章 之Matlab软件的程序设计,2,概述,主要介绍如下几个方面的内容: (1)M文件的功能和特点; (2)编制M文件和M函数文件的基本方法和重要步骤; (3)Matlab软件中流程的控制方法、语句格式和应用方法; (4)典型编程实例的分析与讲解; (5)导入与导出数据的基本方法。 经过本章的学习,读者将能够较为容易地使用Matlab语言编程,同时,也为以后各章的深入学习和理解打下基础。,3,3-1 M文件介绍,从形式上讲:Matlab程序文件是一个ASCII码文件(标准的文本文件),扩展名为.m,它包括了Matlab语言代码,因此被称为M文件; 从特征上讲:Matlab与Basic语

2、言一样,都是解释性编程语言; 从功能上讲:M文件大大扩展了Matlab的能力。Mathworks公司推出的一系列工具箱(Toolbox)就是明证。,4,求解三元函数的极值举例,(function f = solve_1 (v) %求解三元函数的极值 x = v(1); y = v(2); z = v(3); %首先定义起始点:x,y,z f = x.2 + 2.5*sin(y) - z2*x2*y2; v = -0.6, -1.2, 0.135; a = fminsearch( solve_1,v) f = a(1).2 + 2.5*sin(a(2) - a(3)2*a(2)2*a(1)2,5

3、,M函数文件的构成与特点,圆周率,函数定义行(Function define line) 函数定义行,它表明该M文件包含一个函数,并且定义函数名、输入和输出参数。本例的第一句为“function f = solve_1 (v)”,就是函数solve_1的定义行,其中function为关键字,f为输出参数,solve_1为函数名,v为输入参数。,6,H1行(H1 Line),顾名思义,H1行就是指帮助信息的第行,在文件中的位置是第二行。这一行应该反映该M文件概括性的信息,是该M文件非常重要的信息,在Matlab命令窗口中键入lookfor(查找)命令语句时,便搜索和显示该行内容。,7,帮助正文(

4、Help Text),从H1行到第一个非注释性之间的注释为帮助正文,对文件查询帮助信息时,将显示H1行和帮助正文。例如:在Matlab命令窗口中键入以下语句: help solve_1 屏幕上显示为: 求解三元函数的极值 首先定义起始点:x,y,z,8,函数体(Function Body),函数体包含了所有执行计算和赋值输出参数的Matlab代码。它可以是调用函数、流程控制、交互式输入输出、计算、赋值、注释等内容。,9,注释(Comments),注释语句以百分号(%)开头,它可以出现在M文件的任何地方,用户也可以在一行代码的后面加注解语句。,10,M函数文件的命名 规则,(1)Matlab对函

5、数名的限制和对变量名的限制相同,Matlab只识别名字的前31个字符; (2)函数名必须以字母开头,其余的字符可以是字母、数字和下划线,有些操作系统可能会限制函数名的长度; (3)函数的文件名一般应该与函数名相同,即由函数名加上后缀“.m”组成; (4)当函数的文件名和函数定义行的函数名不一样时,Matlab将忽略函数名而确认文件名。不过最好将它们统一,以免出错。,11,3-2 Matlab的流程控制语句,在Matlab里面一共有8种流程控制语句: (1)if语句,条件选择结构。其关键字包括if、else和elseif; (2)switch语句,也是条件选择结构。其关键字包括switch、ca

6、se和otherwise; (3)while语句,循环执行组语句,执行次数不确定,而是决定于一些逻辑条件; (4)for语句,循环执行一组语句,执行次数确定; (5)continue语句,直接进行下一次循环,不执行本次循环体余下的语句; (6)break语句,结束循环; (7)try和catch语句,运行过程中遇到错误则改变流程控制; (8)return语句,中断当前函数的运行,返回到上级调用函数。,12,if语句,if语句(if-else-end)用于选择结构,最简单的调用格式为: if expression statements elseif expression statements e

7、lse statements end,13,for循环语句,for语句般用于循环次数确定的循环结构,它的调用格式如下: for variable = expr, statement, ., statement end for index=start:incresement:end statement end,14,while循环语句,while一般用于事先不能确定循环次数的循环结构,它将循环到控制表达式为真时,它的调用格式为: while expression statements end,15,switch-case结构,switch-case结构的使用格式为: switch switch_

8、expr case case_expr, statement, ., statement case case_expr1, case_expr2, case_expr3,. statement, ., statement . otherwise, statement, ., statement end,16,编程提醒,(1)计算过程中,当有些中间变量(或不重要的变量)的值我们不想显示时,就在命令后面加上分号(“;”)来禁止显示; (2)多条命令可以写在同一行,只需要用逗号或分号将它们隔开; (3)有时某些命令或者数据在一行不能全部显示,或者是为了形式上的美观,我们可以在必要的地方加上续行符(“

9、”),当然一个数字或者字符串(变量名或者函数名等)不能断成两行; (4)有时在我们编写的程序中,需要加上某些注释或者文档(一般是便于阅读程序),只需在文档前面加上注释符(“%”)即可。注意一点的是,新的注释行前不能用续行符,只能用注释符%,17,举例1:绘制磁路的电感曲线,18,19,程序,clear;clc;close; mu0=pi*4.e-7; %真空磁导率 Ac=9e-4; %铁心横截面面积 Ag=9e-4; %空气隙横截面面积 lc=0.3; %铁心平均长度 N=500; %铁心线圈匝数 mur=7e4; %铁心相对磁导率 Rc=lc/mur/mu0/Ac; %铁心磁阻 for n=

10、1:101 g(n)=0.01+(n-1)*0.01; Rg(n)=g(n)/mu0/Ag; Rtot=Rg(n)+Rc; L(n)=N2/Rtot; end plot(g,L), ylabel(磁路电感L/H),xlabel(空气隙长度g/cm); title(磁路的电感随着空气隙长度变化的函数曲线);,20,21,举例2绘制电机机械转矩与转速函数曲线,一台三相感应电动机,参数分别为:230V,60Hz,12kW,4极绕线式转子,定子有效电阻R1=0.095,定子漏电抗X1=0.680,转子漏电抗X2=0.672,磁化电抗X2=18.7,在转子有效电阻R2=0.1,0.2,0.5,1.0,1

11、.5和2时,利用Matlab软件绘制电机的机械转矩Tmech作以r/min为单位的转子转速的函数时的变化曲线,22,clear;clc;close; V1=230/sqrt(3); nph=3;poles=4;fe=60;R1=0.095;X1=0.680;X2=0.672;Xm=18.7; omegas=4*pi*fe/poles; ns=120*fe/poles; Z1eq=j*Xm*(R1+j*X1)/(R1+j*(X1+Xm); R1eq=real(Z1eq); X1eq=imag(Z1eq); Vleq=abs(V1*j*Xm/(R1+j*(X1+Xm); %转子电阻的影响R2 fo

12、r m=1:6 if m=1 R2=0.1; elseif m=2,23,R2=0.2; elseif m=3 R2=0.5; elseif m=4 R2=1.0; elseif m=5 R2=1.5; elseif m=6 R2=2; end %转差率s的影响 for n=1:200 s(n)=n/200; rpm(n)=ns*(1-s(n);,24,I2=abs(Vleq/(Z1eq+j*X2+R2/s(n); Tmech(n)=nph*I22*R2/(s(n)*omegas); end %绘制曲线 plot(rpm,Tmech) if m=1 hold end end hold xlab

13、el(转速r/rpm), ylabel(机械转矩Tmech/N); title(电机的机械转矩Tmech作以r/min为单位的转子转速的函数时变化曲线); 在Matlab命令窗口中键入下面的命令语句:,25,26,Matlab工具箱的查看方法,放入一个目录中的为某种目的专门编写的一组Matlab函数就可以组成一个工具箱。从某种意义上说,任何一个Matlab语言的使用者都可以是工具箱的作者。在一个工具箱中,应该有一个名为contents.m的文件,用来描述工具箱中所有Matlab函数的名称和意义。 在该文件中第一行应该给出该工具箱的名称,在最后一行中给出该工具箱的版本与修改时间等信息。然后分类给

14、出该工具箱中各类函数的最基本功能。,27,举例:察看work 目录下的内容,键入以下命令语句: type contents.m或者 type contents 解释: 便会看到, work 目录下的所有用来描述工具箱中所有Matlab函数的名称和意义,28,举例:察看D:Matlab6p5toolboxmatlabelfun 目录下的内容,需要首先进入下面的搜索路径中去,即进入以下路径中,即D:Matlab6p5toolboxmatlabelfun,然后再在Matlab的命令窗口中键入以下命令语句: type contents.m或者 type contents 解释: 便会看到, elfun目录下的所有用来描述工具箱中所有Matlab函数的名称和意义,29,谢谢!,

展开阅读全文
相关资源
相关搜索

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

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号