学习Matlab的总结与感想
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
海南大学本科生 2010—2011学年度第2学期
课程考查论文
学院(中心、所):信息科学技术学院专业:电子信息工程研究方向:班级:
学生姓名:学生证号:
课程名称:Matlab应用基础
论文题目:学习Matlab的总结与感想
任课老师:
(以上由学生填写)
教师评阅:
阅卷教师(签名):年月日
摘要
本文从计算机语言、数学建模、网络控制系统仿真与结构化思维等方面阐述了半年来学习Matlab的心得体会与感想。由于个人知识有限,在部分细节问题的理解上可能存有偏差,还请杜老师批评指正,不吝赐教。
关键词:Matlab语言数学建模软件网络控制系统仿真结构化思维
学习Matlab 快半个学期了,虽然还有很多问题不是很清楚,但通过实践学习,我对于Matlab 总算有个整体的理解,而且每次上机操作,都会有一定的收获和感想,下面,就谈谈我个人对于Matlab 的一些看法。
(Matlab 语言)
Matlab 和其它语言不一样,我这个学期学习的是C 语言,另外,对于Action Script 、HTML 、php 语言也接触过一些。C 语言主要是面向过程的,它的灵活性比较强,可根据自己的意图编辑程序,但所耗费的时间和精力比较大。例如定义变量,就分为int 、float 、char 等类型,十分麻烦,而Action Script 与php 就显得比较随意,不必纠结于哪一种类型的变量,比如,定义Var number=3,Var play=true 即可。相对于前两者而言,Matlab 则显得更为灵活与快捷,它是一门解释性语言,能自动将高级语言翻译成机器语言。比如,求t f 2=,当t=0,1,2,3,4,5时)(t f 的值。如果使用C 语言则需要定义变量,调用math 函数,还要应用for 循环、输出函数,而Matlab 则不然,只需输入t=0:5;f=2.^t ,然后回车即可。
另外,Matlab 还配有许多常用公式,操作起来十分方便,例如,想求出)(2)()(2)(3)(''''t f t f t y t y t y +=++在1)0(=y ,1)0('=y 时的零输入响应,应用dsolve 函数,只需输入x=dsolve('D2y+3*Dy+2*y=0','y(0)=1,Dy(0)=1') 回车,即得结果:x=3*exp(-t)-2*exp(-2*t)。或许,也正是Matlab 语言简洁、优化的特点,才使得它在学术界被广泛应用吧。
(数学建模)
对于数学建模而言,Matlab 是一款相当不错的建模辅助工具,因为 Matlab 中有统计函数,线性分析函数,插值函数,非线性分析函数等等这些数模必备的函数,而且,Matlab 强大的绘图功能可使很多数学演算过程变得可视化。这些对于分析问题都很有帮助。虽然我们学习的Matlab 是电子信息工程方向的,但在下个学期,,班里的大部分同学都要参加数模竞赛,所以掌握好Matlab 的各种函数模式就显得尤为重要了。
(Simulink与信号系统)
Matlab除了具有强大的数学功能外,还具备Simulink仿真功能,这为我们工科的学生提供了许多便利。
没有编辑M-file文件那么麻烦,Simulink很直观、形象,它使整个流程更加清晰明了,方便我们理解。譬如P132的图3.30,上面是一个Discrete Impulse,下面是Gain(-1)和Discrete Impulse,其Delay设置为3。一看便知最终Scope 结果是两个间距为3且方向相反的脉冲波,而且修改起来也十分方便。同时,应用Simulink,也省去了部分编辑M-file文件的工作,使得效率更高,我想这也是Simulink为人们广泛接受的原因之一吧。
提起Simulink,便想到《信号与系统》这门课程,Simulink中有大量该课程的常用函数,所以,学习Matlab,对于我们更加深刻地理解《信号与系统》也是非常有帮助的。比如P140的图3.4.3,求系统的输出响应:先从工作空间取出x和h,分别FFT(傅里叶变换),然后相乘,最后求其傅里叶逆变换,即得结果,这就是《信号与系统》第三章所讲的连续系统的频域分析思想。
(网络控制系统仿真)
Matlab之所以能激发创作者的灵感,原因就在于它能把抽象的数学物理与直观形象的具体实例相结合。
在第七章的学习中,我第一次接触到网络控制系统,了解到它的特性与应用情况。网络控制系统与现实社会有着密不可分的联系,无论在工业、军事还是生活,都有自动化控制的身影,比如P305的图7.4,我们可以假设u为“冷气”,经过DC Servo(被控对象)的作用后变为y“暖气”,再将信号传给Node 4(传感器),传感器将信号传给Network(网络模块),由Node 3(控制器)进行离散PID控制算法处理之后,再将信号传给Node 2(执行器),最后反作用于DC Servo(被控对象),其中,Node 1(干扰节点)能发送干扰网络通信的模拟信号,并在计算机节点中执行干扰的高优先级任务。
TureTime工具箱在网络控制系统仿真中有着重要的应用。首先,传感器、控制器、执行器及干扰节点是网络控制的重要组成部分,有了TrueTime工具箱,
我们只需调用TrueTime Kernel模块生成节点,然后对各个程序进行编辑,再建立对应的M-file文件,便可达到预期效果,用不着自设模块那么麻烦了。另外,网络控制系统存在时延、丢包、乱序等问题,这些问题会使系统的稳定性变差,严重时甚至使系统失稳,如果没有一个精确的波形模拟,那么所造成的现实经济损失是无法估量的。而TrueTime的每个模块都内置了各式各样的参数,通过改变参数可在屏幕上直观形象地看到信号的传输情况,进而不断改错,完善系统。例如在Network模块的网络参数中有一个Data rate(bit/s),即网络传输速率,其含义为每秒钟传输的二进制数,通过改变参数再运行的结果可知:在其它参数不变的情况下,网速越低,丢包越严重。
通过有线网络与无线网络的对比学习,我对无线网络的控制系统也有了一定的了解。其大部分参数设置与有线网络控制系统是相同的,所不同的是无线网络有其独特的功率问题。譬如:transmit power(发射功率),分别将其参数设置为20、40,从运行结果可以看到,如果发射功率过大,则会造成信号的资源浪费。另外,无线网络在各个节点内的反馈环上设置了电池模块,可通过积分模块来实现功耗变化情况的模拟。
其实,当你了解某一参数的具体作用之后,在未运行之前,往往就能猜出大概结果了。例如:Receiver signal threshold(接受信号功率门限)参数,它的作用是节省功率消耗,将个别闲置的内核功率降至接近于零的状态,那么,将它的参数由-48变为-10,则信号必失真,因为功率门限一旦提高,就会将一些非闲置(即有用的)内核功率也降为零的状态,必然导致信号失真。
(图像处理模块)
再谈谈Simulink图像处理模块,其实,视频图像处理模块库中的大部分功能,都可以应用其他软件来实现。比如,分析和增强模块库,我们可以在PS中将两个相同的图层叠加,然后设置混合模式为柔光即可实现相同效果。
但所不同的是,Matlab是以矩阵运算为基础的软件,其强大的数学功能保证了它的精准性。例如在P244例5-9中,应用了opening模块库(即形态学操作开启),电脑自动将颜色与背景色接近的硬币的白色目标区合为一块,从而得出正确的运算结果。