2022年MatLab与控制系统仿真教学内容 .pdf

上传人:Che****ry 文档编号:27265141 上传时间:2022-07-23 格式:PDF 页数:20 大小:165.70KB
返回 下载 相关 举报
2022年MatLab与控制系统仿真教学内容 .pdf_第1页
第1页 / 共20页
2022年MatLab与控制系统仿真教学内容 .pdf_第2页
第2页 / 共20页
点击查看更多>>
资源描述

《2022年MatLab与控制系统仿真教学内容 .pdf》由会员分享,可在线阅读,更多相关《2022年MatLab与控制系统仿真教学内容 .pdf(20页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、资料收集于网络,如有侵权请联系网站删除word 可编辑第 4 章MatLab 的程序设计MatLab 是一个工具、开发平台,同时它也是一门编程语言。与在命令窗口用交互的方式工作相比,通过程序运行来解决实际问题,其效率更高,因此,凡是复杂的、大型的应用都是以程序的方式执行。相对其它高级语言,MatLab 更简单、编程的效率更高、调试过程也更容易。MatLab 中的程序文件是以m 为后缀,所以通常将MatLab 的程序文件称为m 文件。MatLab 提供了两种形式的m 文件,即:脚本( Script)式 m 文件(就简称 m 文件) 、函数型 m 文件。在 MatLab 中已经嵌入了一个功能强大的

2、集成开发环境m文件编辑器,用它来进行程序的编辑、修改、调试、运行等,完成应用开发工作。4.1 MatLab 程序设计基础通过前面内容的学习,大家对MatLab 已经有了一个初步的认识和印象,到目前为止,我们都是在“命令”窗口中,以交互的方式运行,完成我们的工作。实际上简单的 m 文件,就是一个批处理程序,它是若干条命令的集合。例:4.1.1 M 文件规则和属性函数 M 文件必须遵循一些特定的规则。除此之外,它们有许多的重要属性,这其中包括:1. 函数名和文件名必须相同 。例如,函数 fliplr 存储在名为 fliplr.m 文件中。2. MATLAB 头一次执行一函数个M 文件时,它打开相应

3、的文本文件并将命令编辑成存储器的内部表示,以加速执行以后所有的调用。如果函数包含了对其它函数 M 文件的引用, 它们也同样被编译到存储器。普通的脚本 M 文件不被编译, 即使它们是从函数 M 文件内调用;打开脚本M 文件,调用一次就逐行进行注释。3. 在函数 M 文件中,到第一个非注释行为止的注释行是帮助文本。当需要帮助时,返回该文本。例如,? help fliplr 返回上述前八行注释。4. 第一行帮助行,名为H1 行,是由 lookfor 命令搜索的行。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - -

4、 - - - - 第 1 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑5. 函数可以有零个或更多个输入参量。函数可以有零个或更多个输出参量。6. 函数可以按少于函数M 文件中所规定的输入和输出变量进行调用,但不能用多于函数 M 文件中所规定的输入和输出变量数目。如果输入和输出变量数目多于函数 M 文件中 function 语句一开始所规定的数目,则调用时自动返回一个错误。相对于函数 m 文件,脚本式 m 文件就简单多了,它没有严格的格式要求,只要将有关的命令或函数一一敲入即可,但是还是有几个问题需要注意:1. m 文件的名称不得与

5、MatLab 的内部函数同名、 第一个字符不得为数字 (这点与变量的命名规则相同) ;2. 最好在文件的头部加上 注释,对该 m 文件的作用、功能作一个简要说明,而在一些重要命令行后也加上注释行,以方便使用者阅读、查找;3. 要特别注意 m 文件的保存路径或位置,如果不是保存在MatLab 默认的路径下,可以使用 addpath 函数来设置、 添加路径,否则, m 文件不能运行。脚本式 m 文件与函数 m 文件还有一个重要区别: 脚本式 m 文件中的变量均为全局变量 ,而函数 m 文件中的变量则是 局部变量 。这可以从这两种程序文件运行后在 Workspace中留下痕迹看出。当然, 在函数 m

6、 文件中也可以专门将某些变量定义为全局变量(关键字是: global) 。不过,在使用全局变量(函数m 文件中)时应特别注意:.全局变量需要函数体的变量赋值语句之前定义或说明;.全局变量名最好是大写 ,而且要尽量长,能反映它本身的含义;.实际编程时,全局变量也要尽可能少用,因为一旦它在一个地方被改变,那么其它包括该变量的函数中都得改变,有时可能会出现意想不到情况。4.1.2 M 文件的组成函数 M 文件实例:function f=fact(n)%函数定义行%Compute a factorial value %H1 行名师资料总结 - - -精品资料欢迎下载 - - - - - - - - -

7、 - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑%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 命

8、令调出此行);. 帮助文本:这是比 H1 行更详细的帮助信息, 使用 help 命令时与 H1 行一起显示;. 函数体:这是函数M 文件的主要部分,程序的功能都在此部分实现;. 注释:对程序行的意义进行解释(与H1 行一样都是用 %开头) 。有的函数 M 文件还包含 return 语句!4.1.3 M 文件编辑器介绍1. m文件编辑器的启动在命令窗口中敲入: edit 点击工具栏中的新建图标从菜单 file/new/M-file中启动2. m文件编辑器的界面菜单栏工具栏编辑窗口3. m 文件的运行在 m 文件编辑器内在命令窗口中运行在命令窗口直接输入m文件名,回车即可,但函数m文件通常还必须带

9、参数才能运行,也可以利用feval函数来运行函数 m文件,其格式如下:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑feval(functionname, arg1, arg2, .) 对于脚本式 m文件,还可以用 run 函数在命令窗口中运行存在的m文件。格式:run m文件名(不必带文件的后缀)4.1.4 对函数 M 文件的调用凡是以函数 m文件形式保存的程序文件,均

10、可以被其它函数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 语言中的类似,它也包含一个或多个域(数据容器),每个域可以包含任何类型的数据(这一点与单元数组又相似),且相互独立。下面通过实例来说明如何建立并访问结构。名师资料总结 - - -精品资料欢迎下

11、载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑用结构建立学生的数据记录。. 例 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; 从这个例子可以看出

12、结构建立的方法:直接建立结构和各个域,同时给各域赋值(也可以不赋值),结构和域之间用点“. ”连接。. 用关键字“ struct”创建,格式如下:s = struct(field1, values1, field2, values2, .) 例 2:用关键字“ struct”创建。student=struct(num,20070135,name,zhangsan,weight,1.68,height,75,test,98 87 65 95 78) . 结构的操作 结构域的访问 结构域的添加、修改直接添加或用函数 setfield()添加;直接修改或用函数 setfield()修改。 结构域的删

13、除用函数rmfield()删除某个域。格式: s=rmfield(s,fieldname)4.2 MatLab 程序的控制程序的流程控制是高级语言中必不可少、也是非常重要的部分,要编写出高质量的程序,实现对复杂系统的控制、仿真,这一点也是必须掌握的。MatLab 提供了多种控制结构,包括:顺序结构、选择(分支)结构以及循环结构,每种结构都有各自的控制机制,利用它们及其它们的组合可以实行功能强大的、复杂的应用。4.2.1顺序结构名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共

14、 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑顺序结构最简单,它是一种最基础的程序结构,也是最遵循逻辑思路的程序代码结构,批处理文件就是典型的顺序语句文件。这种语句不需要任何特殊的流控制,按照语句的排列顺序,一条一条的执行,直至结束。例:4.2.2选择(或分支)结构如果程序中需要根据一定条件来执行不同的操作时,可以使用条件语句来构成选择或分支结构。 在 MatLab 中可利用 if 语句来实现这种结构。 if 语句的结构通常有以下三种形式:1. 单分支结构:这种分支结构最简单,格式为:if 表达式语句end 它只有一个判断语句,当表达式为

15、真时,就执行语句,否则就不执行。例:function f=ifone(x) if x=0 fprintf(%f is a Positive number.n,x); end 2. 双分支结构:此时,采用 if-else-end 结构,语法是:if 表达式语句 1 else 语句 2 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑end 即:表达式为真,系统执行语句1,否则

16、将转入语句2 执行。例:将上面的例子扩充function f=ifone(x) if x=0 fprintf(%f is a positive number.n,x); else fprintf(%f is a negative number.n,x); end 3. 多分支结构:仍采用 if-else-end结构,但语法上略有不同,形式如下:if 表达式 1 语句 1 %表达式 1 为真执行语句 1 elseif 表达式 2 语句 2 %表达式 2 为真执行语句 2 elseif表达式 3 语句 3 %表达式 3 为真执行语句 3 else 语句 n %所有表达式为假执行语句n end 例:

17、编写一个成绩打印程序。function f=chengji(x) if x=90 fprintf(%d 分,成绩为优 n,x) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑elseif x=80 fprintf(%d 分,成绩为良 n,x) elseif x=70 fprintf(%d 分,成绩为中 n,x) elseif x=60 fprintf(%d 分,成绩为及格

18、 n,x) else fprintf(%d 分,成绩为不及格 n,x) end 4.2.3开关语句( Switch分支结构)开关语句实际上也是分支结构的一种,是一种多选择的分支语句,作用与上面介绍的多分支结构相似,这是MatLab6.0 以上版本新增加的功能。该结构的一般调用格式如下:Switch expression Case value1 Statements Case value2 Statements . Otherwise Statements end 例:采用 switch 结构的一个简单应用。%提示用户输入数据input_num=input(Enter a number:); 名

19、师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑%根据情况判断数值大小,显示数据信息switch input_num case -1 disp(negative one); case 0 disp(zero); case 1 disp(positive one); otherwise disp(other value); %如果不是上面数据,显示“其它数据”end 4.2.4

20、 try-catch 结构try-catch 结构(或模块)为用户提供了一种错误捕捉机制,利用该模块,一旦MatLab 的编译系统发现错误,就将其捕捉,用户可以控制MatLab 去对出现的错误进行相应处理。它的调用格式如下:try 语句 1 catch 语句 2 end 一般来说,语句1 中的所有命令都要执行,如果在执行语句1 时,没有出现错误,那么在执行语句1 之后,就直接跳到end 后;但是,如果在执行语句1 时,出现了错误,程序立刻转到catch模块中,去执行语句2,并可通过调用 lasterr 函数查询出错的原因。例:见教材中 P70例 4-4。名师资料总结 - - -精品资料欢迎下载

21、 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑4.2.5循环结构很多程序都可能会出现一些反复运行的部分,前面介绍的这些结构就很难实现了。同其它高级语言一样,MatLab 也提供了循环语句。在循环语句中,被重复执行的部分称为循环体, 控制循环语句是否继续的称为循环条件。在 MatLab 中有两种循环结构,即所谓的for 循环和 while 循环。1. for 循环for 循环语句有如下特点: 它的循环判断条件通常

22、是对循环次数的判断,即它的循环次数是预先设定好的; for 循环语句可以嵌套使用。不仅可以对for 本身嵌套,还可以对其它的结构形式进行嵌套使用。for 循环的语法:for i=表达式语句 1,语句 n;end 例:求 n 个数的平方。function x=pfh(n) for i=1:n x(i)=i2; end 2. while 循环与 for 循环不同, while 循环的判断控制可以是逻辑判断语句,它的循环次数可以是一个不定数,因此比for 循环有更广泛的用途。while 循环的格式:while 表达式名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - -

23、 - - - - - - - 名师精心整理 - - - - - - - 第 10 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑语句end 在这个循环中只要表达式值不为false,程序就一直运行下去,语句被反复执行。例 1:求几个数的阶乘。function m=jiech(x) m=1;n=1; %给 m 和 n 赋初值while n=x m=m*n; n=n+1; %n 自增 1 end 例 2:Fibonacci 数组的元素满足 Fibonacci 规则:12kkkaaa,),2, 1(k;且121aa。现要求该数组中第一个大于

24、10000的元素。a(1)=1;a(2)=1;i=2; while a(i) 1/(1+sin(y)2) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 18 页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑compose(f,g,t) - 1/(1+sin(t)2) compose(h,g,x,z) - sin(z)t compose(h,g,t,z) - xsin(z) compose(h,p,x,y,z) - exp(

25、-z/u)t compose(h,p,t,u,z) - xexp(-y/z)4.4.3 符号微积分在数学分析中,微积分是一个非常重要的内容,整个高等数学就是建立在微积分基础之上的。而对于工程技术人员来说,微积分又是一个重要的数学工具。1. 符号极限( Limit 函数)Limit 函数的格式:limit(F,x,a) 例:syms x a; v = (1 + a/x)x, exp(-x); limit(v,x,inf,left) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 19

26、页,共 20 页 - - - - - - - - - 资料收集于网络,如有侵权请联系网站删除word 可编辑2. 符号微分和求导 函数 diff 及 polyder 函数 jacobian(求多元函数导数)3. 符号积分( Int 函数)int 函数的格式:R = int(S) R = int(S,v) R = int(S,a,b) R = int(S,v,a,b) 例:int(-2*x/(1+x2)2)名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 20 页,共 20 页 - - - - - - - - -

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

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁