欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    MatLab与控制系统仿真重点编程Word下载.docx

    • 资源ID:5999179       资源大小:29.70KB        全文页数:20页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    MatLab与控制系统仿真重点编程Word下载.docx

    1、 %Compute a factorial value %H1行 %FACT (N)return the factorial of N, %usually denoted by N %帮助文本 %Put simply,FACT (N)is PROD (1:N ) %注释 f=prod (1:N ); %函数体一个完整的函数M文件通常包括:. 函数定义行:定义函数名以及输入、输出变量的数目和顺序;. H1行:对该函数进行概括性的描述(可用help和Lookfor命令调出此行);. 帮助文本:这是比H1行更详细的帮助信息,使用help命令时与H1行一起显示;. 函数体:这是函数M文件的主要部分,程

    2、序的功能都在此部分实现;. 注释:对程序行的意义进行解释(与H1行一样都是用%开头)。有的函数M文件还包含return语句!4.1.3 M文件编辑器介绍1. m文件编辑器的启动在命令窗口中敲入:edit点击工具栏中的新建图标从菜单file/new/M-file中启动2. m文件编辑器的界面菜单栏工具栏编辑窗口3. m文件的运行在m文件编辑器内在命令窗口中运行 在命令窗口直接输入m文件名,回车即可,但函数m文件通常还必须带参数才能运行,也可以利用feval函数来运行函数m文件,其格式如下:feval(functionname, arg1, arg2, .)对于脚本式m文件,还可以用run函数在命

    3、令窗口中运行存在的m文件。格式:run m文件名 (不必带文件的后缀)4.1.4 对函数M文件的调用凡是以函数m文件形式保存的程序文件,均可以被其它函数m文件或脚本m文件所调用。先定义一个函数m文件:%计算阶乘function y=jiech(n)y=1;for i=1:n y=y*i;end编写m文件实现对上述函数m文件的调用:function z=dy(n)z=log(jiech(n);4.1.5数据类型与结构MatLab的数据类型前面已经介绍,下面是它们之间的关系图:MatLab中结构(教材中称构架)的概念和C语言中的类似,它也包含一个或多个域(数据容器),每个域可以包含任何类型的数据(

    4、这一点与单元数组又相似),且相互独立。下面通过实例来说明如何建立并访问结构。用结构建立学生的数据记录。1. 例1:在命令窗口直接创建(或用m文件编辑器)创建。student.num=20070135;student.name=李四;student.age=20;student.weight=67;student.height=1.68;student.test=90 85 76 63 88 54 79; 从这个例子可以看出结构建立的方法:直接建立结构和各个域,同时给各域赋值(也可以不赋值),结构和域之间用点“.”连接。2. 用关键字“struct”创建,格式如下:s = struct(fiel

    5、d1, values1, field2, values2, .)例2:用关键字“struct”创建。student=struct(num,20070135,name,zhangsanweight,1.68,height,75,test,98 87 65 95 78)3. 结构的操作 结构域的访问 结构域的添加、修改直接添加或用函数setfield()添加;直接修改或用函数setfield()修改。 结构域的删除 用函数rmfield()删除某个域。s=rmfield(s,fieldname)4.2 MatLab程序的控制程序的流程控制是高级语言中必不可少、也是非常重要的部分,要编写出高质量的程

    6、序,实现对复杂系统的控制、仿真,这一点也是必须掌握的。MatLab提供了多种控制结构,包括:顺序结构、选择(分支)结构以及循环结构,每种结构都有各自的控制机制,利用它们及其它们的组合可以实行功能强大的、复杂的应用。4.2.1顺序结构顺序结构最简单,它是一种最基础的程序结构,也是最遵循逻辑思路的程序代码结构,批处理文件就是典型的顺序语句文件。这种语句不需要任何特殊的流控制,按照语句的排列顺序,一条一条的执行,直至结束。4.2.2选择(或分支)结构如果程序中需要根据一定条件来执行不同的操作时,可以使用条件语句来构成选择或分支结构。在MatLab中可利用if语句来实现这种结构。if语句的结构通常有以

    7、下三种形式:1. 单分支结构:这种分支结构最简单,格式为:if 表达式 语句它只有一个判断语句,当表达式为真时,就执行语句,否则就不执行。function f=ifone(x)if x=0 fprintf(%f is a Positive number.n,x);2. 双分支结构:此时,采用if-else-end结构,语法是: if 表达式 语句1 else 语句2 end 即:表达式为真,系统执行语句1,否则将转入语句2执行。将上面的例子扩充%f is a positive number.nelse%f is a negative number.n3. 多分支结构:仍采用if-else-en

    8、d结构,但语法上略有不同,形式如下:if 表达式1 语句1 %表达式1为真执行语句1 elseif 表达式2 语句2 %表达式2为真执行语句2 elseif 表达式3 语句3 %表达式3为真执行语句3 语句n %所有表达式为假执行语句n 编写一个成绩打印程序。function f=chengji(x)=90%d 分,成绩为优n,x)elseif x=80%d 分,成绩为良n=70%d 分,成绩为中n=60%d 分,成绩为及格n%d 分,成绩为不及格n4.2.3开关语句(Switch分支结构)开关语句实际上也是分支结构的一种,是一种多选择的分支语句,作用与上面介绍的多分支结构相似,这是MatLa

    9、b6.0以上版本新增加的功能。该结构的一般调用格式如下:Switch expression Case value1 Statements Case value2 Statements . Otherwise 采用switch结构的一个简单应用。%提示用户输入数据input_num=input(Enter a number:);%根据情况判断数值大小,显示数据信息switch input_num case -1 disp(negative one case 0zero case 1positive one otherwiseother value %如果不是上面数据,显示“其它数据”4.2.4

    10、try-catch 结构try-catch结构(或模块)为用户提供了一种错误捕捉机制,利用该模块,一旦MatLab的编译系统发现错误,就将其捕捉,用户可以控制MatLab去对出现的错误进行相应处理。它的调用格式如下:trycatch一般来说,语句1中的所有命令都要执行,如果在执行语句1时,没有出现错误,那么在执行语句1之后,就直接跳到end后;但是,如果在执行语句1时,出现了错误,程序立刻转到catch模块中,去执行语句2,并可通过调用lasterr函数查询出错的原因。见教材中P70例4-4。4.2.5循环结构很多程序都可能会出现一些反复运行的部分,前面介绍的这些结构就很难实现了。同其它高级语

    11、言一样,MatLab也提供了循环语句。在循环语句中,被重复执行的部分称为循环体,控制循环语句是否继续的称为循环条件。在MatLab中有两种循环结构,即所谓的for循环和while循环。1. for循环 for循环语句有如下特点: 它的循环判断条件通常是对循环次数的判断,即它的循环次数是预先设定好的; for循环语句可以嵌套使用。不仅可以对for本身嵌套,还可以对其它的结构形式进行嵌套使用。for循环的语法: for i=表达式 语句1,语句n; end求n个数的平方。function x=pfh(n) x(i)=i2;2. while循环与for循环不同,while循环的判断控制可以是逻辑判断

    12、语句,它的循环次数可以是一个不定数,因此比for循环有更广泛的用途。while循环的格式: while 表达式 语句 end在这个循环中只要表达式值不为false,程序就一直运行下去,语句被反复执行。 例1:求几个数的阶乘。function m=jiech(x)m=1;n=1; %给m和n赋初值while n=x m=m*n; n=n+1; %n自增1Fibonacci数组的元素满足Fibonacci 规则: ,;且。现要求该数组中第一个大于10000的元素。a(1)=1;a(2)=1;i=2;while a(i)=10000 a(i+1)=a(i-1)+a(i); %当现有元素仍小于1000

    13、0时,继续执行。 i=i+1;end;i,a(i),例3:综合实例,打印九九乘法表(包含for循环的嵌套及if结构)。clear allclc9 for j=1:i%d*%d=%d, ,j,i,i*j); if j=in 思考题:如果希望打印任意个数的乘法表怎么实现?4.2.6输出格式的设置在上面的程序中已经用到了输出语句fprintf和disp,对于这些函数的使用,一个最重要的内容就是对它们输出格式的设置,MatLab提供了多种可选的输出格式,方便了用户的使用。下面表4-1就是一些常用输出格式的名称及其作用:输出格式说 明%c输出单个字符(Single character)%d带符号十进制数

    14、Decimal notation (signed)%f定点数(Fixed-point notation)%e指数记数制Exponential notation (using a lowercase e as in 3.1415e+00)%E指数记数制Exponential notation (using an uppercase E as in 3.1415E+00)%s字符串(String of characters)%u无符号十进制数Decimal notation (unsigned)%i与%d相同Decimal notation (signed)表4-1 输出格式说明4.3 MatLa

    15、b的人机交互命令在MatLab中,还提供了一些特殊的程序控制语句,利用这些语句用可以实现以交互的方式输入/输出数据、提前终止循环、跳出子程序及显示M文件的执行过程等操作,方便用户与计算机之间及时地进行交互。1.终止命令break和return这两个命令在使用上的区别: break是终止循环(专门针对for和while循环),而return是终止程序。break必须在循环语句内,return可在任何位置。以只读的方式打开一个m文件(不运行)。fid = fopen(fft.mr %以只读的方式打开fft.m文件s = %定义一个空字符串数组while feof(fid) line = fgetl

    16、(fid); if isempty(line), break, end s = strvcat(s,line); %将空格与字符串进行垂直连接disp(s)return函数的使用就不在此举例了。2.继续命令continue for或while循环中,一旦遇到continue语句时,程序立即跳到循环的end语句,即跳过在continue与end之间的所有命令。程序行数的统计。magic.mcount = 0;while feof(fid) if isempty(line) | strncmp(line,%,1) continue count = count + 1;disp(sprintf(%d

    17、 lines,count);3.等待用户反映命令pause 作用:程序运行到此暂停,等待用户的响应。 格式: pause 或 pause(n),n暂停的时间。在九九乘法表程序的第一个fprintf语句后加上pause,看执行的效果。4.echo命令 控制m文件中的命令在窗口是否显示。通常m文件在执行过程中并不会在命令窗口中显示。在m文件中加入echo或echo on。可以让程序运行到哪里就显示在哪里。5.请求用户输入命令input 这是人机交互程序中一个非常重要的命令,利用它,程序将以交互的方式接收用户的输入数据或字符。将九九乘法表程序修改如下:function jjb(m)n=input(请

    18、输入n的值:fprintf(%d*%d的乘法表是:,n,n);另外,keyboard命令也可以达到相似的功能。6.输出命令disp、fprintffprintf格式化数据输出命令,但它的功能有很多。如将文本或数据输出到设备(屏幕)、串口或子系统中。disp显示文本或矩阵,这里的文本包括数学符号、希腊字母等。disp( Corn Oats Haydisp(rand(5,3)关于fprintf输出格式见前面的5.2.6输出格式的设置。4.4 MatLab的符号计算MatLab最初将其功能重点放在数值运算、矩阵运算等方面,因此,它的符号计算功能相对薄弱,但是,自从MatLab5.3开始,它这方面已经

    19、在有了很大的改进、提高和加强。由于采用了全新的数据结构、面向对象编程及重载技术,使得MatLab的符号计算与数值计算在形式和风格上浑然统一,7.0以后的版本,符号计算功能更加强大,如提供了Symbolic Math Toolbax,这使得MatLab的符号计算的功能可以与符号计算的专用语言Maple、Mathematic等相媲美。MatLab符号运算方法:1. MatLab本身已开发了许多符号运算函数,如:符号表达式、符号矩阵、符号微积分、符号线形方程等;2. MatLab开发了与其它符号计算语言的接口函数,如:maple.m和map.m使之可以与Maple进行相互调用,博采众长,这样,Mat

    20、Lab符号计算的功能就进一步加强。4.4.1符号变量的生成和使用1. 符号变量、符号表达式和符号方程的生成在进行符号计算之前,首先要生成符号表达式等。 用sym函数定义符号变量和符号表达式格式见教材P81。sym有两种用法:一是用它定义一个符号变量,二是用它对整个表达式进行定义。例1:符号变量的定义。a=sym(2)/sym(5)+sym(1)/sym(3);比较b=sqrt(2)和b=sqrt(sym(2)两个式子的输出结果。符号表达式的定义。a=sym(a);b=sym(b);c=sym(c);x=sym(x); f=a*x2+b*x+c或者:f=sym(a*x2+b*x+c 用syms函

    21、数定义符号变量和符号表达式从例2可以看出:用sym定义符号变量还是比较麻烦,它每次只能定义一个符号变量,像上面有多个变量需要定义的话,不方便。Syms则方便多了。其格式为:syms var1 var2 var3 syms x y zf=x2+2*y2+3*z2 符号方程式的生成方程与函数的区别在于函数是一个由数字和变量组成的代数式,而方程则是由函数和等号组成的等式,但它们的定义却没有什么差别。equa1=sym(sin(x)+cos(x)=12. 符号变量的基本操作 符号变量的寻找(findsym函数的使用)findsym(equa1) 或 findsym(f) 等。 符号表达式的精度(dig

    22、its、vap函数)digits函数用于显示或设定数值的精度;digits digits(100)vap函数进行可控精度运算,与digits也有些相似。vpa(pi) vpa(pi,1000) 数值型变量符号型变量的转换形式对于任意数值变量,使用sym函数可以将其转换为4种形式的符号变量,它们是:有理数形式: sym(t)或sym(t,);浮点数形式: sym(t,f指数形式:e数值精度形式:sym(t,d)。4.4.2符号表达式运算MatLab提供的符号运算函数很多,如:四则运算、合并同类项、因式分解、展开、化简等,灵活使用这些函数,可以给我们的工作带来便利。下面举例说明。1. 符号表达式的

    23、四则运算2. 合并符号表达式的同类项(Collect函数)syms x y;R1 = collect(exp(x)+x)*(x+2)R2 = collect(x+y)*(x2+y2+1), y)R3 = collect(x+1)*(y+1),x+y)3. 符号表达式的因式分解(factor函数)和展开(expand函数)factor函数的使用。factor(x3-y3)expand函数的使用。expand(x-2)*(x-4)4. 符号表达式的简化(simple函数或simplify函数)Simple函数的使用。simple(2*cos(x)2-sin(x)2)5. Subs函数的应用使用subs函数可以将符号表达式中的字符型变量用数值型变量替换。subs函数的使用(这里用它来代替polyval函数计算多项式的值)。 syms x;p=1 2 3 5 2 1;P=poly2sym(p); %实际上polyval函


    注意事项

    本文(MatLab与控制系统仿真重点编程Word下载.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开