灯泡伏安特性仿真实验的实现算法
2013-09-19冯绍勇董纵昊
冯绍勇,董纵昊
(景德镇学院,江西 景德镇 333000)
灯泡属于比较极端的电阻元件,其阻值随通过其电流的不同,而有较大的变化,是个典型的非线性元件,在电工学实验中,“描绘白炽灯泡伏安特性曲线”实验作为认识非线性负载伏安特性而开设。现在在国内处于主流地位的一些物理仿真实验中[1],就一定意义而言,能做灯泡伏安特性的几乎没有。图1是在国外的Electronics Workbench电子电路仿真实验软件中搭建起来的灯泡伏安特性实验抓图,实验器材都是符号化的,圆圈代表灯泡,两个方框代表电压、电流表,为数字显示,实验时,改变滑动变阻器的移动触头,使灯泡端电压及通过灯泡的电流发生改变,然而,电压与电流的比值始终不变,说明在这个仿真实验中,灯泡被简化为线性元件,也即用Electronics Workbench做不了灯泡伏安特性实验,或者说做出来的结果与实际情况严重不符。图2、图3分别是某公司开发的和某学校挂在网上的电学仿真实验,从界面上来说,更形象直观,更适合教学使用,然而灯泡也被简化为线性元件,用它们也做不了灯泡伏安特性实验。
图1 灯泡伏安特性仿真实验抓图
Electronics Workbench软件的开发初衷是辅助电子电路设计人员进行电路设计,而非教学使用。图2、3所示的国内开发的电学仿真软件是纯粹供物理教学使用的,把灯泡简单处理为线性元件,显然是不合适的,软件开发力度是不够的。如果要满足灯泡伏安特性实验的要求,灯泡必须作为非线性元件,而且其伏安特性还必须与实际情况相符。更进一步,仿真实验在可视化上,还必须能反映出灯泡工作时比较明显的物理现象——浪涌电流现象。灯泡中钨丝的温度随着端电压的增大而上升,其阻值会明显地随着增大,然而,由于温度变化是有时间过程的,在电压增大后的初始时刻,其阻值不能突变,仍然保持以前较小的数值,所以这时电流较大,随着温度升高,阻值变大,电流再变小到最终稳定值。所以我们看到增大电压时的现象是,电流开始偏得比较大,然后,电流再往回摆到稳定值,如图4所示(注:选用的电流表指针必须是在平衡位置做临界阻尼运动而非做欠阻尼运动的,也即指针左右震动之后才静止的电流表不能使用);同理,当电压变小时,现象是反过来的,即电流开始变得比较小,然后再变大到稳定值。当我们改变灯泡端电压,然后马上又恢复其原电压时,浪涌电流现象会不明显,原因是电阻值还没来得及变化,电压就又恢复到原来值,所以电流自然是接近原来稳定值的。浪涌电流现象在实验内容中并没有提及,但是,作为教学用仿真实验,不能只注重实验结果,这一明显的物理现象应该被反映,只有这样,那些细心、观察能力强的学生才能有机会抓住这一特别物理现象去探寻其背后的原因,这样的仿真实验,它反映的不仅仅是实验结果,它再现的真实物理现象对学生而言具有一定的探索作用,它的价值就大大增强了,所以这个仿真实验除了要求能反映灯泡的非线性特性外,还应能对电流的浪涌现象有所反映,然而,目前比较主流的电学仿真实验软件都没有做到这些。
图2 仿真实验抓图
图3 仿真实验抓图
图4 电流表指针运动
当前,对仿真实验的模式认识还比较模糊,笔者认为仿真实验应分为科学研究开发用仿真实验(这里简称科仿)和教学用仿真实验(这里简称教仿),两者的共同特点是都具有科学的数学模型;科仿的系统性强,复杂程度高,开发难度大,但它对实验现象的可视化要求不高,它追求的是输入实验条件上的操作方便和输出实验结果的科学和精确,而教仿就不一样了,它的内部系统复杂程度一般较低,但它对实验现象的真实呈现程度要求高,而且还应该表现实验过程、步骤,就像做真实实验一样,实验现象的可视化是教仿的开发难点。在电学教学领域,尤其是高校,从国外引进的科仿用得比较多,而合格的教仿很少甚至没有,笔者认为这与对科仿与教仿的区别认识有一定关系,教仿和科仿在开发重点上是有所区别的。
1 灯泡伏安特性仿真实验的一种模式及其实现算法
1.1 仿真实验介绍
开发的教学用电工仿真实验软件由北京师范大学出版社出版发行[2],图5是其中的灯泡伏安特性仿真实验软件界面。该仿真软件具有科学的数学模型,而且在实验现象的可视化上加大开发力度,其创建的实验虚拟环境形象、逼真,是目前其它电学仿真实验软件没有做到的。笔者以为这种模式的仿真实验在可视化上有着鲜明的特色,比较适合教学使用,希望对教仿的开发人员有所启示。
从图5所示软件界面上看,(1)仿佛环境中摆放了实验所需真实仪器设备,有学生电源、电键、小灯泡、滑动变阻器、电压表和电流表,右上角是连接导线工具和帮助菜单,整个软件界面为彩色画面;(2)使用者在做此仿真实验时,可取右上角不同颜色的连线工具对界面中的电器设备随意连线(在点取连线工具的情况下,分别单击两个电器设备上的接线桩头即可自动画出导线),如图6所示,连接好的导线像实际情况一样,在空间沿三维分布,而且与电器设备之间有遮挡与被遮挡的关系,层次分明;(3)电器设备连接好后,接通电路,软件便对使用者连接好的线路进行网络拓扑结构识别,然后用矩阵方法进行计算,求出各支路电流和各节点电压,如果灯泡负载中有电流通过时,灯丝将发出红光,周围会有光晕,其亮度是电流的函数,如果电流表、电压表中有电流流过时,电流表指针将偏转而指示出通过其电流值,电压表指针也将偏转而指示出其两端之间的电位差值。电表指针偏转运动算法[3]采用的是与实际情况相符的临界阻尼运动数学模型,所以电表指针偏转时效果非常逼真。如图6中所示,电器设备被连成了分压电路,抓图中显示了电路工作时的情况,软件工作时,可以通过光标菜单中的放大功能对界面中任一部分进行多次放大,由于采用矢量图而非位图,放大倍数越高越清楚,而不会出现马赛克效果,通过对电流、电压表部分的放大,如图7所示,可以清楚地读出指示数,也可以对学生电源部分进行放大而看清电源面板,如图8所示,以便对开关、调压旋钮进行操作。通过调节滑动变阻器触头的位置,使灯泡端电压发生变化,读出多组电压和电流的读数,即可完成实验,实验中能通过电流表指针偏转的变化反映由于电路变化而带来的电流浪涌现象。
图5 灯泡伏安特性仿真实验抓图
图6 灯泡伏安特性仿真实验过程抓图
1.2 仿真实验实现算法
图7 把电流表部分进行放大以便于读数
图8 把电源部分进行放大以便于对电源进行操作
(1)概述 用计算机来对电路进行计算一般需用矩阵方法,电路中节点电压的求解公式为压 相 量 矩 阵 ,A为 关 联 矩 阵 ,Y为 导 纳 矩 阵 ,˙Is、˙Us分别为标准复合支路中的电流源和电压源相量矩阵,对于一个已知电路,式中右边的矩阵均为已知,经过矩阵运算,电路中的节点电压即可求出,进而各支路电流也可求出。而在电学仿真软件中,电路是在软件的运行中由使用者适时连接而成的,他们连接成什么样的拓扑结构的电路,事先是不知道的,也即A、Y、˙Is、˙Us均为未 知量,所 以程序在对电路进行分析时必须首先根据实验者连接好的电路求出这些未知量(这里把对这些未知量的求出叫做对电路的拓扑结构进行识别),然后用矩阵方法求解出电路电量,关于拓扑结构的识别以及网络矩阵分析方法请参考笔者发表的论文“电学仿真实验的一种模式及其算法”[4],这篇论文只重点介绍非线性元件灯泡电路的分析算法以及灯泡电路浪涌现象的呈现算法。
(2)灯泡电路的分析算法灯泡是一个非线性负载,其导纳由加在两端的电压大小决定,所以电路的结构不同、参数不同,灯泡电阻也就不一样,不求出灯泡电阻,导纳矩阵Y就不能确定,电路也就无法用矩阵法求解了。对非线性电路,一般采用的方法是先给非线性负载假设一个比较合理的端电压,再用牛顿迭代法一步步使电路等效为线性电路来逐步逼近电路解,直至收敛,这也就意味着要很多次地用矩阵方法对电路进行线性化求解,计算量将比较大,计算耗费的时间会比较长。教仿追求效果的真实性,只要电路中某电量发生改变,电流、电压表指针应能立即发生偏转,不能因计算需要时间而耽搁,否则,效果就不理想了。针对灯泡伏安特性实验中只有一个非线性负载的情况,笔者探索出一种与牛顿迭代的算法相比计算量大大减少的方法,以提高计算效率,现介绍如下:
灯泡负载伏安特性求得 为了开发这一仿真试验,必须建立灯泡负载的数学模型,也即灯泡的伏安特性函数,以电动车转向灯灯泡为例,该种灯泡额定电压、功率为12V、10W,通过实验得到一组数据,把数据输入Matlab,得到图形输出,如9所示,图中,横坐标为灯泡电压,纵坐标为流经灯泡的电流,“+”号为实验数据描绘点,曲线是根据实验数据用二次函数分段拟合得到的。之所以用二次函数拟合是因为解二次函数可以用求解公式求解,从而可以避免用高次函数拟合带来的解高次函数求解必须用迭代算法的大量计算,为了使二次函数能很好的与实验数据拟合,笔者将数据分成六组,分别用六个二次函数来拟合,如图中所示,得到比较好的拟合效果。这样,根据试验数据,经过Matlab软件进行拟合,得到灯泡的伏安特性函数曲线由不同区间的六个二次函数组成。
图9 用Matlab处理实验数据
灯泡电阻的求得 因为电路中只有一个非线性元件,可用如下方法来确定这一非线性元件灯泡的电阻大小,根据戴维南定理,可把灯泡以外的电路等效为一个电压源,如图10所示。只要把电压源电动势E和内阻r求出,即可得电压源外特性,再由电压源外特性和灯泡伏安特性即可求出工作点(两曲线交点)(如图11所示),也即可求出灯泡电阻。电压源电动势E和内阻r可根据戴维南定理中的方法来求得,在电路中先假设灯泡电阻为无穷大,经过网络拓扑结构识别,用矩阵方法算出灯泡两端电压,此电压即为电压源电动势E;再在电路中假设灯泡电阻为零,经过网络拓扑结构识别,用矩阵方法算出流经灯泡的电流,也即短路电流,用刚求出的电动势E除以短路电流即得电压源内阻r。这样即可得到电压源外特性方程U=E-I*r,然后用这一电压源外特性方程与前面求到的灯泡的六个二次伏安特性方程求公共解UL、IL,用UL除以IL即得灯泡的电阻。这样就避免了用牛顿迭代算法而求得了灯泡电阻值。
图10 等效电路
图11 用电源外特性和灯泡伏安特性求工作点
求解整个电路 灯泡电阻一旦确定,那么电路导纳矩阵Y即可确定,这样就可用矩阵法求解各节点电压和各支路电流了。
(3)浪涌现象的呈现算法 当电路结构或参数发生改变,致使灯泡端电压发生改变时,灯泡阻值将由当前值变为另一值,由于灯泡阻值不能突变,变化过程需要几秒甚至几十秒时间,所以我们才看到浪涌现象。然而却很难计算电阻变化的中间值,只能用前述方法计算最终值。要让电流表指针偏转能反映出浪涌现象,就必须计算出浪涌过程中的及时电流,而这和中间电阻值有关,要算出及时电阻值,必须知道及时温度,这是很困难的,不同结构的灯泡,其热传导模型是不一样的,呈现出浪涌现象的细节也是不一样的,所以,我们不可能也没有必要去精确计算变化过程中的电阻值,只要大致算出浪涌过程中电阻值的变化,从而大致算出浪涌过程中的及时电流,来反映浪涌现象就可以了。笔者在软件开发时,创建一个电阻变化函数,该函数负责灯泡电阻由一个稳定值按一定的函数关系变化到另一个稳定值,只要电路发生改变,就按一定频率调用这一函数,同时同频率调用电路的矩阵计算函数,从而算出及时电流,再同频率调用电表指针偏转函数,使及时电流得到反映,经过实践,得到很好的浪涌现象反映效果。
2 结 论
这种模式的仿真实验形象直观、动画逼真,使用时就像做游戏一样使学生很容易沉浸在实验当中,有些学生甚至说“很好玩”,这很容易调动学生的学习积极性,笔者极力主张把教学用仿真实验与科学技术开发用仿真实验区别开来,应充分利用多媒体技术使教学用仿真实验更形象逼真,更能充分展示物理现象,并在实验操作上也能与真实实验相似,使仿真实验最大限度地接近真实实验;非线性电路比线性电路的求解要复杂得多,算法相差很大,针对单个非线性负载电路,笔者巧妙地用线性电路求解方法来取代复杂的在非线性电路中采用的牛顿迭代算法,使计算效率大为提高,对前面提到的国内处于主流地位的教学用电学仿真实验,开发者只要借助笔者的算法对程序代码做不大的改动,就可使灯泡作为非线性负载出现,从而可以做灯泡伏安特性测定实验。实验系统的可视化部分,由于与软件的开发系统关系比较大,也由于篇幅的原因,其开发方法不在此介绍。
[1]梁久琳.仿真实验法在中学物理教学中的应用探讨[D].长春:东北师范大学,2009.
[2]冯绍勇.电工仿真试验[软件][Z].北京:北京师范大学出版社,2011.
[3]冯绍勇.基于Flash虚拟实验中仪表可视化的一种实现方法[J].北京:科技创新导报,2012(33).
[4]冯绍勇.电学仿真实验的一种模式及其算法[J].大学物理实验,2010(3):31-33.