第一篇:Matlab学习总结小论文
*****学校*****
MATLAB在自动控制中的应用
M A T L A B 小 论 文
信息工程学院 *******班级****** ****学号**** **姓名** 2016-06-15
M A T L A B 小 论 文 目录
一、什么是MATLAB...........................................................................1
(一)、MATLAB的简介................................................................1
(二)、MATLAB的主要功能........................................................1
(三)MATLAB的工具箱..............................................................2
二、MATLAB在自动控制中的应用....................................................3
(一)利用Matlab进行系统稳定性判定....................................3
(二)利用Matlab进行系统时域分析.......................................4
(三)利用Matlab进行根轨迹绘制...........................................4
三、学习MATLAB的心得体会........................................................5
(一)、对MATLAB学习的一个总结...........................................5
(二)、心得体会..........................................................................5
(三)、总结..................................................................................6
M A T L A B 小 论 文
MATLAB在自动控制中的应用
摘要:随着计算机技术的发展和应用,自动控制理论和技术在宇航、机器人控制等高新技术领域中的应用也愈来愈深入广泛。不仅如此,自动控制技术的应用范围现在已扩展到生物、医学、经济管理和其它许多社会生活领域中,成为现代社会生活中不可缺少的一部分。随着时代进步和人们生活水平的提高,建设高度文明和发达社会的活动中,自动控制理论和技术必将进一步发挥更加重要的作用。
一、什么是MATLAB
(一)、MATLAB的简介
MATLAB(矩阵实验室)是MATrixLABoratory的缩写,是一款由美国TheMathWorks公司出品的商业数学软件。MATLAB是一种用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境。除了矩阵运算、绘制函数/数据图像等常用功能外,MATLAB还可以用来创建用户界面及与调用其它语言(包括C,C++,Java,Python和FORTRAN)编写的程序。尽管MATLAB主要用于数值运算,但利用为数众多的附加工具箱(Toolbox)它也适合不同领域的应用,例如控制系统设计与分析、图像处理、信号处理与通讯、金融建模和分析等。另外还有一个配套软件包Simulink,提供了一个可视化开发环境,常用于系统模拟、动态/嵌入式系统开发等方面。
(二)、MATLAB的主要功能
1、可用于技术计算的高级语言。
M A T L A B 小 论 文
2、可对代码、文件和数据进行管理的开发环境。
3、可以按迭代的方式探查、设计及求解问题的交互式工具。
4、可用于线性代数、统计、傅立叶分析、筛选、优化以及数值积分等的数学函数。
5、可用于可视化数据的二维和三维图形函数。
6、可用于构建自定义的图形用户界面的各种工具。
7、可将基于MATLAB的算法与外部应用程序和语言(如C、C++、Fortran、Java、COM以及MicrosoftExcel)集成的各种函数。
(三)MATLAB的工具箱
MATLAB的一个重要特点是可扩展性。作为Simulink和其它所有MathWorks产品的基础,MATLAB可以通过附加的工具箱(Toolbox)进行功能扩展,每一个工具箱就是实现特定功能的函数的集合。MathWorks提供的工具箱分以下几大类:
1.数学和优化; 2.统计和数据分析; 3.控制系统设计和分析; 4.信号处理和通讯; 5.图像处理; 6.测试和测量; 7.金融建模和分析; 8.应用程序部署; 9.数据库连接和报表; 10.分布式计算。
M A T L A B 小 论 文
这些工具箱大多是用开放式的MATLAB语言写成,用户不但可以查看源代码,还可以可根据自己的需要进行修改以及创建自定义函数。此外,常有用户在MATLABCentral:FileExchange发布自己编写的MATLAB程序或工具箱,供他人自由下载使用。
二、MATLAB在自动控制中的应用
(一)利用Matlab进行系统稳定性判定
稳定性是指控系统在受扰动信号作用,原有平衡状态破坏后,经过自动调节能够重新达到平衡状态的性能。当系统在扰动信号作用下偏离了原有的状态时,若系统能通过自身的调节作用使得偏离差逐渐减小,重新回到平衡状态,则系统是稳定的;若偏离差不断增加,即使扰动消失,系统也不能回到平衡状态,则这种系统是不稳定的,这表明稳定性是表征系统在扰动消失后的一种恢复能力,它是系统的一种固有特性。系统的稳定性又分为两种:一种是大范围的稳定,即初始偏差可以很大,但系统仍然稳定;另一种是小范围稳定,即初始偏差必须在一定限度内系统才稳定,超出了这个限定值则不稳定。对于线性系统,如果小范围内是稳定的,则它的大范围也是稳定的。而非线性系统不存在类似结论。
任何一个自动控制系统正常运行的首要条件是,它必须是稳定的。因此,判别系统的稳定性和使系统处于稳定的工作状态,是自动控制的基本问题之一。稳定性是系统去掉扰动以后,系统自身的一种恢复能力,是系统本身所固有的特性。它仅仅取决系统的结构参数,而与初始条件及输入信号无关。根据分析我们知道,如果系统所有的闭环特征根(闭环极点)都分布在S平面左半部,则系统的暂态分量随时间增加逐渐消失为零,这种系统是稳定的。如果有一个或一个以上的闭环特征根是位于S平面右半部或虚轴上,则系统是不稳定的。
M A T L A B 小 论 文
(二)利用Matlab进行系统时域分析
对控制系统而言,其数学模型由微分方程和差分方程给出,因此可以从给定的初始值开始,通过某种算法逐步求出系统某一时刻的响应,从而丝线对控制系统的分析。此外,通过对系统的时域分析,可以求得系统响应的性能指标。
在经典控制理论中,时域分析法是一种十分重要的分析和设计控制系统的方法,它包括系统稳定性分析、动态性能和稳态性能指标的计算等内容。时域分析法是通过传递函数、拉氏变换及其反拉氏变换求出系统在典型输入下的输出表达式,从而分析系统的时间响应的全部信息。与其他分析法相比较,时域分析法是一种直接分析法,具有直观和准确的优点,尤其适用于一、二阶系统的分析计算。
与控制系统的其他Matlab仿真一样,时域响应Matlab的仿真方法也可以在Matlab函数的指令方式下进行时域仿真,对于线性系统,Matlab控制系统工具箱提供了若干函数完成线性系统的仿真。
(三)利用Matlab进行根轨迹绘制
在系统控制分析中,为了避开直接求解高阶多项式的根时遇到的困难,在实践中提出了一种图解求根法,即根轨迹法。所谓根轨迹法是指当系统的某一个(或几个)参数从-∞到+∞时,闭环特征方程的根在复平面上描绘的一些曲线。应用这些曲线,可以根据某个参数确定相应的特征根。在根轨迹法中,一般取系统的开环放大倍数K作为可变参数。
由于根轨迹是以K为可变参数,根据开环系统的零极点画出来的,因而它能反应出开环系统零极点与闭环系统极点(特征根)之间的关系。利用根轨迹可以分析系统参数和结构已定的系统的时域响应特性,以及参数变化对时域响应特性的影响,而且还可以根据对时域响应特性的要求确定可变参数及调整开环系统零极点的位置,并改变它们的个数,也就是说根
M A T L A B 小 论 文 轨迹法可用于解决线性系统的分析与综合问题。
三、学习MATLAB的心得体会
(一)、对MATLAB学习的一个总结
这学期名为有16周,但实际呢?大家都一样的清楚时间是有多紧凑!所以面对大三的课程,说多也不多,说少也不少;当然说难也不难,说不难也不是想象中的那么简单!不管怎样,一个学期总算是结束了,其他的暂且科目不说,对于MATLAB,我不敢说我花时间去好好学了,人家都说大师和专家都是用时间去堆积起来的,当然也不是说我们都要像大师专家一样花无限多的时间去对付某一门课程,我们做不到,现实也不允许,毕竟“术业有专攻”嘛!但是扪心自问,我们可以也应该花一定时间在每一门课程上,最起码这是我们在这个阶段的任务!
一学期下来,知道了MATLAB的一些使用原理,了解到该怎样去用MATLAB来实现一些自己想要得到的功能,也了解到了MATLAB可以应用于很多领域。但是想要学好学透MATLAB,我们目前花的时间远远还不够,用的功远远还不足!
(二)、心得体会
刚开始接触MATLAB的时候,感觉很头疼,就像当初面对C语言一样莫名其妙,不知所措。后来经过一段时间的去学习,去了解,其实并不然!后来在上机实验中,做的不像其他实验课一样需要做很多,而仅仅是利用MATLAB来对以往一些数学以及其他科目中的内容改用一种方法来解决而已。几次实验下来,好像什么东西都看不到存在,不像C语言之类存在着程序,更不想电路实验需要画图连线什么的去做,只是让我们学会了用另外一种方法来求解“计算题”而已!后来我就觉得其实MATLAB并不是什么超困难的软件,我们大可以把他当成一个不同往常的“大型计算器”,用它来替我们解决一些“高深”的难题!当然,仅仅这
M A T L A B 小 论 文 样也不行,更加应该进行深层次的学习!
(三)、总结
虽然一学期下来,我只是把MATLAB当成一个“大型计算器”来学习,但是我觉得这不失为一种方法或者说是态度和认识!不仅可以按照自己的理解去学习MATLAB,还能在自己的基础上结合老师的教学,从而合二为一的去对待MATLAB!总之,学习MATLAB,我认为不能光靠老师的教学,更要重视每一次的上机操作,此外,必须加之以一定时间和功夫在这上面!不然,要想学好MATLAB很难!
第二篇:Matlab学习总结
学Matlab有感
姓名:王鸿栋 学号:20090286 班级: 03310901 我对于计算机编程接触的比较晚,也没有特别大的兴趣。不过对于Matlab这门课我还是很喜欢的。一是这个语言可以变出程序绘出函数的图形,这就使得这个语言可以被“看见”,感觉比较亲切,不是那么缥缈空虚的东西。二是这个语言却是很“友好”,很人性化,像我刚学习这门语言,还什么都不会编的时候,我随便打出了一句help,界面上就输出了帮助文档。三是这个语言的强大的功能,1.3G不是白给的,很多C、java里需要用循环语句来完成的,在Matlab里只需要一句话就可以搞定了,刚上这门课时老师说C一堂课讲授的内容Matlab一句话就可以搞定了,看来不是假的。四是这门语言确实很有用,信号与系统课上学的很多内容都可以用Matlab来仿真,另外这门语言在很多其他的领域也都很有用,所以,我打算好好学习这门语言。
第一次交作业时我还只交上了两道题,那时候对这门语言接触得还比较少,但是就在交作业的那天我打算好好学习这门语言,而且在写作业的时候我确实喜欢上了这门语言。虽然第一次由于时间仓促只交上了两道题,可是那都是我自己写的,我觉得只有这样才能学到东西。第二天,在别人都在做第二次作业的时候,我却仍然在做第一次作业,我打算把第一次的作业完整的写一遍,即使这对我的分数一点帮助也没有。第二次作业我提前好几天就写完了,虽然没有完成全部的题目。我把第一第二次作业一起交了上去,我希望老师能帮我看一看。
上面只是对这门课程的一些怀念,课程已经结束了,不过我会继续学习这门语言的。下面就针对这次作业的要求,给这门课提一些看法,毕竟这才是正题。MATLAB 产品族可以用来进行以下各种工作:
● 数值分析
● 数值和符号计算
● 工程与科学绘图
● 控制系统的设计与仿真
● 数字图像处理
● 数字信号处理
● 通讯系统设计与仿真
● 财务与金融工程
MATLAB 的应用范围非常广,包括信号和图像处理、通讯、控制系统设计、测试和测量、财务建模和分析以及计算生物学等众多应用领域。附加的工具箱(单独提供的专用 MATLAB 函数集)扩展了 MATLAB 环境,以解决这些应用领域内特定类型的问题。说实在的想完全掌握全部的基本上是不可能的,就像dsp一样,应用的范围很广,想一口吃可能不行,所以要结合专业来学习才好!
对于我们这些学习了C语言的学生,编程基本的语法学习起来很快的,和c语言很类似,而且是支持c语言函数的,或者说函数就是用c语言编的,完全是解释性的语言,像打草稿一样,可以一句句的编译,看结果的。
等我们编到基本的熟悉之后就可以编辑函数了,-------这个其实用的不多,为了应用的话,老师建议开始编写M文件,也就是把程序都写在m文件里面,然后编译,调试,根据错误信息来调试。
至于和专业相关的方面就说说自动化方面吧!和控制理论,fft,用的比较多,根轨迹,相平面,传递函数,拉普拉斯变换,奈氏曲线什么的,基本上都可以解决
03310901班
王鸿栋 20090286 对于授课方式,我觉得上课时老师是结合信号与系统来讲的,就是说课程的定位就是交给我们解决信号与系统方面问题的一个方法。我觉得Matlab功能远远不止于此。而且老师在课上讲程序都是一带而过,我觉得讲授的程序不必很多,一堂课只讲几个程序,但是对于每个程序,如果老师都能给我们进行分析,把这个程序将明白了,那么这堂课我们就能学到很多东西。而且这样讲课也不会使我们觉得枯燥。
对提高Matlab编程能力的方法,我想主要有以下三个: 1.查help 2.多上上论坛,搜索帖子、发帖子问人 3.阅读别人、特别是牛人的程序
当然了,正如所有的程序语言一样,“3分课本7分上机”,一定要动手才行,不能光看。多想、多思考、多尝试,才是正路。
最后,整理一下常用的快捷键(用【】表示)或命令: 1.在命令窗口(Command Window)中:
1)【上、下键】――切换到之前、之后的命令,可以重复按多次来达到你想要的命令 2)clc――清除命令窗口显示的语句,此命令并不清空当前工作区的变量,仅仅是把屏幕上显示出来的语句清除掉
3)clear――这个才是清空当前工作区的变量命令,常用语句clear all来完成
4)【Tab】键――(在command窗口,输入一个命令的前几个字符,然后按tab键,会弹出前面含这几个字符的所有命令,找到你要的命令,回车,就可以自动完成。目前讨论结果是:Matlab6.5版本中,如果候选命令超过100个,则不显示。而在Matlab7以后版本中,则没有这个限制,均可正常提示
5)【Ctrl+C】(或【Ctrl+Break】)――在Matlab程序运行过程中,可能由于程序编写的失误,导致程序不停的运行,在命令窗口输入“Ctrl+C”可以将运行的程序停下来,而不需要将整个Matlab程序关掉。不过进行此操作的前提是能够激活切换到命令窗口才行,呵呵。
2.在编辑器(Editor)中: 1)【Tab】(或【Ctrl+]】)――增加缩进(对多行有效)2)【Ctrl+[】--减少缩进(对多行有效)
3)【Ctrl+I】--自动缩进(即自动排版,对多行有效)4)【Ctrl+R】――注释(对多行有效)5)【Ctrl+T】――去掉注释(对多行有效)
6)【Ctrl+B】――括号配对检查(对版本6.5有效,但版本7.0无效,不知道是取消了还是换了另外的快捷键,请大牛们指点,其他版本没有测试过)
7)【F12】――设置或取消断点 8)【F5】――运行程序
其余的例如在Debug状态下的快捷键可以自己看菜单。
就说这么多,通过这个小学期,我觉得自己真的学到了很多!
03310901班
王鸿栋 20090286
第三篇:学习matlab总结(定稿)
绘图函数 bar 竖直条图 barh 水平条图 hist 直方图
histc 直方图计数 hold 保持当前图形 loglog x,y对数坐标图 pie 饼状图 plot 绘二维图 polar 极坐标图
semilogy y轴对数坐标图 semilogx x轴对数坐标 subplot 绘制子图 bar3 数值3D竖条图 bar3h 水平3D条形图 comet3 3D慧星图 cylinder 圆柱体
fill3 填充的3D多边形 plot3 3维空间绘图
quiver3 3D震动(速度)图 slice 体积薄片图 sphere 球
stem3 绘制离散表面数据 waterfall 绘制瀑布 trisurf 三角表面
clabel 增加轮廓标签到等高线图中datetick 数据格式标记 grid 加网格线
gtext 用鼠标将文本放在2D图中 legend 图注
plotyy 左右边都绘Y轴 title 标题
xlabel X轴标签 ylabel Y轴标签 zlabel Z轴标签 contour 等高线图 contourc 等高线计算 contourf 填充的等高线图 hidden 网格线消影
meshc 连接网格/等高线
mesh 具有参考轴的3D网格 peaks 具有两个变量的采样函数 surf 3D阴影表面图
surface 建立表面低层对象 surfc 海浪和等高线的结合 surfl 具有光照的3D阴影表面 trimesh 三角网格图
多项式与插值
conv 卷积和多项式乘法 roots 多项式的根
poly 具有设定根的多项式 polyder 多项式微分 polyeig 多项式的特征根 polyfit 多项式拟合
polyint 解析多项式积分 polyval 多项式求值
polyvalm 矩阵变量多项式求值 residue 部分分式展开 interp1 一维插值 interp2 二维插值 interp3 三维插值
interpft 使用FFT的一维插值 interpn 多维插值
meshgrid 为3维点生成x和y的网格 ndgrid 生成多维函数和插值的数组 pchip 分段3次Hermite插值多项式 ppval 分段多项式的值 spline 3次样条数据插值
3、基本矩阵和矩阵操作
blkding 从输入参量建立块对角矩阵 eye 单位矩阵
linespace 产生线性间隔的向量 logspace 产生对数间隔的向量 numel 元素个数
ones 产生全为1的数组 rand 均匀颁随机数和数组 randn 正态分布随机数和数组
zeros 建立一个全0矩阵 colon)等间隔向量
cat 连接数组
diag 对角矩阵和矩阵对角线 fliplr 从左自右翻转矩阵 flipud 从上到下翻转矩阵 repmat 复制一个数组 reshape 改造矩阵 roy90 矩阵翻转90度 tril 矩阵的下三角
triu 矩阵的上三角 dot 向量点集 cross 向量叉集
ismember 检测一个集合的元素 intersect 向量的交集 setxor 向量异或集 setdiff 向是的差集 union 向量的并集
数值分析和傅立叶变换 cumprod 累积 cumsum 累加
cumtrapz 累计梯形法计算数值微分 factor 质因子
inpolygon 删除多边形区域内的点 max 最大值
mean 数组的均值 mediam 中值 min 最小值
perms 所有可能的转换 polyarea 多边形区域 primes 生成质数列表 prod 数组元素的乘积 rectint 矩形交集区域 sort 按升序排列矩阵元素 sortrows 按升序排列行 std 标准偏差 sum 求和
trapz 梯形数值积分 var 方差
del2 离散拉普拉斯 diff 差值和微分估计 gradient 数值梯度 cov 协方差矩阵 corrcoef 相关系数 conv2 二维卷积
conv 卷积和多项式乘法 filter IIR或FIR滤波器
deconv 反卷积和多项式除法 filter2 二维数字滤波器
cplxpair 将复数值分类为共轭对 fft 一维的快速傅立叶变换 fft2 二维快速傅立叶变换
fftshift 将FFT的DC分量移到频谱中心ifft 一维快速反傅立叶变换 ifft2 二维傅立叶反变换 ifftn 多维快速傅立叶变换 ifftshift 反FFT偏移
nextpow2 最靠近的2的幂次 unwrap 校正相位角
2、基本数学函数
abs 绝对值和复数模长
acos,acodh 反余弦,反双曲余弦 acot,acoth 反余切,反双曲余切 acsc,acsch 反余割,反双曲余割 angle 相角
asec,asech 反正割,反双曲正割 secant 正切
asin,asinh 反正弦,反双曲正弦 atan,atanh 反正切,双曲正切 tangent 正切
atan2 四象限反正切 ceil 向着无穷大舍入 complex 建立一个复数 conj 复数配对
cos,cosh 余弦,双曲余弦 csc,csch 余切,双曲余切 cot,coth 余切,双曲余切 exp 指数
fix 朝0方向取整 floor 朝负无穷取整 gcd 最大公因数 imag 复数值的虚部 lcm 最小公倍数 log 自然对数
log2 以2为底的对数 log10 常用对数 mod 有符号的求余
nchoosek 二项式系数和全部组合数real 复数的实部 rem 相除后求余
round 取整为最近的整数 sec,sech 正割,双曲正割 sign 符号数
sin,sinh 正弦,双曲正弦 sqrt平方根
tan,tanh 正切,双曲正切
1、特殊变量与常数 ans 计算结果的变量名
computer 确定运行的计算机 eps 浮点相对精度 Inf 无穷大 I 虚数单位
inputname 输入参数名 NaN 非数
nargin 输入参数个数 nargout 输出参数的数目 pi 圆周率
nargoutchk 有效的输出参数数目 realmax 最大正浮点数 realmin 最小正浮点数 varargin 实际输入 的参量 varargout 实际返回的参量 操作符与特殊字符 + 加实线 c 亮青色 : 点线 m 锰紫色-.点虚线--虚线
七、注解
xlabel('Input Value');% x轴注解 ylabel('Function Value');% y轴注解
title('Two Trigonometric Functions');% 图形标题
legend('y = sin(x)','y = cos(x)');% 图形注解 grid on;% 显示格线 八、二维绘图函数 bar 长条图
errorbar 图形加上误差范围 fplot 较精确的函数图形 polar 极座标图 hist 累计图
rose 极座标累计图 stairs 阶梯图 stem 针状图 fill 实心图 feather 羽毛图 compass 罗盘图 quiver 向量场图
第四篇:MATLAB论文
MATLAB与在信号与系统中的应用
姓名:江肥 班级:*** 学号:***
摘要:论文通过MATLAB在信号与系统中的应用实例,探讨了MATLAB在信号与系统中的应用方法和技巧,对运用计算机软件完成“信号与系统”课程的波形绘制,微分方程的求解,信号与系统分析具有较好的参考价值。
关键字:MATLAB应用 信号与系统 微分方程
引言
“信号与系统”课程是一门实用性较强、涉及面较广的专业基础课,是电子信息类专业学生的必修课程。它是将学生从电路分析的知识领域引入信号处理与传输领域的关键性课程,对后继专业课起着承上起下的作用。该课程的基本方法和理论大量运用于计算机信息处理的各个领域,特别是通信、图像处理、数字信号分析等领域,应用更为广泛。MATLAB作为一个辅助类的软件可以很好的完成数值计算、信号与系统分析的可视化建模及仿真调试。
1.用MATLAB绘制信号的波形
运用MATLAB绘图,可以很快速和简便的得到响应函数的波形图,通过分析响应的波形将对信号的分析有更深入的了解。
用MATLAB绘制f(t)=e(t+3)-2e(t),其中e(t)为step函数 解:在MATLAB窗口中输入如下命令
f=sym('heaviside(t+3)-2*heaviside(t)')ezplot(f,[-5,4]), hold on,plot([0,0],[-1,1]), axis([-5,4,-1.1,1.1]),hold off 结果如图1:
图1
从图1可以清楚的看到f(t)的时域关系图。
2.利用MATLAB解微分方程
在信号与系统中,连续时间系统处理连续时间信号,通常用微分方程来描述这类系统,也就是系统的输入与输出之间通过他们时间函数及其对时间t的各阶导数的线性组合联系起来。因此,在信号与系统中,求解微分方程对于研究连续时间系统的时域分析非常的重要。下面本文选择了一种简便的方法来处理这类问题,运用MATLAB的方法。
求解线性微分方程
y’’’+5y’’+4y’+7y=3u’’+0.5u’+4u
在输入u(t)为单位脉冲及单位阶跃信号时的解。
解:两边进行拉普拉斯变换(脉冲输入U(S)=1;单位阶跃U(S)=1/S)3s20.5s4B(s)y(s)3u(s)
s5s24s7A(s)
求脉冲响应:A=[1 5 4 7];B=[3 0.5 4];[r ,p,k]=residue(B,A)时域解:t=0:0.2:10 y=r(1)*exp(p(1)*t)+r(2)*exp(p(2)*t)+r(3)*exp(p(3)*t);plot(t,y)得到的波形图如图2-1
图2-1 求阶跃响应:
打开MATLAB中的simulink模块,建立一个模型文件,命名为”li.mdl”。如图2-2
图2-2
单击仿真按钮,然后返回MATLAB中输入一下命令,即可得到如图2-3
图2-3
传统求系统阶跃响应和冲激响应的方法都是对传递函数进行拉氏变换,再和激励函数的拉氏形式相乘,左后求反变换。不仅工程量大,而且得出的结果不直观;本文采用MATLAB建模的方式解决问题,不但简单,而且非常直观的反映了响应函数的特性。
3.根据传递函数求系统的零极点分布,单位冲激响应,单位阶跃响应以及幅频特性
在分析系统的静态和动态特性时,常常可以通过对传递函数进行分析,从而解决系统是否稳定等问题,然而传统的分析方法,常常要借助于人工计算,不仅工作量比较大,而且效率也比较低。而MATLAB解决了这一难题,本文通过调用MATLAB内部的函数进行计算,非常的高效的得到了零级点分布,单位冲激响应,单位阶跃响应以及幅频特性,非常的直观。
例:传递函数是
1H(s) s32s22s1
解:首先建立一个m文件,并且命名为“li.m”
clear
t=0:0.01:10;
num=[1];
den=[1 2 2 1];
sys=tf(num,den)
poles=roots(den)
figure(1),pzmap(sys);%零级点分布
h1=impulse(num,den,t);
figure(2),plot(t,h1);%单位冲激响应的波形
title(‘Impulse Response’)%加标题
h2=step(num,den,t);
figure(3),plot(t,h2);%单位阶跃响应波形
[H,w]=freqs(num,den);
figure(4),plot(w,abs(H));%幅频特性图
xlabel(‘omega’)
title(‘magni tude Response’)%加标题
运行结果是
Transfer function:
---------------------s^3 + 2 s^2 + 2 s + 1
poles =
-1.0000
-0.5000 + 0.8660i
-0.5000-0.8660i 零极点分布如图3-1所示
图3-1
单位冲激响应的波形如图3-2所示
图3-2 单位阶跃响应波形如图3-3所示
图3-3
幅频特性如图3-4所示
如图3-4 结束语
MATLAB软件是目前比较流行的一套商业数学软件,在数值计算、信号处理方面尤为突出。它的出现给信号与系统分析中一些理论的掌握提供了很大的方便,利用其先进的计算机软件环境,可将信号与系统、信号处理中的很多定理直观化、可视化,这对学习这些理论非常有利。
参考文献:
【 1 】燕庆明.信号与系统教程[M].北京:高等教育出版社,2004 【 2 】楼顺天.基于MATLAB的系统分析与设计——信号处理.西安:西安电子科技大学出版社,2001 【 3 】梁红.信号与系统分析及MATLAB实现.北京:电子工业出版社,2002 【 4 】郑君里.信号与系统(第二版).北京:高等教育出版社,2000
第五篇:matlab小学期学习感想
小学期学习感想
大一小学期我们学习了matlab软件,这是一个十分实用和重要的软件。学习MATLAB,感觉这是一个很好的软件,语言简便,实用性强。作为一个做新手,想要学习好这门语言,可以说还是比较难的。在我接触这门语言的这些天,一直在上面弄,除了会画几个简单的三维图形,其他的还是有待提高。在这个软件中,虽然有help。大家不要以为有了这个就万事大吉了,反而,从另一个方面也对我们大学生提出了两个要求——充实的课外基础和良好的英语基础。在现代,几乎所有好的软件都是来自国外,假如你不会外语,想学好是非常难的。
学习了MATLAB这门课程,我了解该软件的基本功能,也知道了该软件在我们生活中的重要地位。随着社会的不断发展,科技的不断进步,计算机的普及,它也被应用在越来越多的方面。MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,MATLAB的最突出的特点就是简洁。
MATLAB相对于其他的一些编程软件有许多的优点:
一、语言简洁紧凑,使用方便灵活,库函数极其丰富。
二、运算符丰富。
三、MATLAB既具有结构化的控制语句(如for循环、while循环),又有面向对象编程的特性。
四、语法限制不严格,程序设计自由度大。
五、程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
六、MATLAB的图形功能强大。
用madlab创建矩阵时,方法有两种:第一、可以直接依次输入矩阵各行各列的元素,但矩阵元素必须用[ ]括住,矩阵元素必须用逗号或空格分隔,在[ ]内矩阵的行与行之间必须用分号分隔。第二、用MATLAB函数创建矩阵。MATLAB可以进行矩阵的加减、乘除的元素,求可逆矩阵、转置矩阵,求矩阵的特征值,求线性方程组等等。MATLAB的功能是非常强大的,MATLAB不仅有强大的运算功能,它还有强大的绘图功能,我对它的了解也仅仅就是一点点,或许说还没有入门。比如说它含有丰富的内建函数,例如数学函数中的三角函数、复函数、多项式函数、数据分析函数的求平均值、最大最小值、排序等,以及逻辑/选择函数如if-else等,还有用来模拟随机发生事件的随机函数。这些我都不了解。首先我们来介绍一下MATLAB,MATrix LABoratory,即矩阵实验室,是Math work公司推出的一套高效率的数值计算和可视化软件。它是当今科学界最具影响力、也是最具活力的软件,它起源于矩阵运算,并高速发展成计算机语言。它的优点是强大的科学运算、灵活的程序设计流程、高质量的图形可视化与界面、便捷的与其他程序和语言接口。
作为一种计算机语言,MATLAB体现了与它价值的相符的优点:
1.编程简单使用方便。在这方面我感觉C语言也是一种简单的编程语言。只要入门就很好掌握,但是要学习一门语言不是那么容易的,到目前为止,可以说我还没入门,所以学习起这门语言来很吃力。相对C语言而言,MATLAB的矩阵和向量操作功能是其他语言无法比拟的。在MATLAB环境下,数组的操作与数的操作一样简单,基本数据单元是不需要指定维数的,不需要说明数据类型的矩阵,而其数学表达式和运算规则与通常的习惯相同。2.函数库可任意扩充。由于MATLAB语言库函数与用户文件的形式相同,用户文件可以像库函数一样随意调用,所以用户可任意扩充库函数。
3.语言简单内涵丰富。在此语言中,最重要的成分是函数,一般形式为:Function[a,b,c„„]=fun(d,e,f„„)Fun是自定义的函数名,只要不与库函数想重,并且符合字符串书写规则即可。
4、简便的绘图功能。MATLAB具有二维和三维绘图功能,使用方法简单。三维曲线是由plot3(x,y,z)命令绘出的,看上去很简单的一个程序,相对C语言而言。极大的方便了绘图的工作和节省工作时间。
5.丰富的工具箱。由于MATLAB 的开放性,许多领域的专家都为MATLAB 编写了各种程序工具箱。这些工具箱提供了用户在特别应用领域所需的许多函数,这使得用户不必花大量的时间编写程序就可以直接调用这些函数,达到事半功倍的效果。
其次,我们来说一下MATLAB的运算。利用matlab可以做向量与矩阵的运算,与普通加减运算几乎相似。
矩阵乘法用 “ * ” 符号表示,当A矩阵列数与B矩阵的行数相等时,二者可以进行乘法运算,否则是错误的。如果A或B是标量,则A*B返回标量A(或B)乘上矩阵B(或A)的每一个元素所得的矩阵。
Matlab与其它计算机语言一样,也有控制流语句。控制流语句可使原本简单地在命令行中运行的一系列命令或函数,组合成为一个整体—程序,从而提高效率。
(1)for 循环for循环的通用形式为:for v=expressionstatementsend其中expression 表达式是一个矩阵,因为Matlab中都是矩阵,矩阵的列被一个接一个的赋值到变量v,然后statements语句运行。
(2)while 循环while循环的通用形式为:while v=expressionstatementsend当expression的所有运算为非零值时,statements 语句组将被执行。如果判断条件是向量或矩阵的话,可能需要all 或any函数作为判断条件。
(3)if和break语句通用形式为:if 条件1,命令组1;elesif条件2,命令组2;„„;else命令组k;endbreak%中断执行,用在循环语句内表示跳出循环
其实想要学习好一们语言,不能只靠老师,关键是自己。每个人内心深处都是有抵触意识的,不可能把老师的所有都学到。学习这门语言,不光是学习一种语言,更重要的事学习一种方法,一种学习软件的方法,还有学习的态度。
学习MATLAB的时间虽然很短,但却让我了解到了它的强大和它的功能。我想就算时间足够,老师也不能把所有的都讲解给我们,因为一个软件的功能需要我们自己不断的去摸索,老师也不可能知道所有。老师只是个指路的明灯,最终的学习还是要靠自己。而且在摸索过程中,我们能够发现和体会学习的快乐。