matlab的应用论文
摘要:
简要介绍MATLAB软件及其控制系统工具箱的功能,并通过具体实例说明MATLAB软件在《机械控制工程基础》课程教学中的优越性,从多方面探讨在教学过程中,如何更好地利用MATLAB软件.主要从系统的时间响应及频率特性、稳定性分析和系统校正的设计、线性离散系统的分析及系统模型的估计等方面使MATLAB得图形化和交换功能充分的体现了出来,使抽象复杂的理论变得生动形象、加深了对某些概念的理解、激发了我们的学习兴趣。最后总结了关于怎样学好MATLAB的心得体会。
1.MATLAB简介
MATLAB是矩阵实验室(Matrix Laboratory)的简称,是美国MathWorks公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和Simulink两大部分。到目前为止,已经经发展成为优秀的适合多学科的功能强大的科技应用软件之一,在30多个面向不同领域而扩展的工具箱的支持下,MATLAB在许多领域中成为计算机辅助设计与分析、算法研究和应用开发的基本工具和首选平台。
MATLAB的发展经历了以下几个重要的发展时期:
1)20世纪70年代后期,时任美国新墨西哥大学计算机科学系主任的Cleve?Moler教授为学生开发了矩阵特征值求解及线性方程求解的FORTRAN程序库及接口程序,取名为MATLAB,并开始流传。
2)1983年春,Cleve?Moler博士与John?Little等人用c语言开发了MATLAB的第二代专业版,具有数值计算及数据图形化功能。3)1984年,Cleve?Moler与John?Little成立了MathWorks公司,正式把MATLAB推向市场。4)1993年~1995年,MathWorks公司推出了MATLAB?4.0版,充分支持Microsoft?Win—dows下的界面编程,1995年推出4.2C版。
5)1997年,MathWorks公司推出了MATLAB?5.0版,支持更多的数据结构,无论界面还是功能都较4.x版有长足进展。1999年推出了5.3版,进一步改善了MATLAB的功能。
6)2000年10月,MathWorks公司推出了MATLAB?6.0版,该版的推出是MATLAB软件的一次飞跃,它的可视化界面焕然一新,风格更加平易近人,而且还添加了对JAVA的支持,函数库也进一步进行了扩充,运算速度更快、性能更好。2001年6月,MathWorks公司推出了MATLAB?6.1版。2002年8月,MathWorks公司推出了MATLAB?6.5版。
2.MATLAB与控制工程及实例说明
Nyquist图和Bode图是系统频率特性的两种重要的图形表示形式,也是对系统进行频率特性分析的重要方法。无论是Nyquist图还是Bode图,都非常适于用计算机进行绘制,Matlab提供了绘制系统频率特性极坐标图的nyquist函数和绘制对数坐标图的bode函数。
24(0.25s+0.5)例如:传递函数为G(s)=的系统的Nyquist图及Bode图的求取。
(5s+2)(0.05s+2)1)Matlab文本及Nquist图形如下:
k=24,nunG1=k*[0.25,0.5];denG1=conv([5 2],[0.05 2]);[re,im]=nyquist(nunG1,denG1);plot(re,im);grid k=24,nunG1=k*[0.25,0.5];denG1=conv([5 2],[0.05 2]);[re,im]=nyquist(nunG1,denG1);plot(re,im);grid
0-0.2-0.4-0.6-0.8-1-1.2-1.400.511.522.53
2)Matlab文本及Bode图如下:
k=24;numG1=k*[0.25 0.5];denG1=conv([5 2],[0.05 2]);w=logspace(-2,3,100);bode(numG1,denG1,w);
Bode Diagram100Magnitude(dB)Phase(deg)-10-20-30-400-45-9010-210-1100101102103Frequency(rad/sec)
在MATLAB中,可以用impulse函数、step函数和lsim函数对线性连续系统的时间响应进行仿真计算。其中impulse函数用于生成单位脉冲响应;step函数用于生成单位阶跃响应;lsim函数用于生成对任意输入的时间响应。
例如:已知某高阶系统的传递函数为
2S220S50G(S)6 S15S584S4223S3309S2240S100
求该系统的单位脉冲响应、单位阶跃响应和单位速度响应和单位加速度响应。
获得单位脉冲响应程序语句及图形: >> num=[2 20 50];>> den=[1 15 84 223 309 240 100];>> impulse(num,den)
获得单位阶跃响应程序语句及图形: >> num=[2 20 50];>> den=[1 15 84 223 309 240 100];>> step(num,den)
获得单位速度响应程序语句及图形: >> num=[2 20 50];>> den=[1 15 84 223 309 240 100];>> t=[0:0.01:1];>> u=(t);>> lsim(num,den,u,t)
获得单位加速度响应程序语句及图形: > num=[2 20 50];>> den=[1 15 84 223 309 240 100];>> t=[0:0.01:1];>> u=(0.5*t.*t);>> lsim(num,den,u,t)
关键词:MATLAB,矩阵,建模
0 引言
21世纪将以科学技术的高速发展为特征, 中华民族在国际大家庭的地位将取决于我国的综合国力, 高速度高质量地培养千千万万的技术人才, 是其中一个十分重要的任务。要做到这一点, 就必须努力地吸取世界上一切优秀的教育思想、教学手段, 并创造性地应用于我们的教学事业。
当前, 计算机已经被成功地应用于工程设计和制造业中, 在发达国家中其普及率已经超过90%, 它成倍地提高了劳动生产率, 创造了空前巨大的物质文明。它把任何创新思想转化为市场的商品时间缩短了惊人的程度, 新产的种类淘汰之快都是20年前无法想像的。国际互联网的广泛应用加快了产业全球化的进程。在这个极具挑战的时代中, 把计算机充分运用到教学及工程计算过程中, 显然具有重要的意义。
我们知道, 计算尺发明于1630年, 在大学中计算尺已被使用了300多年, 大约在1970年左右被计算器完全代替。现在计算器在大学里已使用了30年, 它被计算机所代替已是历史的必然。教学工具的每一次更新都大大地提高了教育的效率。因此, 自觉地而不是被动地加快计算机代替计算器的进程, 将对大学教学效率的提高起到重要的作用。
在我国随着计算机价格的不断下降和国家对教育投入的加大, 学校的装备和学生个人购买的计算机也越来越多, 因此在几年之内, 大学生自由地使用计算机设备将能够实现。大学本科课程中普遍使用计算机的瓶颈将是软件。即使在目前, 拥有计算机的教师和学生也未必知道如何用计算机来帮助他们进行课程教学, 因此要从现在起做好准备。
为了把计算机更好地用于大学的课程教育和科学研究, 从20世纪80年代开始, 出现了多种科学计算语言, 也称为数学软件。经过10多年的发展和竞争, 已经商品化的有Matlab, Matrix, Maple, Mathmatica, MathCAD等。它们的功能大同小异, 又各有千秋, 就易学性和普及性而言, 首推MATLAB语言。
1 MATLAB语言简介
1.1 MATLAB语言的发展
MATLAB是由美国Mathworks公司于1984年正式推出的, 从那时到现在已升级到6.x版本。随着版本的升级, 内容不断扩充, 功能更加强大。特别是在系统仿真和实时运行等方面, 有很多新进展, 更扩大了它的应用前景。
MATLAB是一种科学计算软件, 主要适用于矩阵运算及控制和信息处理领域的分析设计, 它使用方便, 输入简捷, 运算高效, 内容丰富, 并且很容易由用户自行扩展, 因此, 当前已成为美国和其他发达国家大学教学和科学研究中最常用而必不可少的工具。
MATLAB语言比较好学, 因为它只有一种数据类型, 一种标准的输入输出语句, 不用“指针”, 不需编译, 比其他语言少了很多内容。
1.2 MATLAB语言的特点
1.2.1 起点高
1) 每个变量代表一个矩阵, 从MATLAB名字的来源可知, 它以矩阵运算见长, 在当前的科学计算中, 几乎无处不用矩阵运算, 这使它的优势得到了充分的体现。在MATLAB中, 每个变量代表一个矩阵, 它可以有个元素;
2) 每个元素都看做复数, 这个特点在其他语言中也是不多见的;
3) 所有运算都对矩阵和复数有效, 包括加、减、乘、除、函数运算等。
1.2.2 人机界面适合科技人员
1) 语言规则与笔算式相似。MATLAB的程序与科技人员的书写习惯相近, 因此, 易写易读, 易于在科技人员之间交流;
2) 矩阵行数列数无需定义。要输入一个矩阵, 用其他语言时必须先定义矩阵的阶数, 而MATLAB则不必有阶数定义语句, 输入数据的行列数就决定了它的阶数。
3) 键入算式立即得结果, 无需编译。MATLAB是以解释方式工作的, 即它对每条语句解释后立即执行, 若有错误也立即作出反应。便于编程者马上改正。这些都大大减轻了编程和调试的工作量。
1.2.3 强大而简易的做图功能
1) 能根据输入数据自动确定坐标绘图;
2) 能规定多种坐标系 (极坐标, 对数坐标等) ;
3) 能绘制三维人材中的曲线和曲面;
4) 可设置不同颜色、线型和视角等。
如果数据齐全, 通常只需要一条命令即可出图。
1.2.4 智能化程度高
1) 绘图时自动选择最佳坐标;
2) 做数值积分时, 自动按精度选择步长;
3) 自动检测和显示程序错误的能力强, 易于调试。
1.2.5 功能丰富, 可扩展性强
MATLAB软件包括基本部分和专业扩展两大部分。基本部分包括:矩阵的运算和各种变换;代数和超越方程的求解, 数据处理和傅里叶变换, 数值积分等等, 可以充分满足大学理式本科的计算需要。
扩展部分称为工具箱。它实际上是用MATLAB的基本语句编成的各种子程序集, 用于解决某一方面的专门问题, 或实现某一类的新算法。现在已经有控制系统、信号处理、图像处理、系统辨识、模糊集合、神经元网络和小波分析等数十个工个箱, 并且还在断续发展中。
MATLAB的核心内容是它的基本部分, 所有的工具箱子程序都是用它的基本语句编写的。学好这部分内容是掌握MATLAB的关键。
2 MATLAB的应用
MATLAB的应用非常广泛, 在电路、信号与系统、数字信号处理及自动控制原理等诸多方面已被广为应用。
2.1 MATLAB在电路中的应用
MATLAB中的变量与常量都是矩阵 (标量可看做阶的矩阵, 向量可看做或阶的矩阵) , 其元素可以是复数和任意形式的表达式, 它具有元素群运算能力。MATLAB的这些优于其他语言的特色, 有利于分析计算电路的各种问题, 并且使编程更简便, 运算效率更高。11 n11n
例:如图1所示, 已知Ω===4321RRR, 控制常数2, 4, 5.0Α===21sikk, 求1i和2i。43R2, 4, 5.021 sikk1i
解:建模
按图1列出节点方程:
由图1可知, 控制变量与节点电压的关系为
2.2 MATLAB在信号与系统中的应用
MATLAB特别适用于信号通过系统的分析, 如下面的简单应用。
例:LTI系统的零输入响应
描述阶线性时不变 (LTI) 连续系统的微分方程为1, 1i
已知y及其各阶导数的初值为) 0 (, ) , 0 () , 0 () 1 () 1 (n-yyy (43) , 求系统的零输入响应。, !11ub dt du b dt ud bya dt dy mmmnmn1, 121ii) 0 (, ) , 0 () , ) 1 () 1 (nyy11121b dt du b dt ud bya dt dy a dt d a dt d ammm m nn n n n, !111u dt du b dt ud bya dt dy a dt d mm m nn n
解:建模当LTI系统的输入为零时, 其零输入响应为微分方程的齐次解 (即令微分方程等号右端为0) , 其形式为 (设特征根均为单根)
的根, 它们可用root (a) 语句求得。各系数n, , CC1⋅⋅⋅由y及其各阶导数的初始值来确定。对此有
写成矩阵形式式
V为范德蒙矩阵, 在MATLAB的特殊矩阵库中有vander。
3种情况, 用hold on语句使3次运行生成的图形画在一幅图上, 得到图2。
参考文献
[1]王沫然.MATLAB6.0与科学计算[M].北京:电子工业出版社, 2001.
关键词:电路实验;matlab;Laplace变换
1 引言
电路课程是自动化、电气、电网等专业的一门专业基础课。电路的教学不仅为后续课程的教学准备必要的电路知识,而且在培养学生动手能力上也起着重要作用。电路课程的教学需注重理论与实验相结合的方式,但是由于实验条件的限制,有些实验不能安排反复试验,为此可以借助软件进行仿真实验,从而加深学生对电路知识的理解。在电路学习中,有些概念难以理解,将直接影响学生学习的质量与效率。MATLAB是一种功能很强的软件技术工具,它已广泛应用于各个领域。
2 Matlab在电路方程Laplace中的应用
4.结论
本文通过计算例子,说明利用MATLAB程序开展教学对于学生加深对“电路中的基本变换”相关概念的理解,以及提高学习的興趣非常有效。
参考文献:
[1]邱关源.电路[M].北京:高等教育出版社,2004.
基于MATLAB/GUI的层次分析法在投资评价中的应用
层次分析法是一种较好的综合评价方法,结合MATLAB等辅助计算工具可以准确而迅速地得出评价结果.以某微车企业三套冲压生产线投资方案的评价为例,运用层次分析法并结合MATLAB/GUI界面编程,得出投资方案的评价结果并对其实际意义进行了分析.基于MATLAB/GUI的层次分析法不仅为决策者提供了友好的`界面,而且为解决方案评价等问题提供了一条使捷的途径.
作 者:作者单位:刊 名:机械研究与应用英文刊名:MECHANICAL RESEARCH & APPLICATION年,卷(期):“”(5)分类号:C931关键词:层次分析法 MATLAB/GUI 冲压生产线 投资方案 综合评价
利用遥感技术进行震害建筑物的`自动识别可为震害的快速评估与救灾决策提供科学可靠的依据.本文从震害建筑物在高分辨率遥感影像下灰度的特征入手,以5・12汶川特大地震后都江堰市区ALOS遥感影像为数据源,在MATLAB平台下对影像进行灰度增强处理、数学形态学重构以及连接、填充处理,并结合区域统计特性最后自动识别震害房屋.结果表明,利用ALOS影像丰富的纹理特征及空间结构信息与MATLAB在数学形态学处理中的优势能够准确有效地提取震害建筑物信息.
作 者:曾繁如 何政伟 李 ZENG Fan-ru HE Zheng-wei LI Zhe 作者单位:曾繁如,何政伟,ZENG Fan-ru,HE Zheng-wei(成都理工大学,地质灾害防治与地质环境保护国家重点实验室,四川,成都,610059;成都理工大学数字国土与生态科学研究所,四川,成都,610059)李,LI Zhe(成都理工大学,地质灾害防治与地质环境保护国家重点实验室,四川,成都,610059;成都市国土资源局国土规划地籍事务中心,四川,成都,610000)
刊 名:西北地震学报 ISTIC PKU英文刊名:NORTHWESTERN SEISMOLOGICAL JOURNAL 年,卷(期):2009 31(4) 分类号:P315.9:TP75 关键词:MATLAB软件 ALOS遥感影像 震害建筑物 自动识别 数学形态学 都江堰市区 MATLAB software ALOS remote sensing imagine Earthquake damage building Auto-matic recognition Mathematics morphology Dujiangyan urban area★ 遥感图像在物探测量中的应用
★ 温暖影像在寒冷的早晨散文
★ 临床医学教学改革论文
★ 病例讨论法在临床医学质量中的应用价值论文
★ 腹腔镜对妇科临床医学治疗的应用论文
★ 土木工程中的计算机应用论文
★ 临床医学模拟实践教学体系的建立与应用论文
★ 临床医学案例教学法运用论文
★ 肝结石是什么原因
中图分类号:tm744 文献标识码:a 文章编号:1006-4311(2016)21-0185-03
0 引言
潮流计算是电力系统稳态运行中的基本计算方法中的一种计算方法,也是电力系统稳态运行中最重要的运算。潮流计算是保证电力系统安全、经济运行的根本。在新电网建设的初期规划中,有了潮流计算,可规划出电源的容量及其接入点,可计算出无功补偿的容量,选择合适的补偿方式,以满足在电网潮流的控制、调压、调相、调峰的交换要求。潮流计算可以选择电力系统的运行方式,便于定期对电力系统中的元件进行检修。
潮流计算的过程
1.1 原始资料
①系统图:两个发电厂分别通过变压器和输电线路与四个变电所相连。(图1)
②发电厂资料:
③变电所资料:
1)变电所1、2、3、4低压母线的电压等级分别为:10kv,35kv,10kv,35kv。
3)每个变电所的功率因数均为cosφ=0.9。
④输电线路资料:
发电厂和变电所之间的输电线路的电压等级及长度标于图中,单位长度的电阻为0.17ω,单位长度的电抗为0.402ω,单位长度的电纳为2.78*10-6s。
1.2 基本要求
①对给定的网络查找潮流计算所需的各元件等值参数,画出等值电路图。
②输入各支路数据,各节点数据,利用simulink搭建仿真模型等方法,进行在变电所的某一负荷情况下的潮流计算及仿真,并对计算结果进行分析。
③如果各母线电压不满足要求,进行电压的调整。(变电所低压母线电压10kv要求调整范围在9.5-10.5之间;电压35kv要求调整范围在35-36之间)。
④利用matlab软件,进行上述各种情况潮流的计算及仿真。
1.3 节点设置及分析
由上述系统图可知,该系统图为双端供电网络。将母线1,2设为节点1,10,将变电所1、2、3、4的高低压侧分别设为节点2、3、4、5、6、7、8、9。并且,将节点1设为平衡节点,将节点10设为pv节点,其余节点设为pq节点。
1.4 参数求取
将参数整理如表
1、表2所示。
1.5 进行潮流计算
图2为仿真模型图。
从潮流计算的结果可得到,系统的各个节点电压的标幺值可归纳为表3。
由matlab编程调节后,可得到表4的发电厂电压和变压器分接头电压得标幺值。
在得到了上述调节后的电压标幺值,对电机模型和变压器模型进行更改。表5为调节前后各节点的电压标幺值。
由题意可知,变电所低压母线电压10kv要求调整范围在9.5-10.5之间;电压35kv要求调整范围在35-36之间。因此我们可以看出,经过调节后,节点3、5、7、9点电压已经满足了系统的要求。表6是电压调节前后对线路损耗进行分析的记录。
由表6的电压调节前后功率损耗对比,可以看出有功功率随着变压器分接头变比的增大而逐渐增大,使得变压器的低压侧的电压处于允许范围内,符合其要求。
表7为调节后的各支路电压首末端的功率整理表
表8为各节点功率s的标幺值。
1.6 对比
由上面的三种方法简单地比较,我们可以看出,在同一个电力系统中,用不同的方法进行潮流计算,所得到的结果是大致相同的。
第四代计算机语言Matlab其程序结构类似于其他计算机语言, 具有编程方便、程序效率高、扩充和可开发性能力强及语言简单等优点。除此之外, 更有一个其他语言不可替代的优势, 就是Matlab语言对各种各样领域均有领域专家编写的工具箱, 可以高效、可靠地解决各种各样的问题。所以自Matlab产生之日起, 就以其强大的功能和良好的开放性而在科学计算诸软件中独占鳌头。
水文中有大量的数据需要进行处理和分析, 参数优化、图形可视化、微分方程求解等在水文中也占有重要地位, 水文科研工作者一方面需要对水文的基本原理能够做到融会贯通, 另一方面还需要利用计算机来实现这些原理及方法, 充分利用Matlab的强大功能, 可以最低程度减少科研工作者对计算机语言的要求, 从而可以将主要精力放在对水文基本原理和方法的探索上。
本文对Matlab在水文统计、水质模型和水文预报等方面的应用进行了初步研究, 充分证明了Matlab在水文中的应用所具有的优势。
1应用Matlab求解水文统计问题
Matlab的统计工具箱 (Statistics Toolbox) 对概率论与数理统计中的常用随机变量的分布和数字特征与特征函数都以函数的形式直接给出, 使用时只要输入参数和数据就可以直接调用。此外, 蒙特卡罗模拟、协方差计算、假设检验、多元回归、统计图的绘制、马尔可夫链分析等, Matlab也都给出了相应的函数, 可以方便调用。还可以在统计工具箱的基础上进行编程计算, 下面就以皮尔逊 (K.Pearson) III线型参数优化中的应用说明Matlab的强大功能。
皮尔逊Ⅲ型曲线是一条一端有限一端无限的不对称单峰、正偏曲线, 数学上称为伽玛分布, 其概率密度函数为:
式中:Γ (α) 为α的伽玛函数;α、β、a0分别为皮尔逊Ⅲ型分布的形状、尺度和位置参数, α>0, β>0。
设某一随机变量X服从皮尔逊Ⅲ分布, 它的3个统计参数分别为均值x、离势系数cv和偏差系数cs。因总体未知, 故3个参数需要根据样本来估计, 通常采用与经验频率点配合最佳的皮尔逊Ⅲ型分布曲线所对应的3个参数的值。因此, “配合最佳”常作为确定统计参数的适线准则。
Matlab所提供的均值mean函数、方差var函数可以直接调用。Matlab所提供求随机变量的矩函数moment可以求随机变量的各阶矩, 利用这些函数可以求得皮尔逊Ⅲ分布的均值x、离势系数cv和偏差系数cs作为优化的初值。此外Matlab提供的求伽玛函数逆函数的gaminv可以用来求指定频率所对应的xP值。
Matlab提供的优化函数lsqcurvefit基于非线性最小二乘回归算法可以高效快捷地对参数进行优化计算。其优化准则如式 (4) 所示:
式中:xdata为自变量;ydata为因变量;m为样本长度;x为参数。
某枢纽处有实测的21年最大洪峰流量资料, 假设年最大洪峰流量资料符合皮尔逊Ⅲ型曲线, 根据该资料推求百年一遇的洪遇流量。为了求解该问题, 编写Matlab程序如下:
function F=myfun (x, xdata)
F=x (3) *gaminv ( (1-xdata) , 4/x (3) ^2, 1) /2-2/x (3) ;
F=x (1) * (1+F*x (2) ) ;
将myfun保存到Matlab当前工作目录下, 在Matlab工作窗口中输入原始数据和相应的频率, 应用文献[1]矩法求得的参数值作为优化初值, 调用lsqcurvefit进行参数优化, 源程序如下:
优化得到的参数为
2应用Matlab求解水质模型问题
Matlab虽然对水质模型没有提供特别的工具箱, 但是却可以利用Matlab的优化工具箱来求解水质模型中常遇的参数优化问题。下面就以Matlab求解河流纵向离散系数为例, 说明Matlab在水质模型中的应用。
河流水质参数是建立河流水质数学模型、进行水质预测预报、对河流水质科学管理和有效控制的重要依据。其中纵向离散系数是河流水质参数中最为重要的一个。目前, 分析一维河流水团示踪实验数据, 确定河流纵向离散系数的主要方法在求参过程中需要绘制曲线, 然后读出有关数据, 人为因素对计算结果的准确性产生一定的影响。这些方法在实际应用中都有其局限性[2]。Matlab优化工具箱提供的lsqcurvefit函数基于非线性最小二乘回归原理, 可以将其应用到水质模型的参数求解中。
在顺直、水流速度与横向断面面积都基本保持不变的均匀河段上, 进行一维水团示踪试验, 即在该河段上游瞬时投放质量为示踪剂, 取投放点的位置为空间坐标系的原点, 水流方向为轴, 则描述距投放点一定距离的下游河段中示踪剂浓度随时空变化规律的数学模型为:
式中:C为采样断面处理论示踪剂浓度;M为单位面积瞬时投放示踪剂的质量;DL为河流纵向离散系数;x为采样点距投放点的距离;t为时间;u为河流断面平均流速, 令:
将式 (6) ~式 (8) 代入式 (5) , 得到:
采用文献[3]中的原始数据, 编写Matlab程序求解河流纵向离散系数。源程序如下:
将dfun保存到Matlab当前工作目录下, 在Matlab工作窗口中输入原始数据, 应用文献[4]求得的数据作为优化初值, 调用lsqcurvefit进行参数优化, 源程序如下:
优化得到的参数为A=236.24, B=0.15, T=205.21, 这与文献[3]中求得的参数A=237.36, B=0.15, T=205.24非常接近, 但是使用Matlab编程更简单, 使用更方便。将A、B和T代入方程, 求得x=9.75 m/min, DL=158.4 m2/min。实测与计算示踪剂浓度曲线如图2所示。
3应用Matlab求解水文预报问题
马斯京根法 (简称马法) 是美国麦卡锡 (G.T.Mc Carthy) 于1938年在美国马斯京根河上使用的流量演算方法。马斯京根法的基本原理是以连续方程表示的水量平衡方程和以槽蓄方程代替的动量方程来描述的, 即:
式中:I和Q分别为研究河段的上游入流和下游出流;S为该河段内的蓄水量;k和X为参数。
式 (9) 和式 (10) 的差分解为:
式中:
将式 (11) 写为矩阵的形式, 同时将已知条件C2=1-C0-C1代入方程, 则可以将式 (11) 写成矩阵的形式, 从而可以利用最小二乘法进行求解[4]。
马斯京根法汇流参数估计, 所需的资料有洪水的河段入流和出流流量过程, 由于观测误差, 常导致河段入流资料产生大的“波动”, 也就是产生粗差[5]。将抗差理论引入水文预报中, 使粗差在参数估计中占有相对较小的权重, 从而可以最低程度地降低粗差对于参数估计的影响, 采用Huber研究的影响函数ρ (x) 代替残差平方和函数Q, ρ (x) 的形式如式 (14) 所示:
其中k为调和函数, 本文取k=1.345。最小二乘回归求得的参数值作为初值, 然后采用抗差最小二乘回归进行抗差计算, 迭代100次求得抗差最小二乘回归估计参数值。基于前面的分析, 采用文献[4]中的数据, 求解参数, Matlab源程序如下:
xdata为28*2的矩阵, 存放t+Δt和t时刻的入流数据, ydata为28*1的矩阵, 存放t+Δt减去t时刻的出流数据。最小二乘法求得的参数值为:C0=0.422 4, C1=0.108 6;抗差最小二乘求得的参数值为:C0=0.422, C1=0.115。实测与计算出流过程如图3所示。
4应用Matlab求解水文其他问题
马飞等采用Matlab统计工具箱中系统聚类分析法编程进行了京杭运河 (常州市区段) 水质监测断面的优化设置。分类结果直观, 优化计算过程体现了Matlab监测断面聚类分析程序简便、快速、可视化的优点[6]。孙东坡等提出了基于Matlab的两种地形高程插值方法, 并阐述了综合运用这两种插值方法制作库区三维数字地形图及误差分析方法。实例分析结果表明, 方法适合现状水库地形测量资料, 操作简单, 程序实现容易, 所得三维数字地形图可以满足工程上对水库冲淤分析计算的精度要求[7]。郑明平将Matlab应用于水库调洪计算中, 充分利用了Matlab可以方便地绘制二维图、一元函数图、空间曲线和曲面图等图像[8]。武亮和黄飞仁等将Matlab应用于求解水文中的频率计算、单复相关分析、瞬时单位线S曲线的计算和曲线插值中, 可大大提高工程设计人员的工作效率[9,10]。
综合上面的分析, 可以得出如下的结论:目前利用Matlab求解水文科学主要有以下4种途径。第一种是直接利用Matlab的函数, 如进行回归分析、主成分分析、方差计算等, 这些水文科学中常用的方法Matlab都给出了函数, 可以直接调用;第二种是利用Matlab所提供的工具箱求解水文科学常遇的问题, 如人工神经网络工具箱、优化工具箱、统计工具箱、模糊逻辑工具箱等, 这些工具箱使用方便, 而且可以根据问题的性质修改参数, 还可以在工具箱的基础上编程计算;第三种是基于Matlab自带的函数进行编程, 从而可以方便地求解水文科学问题, Matlab有许多自带函数, 充分利用这些函数进行编程, 可以大大缩短程序的长度, 而且减少编程所需的时间;第四种是利用Matlab可以生成com组件的功能, 将Matlab和其他编程语言结合起来编程求解水文科学问题, 从而可以大大减少其他语言编程的难度, 同时可以脱离Matlab的编程环境, 这将是今后水文学科中应用Matlab的一个重要方面。
5结语
Matlab以其强大的功能, 自产生之日起, 就引起了极大的注意, 将Matlab引入水文学科中, 进行Matlab的应用研究, 具有巨大的潜力。Matlab基于矩阵计算, 可以大大减少编程难度和缩短编程时间。以Matlab求解水文统计、水质模型和水文预报常遇的问题为例, 说明了Matlab在水文科学中应用的巨大潜力, 最后对Matlab在水文学科其他方面的应用进行了综述并且对Matlab在水文学科中的应用进行了展望。
摘要:第四代计算机语言Matlab具有编程方便、程序执行效率高、容易扩充和可开发性能力强及语言简单等优点, 而且有专业的工具箱可以方便调用, 在越来越多的学科中得到了应用。水文学科中有大量的数据需要进行处理、计算和分析, 模型参数优化、数据统计计算、结果图形可视化、微分和偏微分方程求解等在水文学科中都占有重要地位。将Matlab应用于水文统计P-III型曲线参数优化、水质模型河流纵向离散系数参数优化和水文预报马斯京根法河道汇流参数优化, 优化结果与已有成果相比, 精度更高, 而且应用Matlab求解更方便, 缩短了工作日程和减少了工作量, 程序具有通用性的特点, 说明了Matlab在水文学科中应用的强大生命力。
关键词:Matlab,水文,参数优化
参考文献
[1]詹道江, 叶守泽.工程水文学[M].北京:中国水利水电出版社, 2000.
[2]张娟娟, 万伟锋.确定河流纵向离散系数的快速SA法[J].地下水, 2005, 27 (5) .
[3]张江山.示踪实验确定河流纵向离散系数的单纯形加速法[J].环境科学, 1994, 15 (4) .
[4]何惠, 张建云.马斯京根法参数的一种数学估计方法[J].水文, 1998, (5) .
[5]包为民, 林跃, 黄贤庆, 等.水库入库河段洪水汇流参数抗差估计研究[J].武汉大学学报 (工学版) , 2004, 37 (6) .
[6]马飞, 蒋莉.基于Matlab的水质监测断面优化设置研究[J].内蒙古环境保护, 2006, 18 (3) .
[7]孙东坡, 廖小龙, 王鹏涛, 等.基于MATLAB三维数字地形图在库区冲淤分析中的应用[J].武汉大学学报 (工学版) , 2006, 39, (3) .
[8]郑明平.Matlab在调洪计算中的应用[J].东北水利水电, 2003, 21 (10) .
[9]武亮.Matlab在工程水文中的应用[J].云南水力发电, 2002, 18 (3) .
关键词光学Matlab虚拟实验杨氏双缝干涉
O1-4;G434
1、引言
近年来,随着教育的发展,学生规模不断扩大,使得高校的实验教学设施面临着严重的挑战;而另一方面,光学作为一门基础学科,如果只是推导理论公式,没有实验演示的话,难以引起学生的兴趣。基于数值技术或虚拟仿真技术开发实验演示软件是扩大实验教学规模和提高教学质量、教学效率的有效途径,是目前高校教育现代化的发展趋势。
Matlab是美国MathWorks公司开发的一款商业数学软件。Matlab具有友好的用户界面及接近数学表达式的自然化语言,因而相比C、Fortran等语言,更方便与初学者入门。在光学课程教学时,使用Matlab等软件编写实验仿真软件,将抽象的概念经仿真实验过程直观的展示出来,有助于提高学生的学习兴趣;并且利用计算机的高速运算能力,可以实现仿真实验参数的反复、快速的调整,大大提高实验效率。
杨氏双缝干涉是物理学中最重要最基本的实验之一,在物理光学以及原子物理中有着广泛的应用。本文拟使用Matlab软件实现杨氏双缝干涉实验的仿真,使学生能够直观地学习双缝干涉现象及干涉理论。
2、杨氏双缝干涉相关基础理论
杨氏双缝干涉实验的原理如图1(a)所示,图中双缝间距为d,双缝所在平面与观察屏平行,二者间距为D。屏上O点到两个狭缝的距离相等。当两个狭缝发出的光在屏上相遇时,会发生干涉现象,屏幕上可观测到干涉条纹。双缝到达观察屏上P点的光程差满足
由光程差导致的相位差为 (2)。
假设两个光波在P点的振幅都等于A=1,则两列光干涉叠加后P点的光强为:
(3)。
3.仿真过程及结果
基于上述原理分析,主程序编写如下:
lamda = 632.8e-9;d = 2e-3;D = 1; % 设置波长,双缝间距,双缝与屏的距离
xm = 5*lamda*D/d; %设屏上观测点离中心最大距离
x = linspace(-xm,xm,101); % 屏上取101个预测点
phi=2*pi*(d*x./D)/lamda; % 计算相位差
I = 4*(cos(phi/2)).^2; % 根据相位差计算光强分布
subplot(211);plot(x*1000,I);title('干涉光强');axis([-xm*1000 xm*1000 0 4]);
B = I*255/4; % 定標取255个级别,使I/4对应最亮
subplot(212);image(x*1000,xm*1000,B);title('干涉图样');%以图案表示干涉条纹
图1(b)为双缝干涉的光强分布及干涉条纹的仿真结果,在平面波入射时可以观察到等间距的平行直条纹。由理论分析可知,双缝间距d,双缝与接收屏的距离D,波长 将影响干涉条纹的分布。可以让学生改变参数,并观察这些参数对干涉条纹的影响。
4课外拓展
在掌握上述内容后可以引导学生做些拓展实验,提高动手能力和创新能力。近来,涡旋光受到研究人员的广泛关注。涡旋光在粒子囚禁、量子信息处理等领域都有潜在的应用价值。涡旋光具有exp(imφ)的相位因子,其中φ为光束截面上的方位角,m为拓扑荷数。当涡旋光入射双缝时,S1和S2之间具有一个附加的相位差△φ=φ1(y1)-φ2(y1),其中φ1和φ2分别表示双缝S1和S2处的相位。则观察屏上的干涉光强分布可以表示为 。假设涡旋光的相位奇点落在双缝中心,联立(1,2)式可得
(6)。
由(6)式可知,涡旋光束经双缝干涉的光强分布不仅与x坐标有关,而且与y坐标有关。
下面以m=1的涡旋光的双缝干涉为例,编写程序如下:
lambda = 632.8e-9;d = 2e-3;D = 1;xm = 5*lambda*D/d; x = linspace(-xm,xm,500);
phi=2*pi*(d*x./D)/lambda; % 计算相位差
N=500;M=500;y= linspace(-8*d,8*d,N);x= linspace(-5*d,5*d,M); I=zeros(M,N); %设置采样点
phi1=pi/2-asin(y./sqrt(y.^2+d^2));phi2=3*pi/2+2*asin(y./sqrt(y.^2+d^2));
phi3=phi1-phi2; %计算附加相位差
for n=1:M
for m=1:M
I(m,n) = 4*(cos(phi(m)/2+phi3(n)/2))^2;
end
end
imshow(mat2gray(I'));
5结论
本文使用Matlab软件编程对杨氏双缝干涉实验进行仿真,直观地展示双缝干涉现象。此外,还把常规的平面波的杨氏双缝干涉现象拓展到涡旋光的杨氏双缝干涉。这种课程教学与科研前沿的结合,有助于提高学生的学习兴趣,增强学生的动手和独立思考能力,从而提高教学质量。
参考文献
[1] 姚启均. 光学教程[M] . 北京: 高等教育出版社, 2002.
[2] 徐金明. MA T L A B实用教程[M] . 北京: 清华大学出版社, 2005.
[3] Alison M. Yao, Miles J. Padgett, Orbital angular momentum: origins, behavior and applications [J]. Advances in Optics & Photonics, 2011, 3(2):161-204.
基于MATLAB的PID 控制器设计
一、PID控制简介
PID控制是最早发展起来的经典控制策略, 是用于过程控制最有效的策略之一。由于其原理简单、技术成,在实际应用中较易于整定, 在工业控制中得到了广泛的应用。它最大的优点是不需了解被控对象精确的数学模型,只需在线根据系统误差及误差的变化率等简单参数, 经过经验进行调节器参数在线整定, 即可取得满意的结果, 具有很大的适应性和灵活性。
积分作用:可以减少稳态误差, 但另一方面也容易导致积分饱和, 使系统的超调量增大。
微分作用:可提高系统的响应速度, 但其对高频干扰特别敏感, 甚至会导致系统失稳。
所以, 正确计算控制器的参数, 有效合理地实现 PID控制器的设计,对于PID 控制器在过程控制中的广泛应用具有重要的理论和现实意义。
在PID控制系统中, PID控制器分别对误差信号e(t)进行比例、积分与微分运算, 其结果的加权和构成系统的控制信号u(t),送给对象模型加以控制。PID控制器的数学描述为
其传递函数可表示为:
从根本上讲, 设计PID控制器也就是确定其比例系数Kp、积分系数T i 和微分系数T d , 这三个系数取值的不同, 决定了比例、积分和微分作用的强弱。控制系统的整定就是在控制系统的结构已经确定、控制仪表和控制对象等处在正常状态的情况下, 适当选择控制器参数使控制仪表的特性和控制对象的特性相配合, 从而使控制系统的运行达到最佳状态, 取得最好的控制效果。
二、MATLAB的 Ziegler-Nichols算法PID控制器设计。
1、PID控制器的Ziegler-Nichols参数整定
在实际的过程控制系统中, 有大量的对象模型可以近似地由一阶模型
K-sLG(s)e来表示。这个对象模型可以表示为
1sT如果不能建立起系统的物理模型, 可通过试验测取对象模型的阶跃响应, 从而得到模型参数。当然, 我们也可在已知对象模型的情况下, 利用MATLAB,通过使用step()函数得到对象模型的开环阶跃响应曲线。在被控对象的阶跃响应中, 可获取K、L 和 T参数, 也可在MATLAB中由 dcgain()函数求取 K值。
2.在 MATLAB下实现PID 控制器的设计与仿真
已知被控对象的K、L 和T 值后, 我们可以根据Ziegler — Nichols整定公式编写一 个MATLAB函数ziegler_std()用以设计PID控制器。该函数程序如下:
function [num,den,Kp,Ti,Td,H]=Ziegler_std(key,vars)Ti=[ ];Td=[ ];H=[ ];K=vars(1);L=vars(2);T=vars(3);a=K*L/T;if key==1
num=1/a;
%判断设计P 控制器
elseif key==2
Kp=0.9/a;Ti=3.33*L;
%判断设计PI 控制器
elseif key==3,Kp=1.2/a;Ti=2*L;Td=L/2;
%判断设计PID控制器 end
switch key
case 1 num=Kp;den=1;
% P控制器
case 2 num=Kp*[Ti,1];den=[Ti,0];
% PI控制器
case 3
% PID控制器 p0=[Ti*Td,0,0];p1=[0,Ti,1];p2=[0,0,1];p3=p0+p1+p2;p4=Kp*p3;num=p4/Ti;den=[1,0];
end
由图可知L和T 令KL。在求得L 和α参数的情况下, 我们可通过表1中给出的Ziegler T— Nichols经验公式确定 P、PI 和PID控制器的参数。
三、对某传递函数G(s)1(s1)3的控制
未加控制器的仿真: Simulink下的系统图
仿真输出图形如下:
第一次测量
KLT=3.28 L=1.38 K=1 =0.42
TP控制
Kp=1=2.38 Simulink下的系统图
仿真输出图形如下:
峰值时间tp=4.15s,峰值为0.9518 上升时间td=2.953s 调节时间ts=14.4s
PI控制
Kp=0.9=2.14
Ti=3.33L=4.60
Simulink下的系统图:
仿真后的输出曲线为:
峰值时间tp=4.48s,峰值1.019s 上升时间td=3.783s 调节时间ts=25.486s PID控制
LKp==2.85 Ti=2L=2.76 Td==0.69 2Simulink下的系统图 1.2
仿真后的输出曲线为:
峰值时间tp=4.028s峰值1.077 上升时间td=3.565s 调节时间ts=28.50s
第二次测量
KLT=3.51 L=1.23 k=1 =0.35
TP控制, Kp=1=2.86 Simulink下的系统图:
仿真后的输出曲线为:
峰值时间tp=3.685s峰值1.025 上升时间td=2.834s 调节时间ts=25.70s PI控制图如下:
Kp=0.9=2.57
Ti=3.33L=4.10
Simulink下的系统图:
仿真后的输出曲线为:
峰值时间tp=4.197s峰值1.104 上升时间td=3.324s 调节时间ts=27.06s PID控制
Kp=1.2=2.757
Ti=2L=0.262 Td=L=0.0655 2Simulink下的系统图
仿真后的输出曲线为:
峰值时间tp=4.002s峰值1.169 上升时间td=3.023s 调节时间ts=22.26s
四、控制方案的选择:对于开环传递函数为G(s)1(s1)3的系统,经过两次测量,并分别进行P,PI,PID控制发现比例P控制有较好的动态和稳态性能指标。取两次测量平均值K=1,L=1.305,T=3.40,则KL=0.383 T
五、由实验过程和仿真结果对P、PI、PID控制的优劣性比较 比例(P)控制
单独的比例控制也称“有差控制”,输出的变化与输入控制器的偏差成比例关系,偏差越大输出越大。实际应用中,比例度的大小应视具体情况而定,比例度太大,控制作用太弱,不利于系统克服扰动,余差太大,控制质量差,也没有什么控制作用;比例度太小,控制作用太强,容易导致系统的稳定性变差,引发振荡。
对于反应灵敏、放大能力强的被控对象,为提高系统的稳定性,应当使比例度稍大些;而对于反应迟钝,放大能力又较弱的被控对象,比例度可选小一些,以提高整个系统的灵敏度,也可以相应减小余差。
单纯的比例控制适用于扰动不大,滞后较小,负荷变化小,要求不高,允许有一定余差存在的场合。工业生产中比例控制规律使用较为普遍。比例积分(PI)控制
比例控制规律是基本控制规律中最基本的、应用最普遍的一种,其最大优点就是控制及时、迅速。只要有偏差产生,控制器立即产生控制作用。但是,不能最终消除余差的缺点限制了它的单独使用。克服余差的办法是在比例控制的基础上加上积分控制作用。
积分控制器的输出与输入偏差对时间的积分成正比。这里的“积分”指的是“积累”的意思。积分控制器的输出不仅与输入偏差的大小有关,而且还与偏差存在的时间有关。只要偏差存在,输出就会不断累积(输出值越来越大或越来越小),一直到偏差为零,累积才会停止。所以,积分控制可以消除余差。积分控制规律又称无差控制规律。
积分时间的大小表征了积分控制作用的强弱。积分时间越小,控制作用越强;反之,控制作用越弱。
积分控制虽然能消除余差,但它存在着控制不及时的缺点。因为积分输出的累积是渐进的,其产生的控制作用总是落后于偏差的变化,不能及时有效地克服干扰的影响,难以使控制系统稳定下来。所以,实用中一般不单独使用积分控制,而是和比例控制作用结合起来,构成比例积分控制。这样取二者之长,互相弥补,既有比例控制作用的迅速及时,又有积分控制作用消除余差的能力。因此,比例积分控制可以实现较为理想的过程控制。
比例积分控制器是目前应用最为广泛的一种控制器,多用于工业生产中液位、压力、流量等控制系统。由于引入积分作用能消除余差,弥补了纯比例控制的缺陷,获得较好的控制质量。但是积分作用的引入,会使系统稳定性变差。对于有较大惯性滞后的控制系统,要尽量避免使用。比例积分微分(PID)控制
最为理想的控制当属比例-积分-微分控制规律。它集三者之长:既有比例作用的及时迅速,又有积分作用的消除余差能力,还有微分作用的超前控制功能。
当偏差阶跃出现时,微分立即大幅度动作,抑制偏差的这种跃变;比例也同时起消除偏差的作用,使偏差幅度减小,由于比例作用是持久和起主要作用的控制规律,因此可使系统比较稳定;而积分作用慢慢把余差克服掉。只要三个作用的控制参数选择得当,便可充分发挥三种控制规律的优点,得到较为理想的控制效果。
PID控制中的积分作用可以减少稳态误差, 但另一方面也容易导致积分饱和, 使系统的超调量增大。
六、参考文献
张德丰编著、MATLAB控制系统设计与仿真、电子工业出版社、2009.6 胡寿松主编、自动控制原理(第五版)、科学出版社、2007
七、心得体会
我觉得学习MATLAB是不容易的,这是一件需要持之以恒的事,必须要坚持不懈的学习,还需要敢于开口向别人请教,更需要我们勤于思考,勤于动手,勤于记忆。程序设计是实践性很强的事情,需要我们亲自动手实际操作设计程序,熟悉MATLAB的操作环境,这对提高我们操作能力非常有效。
matlab存储变量在一块内存区域中,该区域成为基本工作空间。脚本文件和命令行创建的变量都存储在基本工作空间里面(workspace),函数不使用基本工作空间,每个函数都有自己的函数空间。
下面是函数与工作空间共享数据的方法:
1、使用global,将变量声明为全局变量
2、使用evalin和assignin(常用方法)evalin:在函数M文件中访问工作空间中的变量
[a1,a2,…] = evalin(ws,expression)说明:在工作空间ws中执行expression命令或表达式,并将执行的结果保存在变量[a1,a2]中 例:
v = evalin(’base’,’var’);%把基本工作空间中的变量var的值赋值给局部变量。
v = evalin(’base’,’var’);%查询基本工作空间中的变量名称
assignin:将函数M文件中的变量的值传给指定的工作空间中的变量
assignin(ws,’var’,val);说明:将变量val的值赋给工作空间ws中的变量var,如果变量var在工作空间中不存在,则创建该变量。例:
摘要:文章通过MATLAB强大的图像可视化功能,针对现阶段高中数学教学中存在的缺陷,重点分析了MATLAB在二次曲线教学过程中的作用,并进行了案例分析。从而表明,将MATLAB用于二次曲线绘图,有利于学生更好的掌握和理解知识点,有效地提高教学质量。
关键词:MATLAB;二次曲线;教学案例
一、引言
在高中数学中利用图形对数学教学具有很重要的地位。随着高中数学教学改革,对于一些复杂的图形或者教学任务,教师很难短时间内通过粉笔在黑板上进行作图、证明和解题。传统的教学方式,早已使学生感到枯燥乏味了。MATLAB的出现,使教师能够更好地运用现代数学软件,从多方面、多角度来解决教学中的重、难点,开阔学生的视野,开发学生的思维,使老师成为知识的传授者,能够在新型教学工具的辅助下,为学生讲述更加精细的理论和更为精准的图像结构。高中数学中圆锥曲线中最值和定值(定点)问题、求参数范围问题和存在与对称性问题是学习过程中的难点。本文中我们尝试将 MATLAB软件以高中数学中的圆锥曲线为应用背景,应用 MATLAB软件的相关函数绘制图像,实现数学公式的可视化。
二、MATLAB及其特点
MATLAB(矩阵实验室)是美国 Mathworks 公司推出的商业数学软件,主要用于算法开发、图像可视化、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,具有优异的数值计算能力和卓越的可视化能力,是当今国际上公认的科技领域方面最为优秀的应用软件和开发环境。同时,MATLAB提供了丰富的绘图函数,能够快速高效地画出各类图形,使得高中数学中的抽象概念变得直观形象,容易理解,成为课堂教学中的一个有效工具。
三、MATLAB在二次曲线教学中的应用
椭圆、双曲线、抛物线统称为圆锥曲线。从点的集合(或轨迹)来看,它们都是与定点和定直线的距离之比为常数 的点的集合(或轨迹),这个定点是它们的焦点,定直线是它们的准线,只是由于离散率 的取值范围不同,而分为椭圆、双曲线、抛物线三种曲线。
3.1 椭圆z
椭圆的定义为平面内与两定点 的距离之和等于常数(大于 )的点的轨迹,其标准方程:
其中 为椭圆的长半轴长, 为短半轴长, 为半焦距长,椭圆的离心率 根据不同的离心率 值,如表(1)所示,可以应用MATLAB软件绘制出不同的椭圆曲线,如图 1 所示。
从图中可以看出,椭圆是一个封闭图形,对称中心为原点,有两条对称轴和四个顶点,离心率 e 值决定了椭圆形状的扁平程度,离心率 e 越大,椭圆形状越扁。
3.2双曲线
双曲线的定义为平面内与两个定点 的距离的差的绝对值等于常数(小于 且大于零)的点的轨迹,其标准方程:
其中 为双曲线的实半轴长, 为虚半轴长, 为半焦距长,双曲线的离心率 根据不同的离心率 值,如表(2)所示,可以应用 MATLAB软件绘制出不同的双曲线,如图 2 所示。
从图中可以看出,双曲线无限延展且有渐近线,对称中心为原点,有两条对称轴和两个顶点,离心率 e 值决定了双曲线形状的开口大小,离心率 e 越大,双曲线形状开口也越大。
3.3 抛物线
抛物线的定义为平面内与一个定点 和一条定直线 的距离相等的点的轨迹,其标准方程:
其中, 为抛物线的焦准距,抛物线的离心率 。根据不同的焦准距 值,如表(3)所示,可以应用 MATLAB软件绘制出不同的抛物线,如图 3 所示。
从图中可以看出,抛物线无限延展没有渐近线,无对称中心,只有一条对称轴和一个顶点,焦准距 P 值决定了抛物线形状的开口大小,焦准距 P 越大,抛物线形状开口也越大。
四、结论
MATLAB软件在中学数学中的应用远不止这些,通过本文的分析实例可以看出,适当引入 MATLAB 辅助教学,可以使数学内容更加生动形象,它将有助于数学概念的深化,能将数学中比较复杂的变化规律,直观地展现在学生面前,这都将大大地提高课堂的学习效率。因此,研究 MATLAB软件在相关课程的教学应用显得尤为重要,也必将在开拓设计思路、激发学生兴趣、突破教学难点等方面发挥其独特作用。
参考文献:
[1] 易昆南,李慧,赵澍源.让枯燥无味的数学变得"有趣、有味、有惑 "—MATLAB中的音乐合成[J].实验室研究与探索,2014,33(06):114-117.
[2] 郭湘军,周尧,吴书新.MATLAB 在电子信息专业课程教学中的主要应用 [J].电子技术与软件工程,2014,35(03):l36.
[3] 吴琼.高中数学教师专业知识与教学能力关系的研究 [D].东北师范大学,2013.
[4] 黄宇.MATLAB 在高中函数教学中的应用研究[D].宁夏大学,2013.
[5] 余娟.MATLAB在高中数学回归分析中的应用[J].软件导刊(教育技术),2008.5:84-86.
作为一门学科,数字图像处理(Digital Image processing)约于20世纪60年代初期形成,是一门用计算机对图像信息进行处理的技术,是依靠计算机对图像进行各种处理的技术和方法。早期,图像处理主要是以人为对象,通过改善图像的质量来改善人的视觉效果。整个过程,是输入低质量的图像,通过常用的图像处理技术,如复原、编码、压缩、增强等,最终输出则是改善后的图像。近来,数字图像处理技术随着计算机性能的不断提升,被广泛应用和普及,涉及医学、工业检测、遥感探测、工业自动化等行业。
图像处理流程可分为三个阶段:获取原始图像后的预处理、抽取图像特征、识别分析[1,2]。图像预处理(也叫图像增强)阶段在这三个阶段中尤为重要,此阶段的处理方式直接决定了项目能否顺利开展。图像预处理,是通过对图像的边缘、轮廓、对比度等特征进行强调或尖锐化等操作,从而便于对其显示、观察或进一步地分析及处理,整个过程不增加图像数据的相关信息,仅增加所选择特征的动态范围[3]。具体方法有直方图修改处理、图像平滑处理和图像锐化处理等,生产应用时,可选择其中一到多种。
本文将对基于MATLAB的图像增强处理与应用进行研究和论述。
1 MATLAB简介
MATLAB(Matrix Laboratory),最初在70年代末,由Cledv Moler博士在其矩阵理论和数据分析等课程时编写的Linkpack与Eispack软件包构成,Math Works公司在1982年正式公布。作为一种简单、高效、功能强大的高级语言,MATLAB广泛应用在科学和工程领域中,并拥有良好的前景。MAT-LAB图像处理工具包,在数字图像处理方面是由一系列支持图像处理操作的函数组成。按其功能可分为如下类别:图像文件输入与输出、图像显示、几何操作、像素值统计、图像识别及增强、图像滤波及变换、领域和块操作、一值图像操作、图像格式转换、颜色映射和样色空间转换等[4]。将MATLAB应用在图像增强时,有以下几方面优势:一是语法规则具有通用性,简单易学;二是拥有强大、有效的矩阵和数组运算功能;三是编程语言简洁灵活,程序书写形式自由,且库函数十分丰富,调用灵活;四是提供了图像处理、小波处理、数字信号处理等功能强大的各类工具箱;五是绘图功能方便易用;六是继承了各种变换函数,方便易用,且使源程序简洁和易实现。七是与Visual C++有良好的接口。
2 MATLAB在图像增强中的应用
获取原始图像的过程,不可避免会受到光照、移动、噪声等因素的影响,从而导致图像质量不高,细节方面很难把握,甚至难以识别概貌。因而,在对图像进行分析前,对图像质量进行改善是十分需要的。图像增强切合了这个需要,它只是选择性突出图像中需要的特征,衰减甚至抹掉不需要的特征,从而提升图像当前需求的可利用度。
2.1 MATLAB实现灰度直方图
从随机过程理论角度出发,图像可作为一个随机场,相应的它具有随机场的统计特征,其中最重要的特征就是灰度密度,而灰度密度函数与像素所在的位置直接相关。[5]图像的各灰度值统计特性与图像灰度值可用直方图来进行函数表示,各个灰度级出现在一副图像中的次数或概率可以通过直方图来进行有效的统计。直方图,在表现形式上是一个二维图,其横坐标方面代表图像中所有可能出现的灰度级,纵坐标代表各个灰度级所对应的图像中像素点出现的频次。任何一幅图像的直方图,都可以很直观地描述一副图像的灰度级内容,因此含有丰富的信息。MATLAB图像处理工具箱提供了imhist函数来计算和显示图像的直方图。
imhist函数语法为:imhist(gray_img,n),imhis(gray_img,n),其中的n是指定的灰度级数目,默认值为256。对一副图像进行直方图运算,如图一所示,程序见下:
img=imread(‘E:matlabwater.jpg’);%读入E盘matlab文件夹内的名为water的图像
figure;imshow(img);%显示彩色图像,如图一(a)所示
gray_img=rgb2gray(img);%转换为灰度图像
figure;imshow(gray_img)%显示灰度图像,如图一(b)所示
figure;imhist(gray_img)%显示灰度图像直方图,如图一(c)所示
2.2 直方图均衡化
直方图均衡化,就是通过将原始图像的直方图转换为均匀分布的形态,从而提升图像灰度值的动态范围,以达到增强图像整体对比度的效果。MATLAB图像处理工具箱提供了histeq函数用以在夜间图像的直方图均匀化。本文现将图一(a)的原始图像采用MATLAB手段进行直方图均衡化处理,观察处理后的直方图的变化。其具体程序如下:
img=imread(‘E:matlabwater.jpg’);%读入E盘matlab文件夹内的名为water的图像
gray_img=rgb2gray(img);%转换为灰度图像
figure;histeq(gray_img)%显示均衡化后的图像,如图二(a)所示
figure;imhist(histeq(gray_img))%显示均衡化后的图像直方图,如图二(b)所示
对比图一(a)和图二(a)可以发现,在原始图像中很多看不清楚的细节在直方图均衡化处理后变得十分清晰,在每个灰度级上图像都有像素点,经过均衡化处理后的图像直方图分布更均匀。
2.3 MATLAB实现图像的平滑滤波
图像获取过程中时常会产生噪声。噪声不仅限于人眼所见的失真,有些噪声只针对某些具体的图像处理过程产生影响。针对图像噪声,通过图像平滑操作可以有效地消除噪声。图像平滑主要有空域法和频域法两种方法。在空域法中,图像平滑的常用方法就是采用均值滤波或中值滤波。均值滤波是一种线性空间滤波,它用一个有奇数点的掩模在图像上滑动,将掩模中心对应的像素点的灰度值用掩模内所有像素点灰度的平均值代替。中值滤波是一种非线性空间滤波,其与均值滤波的区别是掩模中心对应像素点的灰度值用掩模内所有像素点灰度值的中间值代替。
MATLAB的图像处理工具箱设计了许多滤波器,如均值滤波器、中值滤波器等。MATLAB中用滤波器消除图像噪声的程序如下:
b=imnoise(a,’gaussian’,0,0.02);%加入高斯噪声
c=filter2(fspecial(‘average’,[3,3]),b)/255;%用3*3的平均掩模对加入高斯噪声的图像进行均值滤波
d=medfilt2(b,[3,3]);%用3*3的掩模对加入高斯噪声的图像进行中值滤波
e=wiener2(b,[5,5]);%进行维纳滤波
对此项操作,本文不进行举例论述。
2.4 MATLAB实现图像的锐化
为了减少图像平滑过程中图像边界、轮廓模糊的不利影响,可使用图像锐化技术使图像的边缘变得清晰。经过平滑的图像变得模糊的根本原因是图像受到了平均或积分运算,要清晰化图像的边缘、轮廓线以及细节,可以对其进行逆运算。从频域来考虑,图像模糊的实质是因为其高频分量被衰减,因此可以通过高通滤波器来使图像清晰。图像锐化广泛地应用在数字印刷设计、军事系统、图像扫描、医学成像等领域。
MATLAB中可以采用拉普拉斯算子法对图像进行锐化,其程序语言如下:
i=double(i);%将图像矩阵转化为double类型
0 1 0];%拉式算子模板表示
j=conv2(i,h,‘same’);%用拉式算子对图像滤波
k=i-j;%增强图像为原始图像减去拉式算子滤波的图像
在此,本文不对此技术进行图像例证,图像锐化可使图像模糊的边缘部分得到增强,边界更加明显,但是图像显示清楚的地方,经过滤波发生了失真,也是拉氏算子增强的一大缺点。[6]
3 结束语
在对数字图像进行增强处理时,MATLAB有编程简单、处理速度快的优势。本文通过实例分析,重点介绍了利用MATLAB图像处理工具箱对图像进行对比度增强、直方图均衡化、平滑滤波、锐化等操作。
摘要:本文对数字图像增强技术中的基于MATLAB实现图像的对比度增强、直方图均衡化、平滑滤波、锐化等操作进行了讨论,同时给出了运用MATLAB进行图像处理的前后对照图像。
关键词:MATLAB,图像增强,图像处理
参考文献
[1]冯安,王希常.MATLAB在数字图像增强中的应用[J].信息技术,2007,(05):65-68,73.
[2]王斌.MATLAB实现数字图像增强处理[J].佳木斯大学学报(自然科学版),2005,23(01):31-34.
[3]孙兆林.MATLAB6.X图像处理[M].北京:清华大学出版社,2002.
[4]求是科技.MATLAB7.0从入门到精通[M].北京:人民邮电出版社,2009.
[5]徐辉.基于matlab的图像增强技术的分析与研究[J].湖北第二师范学院学报,2008,25(08):77-79.
特殊函数与图形
一、实验目的及意义
掌握用Matlab软件绘制简单曲线、曲面图形,并通过绘制一些特殊函数的图形,更加深入地理解相关函数的性质,了解函数的性态。
二、实验内容
平面作图、空间作图,比较数值作图与符号作图的异同。
三、实验步骤
1.在D盘建立一个自己的文件夹;
2.开启软件平台——MATLAB,将你建立的文件夹加入到MATLAB的搜索路径中。
3.4.5.6.7.利用帮助了解函数plot, surf, ezmesh,ezsurf等的功能和用法。
开启MATLAB编辑窗口,键入你编写的M文件(命令文件或函数文件);
保存文件(注意将文件存入你自己的文件夹)并运行;
若出现错误,修改、运行直到输出正确结果;
写出实验报告,并浅谈学习心得体会。
四、实验要求与任务
根据实验内容和步骤,完成以下具体实验,按要求写出实验报告。1.作出下图所示的三维图形:
图1 提示:图形为圆环面和球面的组合.2.作出下图所示的墨西哥帽子及其剪裁图形:
图2
3.画出椭球面、双叶双曲面、单叶双曲面.
4.若要求田螺线的一条轴截面的曲边是一条抛物线:y0时x25z.试重新设计田螺线的参数方程,并画出该田螺线.
5.作出下图所示的马鞍面(颜色为灰色,并有一个标题:“马鞍面”):
函数名 功能描述 增加一条搜索路径 addpath doc help 装入超文本文档 启动联机帮助
函数名 rmpath version what which
功能描述
删除一条搜索路径 列出.M文件
显示Matlab的版本号 列出当前目录下的有关文件 造出函数与文件所在的目录 demo 运行Matlab演示程序 type lasterr 显示最后一条信息 lookfor 搜索关键词的帮助 path
显示Matlab的新特性 whatsnew 设置或查询Matlab路径
附录1.2管理变量与工作空间用命令
函数名 功能描述 disp 显示矩阵与文本 查询向量的维数 length load 从文件中装入数据
函数名 save size
功能描述
整理工作空间内存 将工作空间中的变量存盘 查询矩阵的维数 clear 删除内存中的变量与函数 pack
列出工作空间中的变量名 who,whos
附录1.3文件与操作系统处理命令
函数名 功能描述 cd 改变当前工作目录
删除文件 delete dir!列出当前目录的内容 执行操作系统命令
函数名 edit
功能描述 编辑.M文件 获得系统的缓存目录
获得Matlab的安装根目录 matlabroot
获得一个缓存(temp)文件 tempname diary 将Matlab运行命令存盘 tempdir
附录1.4窗口控制命令
函数名 功能描述 设置输出格式 format
函数名 功能描述
echo 显示文件中的Matlab中的命令 more 控制命令窗口的输出页面
附录1.5启动与退出命令
函数名
功能描述
函数名 功能描述 quit 退出Matlab环境
启动主程序 matlabrc startup Matlab自启动程序
附录2 运算符号与特殊字符附录 2.1运算符号与特殊字符
函数名 功能描述 +-* 加 减 矩阵乘
函数名 功能描述...,;
续行标志
分行符(该行结果不显示)分行符(该行结果显示).* ^.^ /../ :()[] {}..xor 向量乘 矩阵乘方 向量乘方 矩阵左除 矩阵右除 向量左除 向量右除
向量生成或子阵提取 下标运算或参数定义 矩阵生成
结构字段获取符 逻辑运算之异成
%!.= == ~= < <= > >= & |
注释标志
操作系统命令提示符 矩阵转置 向量转置 赋值运算 关系运算之相等 关系运算之不等 关系运算之小于 关系运算之小于等于 关系运算之大于 关系运算之大于等于 逻辑运算之与 逻辑运算之或 逻辑运算之非 kron 矩阵kron积
点乘运算,常与其他运算符联合使用(如.)~
附录2.2逻辑函数
函数名 功能描述 all any 测试向量中是否有真元素 exist 检验变量或文件是否定义 find 查找非零元素的下标
函数名 *isa logical
功能描述
检测对象是否为某一个类的对象 将数字量转化为逻辑量 测试向量中所用元素是否为真 is*(一类函数)检测向量状态.其中*表示一个确定的函数(isinf)
附录3 语言结构与调试 附录3.1编程语言
函数名 功能描述
builtin 执行Matlab内建的函数 eval feval 执行字符串指定的文件
函数名 功能描述 global 定义全局变量
script Matlab语句及文件信息
执行Matlab语句构成的字符串 函数输入输出参数个数检验 nargchk Matlab函数定义关键词 function
附录3.2控制流程
函数名 功能描述
break 中断循环执行的语句 else 与if一起使用的转移语句 elseif 与if一起使用的转移语句 end 结束控制语句块 error 显示错误信息 for 循环语句
函数名 if return switch while
功能描述 条件转移语句 返回调用函数
与case结合实现多路转移 循环语句
多路转移中的缺省执行部分 case 与switch结合实现多路转移 otherwise
warning 显示警告信息
附录3.3交互输入
函数名 input
功能描述 请求输入
函数名 功能描述 menu 菜单生成
启动键盘管理 暂停执行 keyboard pause
附录3.4面向对象编程
函数名 class
功能描述 生成对象
函数名 isa
功能描述
判断对象是否属于某一类 转换成8字节的无符号整数
建立类的层次关系 double 转换成双精度型 superiorto 建立类的层次关系 inferiorto unit8 inline
建立一个内嵌对象
附录3.5调试
函数名 功能描述 dbclear 清除调试断点 dbcont 调试继续执行
函数名 功能描述
列出所有断点情况 dbstatus dbstep 单步执行
改变局部工作空间内存 dbstop 设置调试断点 dbdown dbmex 启动对Mex文件的调试 sbtype 列出带命令行标号的.M文件 dbquit 退出调试模式 列出函数调用关系 dbstack
dbup
改变局部工作空间内容
附录4 基本矩阵与矩阵处理 附录4.1基本矩阵
函数名 eye
功能描述 产生单位阵
函数名 功能描述 rand 产生随机分布矩阵 产生正态分布矩阵 randn
产生向量 linspace 构造线性分布的向量 ones
构造等对数分布的向量 zeros 产生零矩阵 logspace
产生元素全部为1的矩阵 :
附录4.2特殊向量与常量
函数名 ans eps flops i inf j 功能描述
缺省的计算结果变量
函数名 non
功能描述
非数值常量常由0/0或Inf/Inf获得 函数中参数输入个数 圆周率 computer 运行Matlab的机器类型 nargin 浮点运算计数 复数单元 无穷大 复数单元
pi 精度容许误差(无穷小)nargout 函数中输出变量个数
realmax 最大浮点数值 realmin 最小浮点数值
varargin 函数中输入的可选参数 函数中输出的可选参数 varargout 输入参数名 inputname
附录4.3时间与日期
函数名
功能描述
函数名
功能描述 calender 日历 clock date
时钟 日期 cputime 所用的CPU时间 日期(数字串格式)datenum datestr 日期(字符串格式)
eomday 计算月末 etime now tic toc
所用时间函数 当前日期与时间 启动秒表计时器 读取秒表计时器
星期函数 weekday datevoc 日期(年月日分立格式)
附录4.4矩阵处理
函数名 功能描述 cat diag fliplr 向量连接
按左右方向翻转矩阵元素
函数名 功能描述 改变矩阵行列个数 reshape tril triu
取矩阵的下三角部分 取矩阵的上三角部分 建立对角矩阵或获取对角向量 rot90 将矩阵旋转90度
flipud 按上下方向翻转矩阵元素 复制并排列矩阵函数 repmat
附录5 特殊矩阵
函数名 gallery hankel hilb 功能描述
函数名
功能描述 生成magic矩阵 生成pascal矩阵 compan 生成伴随矩阵
invhilb 生成逆hilbert矩阵
生成一些小的测试矩阵 magic 生成hankel矩阵 生成hilbert矩阵 生成hadamard矩阵 pascal hadamard
toeplitz 生成toeplitz矩阵
生成wilkinson特征值测试矩阵 wilkinson
附录6 数学函数 附录6.1三角函数
函数名 sin/asin 功能描述 正弦/反正弦函数
函数名
功能描述
sec/asec 正割/反正割函数 csc/acsc cot/acot
余割/反余割函数 余切/反余切函数
双曲正割/反双曲正割函数 sinh/asinh 双曲正弦/反双曲正弦函数 sech/asech cos/acos 余弦/反余弦函数 tan/atan 正切/反正切函数 atan2 四个象限内反正切函数 双曲余弦/反双曲余弦函数 双曲余割/反双曲余割函数 cosh/acosh csch/acsch 双曲正切/反双曲正切函数 tanh/atanh coth/acoth 双曲余切/反双曲余切函数
附录6.2指数函数
函数名 功能描述 exp 指数函数 log
函数名 功能描述 log10 常用对数函数
自然对数函数 sqrt平方根函数
附录6.3复数函数
函数名 功能描述 函数名 功能描述
abs 绝对值函数 imag 求虚部函数 angle 角相位函数 real 求实部函数 conj 共轭复数函数
附录6.4数值处理
函数名 功能描述 fix
函数名 功能描述
沿零方向取整 round 舍入取整
floor 沿-∞方向取整 rem 求除法的余数 ceil 沿+∞方向取整 sign 符号函数
附录6.5其他特殊数学函数
函数名 功能描述 airy airy函数
函数名 erfcx
功能描述 比例互补误差函数 逆误差函数 指数积分函数 gamma函数 bessel函数(hankel函数)besselh erfinv bessili 改进的第一类bessel函数 expint 改进的第二类bessel函数 gamma besselk besselj 第一类bessel函数 第二类bessel函数 bessely beta beta函数
非完全的beta函数 betainc betaln beta对数函数 elipj erf erfc Jacobi椭圆函数 误差函数 互补误差函数 ellipke 完全椭圆积分
非完全gamma函数 gammainc
gammaln gamma对数函数 gcd lcm log2 pow2 rat rats
最大公约数 最小公倍数 分割浮点数 基2标量浮点数 有理逼近有理输出
legendre legendre伴随函数
附录7 坐标转换
函数名 功能描述
函数名
功能描述
cart2pol 笛卡儿坐标到极坐标转换 pol2cart 极坐标到笛卡儿坐标转换 笛卡儿坐标到球面坐标转换 球面坐标到笛卡儿坐标转换 cart2sph sph2cart
附录8 矩阵函数 附录8.1矩阵分析
函数名 功能描述 det
函数名
功能描述
LINPACK倒数条件估计 矩阵的行阶梯型实现 cond 求矩阵的条件数 rcond
求矩阵的行列式 rref
消元法解方程演示 norm 求矩阵的范数 rrefmovie null 右零空间 orth 正交空间 rank 求矩阵的秩
subspace 子空间 trace
矩阵的迹
附录8.2线性方程
函数名 功能描述 /, inv lu
线性方程求解 矩阵求逆 chol Cholesky分解 lscov 最小二乘方差
函数名 功能描述 nnls pinv qr
非零最小二乘 求伪逆矩阵 矩阵的QR分解
QR分解中删除一行 qrdelete
矩阵的LU三角分解 qrinsert QR分解中插入一行
附录8.3特征值与奇异值
函数名 功能描述
函数名 功能描述
QZ算法求矩阵特征值 改进特征值精度的均衡变换 qz banlance eig hess poly
实块对角阵到复块对角阵转换 cdf2rdf 复块对角阵到实块对角阵转换 rdf2cdf 求矩阵的特征值和特征向量 schur Schur分解 求Hessenberg矩阵 求矩阵的特征多项式
svd
奇异值分解
附录8.4矩阵函数
函数名 功能描述
函数名 功能描述
expm 矩阵指数函数 logm 矩阵对数函数 矩阵平方根 funm 矩阵任意函数 sqrtm
附录9 数据分析与Fourier变换函数 附录9.1基本运算
函数名
功能描述
函数名 功能描述 prod sort
对向量中各元素求积 对向量中各元素排序 求向量中各元素标准差 对向量中各元素求和 梯形法求数值积分
向量累积 cumprod cumsum 向量累加 max min mean
求向量中最大元素 sortrows 对矩阵中各行排序 求向量中最小元素 std 求向量中各元素均值 sum median 求向量中中间元素 trapz
附录9.2微分计算
函数名功 能描述 函数名 功能描述
梯度计算 del2 离散Laplace变换 gradient diff 差分于近视微分
附录9.3滤波与卷积
函数名 功能描述
函数名 功能描述 Conv 卷给与多项式乘法 filter 一维数字滤波 conv2 二维卷积 filter2 二维数字滤波
因式分解与多项式乘法
Deconv
附录9.4方差处理
函数名 功能描述 函数名功 能描述
相关系数计算c ov 协方差计算 corrcoef
附录9.5Fourier变换
函数名 功能描述 函数名 功能描述
绝对值函数 abs fftshift fft与fft2输出重排
离散Fourier逆变换 angle 相角函数 ifft 依共轭复数对重新排序i fft2 二维离散Fourier逆变换 cplxpair 离散Fourier变换 相角矫正 fft unwrap 二维离散Fourier变换 fft2
附录10 多项式处理函数 附录10.1多项式处理
函数名 功能描述 函数名 功能描述 conv 卷机与多项式乘法 polyfit 数据的多项式拟合
因式分解与多项式乘法p olyval 多项式求值 deconv
多项式矩阵求值 poly 求矩阵的特征多项式 polyvalm 多项式求导 polyder residue 部分分式展开
polyeig 多项式特征值 roots 求多项式的根
【matlab的应用论文】推荐阅读:
matlab作业11-11
实验报告matlab09-09
matlab课程作业11-09
matlab学习体会05-25
matlab数值分析实例06-21
信号系统matlab实验07-27
电机matlab实验报告09-09
matlab实验预习报告09-24
matlab数学实验实现11-17
matlab实验指导书10-28