MATLAB在各学科中的运用
MATLAB是由美国mathworks公司发布的主要面对科学计算、可视化以及交互式程序设计的高科技计算环境。它将数值分析、矩阵计算、科学数据可视化以及非线性动态系统的建模和仿真等诸多强大功能集成在一个易于使用的视窗环境中,为科学研究、工程设计以及必须进行有效数值计算的众多科学领域提供了一种全面的解决方案,并在很大程度上摆脱了传统非交互式程序设计语言(如C、Fortran)的编辑模式,代表了当今国际科学计算软件的先进水平。[1]
MATLAB和Mathematica、Maple并称为三大数学软件。它在数学类科技应用软件中在数值计算方面首屈一指。MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连 接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完成相同的事情简捷得多,并且MATLAB也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。在新的版本中也加入了对C,FORTRAN,C++,JAVA的支持。
学习matlab后,研究电路及自动控制系统都非常直观方便。下面就matlab在几个学科中的应用举例:
应用一 Matlab在电路中的应用 应用二 Matlab在自动控制理论中的运用 应用三 基于Matlab的通信系统仿真 应用四 Matlab在金融工程中的运用 总结
应用一 MATLAB在电路中的应用
在大二上学期,我们电气工程及其自动化专业学习了电路这门课,下面引用matlab在电路里面的应用
MATLAB在直流稳态电路中的分析及应用
设计分析
1.运用MATLAB解决数值线性代数问题及MATLAB的实现;MATLAB在“电路工作原理”中的应用;MATLAB工具箱的运用。要求选其中的一道作为课设的题目,学会简单运用MATLAB。
基本电路是电类专业非常重要的专业基本课,其中,线性含源一端口的戴维南定理及正弦稳态电路的分析计算是大家普遍反映难于理解的内容。本文以基本电路理论中典型的直流电阻电路和含有复数运算的正弦稳态电路的分析计算为例,详述了如何分别运用MATLAB语言编程的方法来对电路进行仿真分析和计算。结论表明,应用这两种方法可以使复杂电路的分析和计算变得非常快捷、方便,从而为电路分析提供了一个有效的辅助工具。
图2-1是由电压源和电阻组成的简单电路,运用回路电流法,网孔法,节点法等一些经典的电路分析法即可解决此问题。电路也可用simulink进行仿真实验,并通过数据测量等从而检测计算及编程的结果。
2.1 基本电路数学模型分析
基本电路分析的基本方法是先建立数学模型,一般是电路方程组。然后通]]]过求解方程组,得到各支路电压和电流。
图2-1 基本电路图
如图2-1所示:设三个回路的电流分别为im1,i m2,im3。对图2-1应用 网孔电流法,可列出如下方程:
网孔1: -V1 +R1im1+ R3(im1-im2) =0 网孔2: -V2+R2im2+R4im2+R3(im2-im1)=0 经化简可得:(R1+R3)im1-R3im2=V1-V2 -R3im1+(R2+R3+R4)im2=V2
整理以上方程,并写成形如AI=B的矩阵方程形式,可得:
R1+R3 -R3 im1 V1-V2 =
-R3 R2+R3+R4 im2 V2
依题,要求I1、I2、I3,根据节点电流的关系,有:
I1=im1 ; I2=im2 ; I3 =im1-im2
由以上网孔电流分析法的分析过程可得以下程序流程图:
开始 设参数,并赋予参数值(与题中所给的要求一致) 为系数矩阵中个元素赋值,并得出系数矩阵,为下面计算作准备 由AI=B得出I矩阵的计算公式,并列出I1、I2、I3的表达式 结束
图2-2 程序流程图
2.2 Simulink 仿真分析
用simulink仿真以上电路,并观察测量数据。I1、I2、I3的测量结果再和程序的结果相比较,若相同,则说明电路仿真和程序编写多是正确的;若不同,则说明电路的仿真与程序编写至少一个有问题,认真检查程序及电路的仿真,找出错误,认真分析,纠正错误,在比较结果。
使用simulink进行仿真一般分为两步:用户首先需要在仿真模型编辑窗口中搭建好自己的模型,设置好具体模型参数和仿真参数;然后用户就可以开始仿真,simulink将根据用户搭建的模型,模型系统在用户设定条件下的具体行为。对于建模,simulink提供了一个图形化的用户的界面(GUI),用户可以像用铅笔在纸上画图一样画模型图。simulink的所有模型是分级的,因此可以通过自上而下或者自下而上来建立模型。
编程级仿真
3.1程序编写及模块分析
程序如下: clear;
R1=5;R2=6;R3=10;R4=4;V1=15;V2=10; %给定初始值 A=[R1+R3 -R3;-R3 R2+R3+R4]; %给出系数矩阵A B=[V1-V2;V2]; %给出系数矩阵B I=A\\B; %求解未知变量矩阵I im1=I(1); %网孔电流的定义 im2=I(2);
I1=im1; %求解电流I1 I2=im2; %求解电流I2 I3=im1-im2; %求解电流I3 运行结果如图3-1所示:
图3-1 M文件建模仿真结果
程序分析:程序由2.1节的设计思路分析所得:开始先给元件(与电路图相对应)赋值,因为MATLAB编程计算矩阵的,所以此赋值是必须的,其为下面的的系数矩阵赋值作准备。由以上的元件赋值可得形如AI=B矩阵方程形式的系数矩阵,这样使得A,B,I矩阵变为已知。MATLAB提供了两种除法运算:左除(\)和右除(/),一般情况下,I=A\\B是方程I*X=B的解,而I=B/A是方程I*A=B的解。在传统的MATLAB算法中,右除是先计算矩阵的逆再相乘,而左除则不需要计算矩阵直接进行除运算。通常右除快一点,但左除可避免被除矩阵的奇异性所带来的麻烦。由上所述,由公式I=A\\B 可求得I。
以上所得I矩阵的元素有:Im1、Im2。这四个元素在矩阵I中的顺序也如此。可见I(1)=Im1,I(2)=Im3,由第二节的分析知I1=im1;I2=im2;I3 =im1-im2 。 程序运行后,得到I1、I2、I3的值,并显示出来。与题中要求所求的一样,程序编写正确,并正常运行,与预期一样。
3.2用Simulink 仿真电路
总电路如图3-2所示:
图3-2 Simulink 仿真电路及显示图
图3-3所示为simulink仿真电路图的电流表A3值在示波器中的演示:
图3-3 simulink仿真电路图的电流表A3值
仿真电路图说明:图3-2与实际的电路图对应,下面对以上进行简单说明:A1为测量电流I1的器件,其输出电流I1,通过display1显示;A2为测量电流I2的器件,其输出电流I2,通过display2显示;A3为测量电流I3的器件,其输出电流I3,通过Scope显示。电路其余部分与实际电路差不多,值设置也一样。
仿真结果分析:由以上电路仿真可见,电路的编程求解及仿真所得结果一样。都达到了预期的效果,可见编程及电路仿真没有问题。MATLAB与simulink的结合运用是电路求解问题得以简化,使电路求解问题省时且精炼,精简。
应用二 matlab在自动控制理论中的运用
系统频率特性的测量与分析
模拟电路图及系统结构图分别如图4-l和图4-2。