基础强化训练 MATLAB在电路中的简单应用.docx
《基础强化训练 MATLAB在电路中的简单应用.docx》由会员分享,可在线阅读,更多相关《基础强化训练 MATLAB在电路中的简单应用.docx(15页珍藏版)》请在冰豆网上搜索。
基础强化训练MATLAB在电路中的简单应用
摘要
MATLAB软件功能强大,可求解电路题目;数学和计算算术发展模型;模拟仿真和原型;数据分析,开发和可视化;科学和工程图形;应用发展包括图形用户界面设计等方面。
MATLAB软件具有强大的矩阵计算功能,它的基本数据单位是矩阵,这在电路问题的求解中得到很好的利用。
因为在电路的求解中通常会使用矩阵方程来求解未知数,这就给我们的计算带来很大的方便。
MATLAB软件提供了两种解决电路问题的方案:
其一为根据电路图列出矩阵方程,然后编写程序求解;另一种是在Simulink中搭建电路图,然后进行相应的参数设置后,仿真求解。
关键词:
MATLAB矩阵方程Simulink
目录
MATLAB在电路中的简单应用2
1.题目分析2
1.1训练要求2
1.2设计分析3
2编程及仿真3
2.1程序编写3
2.1.1建立数组模型3
2.1.2程序编写及模块分析5
2.2用simulink仿真电路6
2.2.1用simulink进行电路图仿真6
2.2.2仿真波形8
3心得体会9
附录10
1程序截图10
2workspace截图10
参考文献11
前言
MATLAB是美国MATHWORKS公司出品的商业数学软件,用于算法开发、数据可视化、数据分析以及数值计算的高级技术计算语言和交互式环境,主要包括MATLAB和SIMULINK两大部分。
MATLAB是矩阵实验室(MatrixLaboratory)的简称。
它在数学类科技应用软件中在数值方面首屈一指。
MATLAB可以进行矩阵运算、绘制函数和数据、实现算法、创建用户界面、连接其他编程语言的程序等,主要应用于工程计算、控制设计、信号处理与通讯、图像处理、信号检测、金融建模设计与分析等领域。
MATLAB的基本数据单位是矩阵,它的指令表达式与数学、工程中常用的形式十分相似,故用MATLAB来解算问题要比用C,FORTRAN等语言完相同的事情简捷得多,并且mathwork也吸收了像Maple等软件的优点,使MATLAB成为一个强大的数学软件。
在新的版本中也加入了对C,C++,JAVA的支持。
可以直接调用,用户也可以将自己编写的实用程序导入到MATLAB函数库中方便自己以后调用,此外许多的MATLAB爱好者都编写了一些经典的程序,用户可以直接进行下载就可以用。
SIMULINK是MATLAB软件的扩展,它是实现动态系统建模和仿真的一个软件包,它与MATLAB语言的主要区别在于,其与用户的交互接口是基于windows模型化图形输入,使得用户可以把更多的精力投入到系统模型的构建,而非编程上。
目前MATHWORKS公司已经把SIMULINK发展成一个一系列产品。
本实验室基于MATLAB软件,运用其解决电路基础的一些简单知识,从而学会简单运用MATLAB软件,为以后更好的掌握这款软件打下基础。
MATLAB在电路中的简单应用
1.题目分析
1.1训练要求
运用MATLAB解决数值线性代数问题及MATLAB的实现;MATLAB在“电路工作原理”中的应用;MATLAB工具箱的运用。
要求选其中的一道作为课设的题目,学会简单运用MATLAB。
基本电路是电类专业非常重要的专业基本课,其中,线性含源一端口的戴维南定理及正弦稳态电路的分析计算是大家普遍反映难于理解的内容。
本文以基本电路理论中典型的直流电阻电路和含有复数运算的正弦稳态电路的分析计算为例,详述了如何分别运用MATLAB语言编程的方法来对电路进行仿真分析和计算。
结论表明,应用这两种方法可以使复杂电路的分析和计算变得非常快捷、方便,从而为电路分析提供了一个有效的辅助工具。
下面是运用MATLAB编程并结合simulink解决简单的电路问题。
自选题目:
直流电路-含受控源的电阻电路
如图电路,己知R1=R2=R3=4
,R4=2
,控制常数K1=0.5,K2=4,is=2A,求i1和i2。
图1直流电路-含受控源的电阻电路
1.2设计分析
图1是由电流源、受控电压源、受控电流源以及电阻组成的简单电路,我们可以运用在大一学到的一种经典的电路分析法——节点法,这样就建立了电路方程组的数学模型,然后利用Matalab解矩阵方程的强大功能求解方程组,得各支路电流,即得到i1、i2,可解决此问题。
电路也可用simulink进行仿真实验,并通过示波器观察波形、电表测量数据等,可直接得到所求结果,从而检验计算和编程结果的准确性。
2编程及仿真
2.1程序编写
2.1.1建立数组模型
设节点电压分别为
,
,对上图应用节点法,可列如下方程组:
(1/R1+1/R2)*
-1/R2*
=is+K1*i2,
-1/R2*
+(1/R2+1/R3+1/R4)*
=-K1*i2+K2/R3*i1,
i1=(
-
)/R2,
i2=
/R4,
整理以上方程,得方程组:
(1/R1+1/R2)*
-1/R2*
-K1*i2=is,
-1/R2*
+(1/R2+1/R3+1/R4)*
-K2/R3*i1+K1*i2=0,
1/R2
-1/R2
-i1=0,
1/R4-i2=0,
整理以上方程,并写成形如AX=BU的矩阵方程形式,可得:
由已知条件R1=R2=R3=4
,R4=2
,K1=0.5,K2=4,is=2A,利用Matlab就能够很容易解出i1,i2。
由以上回路电流分析法的分析过程可得以下程序流程图。
图2程序流程图
2.1.2程序编写及模块分析
根据以上的数组模型,我们可以编出程序如下:
程序如下:
>>clear;
R1=4;R2=4;R3=4;R4=2;K1=0.5;K2=4;is=2;%为给定元件赋值
A=[1/R1+1/R2-1/R20-K1;-1/R21/R2+1/R3+1/R4-K2/R3K1;1/R2-1/R2-10;01/R40-1];%列出矩阵系数A
B=[1;0;0;0];%列出系数矩阵B
X=A\B*is;%由方程AX=BU解出X
i1=X(3)%显示要求的分量i1和i2
i2=X(4)
运行结果显示有
i1=
1
i2=
1
程序分析:
程序由3.1节的设计思路分析所得:
开始先给元件(与电路图相对应)赋值,因为MATLAB编程计算矩阵的,所以此赋值是必须的,其为下面的的系数矩阵赋值作准备。
由以上的元件赋值可得形如AX=BU矩阵方程形式的系数矩阵,这样使得A,B,U矩阵变得已知。
MATLAB提供了两种除法运算:
左除(\)和右除(/),一般情况下,X=A\B是方程A*X=B的解,而X=B/A是方程X*A=B的解。
在传统的MATLAB算法中,右除是先计算矩阵的逆再相乘,而左除则不需要计算矩阵直接进行除运算。
通常右除快一点,但左除可避免被除矩阵的奇异性所带来的麻烦。
由上所述,由公式X=A\B*is可求得X。
以上所得X矩阵的元素有:
、
、i1、i2。
这四个元素在矩阵X中的顺序也如此。
可见X(3)=i1,X(4)=i2,程序运行后,得到i1,i2的值,并显示出来。
与题中要求所求的一样,程序编写正确,并正常运行,与预期一样。
2.2用simulink仿真电路
使用simulink进行仿真分为两步:
1.用户首先需要在仿真模型编辑窗口中搭建好自己的模型,设置好具体模型参数和仿真参数;
2.然后用户就可以开始仿真,simulink将根据用户搭建的模型,模型系统在用户设定条件下的具体行为。
对于建模,simulink提供了一个图形化的用户的界面(GUI),用户可以像用铅笔在纸上画图一样画模型图。
simulink的所有模型是分级的,因此可以通过自上而下或者自下而上来建立模型。
2.2.1用simulink进行电路图仿真
图3原电路图的仿真图
仿真电路图说明:
图3与实际的电路图对应,下面对以上进行简单说明:
i1measurement为测量电流i1的器件。
其输出电流i1;i2measurement1为测量电流i2的器件,其输出i2;gain为实现增益部分,电路其余部分与实际电路差不多,值设置也一样。
图4电路及显示完整图
图4电路说明:
图4与图3相比,增加了一些显示必须器件。
图3中的i1电流显示和i2电流显示部分由英文名为display的元件组成,相当于电流表,可以看出他们均显示1。
可见结果和MATLAB编程结果一样。
2.2.2仿真波形
图5i1及i2的显示波形
Scope为电路波形输出模块,如图5所示波形输出。
上面为i1输出,下面为i2输出,可见输出波形的值显示与图三中所测得的i1、i2值一样。
由以上电路仿真可见,电路的编程求解及仿真所得结果一样。
都达到了预期的效果,可见编程及电路仿真没有问题。
MATLAB与simulink的结合运用是电路求解问题得以简化,使电路求解问题省时且精炼,精简。
3心得体会
通过为期一周的课程设计学习,我受益匪浅。
此次课程设计基本是通过自己的学习以及跟同学们讨论完成的。
在短短的一周时间内要完成这项任务,对我本人来说,仍然存在难度和挑战。
在通过自己查资料与同寝室的同学讨论下,本身的素质也在一步步提高,有了初步的创新能力,而且巩固了之前的基础知识,扩大了知识面。
MATLAB软件功能强大,本设计是运用MATLAB求解电路题目,这只是它的一个简单的应用,MATLAB还在多方面有应用,如数学和计算算术发展模型;模拟仿真和原型;数据分析,开发和可视化;科学和工程图形;应用发展包括图形用户界面设计等方面。
由于时间问题,不能一一举例,只有自己在以后的学习中慢慢学习,自己探索,更好的掌握这款软件。
MATLAB语言是一种简单,高效,功能极强的高级语言,且具有强大的矩阵运算能力和极高的编程效率,这一方面使得MATLAB程序可以被高度向量化,另一方面使得程序易读易写。
MATLAB已变得非常普及。
通过这几天对MATLAB的学习,对其有了一个大致的认识并能简单的应用,解决一些简单的线性代数及电路问题,当然在今后的学习中,还会加强自己对这款软件的学习,应为这款软件应用太广,且自己对C语言会,而且有线性代数的基础,个人认为掌握MATLAB这款软件不是问题。
快要进入大三,MATLAB这款软件在以后的专业课学习中的应用很广泛,掌握好MATLAB,为以后的专业课学习将有很大的帮助。
通过基本电路理论中的典型题目介绍了如何应用MATLAB语言编程的方法来对复杂电路进行分析和计算。
该方法不仅可以节约计算时间、方便地调试电路参数,而且还可以非常直观地观察和测量电路中的电压、电流和功率等物理量。
结论表明,MATLAB提供了高效简洁的编程方法,其强大而简易的绘图功能、矩阵和数组运算能力以及很强的扩充性,能充分满足基本电路分析、计算的需要,从而可以大大地提高计算精度和工作效率,在电路理论学科研究与工程实践中具有很好的应用价值,我们在今后的工作中应该跟深入地学习它。
附录
1程序截图
图6程序运行及结果
2workspace截图
图7workspace
参考文献
(1)葛哲学,精通MATLAB,北京:
电子工业出版社,2008
(2)李国勇,智能控制及MATLAB实现,北京:
电子工业出版社,2005
(3)赵录怀,M电路与系统分析,北京:
高等教育出版社,2004
(4)刘志俭,等。
MATLAB应用程序接口用户指南。
北京:
科学出版社,2000
(5)钟麟,MATLAB仿真技术与应用教程,北京:
国防工业出版社,2004
(6)王琦,MATLAB基础与应用实例集粹,北京:
人民邮电出版社,2007
(7)邱关源,电路,第四版,高等教育出版社,1999