APP下载

Matlab仿真技术在电路教学中的应用

2015-11-23郭杰荣

大众科技 2015年10期
关键词:网孔仿真技术编程

龚 伟 郭杰荣

(湖南文理学院物理与电子科学学院,湖南 常德 415000)

Matlab仿真技术在电路教学中的应用

龚 伟 郭杰荣

(湖南文理学院物理与电子科学学院,湖南 常德 415000)

为了解决传统电路教学中存在的主要问题,改善其不足之处,尝试将Matlab仿真技术应用到电路课程的教学当中。结合实例分析,详细阐述了Matlab编程和Simulink建模两种不同方式的特点及其在电路教学中的具体应用。教学实践表明:Matlab强大的矩阵运算和数值处理能力有助于学生摆脱电路分析中所存在的数学计算方面的困扰,使它们能将更多精力放到对基本概念和分析方法的理解与掌握上;通过Matlab编程或Simulink建模,使抽象难懂的电路理论以直观形象的仿真结果呈现出来,极大的调动和增强了学生的学习热情与自信心,提高了课堂教学效果。

电路教学;Matlab;Simulink

1 传统电路教学中存在的问题

以我院为例,目前电路教学中存在的主要问题有:(1)课时安排偏少,教学内容偏多,课程理论性较强,学生难以在纯理论的课堂教学中获得直观、具体的感性认识,因此学习起来觉得抽象难懂,不易理解和消化;(2)由于客观条件有限,实验课和理论课往往不能同步进行,未及时实践的理论知识往往较易遗忘;(3)课程涵盖的基本概念、定理和分析方法较多,且经常伴随有大量复杂繁冗的数学计算,学生需要耗费大量的时间和精力应对数学方面的困扰,很大程度上削弱和降低了他们对专业课学习的信心、热情与专注度。

2 Matlab在电路课程中的应用

Matlab是由美国Mathworks公司推出的一款集矩阵运算、数值分析、绘图操作、系统建模与仿真等多种功能于一体的科学计算软件[1,2],具有操作方便、语法规则简单、编程效率高以及良好的人机交互等特点,特别适合于电路课程的辅助分析和计算。为了弥补传统电路教学中的不足之处,改善和提高教学质量,本文尝试将Matlab仿真技术嵌入应用到电路教学中。

2.1Matlab编程方式

电路分析的基本方法是通过数学建模求解矩阵方程,以获得待求支路的电压或电流。当电路规模增大时,方程联立个数随之增多,求解过程将变得十分困难且容易出错[3]。而Matlab 是一种以矩阵运算为基础的交互式程序语言,专门针对科学、工程计算及绘图等方面的需求。相比其它计算机语言,Matlab编程语言具有简洁、智能化、功能函数丰富、无需编译等特点,大大提高了编程和调试效率。由Matlab语句构成的程序文件称为M文件,它是以“.m”作为扩展名的文本文件,可以直接阅读并可由任何文本编辑器建立。运行 M文件时,只需在Matlab命令窗口输入文件名后按回车键,或者打开M文件后在其编辑窗口点击“运行”按钮即可。通过编程,不仅可以检验学生的课堂学习成果,更重要的是有助于培养它们形成正确的思维方式及良好的编程习惯。下面通过具体实例来加以说明。

例:对图1所示电路,(1)应用网孔电流法求支路电压U;(2)验证叠加定理。

图1 原电路

解:为了便于分析和编程,这里将图 1中电路元件用符号变量加以表示,同时标出假定的网孔电流绕行方向及电流源两端的电压参考方向,具体见图 2所示。由题意,首先列出相应的网孔电流方程,将其转换成矩阵形式的数学模型,并用Matlab编写.m程序文件,求得两独立源共同作用时的电压 U;然后,通过赋值方式分别对独立源置零获得电压源或电流源单独作用于电路时支路的电压响应分量;最后,判断总电压U是否等于上述两个电压响应分量的代数和,从而完成对叠加定理的验证。

图2 标有网孔电流方向及符号变量的电路

下面给出图2电路的网孔电流方程:

以上矩阵形式可进一步简写为:

根据以上数学模型编写的M文件,源程序如下:

a=input('请依次输入电阻R1、R2、R3、R4和电压源、电流源的值: ');%根据例题参数,这里令a=[8 6 2 3 12 3]

fprintf('所输入电压源: Us=%dV ',Us);

fprintf('所输入电流源: Is=%dA ',Is);

U=I(2)*R4; %电压源和电流源共同作用于电路时, 在R4支路上所产生的电压U

fprintf('用网孔电流法,所求电压U为:

E_Us=[Us;0]; %令Is=0,表示电压源单独作用于电路

I_Us=AB*E_Us; %电压源单独作用于电路时,所产生的网孔电流向量形式

U1=I_Us(2)*R4; %U1为电压源单独作用于电路时,在R4支路上产生的电压响应分量

E_Is=[0;Is]; %令Us=0,表示电流源单独作用于电路

I_Is=AB*E_Is; %电流源单独作用于电路时,所产生的网孔电流向量形式

U2=I_Is(2)*R4; %U2为电流源单独作用于电路时,在R4支路上产生的电压响应分量

fprintf('%dV 电压源单独作用时,所产生的电压响应分量U(1)为: U(1)=%gV ',Us,U1);

fprintf('%dA 电流源单独作用时,所产生的电压响应分量U(2)为:U(2)=%gV ',Is,U2);

fprintf('两电源共同作用下,电压U为:U=%gV ',U);

if round(U)==U1+U2 disp('因为U=U(1)+U(2),叠加定理得以验证'),end

以上程序文件的运行结果如图3所示:

图3 Matlab程序运行结果

相比手动计算,Matlab编程方式只需输入相应语句或函数即可轻松解决各类复杂庞大的数学运算。通过引入符号变量和交互式的命令函数,可以使所编写的M文件具有很好的移植性、交互性和灵活性,特别是当电路结构不变而元件参数发生改变时,通过引入具有交互功能的输入命令函数,如:input()函数等,在运行过程中用户只需按照input()函数括号内的“提示语句”输入具体参数,Matlab软件便会迅速给出新的参量作用下电路中的待求量结果,从而避免了因电路参数改变而带来的重复性手动计算。

2.2Simulink建模方式

Simulink作为Matlab中的一种可视化仿真工具[4],它提供了一个对动态系统进行建模、仿真和分析的集成环境。Simulink用方框图的绘制代替程序的编写,使用户的精力从编程转向模型构造。利用鼠标或键盘操作,用户可以完成面向框图系统仿真的全部过程,进而直观、快速、准确地达到仿真的目标。模型创建后,可实时改变模块参数,用以研究不同参数对系统的性能影响以及各参数间的相互作用关系。

在Matlab命令窗口中直接输入Simulink命令或在工具栏中单击相应的快捷按钮,即可启动 Simulink。在随后弹出的Simulink Library Browser(库模块浏览器)中,执行File/New/Model命令,系统会弹出一个名为untitled的空白模型窗口,用户可以在此窗口中创建自己需要的Simulink模型。针对上例,这里给出具体的 Simulink仿真步骤:首先,在Simulink 集成环境窗口新建一个后缀为.mdl的Simulink模型文件并命名,如:example.mdl;在 Simulink Library Brower中选取与图 1电路相应的元件模块,并用鼠标将其拖拽到example窗口中,如图4所示;在完成参数设置与连线后,最后对Simulink 电路模型进行仿真。

图4 库模块浏览器与新建模型文件

(1)各元件的选取与参数设置。

12V电压源:选取“DC Voltage Source”模块,它位于SimPowerSystems节点下的“Electrical Source”模块库内,只需将模块参数值改为12V即可。

3A电流源:SimPowerSystems中没有直接提供直流电流源模块,需要用“Electrical Source”模块库内的AC Current Source进行替代。双击进入其模块参数设置窗口,将 Peak amplitude设为 3A、参数 Frequency 设为 0 Hz、Phase设置为 90°,确定后就可得到所需的直流电流源。

电阻元件:选用“Series RLC Branch”模块,它位于SimPowerSystems节点下的“Elements”模块库内,代表一条串联RLC支路。通过对其参数的设置(Resistance设为所需的电阻值,Inductance设为0,Capacitance设为inf),可以将其变为单独的电阻支路。

电压测量模块:选用“Voltage Measurement”模块,它位于SimPowerSystems节点下的“Measurements”模块库内,用于测量支路电压值。

显示模块:选用“Display”模块:它位于Simulink节点下的“sinks”模块库内,用于对测量结果进行输出显示。

(2)仿真结果。

执行example模型窗口菜单中Simulation/Start命令或单击工具栏中的按钮,即可启动Simulink模型仿真,运行结果详见图5。

图5 Si mulink模型仿真结果

由图5不难看出,12V电压源单独作用于电路时3Ω支路上所测电压示数为-4V,3A电流源单独作用时示数为6V,而两个电源共同作用情况下示数则是2V。仿真结果表明:在多个电源共同作用下的线性电路中,电路某处的响应等于各独立源单独作用时在该处产生的响应分量的代数和。叠加定理得以验证。

3 结论

在电路教学中引入Matlab仿真技术,有助于学生摆脱传统学习中理解难、计算难,绘图难和建模难等问题,使它们能把注意力更多的集中在对基本概念、定理和分析方法的学习与掌握上。通过生动、直观的仿真结果演示电路分析的全过程,有利于构建一种启发式、探讨式和互动式的教学形态,激发学生的学习兴趣,促进并加深它们对于抽象理论的具体理解和形象记忆。Matlab仿真技术应用于电路教学中,还可显著改善因实验课与理论课在时空上存在分隔、客观实验条件欠缺、实验设备落后等因素所造成的实验效果不理想的情形。

[1] 陈怀琛,吴大正,高西全.MATLAB及其在电子信息课程中的应用(第3版)[M].北京:电子工业出版社,2006.

[2] 张志涌,杨祖樱.MATLAB教程[M].北京:北京航空航天大学出版社,2015.

[3] 刘同娟,马向国.MATLAB在电路分析中的应用[J].电气电子教学学报,2002,24(6):40-41.

[4] 卓金武.MATLAB在数学建模中的应用(第2版)[M].北京:北京航空航天大学出版社,2014.

The Application of Matlab simulation technology in circuit teaching

In order to solve the main problems in traditional circuit teaching , and better its shortcomings, the Matlab simulation technology is embedded into the teaching of circuit course. Combined with case analysis, the characteristics of Matlab programming and Simulink modeling are elaborated here as well as their concrete application in circuit teaching. The practice shows that the ability of powerful matrix operation and numerical processing of Matlab can help students get rid of the math problems existing in circuit analysis, so they can focus more on understanding and mastering of basic concepts and analytical methods.Through the Matlab programming or Simulink modeling, abstract circuit theories are presented with intuitive and visual simulation results, which can greatly mobilize and enhance the students' learning enthusiasm and self-confidence, and improve the teaching effect in classroom.

Circuit teaching; Matlab; Simulink

G642.0

A

1008-1151(2015)10-0088-03

2015-09-11

湖南文理学院芙蓉学院教项项目(FRjg1516);湖南省光电信息技术虚拟仿真实验教学中心项目(湘教通〔2015〕274号);湖南省普通高校教学改革研究项目(湘教通〔2014〕247号,395项);湖南省光电信息技术校企联合人才培养基地资助(湘教通[2012]434号)。

龚伟(1976-),女,湖南文理学院物理与电子科学学院讲师,研究方向为通信及信号处理方面的研究。

猜你喜欢

网孔仿真技术编程
SiO2原位诱导/硅烷修饰全棉网孔水刺材料疏水改性研究
编程,是一种态度
元征X-431实测:奔驰发动机编程
编程小能手
喇叭网塑件及模具特点
纺织机上诞生的编程
虚拟仿真技术支持情景构建
基于仿真技术的信号平面布置验证
网孔电流法及其应用
用超网孔分析法列、解含无伴电流源电路方程