当前位置:文档之家› Matlab的常用函数及指令简单介绍

Matlab的常用函数及指令简单介绍

摘要本文从计算机语言、数学建模、网络控制系统仿真与结构化思维等方面阐述了半年来学习Matlab的心得体会与感想。

由于个人知识有限在部分细节问题的理解上可能存有偏差还请老师批评指正不吝赐教。

关键词Matlab语言数学建模软件网络控制系统仿真
结构化思维 - 1 -
学习Matlab快半个学期了虽然还有很多问题不是很清楚但通过实践学习我对于Matlab总算有个整体的理解而且每次上机操作都会有一定的收获和感想下面就谈谈我个人对于Matlab的一些看法。

Matlab语言
Matlab和其它语言不一样我这个学期学习的是C语言另外对于Action Script、HTML、php语言也接触过一些。

C语言主要是面向过程的它的灵活性比较强可根据自己的意图编辑程序但所耗费的时间和精力比较大。

例如定义变量就分为int、float、char等类型十分麻烦而Action Script与php就显得比较随意不必纠结于哪一种类型的变量比如定义Var number3Var playtrue即可。

相对于前两者而言Matlab则显得更为灵活与快捷它是一门解释性语言能自动将高级语言翻译成机器语言。

比如求tf2当t012345时tf的值。

如果使用C语言则需要定义变量调用math函数还要应用for循环、输出函数而Matlab则不然只需输入t0:5f2.t然后回车即可。

另外Matlab还配有许多常用公式操作起来十分方便例如想求出223tftftytyty在10y10y时的零输入响应应用dsolve 函数只需输入xdsolveD2y3Dy2y0y01Dy01 回车即得结果x3exp-t-2exp-2t。

或许也正是Matlab语言简洁、优化的特点才使得它在学术界被广泛应用吧。

数学建模
对于数学建模而言Matlab是一款相当不错的建模辅助工具因为Matlab中有统计函数线性分析函数插值函数非线性分析函数等等这些数模必备的函数而且Matlab强大的绘图功能可使很多数学演算过程变得可视化。

这些对于分析问题都很有帮助。

虽然我们学习的Matlab是电子信息工程方向的但在下个学期班里的大部分同学都要参加数模竞赛
所以掌握好Matlab的各种函数模式就显得尤为重要了。

- 2 -
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模块生成节点然后对各个程序进行编辑再建立对 - 3 - 应的M-file文件便可达到预期效果用不着自设模块那么麻烦了。

另外网络控制系统存在时延、丢包、乱序等问题这些问题会使系统的稳定性变差严重时甚至使系统失稳如果没有
一个精确的波形模拟那么所造成的现实经济损失是无法估量的。

而TrueTime的每个模块都内置了各式各样的参数通过改变参数可在屏幕上直观形象地看到信号的传输情况进而不断改错完善系统。

例如在Network模块的网络参数中有一个Data ratebit/s即网络传输速率其含义为每秒钟传输的二进制数通过改变参数再运行的结果可知在其它参数不变的情况下网速越低丢包越严重。

通过有线网络与无线网络的对比学习我对无线网络的控制系统也有了一定的了解。

其大部分参数设置与有线网络控制系统是相同的所不同的是无线网络有其独特的功率问题。

譬如transmit power发射功率分别将其参数设置为20、40从运行结果可以看到如果发射功率过大则会造成信号的资源浪费。

另外无线网络在各个节点内的反馈环上设置了电池模块可通过积分模块来实现功耗变化情况的模拟。

其实当你了解某一参数的具体作用之后在未运行之前往往就能猜出大概结果了。

例如Receiver signal threshold接受信号功率门限参数它的作用是节省功率消耗将个别闲置的内核功率降至接近于零的状态那么将它的参数由-48变为-10则信号必失真因为功率门限一旦提高就会将一些非闲置即有用的内核功率也降为零的状态必然导致信号失真。

图像处理模块再谈谈Simulink图像处理模块其实视频图像处理模块库中的大部分功能都可以应用其他软件来实现。

比如分析和增强模块库我们可以在PS中将两个相同的图层叠加然后设置混合模式为柔光即可实现相同效果。

但所不同的是Matlab是以矩阵运算为基础的软件其强大的数学功能保证了它的精准性。

例如在P244例5-9中应用了opening模块库即形态学操作开启电脑自动将颜色与背景色接近的硬币的白色目标区合为一块从而得出正确的运算结果。

- 4 - Help 功能通过对Matlab的学习我的自学能力也有了一定的提高毕竟学习任何一款软件都要多做多练习遇到不会的内容要多查些资料。

Matlab软件中有Help功能每当遇到不懂的函数我就向Help请教。

有一次遇到一个名为residuez的函数Help之后通过解释可知该函数的作用是将Fz展开成部分分式之和的形式于是我按照调用格式进行编辑得到了正确的结果。

结构化思维学习Simulink之后我感觉它不仅是一个仿真组件它教给我的更是一种思维一种建立模型分析问题的结构化思维方式。

任何事物从不同的角度来看都可以想成是一个从头至尾、环环相扣的系统我们想要了解整个系统的功能就必须以每一块结构为思维对象层层分析最后得出客观的规律的正确结果。

譬如P98例2-12它表述的是一个系统在激励ut作用下的响应。

而分析的方式不同所建立的模型肯定也不一样。

若将微分方程式转化为xxtux4.02.02.0则仿真结果为图2.33所示若两边同
时求拉普拉斯变换得Gs则仿真结果如图2.25所示另外还可通过计算状态方程进行仿真。

但无论是哪一种模型的分析我们都可以通过改变某一个小模块的参数来观察整个系统的变化也可以从整体思路出发去设计每一个模块的内容这就是Matlab所体现的结构化思维。

相关主题