物理仿真实验系统的设计与实现
2013-12-24袁向阳周晓林
刘 科,袁向阳,周晓林,李 玲,吴 华
(1.四川师范大学,四川 成都 610066;2.中国民航飞行学院广汉分院,四川 广汉 618307)
Lab VIE W(laborator y virt ual instr u ment engineering workbench)实验室虚拟仪器开发平台是一种用图标代替文本行创建应用程序的图形化编程语言[1-8]。Lab VIEW 提供了很多外观与传统仪器类似的控件以及用户自定义控件,可以用来方便的创建用户界面。在Lab VIEW中,用户界面被称为前面板,与前面板对应的是程序框图面板,前面板上的每一个控件都对应于程序框图中的一个对象(节点),在程序框图中采用数据流编程方式,图标表示函数,连线表示数据流方向。使用图标和连线,可以通过编程的方式对前面板上的对象进行控制。
Lab VIE W程序被称为 VI(virt ual instr ument),即虚拟仪器。Lab VIEW的核心概念就是“软件即是仪器”,即虚拟仪器的概念。当我们通过自定义个性化控件和修改前面板可以创造出美观的各种仿真实验。
1 仿真实验系统的架构与实现
1.1 登录系统的设计
本实验系统在启动后将进入登录实验系统的画面,要求用户输入正确的用户名和密码才能进入实验系统界面,如图1所示。当用户输入的用户名和密码都正确无误后,点击登录按钮将进入仿真实验系统界面,当用户名或密码有误时,系统将弹出对话框提醒用户;未注册用户可以单击注册新用户按钮注册成为新用户。如图2所示。
图1 登录界面
图2 注册新用户界面
1.2 仿真实验系统的架构
在Lab VIEW中有个事件结构可以用来响相应用户鼠标点击的事件,将各种用户操作简化为各种选择按钮,在事件结构中分别定义各个事件按钮处理的事件。仿真实验系统中通过点击按钮的方式打开相应的实验内容,事件结构可以用来响相应用户操作的事件,同时可以通过控件引用、尔空间的label.text属性获得该控件的标签或标题,如果用标签名命名需要打开的子vi的话,我们获得的标签名称,就是需要打开的子vi的名称,再通过动态调用子vi技术打开相应的子vi,这样不但可以避免一次将所有用到或用不到的vi全部装载到内存中从而占据内存资源,还可以方便以后软件的修改或更新。
笔者曾用Lab VIE W制作了“单臂电桥法电阻虚拟实验”,并在《大学物理实验》发表[9],在此基础上,尝试研制出了一系列的大学物理和中学物理虚拟仿真实验,并建成物理仿真实验系统。“物理仿真实验系统”界面如图3所示。界面中有四个按钮,其中两个分别对应“弦线驻波”或“李莎如图实验”两个实验,当用户用鼠标点击相应的按钮时,将打开对应的实验,另外两个为“返回登陆界面”和“退出”按钮。下面,我们以“李萨如图实验”[10,11]仿真实验为例,详细介绍仿真实验系统的设计过程。
图3 仿真实验系统界面
1.3 李萨如图实验的设计思路
本虚拟仪器通过单击两个独立的波形选择选项卡上的信号波名称标签让系统产生两个相应的独立的模拟信号(x轴信号和y轴信号),并将产生的信号显示在前面板的图表控件中,并通过声卡采集传送到电脑扬声器产生声音。产生的信号频率可以分别通过粗调和细调频率按钮进行调节,并将信号频率显示在各自的前面板显示控件上。该虚拟仪器的虚拟仪器面板上还y轴波形选择按钮组选择y轴上可输入的信号到另外一个图标显示控件上。电源开关控制系统信号的产生与否以及两个分别调节信号振幅的旋钮,一个y轴信号频率干扰强度滑动杆。
1.4 李萨如图仿真实验的实现
1.4.1 声音信号的产生
在Lab VIEW的编程-波形-模拟波形-波形生成目录下有众多的基本波形生成函数。在这里我们选择的波形生成函数有正弦波形,方波波形,三角波形和锯齿波形等四个函数。在函数选板中的编程/图形与声音/声音/输出下有配置声音输出函数和写入声音输出函数,利用这两个函数,并以声卡作为数据采集卡便做成一个函数信号发生器。在开始播放声音前应先通过配置声音输出函数对声卡进行配置,配置声卡后就可用写入声音输出函数将波形数据通过声卡播放出来,在这之前还可以通过设置声音输出音量来设置声音的大小,当播放完声音后通过调用声音输出清零函数释放内存。
1.4.2 频率的显示
利用七段数码显示原理,以七个布尔控件组成的簇来显示单个数字,见图4。因为该簇只用来显示0到9的整数,需要把数据输入类型设为无符号整形,最大值设为9。通过条件结构给其赋值,其代码如图5所示。
图4 七段数码显示控件
图5 七段数码显示控件条件结构各分支代码
单个数字的显示已经完成,把上面的任意一个条件结构代码封装成一个子vi,命名为数字至簇转换,以便在后面的频率显示程序编写中使用。如图6为频率显示程序代码。
图6 频率显示代码
1.4.3 波形的选择和调节
应用选项卡控件创建四个子选项分别命名为“正弦波”、“三角波”、“锯齿波”和“方波”,可通过条件结构来响应用户的操作,当用户点击相应的波形按钮便可生成相应的信号类型。
信号波有频率,振幅,相位等属性,本试验涉及调节频率和振幅,分别有三个自定义的数值输入旋钮,前两个分别实现频率的粗调和细调,后一个为振幅的调节。
1.4.4 程序框图的设计
程序框图的最终代码如图7所示。
图7 最终程序代码
1.4.5 李萨如图仿真实验的最终效果
至此,李萨如图仿真实验的制作基本完成,运行的结果如下。点击前面板上的运行按钮时,程序将由编辑状态切换到运行状态。打开电源开关,电源指示灯亮。当调节频率频率和改变信号类型时,右侧会显示出当前信号的相应的频率和波形。图8、9、10分别是李萨如图形以及三角波和锯齿波、三角波和锯齿波叠加的结果。
图8 李萨如图形
图9 三角波和锯齿波
图10 正弦波和锯齿波
2 发布应用程序
由Lab VIEW编写出来的vi源文件只能在Lab VIEW的开发环境下被打开运行,我们须把它生成在windows等平台上能够独立运行的可执行文件。在Lab VIE W中有一个应用程序生成工具:Lab VIEW application builder,该工具能够生成独立可执行文件和安装包。
2.1 生成独立可执行应用程序exe文件
将所有的vi与支持文件都添加到项目中并保存项目中的所有vi,确保项目中的所有vi都能正确执行。完成好准备工作后,在项目文件左侧的树目录下的程序生成规范上右击,选择新建/应用程序(exe),在弹出的对话框中输入exe文件的各种信息,将所有的准备做好后单击生成按钮,则可生成独立的可执行文件。
2.2 生成安装程序
成功生成可执行文件后,可以将可执行文件和相关支持软件(如Lab VIEW r un-ti me引擎或硬件驱动)打包在一起作为一个安装程序发布。这样可以避免让用户再单独的安装Lab VIEW r un-ti me引擎或硬件驱动。因为,Lab VIE W 中发布的可执行文件只能在Lab VIEW r un-ti me引擎下运行。
3 结 论
通过Lab VIEW中的自定义控件可以很方便地制作漂亮逼真的仪器外观,还能够根据用户的爱好设置仪器界面,并将实验数据实时显示在仪器上,省去了学生在课堂上进行大量的实验数据处理步骤,提高了教学效率。经过调试,程序运行效果良好,可以确保系统满足相关课程的实验要求。虚拟实验能为制作物理实验课件提供巨大的方便,更重要的是,节省了购买硬件的成本。
[1]陈锡辉,张银鸿.Lab VIEW8.20程序设计从入门到精通[M].北京:清华大学出版社,2007,7.
[2]杨振江,孙占彪,王曙梅,等.智能仪器与数据采集系统中的新器件及应用[M].西安:西安电子科技大学出版社,2001,5.
[3]刘君华,贾惠芹,丁晖,等.虚拟仪器图形化编程语言Lab VIEW教程[M].西安:西安电子科技大学出版社,2001,3:2-4.
[4]杨乐平,海涛,杨磊.Lab VIEW 程序设计与应用[M].北京:电子工业出版社,2005.
[5]谢东波,高云,余成波.基于Lab VIEW的虚拟实验室研究[J].试验技术与试验机,2007,3:40-43.
[6]张桐,陈国顺,王正林.精通 Lab VIEW 程序设计[M].北京:电子工业出版社,2008,12.
[7]阮奇桢.我和Lab VIEW[M].北京:北京航空航天大学出版社,2009,9.
[8]李斌,等.Lab VIEW在物理设计实验中应用的探讨[J].大学物理实验,2012,13(3):84-87.
[9]刘科,周晓林,万德志,等.基于Lab VIEW的大学物理虚拟实验设计[J].大学物理实验,2011(6):81-81.
[10]潘学军.大学物理实验[M].北京:电子工业出版社,2009,9.
[11]兰明乾,李莎如.图形轨迹变化的规律[J].四川文理学院学报,2008(3):21-23.