MATLAB在电路中的应用院系:电子与信息科学工程学院专业:电子信息科学与技术班级:电技11-1班姓名:陈曦学好:2011021714MATLAB在电路中的应用0引言MATLAB是“矩阵实验室”(MATrixLABoratoy)的缩写,它是以矩阵运算为基础的交互式程序语言,能够满足科学、工程计算和绘图的需求。与其它计算机语言相比,其特点是简洁和智能化,适应科技专业人员的思维方式和书写习惯,使得编程和调试效率大大提高。它用解释方式工作,键入持续后立即得出结果,人机交互性能好,易于调试并被科技人员所乐于接受。特别是它可适应多种平台,并且随着计算机硬软件的更新及时升级,因此MATLAB语言在国外的大学工学院中,特别是频繁进行数值计算的电子信息类学科中,已经成为每个学生都掌握的工具了。它大大提高了课程教学、解题作业、分析研究的效率。MATLAB特点:一、 起点高1、 每个变量代表一个矩阵,它可以有n×m个元素。2、 每个元素都看作复数,比其它语言优越。3、 所有的运算都对矩阵和复数有效。二、 人机界面适合科技人员1、语言规则与笔算式相似:MATLAB的程序与科技人员的书写习惯相近,因此易写易读,易于在科技人员之间交流。2、矩阵行数、列数无需定义:若要输入一个矩阵,在其它语言编程时必须先定义相应的阶数,而用MATLAB语言则不必有阶数的定义语句,输入数据的行列数就决定了它的阶数。3、键入算式立即得结果,无需编译:MATLAB是以解释方式工作的,即它对每条语句解释后立即执行。若有错误也立即作出反应,便于编程者马上改正。这都大大减轻了编程和调试的工作量。三、 强大而简易的作图功能1、能根据输入数据自动确定坐标绘图。2、能在多种坐标系下绘图。3、能绘制三维坐标系中的曲线和曲面。4、可以设置不同颜色、线形、观看视角等。如果数据齐全,通常只需一条命令即可出图。四、 智能化程度高1、绘图时自动选择最佳坐标以及按输入输出变量元数自动选择算法等。2、做数值积分时自动按精度选择步长。3、自动检测和显示程序出错的能力强,易于调试。五、 功能丰富,可扩展性强MATLAB软件包括基本部分和专业扩展部分。基本部分包括:矩阵的运算和各种变换,代数和超越函数的求解,数据处理和傅立叶变换,数值积分等,可以满足大学理工科本科的计算需要。扩展部分称为工具箱。它实际上是用MATLAB的基本语句编成的各种子程序集,用于解决某一方面的专业问题,或实现某一类的新算法。现在已经有通信系统、控制系统、信号处理、图像处理、系统辨识、模糊集合、神经元网络、小波分析、系统仿真工具箱SIMULINK等20余个工具箱,并且还继续发展中。其中SIMULINK使得MATLAB的功能得到了进一步的扩展。SIMULINK由模块库、模型构造及指令分析和演示程序组成,是一个模块化、模型化的系统动态仿真环境。用户应用SIMULINK对系统进行建模、仿真和分析时如同堆积木一样简单方便,只需要在模型窗口中单击或拖动鼠标即可。SIMULINK不能脱离MATLAB而独立运行,但是它借助MATLAB在科学计算上得天独厚的优势以及可视化的仿真模型窗口,拟补了传统软件工具的不足。同时SIMULINK也是众多仿真软件中功能最强大、最优秀的一种软件工具。它使得动态系统仿真的实现相当方便,对系统的非线性因素和随机因素的研究也十分便捷直观。通过SIMULINK还可以对电气、机械、通信等的连续、离散或混合系统进行深入的系统建模、仿真与分析研究。因此,它成为当今科学计算和系统仿真领域里的首选软件工具。由于这些特点,它有利于分析计算电路的各种问题,主要包括:直流电阻电路分析;正弦稳态分析;动态电路分析和二端口网络等。分析电路主要是求解电路各支路的电压、电流等,具体步骤是先建立适当的数学模型,然后通过MATLAB软件编程求解,并且编程相比其他高级语言更简便;电路越复杂,效率越高。1基于MATLAB的电路分析1.1直流电阻电路及正弦稳态分析具体分析按以下几个步骤来实现:(1)建立数学模型。根据所给电路建立适当的数学模型,对直流电阻电路和正弦稳态交流电路,可以用同一数学模型,因为MATLAB的基本元素是复数,其数学模型实际上就是电路教材中网孔电流方程和节点电压方程的矩阵形式。例如:三变量的网孔电流方程为:Z11I1+Z12I2+Z13I3=US11Z21I1+Z22I2+Z23I3=US22Z31I3+Z32I2+Z33I3=US33因为MATLAB中的变量是复数,所以以上的电流和电压变量上方没有加点。限于篇幅,Z,Us的具体意义在此不详述。其矩阵形式为:Z×I=Us(2)编程。由MATLAB的语句构成的程序文件叫M文件,它是以“.M”作为文件扩展名的文本文件,可以直接阅读并可由任何文本编辑器建立。调用M文件,输入电路元件参数并运行程序后即可得到结果。实际上该程序的编写相当简单,只要有电路和程序设计的基础知识即可,且程序不长。为了简化编程,亦可直接利用MATLAB的交互命令,输入电路元件参数后也可得到结果。(3)例题分析。例题1:如图1所示,已知R1=R2=R3=4Ω,R4=2Ω,IS=2A,α=0.5,β=4,求I1和I2。图1解:①建模。按图1,建立节点电压方程:(1/R1+1/R2)Un1+(-1/R2)Un2=IS+αI2(-1/R2)Un1+(1/R1+1/R2+1/R3)Un2=-αI2+βI1/R3I1=(Un1-Un2)/R2I2=Un2/R4②编程。利用MATLAB编写的程序如下:clear,formatcompact%输入元件参数值R1=4;R2=4;R3=4;R4=2;Is=2;α=0.5;β=4;%按Z×X=Y列写电路的矩阵方程,其中:X=[U1;U2;I1;I2]z11=1/R1+1/R2;z12=-1/R2;z13=0;z14=-α;z21=-1/R2;z22=1/R2+1/R3+1/R4;z23=-β/R3;z24=α;z31=1/R2;z32=-1/R2;z33=-1;z34=0;z41=0;z42=1/R4;z43=0;z44=-1;%以上设置系数矩阵X的元素Z=[z11,z12,z13,z14;z21,z22,z23,z24;z31,z32,z33,z34;z41,z42,z43,z44];Y=[Is;0;0;0];X=Z\Y;%求解结果I1=X(3),I2=X(4);I1,I2%输出结果运行程序得:I1=1,I2=1即正确答案为:I1=1A,I2=1A例题2:图2电路中L1=3.6H,L2=0.06H,M=0.465H,R1=20Ω,R2=0.08Ω,RL=42Ω,Us=115COS(314t)V,求电流I1,I2。图2解:①建模。如图2,建立网孔电流方程:(R1+jwL1)I1+jwMI2=USjwMI1+(R2+jwL2+RL)I2=0②利用MATLAB编程:clear,formatcompact%输入元件参数值R1=20;R2=0.08;RL=42;L1=3.6;L2=0.06;M=0.4650;w=10*pi;Us=115;%按Z*X=Y列写电路的矩阵方程,其中X=[I1;I2]z11=R1+j*w*L1;z12=j*w*M;z21=j*w*M;z22=R2+j*w*L2+RL;%以上设置系数矩阵X的元素Z=[z11,z12;z21,z22];Y=[Us;0];X=Z\Y;%求解结果I1=X(1);I2=X(2);I1,I2,%输出结果r1=abs(I1),angle1=[angle(I1)*180]/pi,r2=abs(I2),angle2=[angle(I2)*180]/pi运行程序得:I1=0.0470-0.1000,I2=-0.3501-0.0063I;r1=0.1105,angle1=-64.8385;r2=0.3502,angle2=-178.9683上式中r1,r2分别代表电流I1,I2的模,angle1,angle2分别代表电流I1,I2的辐角。1.2动态电路分析描述动态电路是用微分方程,一阶动态电路是一阶微分方程来描述的,可以直接求解微分方程,但也可以应用三要素法求解。当应用三要素法求解时,电路的全响应=零输入响应+零状态响应,或者电路的全响应=稳态响应+暂态响应,用公式表示为f(t)=[f(∞)-f(0+)]exp(-t/τ)+f(∞),该式作为其数学模型。二阶动态电路用二阶微分方程来描述,要应用拉氏变换来建立S域的数学模型,限于篇幅仅以一阶电路为例运用MATLAB进行分行计算。例:如图3所示电路,已知R=2Ω,C=0.5F,电容初始电压Uc(0+)=4V,激励为正弦电压US(t)=8cos4t,当t=0时,开关S闭合,求电容电压的全部响应,并绘出波形图。图3解:①建模。当t≥0时,表征电容电压的微分方程为:dUc/dt+Uc/RC=US/RC若用三要素法求解,其解为:Uc(t)=Uc(∞)+[Uc(0+)-Uc(∞)]exp(-t/τ)式中,Uc(0)为电容的初始电压,Uc(∞)为电容的稳态值,τ为时间常数。但由于激励为正弦电压,上述公式适当修改为:Uc(t)=Ucp(t)+[Uc(0+)-Ucp(0+)]exp(-t/τ)式中,Ucp(t)为电容的稳态值,它应是和电源同频率的正弦电压,只是其幅值和相位不同,记为Ucp(t)=Ucpm*cos(ωt+θ),Ucp(0+)为0+时刻的Ucp(t)值,即Ucp(0+)=Ucpm*cos(θ)。②编程。clearallR=2;C=0.5;T=R*C;Uc0=4;%输入元件参数Usm=8;w=4;Zc=1/(j*w*C);t=0:0.1:10;Us=Usm*cos(w*t);%输入激励信号Ucp=Us*Zc/(R+Zc);%计算稳态分量Ucp0=Ucp(1);%计算稳态分量的初始值Uct=[Uc0-Ucp0]*exp(-t/T);%计算暂态分量Uc=Uct+Ucp;%计算电路的全响应plot(t,Uc,'-g',t,Uct,'+r',t,Ucp,'*b'),grid%绘制稳态分量,暂态分量,全响应的波形图(如图4)legend('Uc','Uct','Ucp')%波形注释运行程序,得到仿真结果:Uc:电路的全响应Uct:电路的暂态分量Ucp:电路的稳态分量2小结电路分析的基本方法是建立数学模型(一般是方程或者已知电路方程组),并求解方程组,得到各支路电压和电流。当电路规模较大时,求解很复杂,借助计算机可以大大简化计算量,以前有FORTRAN和BASIC语言编写的程序,但一般程序较大,较复杂,而利用MATLAB则要简单得多,而且还可以进行仿真,除编写专用程序外,可以建立通用的电路分析程序。以上三个题例,均是采用编程的方式,其实也可以用MATLAB的命令方式求解,这样更简单。参考文献:[1]邱关源.电路(第四版)[M].北京:高等教育出版社,1999.[2]周金萍等.MATLAB6实践与提高[M].北京:中国电力出版社,2001.[3]陈怀琛等.MATLAB及在电子信息课程中的应用[M].北京:电子工业出版社,2002.