谢慧明,许 轶,姚克俭
(浙江工业大学 化学工程与材料学院,浙江 杭州310032)
随着化工原理实验教学改革与实践的深入,传统的精馏实验教学得到一系列的变革.计算机辅助教学CAI(Computer aided instruction)是现代精馏实验教学中重要组成部分[1],精馏实验仿真软件就是其代表之一,可以让学生更方便和形象的进行精馏实验学习,易于学生理解接受.国内外很多关于化工原理实验仿真的软件中都包含精馏实验部分,但绝大多数精馏实验仿真软件是在对真实实验做出较多简化的基础上制作起来的,在简化的同时也会使我们不能很好的全面理解和掌握精馏知识;实验操作上有过多的限制,使学生操作起来变化不多,不够真实.CAI的出现,改变了传统的教学模式,提高了教学效果.计算机技术的迅速发展推动了CAI向着更先进、更高水平的方向发展,从而在教育领域最终实现人机之间的交互.如何进一步提高CAI系统的功能和适应性,使CAI系统具有智能性是目前面临的难题.人工智能技术在计算机辅助教学中的应用和发展,产生了智能化教学系统ITS(Intelligent teaching system).软件工程的方法引入到计算机辅助教学系统的开发中,促进了课程设计的工程化.在人工智能的帮助下,一些非计算机专业的教育工作者也能自己动手方便地开发出计算机辅助教学软件.数据库作为一件存储工具,越来越多的在CAI中得到应用,使得CAI的内容变的更加丰富[2].针对精馏仿真软件中的问题和现代CAI发展的趋势,本系统做出相应的改进,实验操作限制少以及用大量自制动画来表现精馏实验中的各种现象,使系统具有高仿真度.随着计算机技术和人工智能技术的不断发展和成熟,将人工智能引入到仿真系统中,实现系统自动判断实验操作和状况[3]以及自动经多种方式指导实验操作和系统再学习都是改进后系统的特点.
本系统主要应用于化工原理精馏实验教学,属于CAI范畴.以实验室中精馏实验装置为原型,要包含有实验预习、实验操作、取样、数据处理等基本功能模块,系统界面要求简洁,实验的动画要合适及生动.除了对正常的现象进行仿真以外,主要是对精馏实验中可能会出现的一些不良状况和意外情况进行仿真,如液泛、液漏、热电藕干烧等状况.本系统强调的是导师系统概念,所谓导师系统就是像学生进行实验时,边上站着位实验老师时刻进行指导,所以系统要具有指导学生完成整个精馏实验过程的功能,还要具有评价实验完成好坏和检测实验掌握情况功能.仿真过程中的加料、加热、等待塔内气液传质稳定等步骤要能体现出时间的概念,并且实验的快慢程度具有可调节性,根据实际的情况不同进行合理变化.
1.2.1 界面设计
以整个精馏实验装置图作为主操作界面.系统中考虑实验装置实际情况下的分布、大小比例和目前主流显示器的分辨率等因素,适当的对真实装置做出改动,使界面看起来既自然又能体现实际情况.界面制作的主要方法是选择合适的图片后,导入到picture box或image控件中,设置好相应的属性值,再将控件放到合适的位置,对于操作位通常由两张或多张图片叠加而成.
1.2.2 模块设计
系统主体包括两部分:流程组装和仿真操作.仿真操作又包括操作监测、数据处理、数据库和知识库管理等模块[4].系统主体功能结构如图1所示.
图1 系统总体功能结构图Fig.1 The frame of the system
人工智能是研究使计算机来模拟人的某些思维过程和智能行为(如学习、推理、思考、规划等)的技术.是实现本系统智能化的重要部分,但并不是单独存在,是嵌入在系统的模块之中,在操作监测和知识库的管理模块中用到人工智能的推理和学习技术.
模块功能:
1)用户登录模块.以学生的学号作为统一识别信息来登陆系统.在学生第一次使用该系统时,系统会以学号作为标识信息为学生建立自己的信息库,记录学生每次实验的完成情况.
2)系统设置模块.配置系统的全局信息,包括实验模式选择和进行实验的季节设定等.实验模式分为指导型和考核型两种,指导型带有操作指导功能,帮助学生完成实验;而考核型不带指导功能,适用于考查学生对精馏实验的掌握情况.进行精馏实验的季节不同,影响实验的室温和大气压就会有差别.
3)流程组装模块.熟悉精馏实验的装置和流程是实验预习中的重要部分.流程组装就是实现方法之一,其主要方式是事先抠出实验装置中的重要部件,再由学生把这些部件图片正确的安装到缺少这些部件的流程上,使其完整.
4)操作监测模块.依据综合数据库[5]中的信息和知识库对学生操作进行分析和判断,再根据实验模式和操作的错误程度给出提示和指导.
5)数据处理模块.处理精馏实验记录的数据,计算出全回流下的全塔效率和单板效率以及部分回流下的全塔效率.
6)实验评估模块.依据学生对实验的完成情况和实验过程中误操作、不良状况和事故出现的次数及严重程度进行评估.
7)数据库管理模块.收录更多的实验数据,在实验数据表中继续添加以后每一届学生的精馏实验数据.
8)知识库管理模块.负责对知识库进行修改、删除和添加.
2.1.1 开发运行环境
本系统不是通用型精馏实验仿真,是对特定的精馏实验装置的仿真,具有自己实际存在的实验原型.本系统采用浙江工业大学化工原理实验室的精馏实验装置为原型,选用的物系为水—乙醇体系.
整个系统的制作过程是在Windows XP操作系统下完成的,同样系统的运行也要求在Windows XP操作系统进行,显示器的分辨率推荐1 024×768及以上,另外在 Windows XP操作系统中需要安装有 Aspen plus 11.1和 Access 2003两款软件.
2.1.2 工具选择
整个系统的开发过程中涉及到的内容很广,用到的工具种类也比较繁多,有Windows编程语言、数据库、图像制作和处理及动画制作转化等.具体的工具有 Visual Basic 6.0,Access 2003,3dMax 8.0,Photoshop CS3,Flash 8.0,Swf2Gif,Setup Factory 7.0等,其中最主要的是:Visual Basic 6.0和 Access 2003.Visual Basic 6.0主要用于整个系统的开发,代码的实现.Access2003主要作为系统的存储工具.在数据库访问方面选择DAO(Data access objects).
2.1.3 数据库选择
选择 Microsoft Access 2003作为系统的数据库,Access是一种桌面数据库,也是一种关系型数据库管理系统,能作为独立的数据库管理系统使用,也可以以产生结构化查询语言(Structured query language)这样的服务程序.此外,Access还具有开放数据库互连(Open database connectivity)特性,用户可以与很多外部数据库连接.同时Access与Visual Basic 6.0一样是 Microsoft公司的产品,通过上面提到的 DAO,可以实现在 Visual Basic 6.0对Access进行很好的控制.
收集历届学生所做的精馏实验数据,包括在液泛状况下测定的数据.以一定的存储方式存放到数据库中.本系统的素材通过收集和制作获得.以精馏实验室的实物为对象,3dMax为三维模型制作工具,制作好后渲染导出,再经Photoshop进行处理,完成后作为图形素材.以Flash8.0为制作工具制作表现实验现象和设备运行的各种动画,导出Swf文件后,再由转换工具转成Gif文件,完成后作为动画素材.另外,素材库的建立还包括对声音文件的收集.
动画在整个仿真系统中占有非常重要的位置,可以给人生动、逼真、直观及多视角的动态描述[6].实验中的一些设备的运行,如离心泵;正常的状态,如塔釜中蒸汽的产生;和非正常情况,如塔内液泛.这些情况用图片切换的方式来表示就显得不合理,这时候就要用到动画.在阀门开大后,液体流量并不会马上到达稳定,所以转子流量指示流量应该是一个动态的过程.即使在稳定点时,实际中的转子流量计中的转子也不是静止的,是一个动态的平衡.每个动画都有自己的触发机制.随着实验的进行,系统中各个量会改变,如果传递到动画层的信息触动了动画的触发机制,则相应的动画就会显示出来.一方面系统状态变化决定了动画显示,另一方面则是通过动画显示反应出系统状态的改变[7].Visual Basic 6.0支持的动画格式有多种,如 Avi,Swf,Gif等.本系统选用Gif作为动画文件的主要格式,除了Gif文件的大小比较小以外,还因为可以控制Gif运行的第三方控件功能比较完善,可以进行较好的控制.
数值层控制着整个系统中涉及到的数据部分的数值变化和数值显示[8].数值变化是由系统中不同的数据模型计算得到.调节电压后塔釜的加热能力、改变阀门开度后流体的流量、非稳定状态下塔釜和塔顶的温度及压力等变化都有自己的数据模型.其中精馏塔的计算模型最为复杂.以收集到的精馏实验数据为依据,分别在aspen plus11.1中建立相应的全回流和部分回流的水与乙醇精馏模型,再用收集到的同一套装置不同组的实验数据去校正,得到对某固定套装置比较准确的精馏模型.
数值显示,按照学生的不同需求,通过菜单上的按钮来选择是否在界面上直接显示数值.当信息从逻辑层传递过来后,数据模型就对信息进行加工,并把所得的结果再返回到逻辑层中,最后传递到界面.本系统的仿真性更是体现在对实验数据的运用上,当系统在稳定点取样时,首先会对数据库进行搜索,如果数据库中数据点对应的状态与取样点的状态相同,则调取数据库中的实验数据作为实验取样的样品浓度值.如果不存在,再通过精馏塔计算模型计算得到,此时系统就会调用Aspen plus11.1与系统之间的接口,打开和运行bkp文件,并通过接口把bkp中的数据传递到系统中.
有的模型是通过逻辑分析和化工常识建立起来的,得到的并不是一个精确值,而是反应出某些量在某一状态下的改变趋势.如非稳定状态下塔顶的压力模型,在产生蒸汽后没有开冷却水而冷凝器放空又未打开的情况下,塔内的压力是会增大的,这时候的压力数据变化就反应塔内压力增大的趋势.
逻辑层解析和校验用户提交的操作指令,经过不同逻辑方式处理加工,再把信息传递到数据模型层中,或是直接传递到界面层、动画层和数值层,或是将模型层中的虚数数据提取并实体化后返回到界面层、动画层和数值层.对精馏实验中的操作动作进行分类,分为瞬时性和延时性动作.铐克的开关属于瞬时性动作,系统定义每处的铐克位置有一个逻辑值.当铐克打开时,值为 TRUE;关闭时,值为FALSE.类似的瞬时性动作还有电源和泵开关.阀门的调节属于延时性动作,阀门的开度控制着液体流量的变化,系统定义开度和流量一个浮点型的数值,有一定的数值范围.类似的值还包括电压大小和液位高低等,一个范围代表一种情况.系统中通过一个由时钟触发的程序,对这些值进行实时检查,并传递到综合数据库中.
在整个系统制作完成之后就要对系统进行调试,加入一些错误处理程序,确保功能可以正常运行,然后再打包制成安装文件.
通过表1比较得知,本系统除了在界面和动画做了较多的改进外,还在涉及精馏实验内容量的容错性方面,引入了人工智能技术,使系统具有智能性,可以让学生通过本系统的使用得到更全面的精馏知识.
表1 本系统与同类软件的精馏实验比较Table 1 The system compare with distillation experiment of other similar software's
知识获取是将人类专家获取领域知识并将其转化为知识库的过程.在这里我们采用精馏实验教师提供的对常见误操作与实验现象间相互关系的分析以及精馏的一般性知识来作为领域知识,对这些信息进行分析和处理,建立合适的结构和规则,最终变成知识系统接受的知识表示形式,设计出专家知识库.
知识库用于存放领域专家提供的专门知识,其实质就是将专家的知识和经验分成事实和规则,以便于以使用和管理的形式组织起来存入计算机,用于问题的求解.在Access中设计好多表间的相互关系及各表的结构,再将前面设计好的知识存放进去.
在系统中建立推理机,就是通过程序控制对综合数据库中的当前问题信息进行识别并选取知识库中的可用知识进行推理.具体的有以下两个方面:
1)操作监测模块.操作监测是实现系统整体功能中最为关键的一步.涉及到系统中大部分模块,还包括推理机的运行和知识库的运用.负责对实验操作进行分析和判断并对学生进行实验操作指导.
学生在界面进行实验操作,系统会对操作引起的变化进行判断,可以帮助操作者理解操作信息-包括误操作与精馏知识间的关系,促使学生有更好的操作表现,使整个导师系统更有效的得到使用[9].每进行一步实验操作,操作指令传递到逻辑层,经过各种方式逻辑加工,一部分信息传递到数据模型层,再由逻辑层对返回的信息进行逻辑加工.最后将逻辑层中的所有信息传递到综合数据库中,推理机依据综合数据库中的数据和知识库中的知识对该步操作进行分析和判断.根据实验模式再对分析和判断的结果进行进一步处理.如果是考核型,那么系统对误操作没有任何提示,但会在实验评估部分中作记录,以供实验结束后评估之用[10-11].如果是指导型,那么系统会根据误操作错误程度的不同以不同的提示方式来给学生说明原因并指导实验操作.另外在指导模式下,如果遇到未预料到的情况,这时候可以调取综合数据库中的信息,并且由实验教师来依据这些过程实时信息对实验状况进行分析,再通过系统提供开放性接口把结果存入到知识库中,以备下次使用.具体运行如图2所示,学生进行实验操作,系统读取操作,那么系统中的一些值就会产生相应的变化,再把这些数值传递到综合数据库中,通过与知识库中知识比较判断,如果正常则继续运行,如果有误操作则按照错误的不同进行提示.
图2 操作监测运行方式Fig.2 The run way of operation monitoring
实验中的很多状况的出现,不仅跟操作相关,而且还与持续的时间长短相关联.比如干烧热电耦并不会马上就烧坏、加热电压过高也不会马上出现液泛等等.所以系统除了以操作来触发监测功能之外,还有个以时间作为变量的触发机制.每隔一定的时间,通常较短就要执行一次,其运行方式与操作触发式的一致.在部分中就是多加入一个判断量,比如干烧热电耦,干烧一定的时间才会坏,那么系统就设定一个干烧时间的最大值,如果实验中的干烧时间积累超过这个给定值,那么热电耦就会烧坏.
2)开放性接口.为了提高数据库中数据点的覆盖面,要不断的将以后每届学生在的精馏实验数据添加到本系统的数据库中.为此本系统提供实验数据输入接口,系统对输入的数据做出一定的判断之后再存放到数据库中.
实验操作具有偶然性,十个人对同一套装置的操作可能都不相同.所以在知识库首次录入的时候,很难考虑到所有情况.系统完成后,我们不可能直接到知识库中进行操作,但这部分功能可通过开放性接口来实验.实验教师可以通过开放性接口把未考虑到的情况手动添加到知识库中,也可以在学生使用过程中遇到时,再由其分析后添加到知识库中.使系统具有一个简单的再学习功能.
本系统实验操作具有较强的开放性,不局限于一个正确的实验操作流程,更能体现实验操作的真实性,还具有对实验操作进行监测的功能,不仅帮助学生指出为什么不合理,更给出了操作建议,就像有位导师在边上指导实验,解决疑问,在实验的最后还能对学生的整体操作水平做出一个评估.通过精馏实验教学,不仅使学生能够验证书本上的理论,更能引起思考,培养学生的动手能力,特别是针对实验中可能出现的非正常现象,强调及时查找原因,提出解决方案,培养学生分析和解决问题的能力.在仿真软件中可以做出多种尝试,一旦失败可以立即恢复过来,避开在实际实验中一旦状况破坏就是花很长时间来恢复,可以为学生节约大量的时间.随着电脑技术和人工智能的发展,在未来可以在精馏实验中加入更多的人工智能因素,使其更智能化;通过更先进的电脑技术手段,使实验现象的表现更形象化.
[1]刘永新,梁英华.化工原理多媒体课件的开发应用[J].计算机与应用化学,2002,19(6):797-799.
[2]吴静霞.基于智能组卷的在线考试系统的设计与实现[D].江苏:苏州大学,2008.
[3]SHIN D,VENKATASUBRAMANIAN V.Intelligent tutoring system framework for operator training for diagnostic problem solving[J].Computers Chemical Engineering,1996,20:s1365-s1370.
[4]卫静莉,李晓红,熊英莹.化工原理实验仿真功能设计及教学探讨[J].实验室研究与探索,2006,25(1):44-46.
[5]许亮,李秀喜,郭子明.化工过程实时故障诊断专家系统的研究与开发[J].计算机工程与应用,2007,43(8):245-248.
[6]浦伟光,曹正芳,孙鹏.化工原理课程设计多媒体课件的开发[J].计算机与应用化学,2002,19(5):657-660.
[7]管国锋,汤吉海,朱宇.化工原理实验仿真系统的开发[J].南京化工大学学报,2000,22(1):22-26.
[8]刘金红,许秀林,江锦龙.化工原理模拟软件的发[J].计算机与应用化学,2003,20(4):518-520.
[9]刘兵.精馏实验的数字模拟和多媒体教学[J].计算机与应用化学,2008,25(2):245-248.
[10]SHIN D,YOON E S,PARK S J.Web-based interactive virtual laboratory system for unit operations and process systems engineering education[J].Computers and Engineering,2000,24:1381-1385.
[11]SHIN D,YOON E S,LEE K Y.A web-based,interactive virtual laboratory system for unit operations and process systems engineering education:issues,design and implementation[J].Computers and Engineering,2002,26:319-330.