1. Matlab软件简介
1.1  MATLAB产生的历史背景
20世纪70年代中期,Cleve Moler博士和其同事在美国国家科学基金的资助下开发了调用EISPACKLINPACKFORTRAN子程序库。EISPACK是特征值求解的FORTRAN程序库,LINPACK是解线性方程的程序库。在当时,这两个程序库代表矩阵运算的最高水平。
20世纪70年代后期,身为美国New Mexico大学计算机系系主任的Cleve Moler,在给学生讲授线性代数课程时,想教学生使用EISPACKLINPACK程序库,但他发现学生用FORTRAN编写接口程序很费时间,于是他开始自己动手,利用业余时间为学生编写EISPACKLINPACK的接口程序。Cleve Moler给这个接口程序取名为MATLAB,该名为矩阵(matrix)和实验室(laboratory)两个英文单词的前三个字母的组合。在以后的数年里,MATLAB在多所大学里作为教学辅助软件使用,并作为面向大众的免费软件广为流传。
1983年春天,Cleve MolerStanford大学讲学,MATLAB深深地吸引了工程师John LittleJohn Little敏锐地觉察到MATLAB在工程领域的广阔前景。同年,他和 Cleve MolerSieve
Bangert一起,用C语言开发了第二代专业版。这一代的MATLAB语言同时具备了数值计算和数据图示化的功能。
1984年,Cleve Moler John Lithe成立了MathWorks公司,正式把MATLAB推向市场,并继续进行MATLAB的研究和开发。
在当今30多个数学类科技应用软件中,就软件数学处理的原始内核而言,可分为两大类。一类是数值计算型软件,如 MATLABXmathGauss等,这类软件长于数值计算,对处理大批数据效率高;另一类是数学分析型软件,如MathematicaMaple等,这类软件以符号计算见长,能给出解析解和任意精度解,其缺点是处理大量数据时效率较低。MathWorks公司顺应多功能需求之潮流,在其卓越数值计算和图示能力的基础上,又率先在专业水平上开拓了其符号计算、文字处理、可视化建模和实时控制能力,开发了适合多学科、多部门要求的新一代科技应用软件MATLAB。经过多年的国际竞争,MATLAB 已经占据了数值型软件市场的主导地位。
MATLAB进入市场前,国际上的许多应用软件包都是直接以FORTRANC语言等编程语言开发的。这种软件的缺点是使用面窄、接口简陋、程序结构不开放以及没有标准的基库,
很难适应各学科的最新发展,因而很难推广。MATLAB的出现,为各国科学家开发学科软件提供了新的基础。在MATLAB问世不久的20世纪80年代中期,原先控制领域里的一些软件包纷纷被淘汰或在MATLAB上重建。
时至今日,经过Math Works公司的不断完善,MATLAB已经发展成为适合多学科、多种工作平台的功能强劲的大型软件。在国外,MATLAB已经经受了多年考验。在欧美等高校,MATLAB已经成为线性代数、自动控制理论、数理统计、数字信号处理、时间序列分析、动态系统仿真等高级课程的基本教学工具;成为攻读学位的大学生、硕士生、博士生必须掌握的基本技能。在设计研究单位和工业部门,MATLAB被广泛用于科学研究和解决各种具体问题。
1.2  MATLAB的语言特点
一种语言之所以能如此迅速地普及,显示出如此旺盛的生命力,是由于它有着不同于其他语言的特点。正如同FORTRANC等高级语言使人们摆脱了需要直接对计算机硬件资源进行操作一样,被称作为第四代计算机语言的MATLAB,利用其丰富的函数资源,使编程人员从繁琐的程序代码中解放出来。MATLAB的最突出的特点就是简洁。MATLAB用更直观的、符
合人们思维习惯的代码,代替了CFORTRAN语言的冗长代码。MATLAB给用户带来的是最直观、最简洁的程序开发环境。以下简单介绍一下MATLAB的主要特点。
①语言简洁紧凑,使用方便灵活,库函数极其丰富。MATLAB程序书写形式自由,利用其丰富的库函数避开繁杂的子程序编程任务,压缩了一切不必要的编程工作。由于库函数都由本领域的专家编写,用户不必担心函数的可靠性。可以说,用MATLAB进行科技开发是站在专家的肩膀上。
具有FORTRANC等高级计算机语言知识的读者可能已经注意到,如果用FORTRANC语言去编写程序,尤其当涉及矩阵运算和画图时,编程会很麻烦。例如,如果用户想求解一个线性代数方程,就得编写一个程序块读入数据,然后再使用一种求解线性方程的算法(例如追赶法)编写一个程序块来求解方程,最后再输出计算结果。在求解过程中,最麻烦的要算第二部分。解线性方程的麻烦在于要对矩阵的元素作循环,选择稳定的算法以及代码的调试都不容易。即使有部分源代码,用户也会感到麻烦,且不能保证运算的稳定性。解线性方程的程序用FORTRANC这样的高级语言编写至少需要好几十行。再如用双步QR方法求解矩阵特征值,如果用FORTRAN编写,至少需要四百多行,调试这种几百行的计算程序可以说很困难。以下为用MATLAB编写以上两个小程序的具体过程。
MATLAB求解下列方程,并求矩阵A的特征值。
          其中:
解为:x=A\bA的特征值组成的向量为ee=eigA
可见,MATLAB的程序极其简短。更为难能可贵的是,MATLAB甚至具有一定的智能水平,比如上面的解方程,MATLAB会根据矩阵的特性选择方程的求解方法,所以用户根本不用怀疑MATLAB的准确性。
②运算符丰富。由于MATLAB是用C语言编写的,MATLAB提供了和C语言几乎一样多的运算符,灵活使用MATLAB的运算符将使程序变得极为简短。
MATLAB既具有结构化的控制语句(如for循环、while循环、break语句和if语句),又有面向对象编程的特性。
④语法限制不严格,程序设计自由度大。例如,在MATLAB里,用户无需对矩阵预定义就可使用。
程序的可移植性很好,基本上不做修改就可以在各种型号的计算机和操作系统上运行。
MATLAB的图形功能强大。在FORTRANC语言里,绘图都很不容易,但在MATLAB里,数据的可视化非常简单。MATLAB还具有较强的编辑图形界面的能力。
MATLAB的缺点是,它和其他高级程序相比,程序的执行速度较慢。由于MATLAB的程序不用编译等预处理,也不生成可执行文件,程序为解释执行,所以速度较慢。
功能强劲的工具箱是MATLAB的另一重大特。MATLAB包含两个部分:核心部分和各种可选的工具箱。核心部分中有数百个核心内部函数。其工具箱又可分为两类:功能性工具箱和学科性工具箱。功能性工具箱主要用来扩充其符号计算功能、图示建模仿真功能、文字处理功能以及与硬件实时交互功能。功能性工具箱能用于多种学科。而学科性工具箱是专业性比较强的,如controltoolboxsignal processing toolboxcommunication toolbox等。这些工具箱都是由该领域内的学术水平很高的专家编写的,所以用户无需编写自己学科范围内的基础程序,而直接进行高、精、尖的研究。
1.3 Matlab的典型应用
MATLAB® 是一种对技术计算高性能的语言。它集成了计算,可视化和编程于一个易用的环境中,在此环境下,问题和解答都表达为我们熟悉的数学符号。典型的应用有:1.数学和计算;2.算法开发;3.建模,模拟和原形化;4.数据分析,探索和可视化;5.科学与工程制图;6.应用开发,包括图形用户界面的建立.
2.
理论分析
2.1 RL并联电路分析
如图所示的一阶RL并联电路中t=0时刻,当开关打到右边时,具有初始电流I0和电阻R相连接,构成一个闭合回路,其中I0=2AL=2H,R=2Ω,求零输入响应,用Matlab软件编写程序,绘出uL(t),i(t)PL(t)的波形,观察其波形变化并分析。
2.1 一阶RL电路的零输入响应
解:如图2.1所示电路在开关S动作之前电流已恒定不变,电感中有电流I0=i(0-)=2A,在t=0时开关由左边合到右边时电感电流不发生跃变,故此时具有初始电流2A的电感L=2H和电阻R=2Ω相连接,构成一个闭合回路,如图2.2所示。
2.2 一阶RL
路的零输入响应
t>0时,根据KVL,有
uR+uL=0
uR=RiuL=L,电路的微分方程为:
L+Ri=0
令方程的特解为i=Aept,可以得到相应的特征方程为:
Lp+R=0
其特征根为
p=-
故电流为
i=Ae
根据i(0+)=i(0-)=I0,代入上式可得A=i(0+)=I0,从而
i=i(0+)e-t=I0 e
所以电感上的电压为
uL(t)= L=-RI0 e
电流为
i=I0 e
电感上的功率为
PL(t)= uL(t)*i=-RI02e
T=,称为RL电路的时间常数。则所求的为
uL(t)=-RI0eiL(t)=I0 ePL(t)= -RI02e


2.2 程序设计方框图
3.
程序设计及运行结果
3.1 程序设计
程序代码:
clear,format compact
Io=2;
R=2;
L=2;
T=L/R;
t=0:0.00001:10;
i=Io*exp(-t/T);
uL=R*Io*exp(-t/T);
PL=-R*Io*Io*exp(-2*t/T);
figure(1)
subplot(3, 1, 1),plot( t,i)
grid on, xlabel('t'), ylabel('i');
subplot(3, 1,2),plot(t,uL)
grid on, xlabel('t'), ylabel('uL');
subplot(3, 1, 3),plot(t,PL)
grid on, xlabel('t'), ylabel('PL');

3.2程序运行结果
i,uL,PL的图像分别为matlab难还是c语言难

4.图表分析和总结
由图可以看出,在RL并联电路的零输入响应中,断开电源后,电流并不会立刻变为零,而是缓慢减少。电压uL与电流i按照同样的指数规律衰减,它们衰减的快慢取决于时间常数L/R的大小。而p=-R/L,这是电路特征方程的特征根,仅取决于电路的结构和元件参数。
在放电过中,PL<=0,电感在不断放出能量并被电阻消耗。最后,原来储存在电感中的磁场能全部为电阻吸收转化为热能。

5.心得体会

参考文献
[1]邱关源.《电路(下册)》[M].高等教育出版社,1998
[2]陈怀琛,吴大正,高西全.MATLAB及在电子信息课程中的应用》[M].电子工业出版社2006
[3] 陈怀琛.MATLAB及其在理工课程中的应用指南》[M].西安电子科技大学出版社,2000
[4]吴锡龙.《电路分析》.高等教育出版社,2004
[5]杨传谱,黄冠斌.《电路理论学习指导书》[M].华中理工大学出版社,1998
[6]薛定宇.《控制系统计算机辅助设计——MATLAB语言及应用》[M].清华大学出版社,1996