




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
【摘 要】:本文在简要介绍了Matlab软件的基础上,提出了利用Matlab来进行电路分析的方法。并重点研究了用Matlab分析正弦稳态电路,具体是用编程和Simulink仿真两种方法分析正弦稳态电路。编程法中用到支路电流法、回路电流法和节点电位法三种电路分析方法。且与一般分析方法比较,可以看出用Matlab分析正弦稳态电路具有简便、直观的优点。【关键词】 :MATLAB 正弦稳态电路 电路分析方法绪 论一、电路分析软件的发展和现状(一)电路分析软件的发展随着电子计算机及其相关技术的发展,计算机辅助设计技术正作为一门崭新的技术在世界范围内蓬勃兴起。CAD 技术的发展与应用引发了一场设计的革命,它不仅深刻地改变着产品设计的传统方式,而且还直接影响到企业生产的管理模式和商业对策,给企业和社会带来了巨大的经济效益。电路的计算机辅助分析技术作为CAD技术的一个重要的分支,几乎与CAD技术同时起源。如今电路的分析软件层出不穷且功能日益强大。PSpice分析软件便是一个典型的代表,它是一个通用电路模拟程序。它不仅能进行电路的直流分析、交流分析和暂态分析而且具有容差分析、最坏情况分析、噪声分析等功能。如今己出现了Pspice9.0版本和Windows版本,不仅具有更强的分析功能和丰富的器件模型,而且有着良好的人机界面和交互式的图形输入方式。在数字电路方面以Orcad为代表的分析软件也不断推陈出新,使得对数字电路进行时序仿真、逻辑模拟、功能模拟等变得异常方便。可以说电路分析软件的发展正呈现出一片欣欣向荣的景象。(二)分析软件的现状虽然目前电路领域中存在着各种分析软件,并且它们有着强大的功能,能够满足人们在该领域中的普遍要求。但还存在着两个方面的不足:一方面是每个软件只能解决一类问题:随着科学技术的发展,分析任务变得越来越复杂,它往往是一个包含模拟、数字等多个领域内容的综合性的分析任务,这时,我们要完成一个任务必须购买不同的所有需要的分析软件, 并且还要不断的去熟悉各种分析软件的使用方法。这显然会大大的增加成本。另一方面对使用者来说,这些软件实际上是一个“黑盒”,不具有开放的特点,因此我们很难对它进行扩展,这对于教学和科研是极为不利的。于是我们考虑是否能够在某一具有开放性的软件平台上开发一个能对电路各个领域进行分析的软件。MATLAB软件的发展给我们提供了一条途径。二、基于MATLA的分析技术(一)MATLAB语台二十世纪八十年代初期,美国学者Cleve Moler等人构思并开发了MATLAB (MATrix LABoratory,即矩阵实验室)。MATLAB是以复数矩阵作为基本编程单元的一种程序设计语言,它提供了各种矩阵的运算与操作,具有较强的绘图功能,以及较为丰富的数值分析方法。它的出现首先引起了控制界研究人员的瞩目,便利用MATLAB开发出了各种通用或专用应用程序。MATLAB和高级语言的关系仿佛高级语言和汇编语言的关系一样,高级语言的执行效率要低于汇编语言,然而其编程效率与可读性、可移植性要远远高于汇编语言。同样MATLAB比一般高级语言的执行效率要低,但其编程效率与可读性、可移植性要远远高于其他高级语言。对于工程技术人员来说,即使不懂C或FORTRAN这样的程序设计语言也照样可以设计出功能强大、界面优美、稳定可靠的高质盘程序来,且开发周期会大大地缩短。(二)基于MATLAB的电路分析的意义由于专用的分析软件存在着成本、人们熟悉程度和软件本身局限性等方面的缺点,以及MATLAB对矩阵和数值运算的高效性,我们便想到了利用MATLAB来实现各种电路的分析。基于MATLAB的电路分析技术一方面考虑以通用软件来完成专用软件的功能,解决以通用软件MATLAB为平台,实现对模拟线路(线性、非线性)、数字电路以及对数模混合电路等进行分析。另一方面,目前MATLAB虽含有众多的工具箱,但还没有涉及到专门应用于电路分析的工具箱,此项技术的实现可以对MATLAB工具箱进行一个有力的扩充,使MATLAB的功能更为强大。三、本文的内容由于时间所限,我们对基于MATLAB的正弦稳态电路分析技术进行了探讨。而对于电路的其他领域有待于以后进一步研究。全文共分四部分:绪论:对电路分析软件的发展作了简单的介绍,并提出了基于MATLAB的电路分析技术;第一章:对正弦稳态电路用一般电路分析方法进行解析;第二章:简单介绍MATLAB的基础知识,包括MATLAB基础之数值计算和Simulink仿真基础;第三章:利用MATLAB实现正弦稳态电路的分析并结合实例给出分析结果。一、正弦稳态电路基础及一般分析法(一) 支路电流法例1-1:在图1-1所示电路中, ,,求各支路电流并画相量图。图1-1解:用支路电流法列出方程组:代入数值得:=0.4440 - 2.8080i=-1.8720 + 3.7040i=-0.5720 - 0.8960i=-0.4840 - 1.9120i=1.9120 + 1.0160i(二)回路电流法例1-2:电路图如图1-2所示,其中,求、和。图1-2解:列出方程组:从图1-2可以看出,、为网孔电流,使用网孔电流法,电路方程为:其矩阵形式为其中, ; 。(三)节点电位法以例1-1为例用节点电压法解题如下:解:这是一个交流稳态电路,对两个独立结点列结点电压方程:其中: ,二、 MATLAB基础本章主要对MATLAB语言作简单介绍,包括MATLAB的编程基础、数值计算功能及符号运算、计算结果可视化。详细内容可查阅参考书目4、5。(一)MATLAB基础之数值计算1.矩阵与数组MATLAB是以复数矩阵为基本运算单元的语言。因此必须了解矩阵的创建、运算。数组是矩阵的特殊形式。2.矩阵的创建对于较小的矩阵可以从键盘土直接输入:1)整个矩阵必须以方括号 为其n尾;2)矩阵的行与行之间必须用分号 :或回车键分隔;3)矩阵元素必须由 ,或空格分隔。对于大矩阵可以通过小矩阵的组合来实现,如: 矩阵A是3x4矩阵,矩阵B是3x8矩阵则由C=A B组成的矩阵C为3x12矩阵。矩阵也可以通过矩阵编辑器、M 文件等方法来创建,具体使用方法可查阅参考书目4、5。3.矩阵运算矩阵运算和数组运算是MATLAB中的两类数值运算。矩阵运算是按矩阵运算法则来进行;数组运算则是对元素逐个进行。MATLAB的运算指令的形式与标准教科书的数学表达一致,这大大方便了编程。数组运算与矩阵运算的不同之处在于数组运算中的运算符前的小黑点不能遗漏,日参与计算的数组须同维。4.矩阵函数MATLAB中提供了许多有关矩阵的函数如正弦、余弦函数等。MATLAB中的矩阵函数与数学中的表达式一致,直接把矩阵当作函数的自变量来进行处理。如正弦函数Sin (A), A为一矩阵。5.数值分析在MATLAB 中包含了许多的数值分析功能,如:数据的统计分析、数字信号处理、稀疏矩阵及功能函数。这里简单介绍一下功能函数。前面的数值分析,几乎都是以数值矩阵为输入总量。在MATLAB中还有两类函数:一是以函数为输入总量;二是以符号表达式或符号矩阵为输入总量。后一种为符号计算。以函数为输入总量称为功能函数,主要用于求数值积分、优化及求非线性方程、微分方程的数值解。如数值积分函数:y=quad(函数名,a, b)其中a, b分别是积分下限、积分上限。在调用功能函数时,首先应该编写一个描述f(.)的函数。6.符号计算除了数值计算以外,在科学各个领域中还经常遇到符号计算问题。符号计算指运算对象和过程允许存在非数值的符号变量。如:f=sin(x)2; 定义函数dfdx=diff(f) 求M数f的微分dfdx=2*sin(x)*cos(x) f的微分结果intf=int(f) 求函数的积分intf=-1/2*sin(x)*cos(x)+l/2*x f的积分结果从这个例子中我们可以领略到符号计算的魅力。(二)Simulink仿真基础使用Simulink进行仿真一般分为两步:用户首先需要在仿真模型编辑窗口中搭建好自己的仿真模型,设置好具体模型参数和仿真参数;然后,用户就开始仿真,Simulink将根据用户搭建的模型,模拟系统在用户设定条件下的具体行为。1.Simulink仿真简例一个典型的Simulink模型由信源、系统及信宿等3部分组成,它们的关系如图2-1所示。 图2-1 Simulink模型的典型结构信源提供系统的输入信号,如常量、正弦波、方波等;系统是对仿真对象的数学抽象,比如是连续线性系统,还是连续非线性系统?对输入信号进行求和,还是对输入信号进行了一次调制?信宿是接受信号的部分,用户可以把它送到“示波器”中显示出来,或者保存到相应的mat文件中去。接下来,通过一个简单的例子让读者对Simulink有一个直观的认识,此后再详细说明如何利用Simulink进行仿真。【例2-1】在Simulink中构建模型:对一个正弦波信号进行积分处理,然后将原始正弦信号和积分后的信号送到示波器中同时显示相互来。1)先打开Simulink的模块库浏览器和模型编辑器,默认情况下模型名为“Untitled”。然后将模块库浏览器中的Simulink节点展开,并且选中Sources模块库中Sine Wave模块,单击鼠标右键,在弹出的快捷菜单中选择“Add to Untitled”菜单顶,就可以把Sine Wave模块添加到“Untitled”模型中去。也可以不通过右键菜单,直接将Sine Wave模块拖拽到模型编辑窗中,完成模块的添加操作。2)采用与第1步相同的方法将Continuous模块库中的Integrator模块(积分器)、Sink子模块库中的Scope模块(示波器)、Signal Routing模块库中的Mux模块(复路器)等模块,一一添加到模型编辑窗中。3)连接信号线。具体方法是:将鼠标放到模块的输出端口,等光标变为十字时按住鼠标左键移动到另一个模块的输入端,释放鼠标即可。如果信号线存在分路,按住【Ctrl】键并同时将鼠标放到信号线上,等光标变为十字即可引出分支信号线。连线后和系统如图2-2所示。图2-2 Simulink仿真简例4)保存模型文件,执行主菜单“File”/“Save as”命令,将文件命名为“exm3_1_1.mdl”后保存。5)执行主菜单“Simulink”/“Start”命令或单击工具栏上的“”图标,开始仿真。快捷键为【Ctrl+T】。6)Simulink默认的仿真时间是10s(注意这并不是实际流逝的时间),结果仿真后,双击Scope模块,可以看到仿真结果如图2-3所示。图2-3 示波器输出的仿真结果在图2-3所示的示波器输出图形中,黄线代表Sine Wave信源产生的正弦波形,紫线表示的是正弦波积分后的输出波形。2.Simulink常用模块介绍要熟练使用Simulink进行仿真,首先就要求能熟练使用Simulink常用模块。在模块库浏览器中的Simulink结点下包含了搭建一个Simulink模型所需的基本模块,这里面的模块是用户首先应该掌握的。本部分主要对其中的Sources模块库、Sinks模块库、Continuous模块库、Discrete模块库、Math Operations模块库中的常用模块进行介绍。(1)Sources模块库Sources模块库内的模块主要用于给Simulink仿真模型提供输入信号,此模块库中常用模块如表2-1所示。表2-1 Sources模块库常用模块列表名称图标功能说明Band-Limited White Noise对连续系统引入一个带限白噪声Clock输出每个仿真步点的时刻值Constant产生一个常量信号From Workspace从工作空间中读入数据作为输入信号From File从mat文件中读入数据作为输入信号Pulse Generator按指定参数产生一个脉冲信号Random Number按指定参数产生一个高斯分布的随机信号Signal Generation通用的信号发生器,可按指定参数产生:正弦波、方波、锯齿波、随机信号Signal Builder输入一组分段线性的信号,信号波形可由用户手动编辑Sine Wave按指定参数产生一个正弦信号Step按指定参数产生一个阶跃信号下面对该模块库的3个常用模块进行介绍。1)Sine Wave模块Sine Wave模块库中的模块很大一部分都是根据用户设定的参数来直接生成信号,比如Sine Wave模块。双击Sine Wave模块,在弹出窗口中可以调整相关参数。信号生成方式有两种:Tine based和Sample based。如果以Time based方式运行该模块,则需要用户设定波形的幅度(Amplitude)、偏移(Bias)、频率(Frequency)、初相(Phase)几个参数;如果选择Sample based方式,参数设置则为幅度(Amplitude)、偏移(Bias)、每周期采样数(Samples per period)和偏移采样数(Number of offsetsamples),两种工作方式中的各项参数都可以用关系式加以换算:每周期采样数=2*pi/(频率*采样时间);偏移采样数=初相*每周期采样数/(2*pi)。还有一个参数设置是采样时间(Sample time),当将此参数设定为零时表示以连续的方式工作,当将此参数设置为大于零的值时则以所采样时间工作。但要注意的是采用Sample time模式的模块是不能以连续的方式工作的。下面以图2-4(a)所示的仿真模型为例介绍Sine Wave模块的使用方法。在各模块的参数设置对话框设置各模块参数: Scope模块保持默认设置。 SineWave模块:Sinetype参数设为Timebased方式,Amplitude=1,Bias=0,Frequency=0.5*pi,Phase=0,Sample time=0。仿真模型输出结果如图2-4(b)所示。(a)(b)图2-4 直接利用信源模块获取输入信号(a)Sine Wave模块的使用实例;(b)Sine Wave模块产生的信号2)From Workspace模块From Workspace模块可以从工作空间中读取数据作为输入信号。双击From Workspace模块,将弹出模块参数设置窗口。在“Data”文本框中填写从工作空间的哪个变量中读取数据,“Sample time”设置采样时间。注意“Data”文本框中填写的变量必须包含信号的时间信息,比如该变量可以是一个 n x 2的矩阵,第一列给出了n个时刻值,第二列给出了对应这些时刻的信号值。显然,能够给出的时刻值是有限的,在这些时刻之外,From Workspace模块的输出信号是什么呢?这又有两种情况。假设已经给出的时刻值包括了从1,2,10个值,那么在1s和2s之间模块的输出信号由“Interpolate date”复选框是否选中决定,若选中,这段时间模块的输出信号采用线性内插的方法来决定;否则,模块的输出信号将保持前一个给出了信号值的时刻的值。还有一点需要考虑的是第10s后模块的输出信号又怎么确定呢?这些时间的信号由“From output after final data value by”下拉菜单来决定。如果在此下拉菜单中选择“SettingToZero”,那么这段时间模块输出信号只是简单地置为0;如果选择“HoldingFinalValue”,那么信号将保持前一个有值的时刻的信号值。还可以采用外推的方法得到这些值,这时不仅要选中“Extrapolate”,而且还要保证“Interpolate date”复选框是选中的;最后一种方法就是让信号循环出现,这时应该选择“CyclicRepetition”,并且不能选定“Interpolate date”复选框。下面通过实例说明From Workspace模块的应用。搭建如图2-5的仿真模型,在各模块的参数设置对话框设置各模块参数:Scope模块仍然保持默认设置。From Workspace模块的参数“From output after final data value by”选中Setting to zero,其余保持默认设置。接下来编辑如下M文件:function Sin_signal=Sin_signal(A,Bias,W,Phase,t0,te,n)t=linspace(t0,te,n);Data=A*sin(W*t+Phase)+Bias;Sin_signal=tData;将它保存在MATLAB的work目录下,在指令窗中键入如下指令:simin=Sin_signal=(1,0,0.5*pi,0,0,8,100)这将在工作空间中生成一个名为simin的80 x 2的矩阵,它的每一行都表示一个采样时间点的值,总共由8s的信号值。现在再回到Simulink中,开始仿真。图2-5 从工作空间中获取输入信号注意:Simulink默认的仿真时间示10s,按照本例子的设定,在第8s后信号值就一直为零。读者可以试着将参数“From output after final data value by”设为其他值,看看输出信号由何不用?3)From File模块From File模块用于从mat文件中读取数据作为模型的输入信号,在使用此模块时需要设置mat文件名和采样时间。From File模块用于从MAT文件的第一个矩阵中读取信号数据,该矩阵的第一行被认为给出了一组时刻值,其余行给出了相应的信号值。在两个给定时刻之间的信号值模块以线性内插的方式给出;在最后一个给定时刻之后,模块根据最近的两个时刻的值外推出其值。搭建如图2-6(a)所示的系统,在各模块的参数设置对话框设置各模块参数:Scope模块的各项参数均保持默认设置。From File模块:“File name”设置为“exm311.mat”(即要读取的mat文件名);“Sample time”设置为0,表示模块以连续的方式工作。现在将某一变量保存为一个mat文件。在指令窗口输入指令:Save_Data=siminsave exm331 Save_Data这样一个名为exm311.mat的mat文件就创建在了当前目录下。在Simulink模型编辑窗口中开始仿真。图2-6 从mat文件中获取输入信号(2)Sinks模块库Sinks模块库中的模块主要功能示接收信号,并且将接收到的信号显示出来,这个模块库内的常用模块及功能如表2-2所示。表2-2 Sinks模块库常用模块列表名称图标功能说明Display将信号值直接显示于模块窗口中Scope显示信号波形Stop Simulink输入信号任一分量非零时,结束仿真To File将仿真结果保存为.mat文件To Workspace将输出结果保存到工作空间中XY Graph绘制两个输入信号关系曲线Floating Scope游离示波器三、正弦稳态电路的MATLAB分析(一)支路电流法的 MATLAB实现在图3-1所示电路中,,求各支路电流并画相量图。图3-1编程实现:zldlf.mR1=2;R2=2;R3=2;X1=3;X3=2;US1=12;US3=3;IS2=2;A=1,1,1,0,0;0,0,1,-1,-1;R1,-j*X1,0,0,0;R1,0,-R2,-R3,0;0,0,0,-R3,-j*X3;B=-IS2;-IS2;US1;US3;US3;I=ABU1=I(1)*R1U2=-j*X3*I(5)H=compass(U1,U2,I(1),I(2),I(3),I(4),I(5);set(H,linewidth,2)运行结果如下:I =0.4440 - 2.8080i-1.8720 + 3.7040i-0.5720 - 0.8960i-0.4840 - 1.9120i1.9120 + 1.0160iU1 =0.8880 - 5.6160iU2 =2.0320 - 3.8240i图3-2 相量图(二)回路电流法的MATLAB的实现电路图如图3-2所示,其中,求、和及其相量图。图3-2编程实现:hldlf.mR1=3;R2=2;C1=500e-6;C2=500e-6;L=5e-3;Us11=10;Us22=-2;Us33=0;w=1000;Z11=R1+j*w*L;Z22=j*w*L-j/(w*C2);Z33=R2-j/(w*C1)-j/(w*C2);Z12=-j*w*L;Z21=Z12;Z13=0; Z31=Z13;Z23=j/(w*C2);Z32=Z23;Z=Z11,Z12,Z13;Z21,Z22,Z23;Z31,Z32,Z33;Us=Us11;Us22;Us33;I=ZUs;I1=I(1)I2=I(2)I3=I(3)I4=I(3)-I(2)I5=I1-I2compass(I1,I2,I3,I4,I5);x=real(I1),real(I2),real(I3),real(I4),real(I5);y=imag(I1),imag(I2),imag(I3),imag(I4),imag(I5);rdir strength=cart2pol(x,y);direction=rdir*180/pir=strength*sq
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025商品交易合同协议
- 《2025协商解除劳动合同协议书范本》
- 合租店铺房屋合同范本
- 话费卡购销合同范本
- 2025年村庄土地承包合同模板
- 医疗设备装机合同范本
- 2025年纳米微晶石企业工程项目设备采购合同管理
- 养老服务协议合同范本
- 饭店财产租赁合同范本
- 住宿行业劳务合同范本
- 保安员资格考试复习题库及答案(800题)
- 乡村公路沥青铺设施工方案
- 2024年中考物理压轴题专项训练:电磁继电器核心综合练(原卷版)
- 矿山事故应急报告制度
- 2024-2025学年山东省淄博市桓台县四年级上学期数学期中考试试题
- DB1402T36-2024农村居家养老服务规范
- 中国发电企业碳中和数字转型白皮书-埃森哲
- ISO27001信息安全管理体系培训资料
- 《绝对值》教学课件
- Unit 6 Work quietly!(教学设计)2023-2024学年人教PEP版英语五年级下册
- 高考英语考纲词汇3500词(珍藏版)
评论
0/150
提交评论