余健泽,王海燕
(上海海事大学商船学院,上海 201306)
模拟仿真是研究船舶发动机的一种经济、高效的方式,可有效解决发动机运行成本高、资源有限的问题。船舶虚拟仿真教学资源是船舶仿真的一个重要应用,将模拟仿真技术与教学培训相结合,可充分发挥虚拟仿真教学资源在实验场地、消耗和安全方面的优势。冯峰等介绍了船海虚拟仿真实验教学系统的建设意义、开发方式及其应用方向;刘旸等对船舶与海洋工程专业虚拟实验教学环境提出建设意见,并基于此搭建了虚拟交互实验平台,丰富教学资源;刘乐等利用MATLAB和数据库开发了组态式船舶电力推进系统仿真软件,为虚拟仿真系统的开发提供参考。传统虚拟仿真教学资源多以C/S架构开发,只能满足在指定地点供单用户操作。运用网络开发技术,将仿真模型开发与Web技术相结合,在保证仿真系统基本功能的前提下,可有效提高操作的便捷性,扩大用户群体,并降低对计算机配置和安装环境的要求,减轻后期维护压力。目前Web开发技术与设备、仿真相结合的方式已经运用在了环保、医疗等领域:张思阳将Web技术与环保设备监测技术相结合,开发出基于Web的智慧环保设备运行监测系统,提高环保工作的效率;艾娉婷等基于.NET平台和C#语言建立了远程医疗诊断数据管理系统,提高了医生对患者病情的监控能力;谢季峰等详述了MySQL数据库在.NET平台下的集成方式,开发了企业能耗管理系统。
燃气系统是双燃料发动机的重要组成部分,对燃气系统建模是双燃料发动机仿真的关键步骤。范洪军等基于HYSYS仿真软件对工艺过程进行了仿真,对高压供气设备进行了设计、分析和选型;孙化东以WP10燃气发动机为研究对象,利用AMESim建立燃料供应系统中气化器和主机冷却系统的联合仿真,对气化器提出优化建议;刘文建立管路和阀件的一维与三维联合的模型,进行流场分析,对燃气系统管路提出优化建议。目前对燃气系统的仿真建模多以结构优化、设计建议提出为出发点,而根据燃气系统及其控制系统的整体原理进行建模及教学的较少。
基于上述研究,本文将Web开发技术与燃气系统模型相结合,基于B/S(Browser/Server,浏览器/服务器)网络架构进行改进,提出基于Web的多用户多模型个性化仿真架构,设计、开发并实现了基于Web的船用双燃料发动机燃气系统仿真。
在线计算(online calculation)是互联网发展的一种新颖的计算模式,其基于B/S模式使用浏览器通过互联网向服务器计算程序发送指令,用户通过浏览器输入指定的网址即可访问,不需要安装客户端。姜珏良利用B/S网络架构搭建基于Web的铸造过程模拟仿真计算系统。该系统运行时,显示层会将服务器上运行的温度场计算程序的计算结果显示在界面上,但界面显示的结果为模型的同一个计算结果,不能实现多模型运行。
在开发基于Web的船用柴油机仿真模型时,如果利用传统的B/S网络架构会面临一系列问题:(1)模型计算量大、实时交互数据多使得浏览器运行压力大,响应速度变慢;(2)服务器与数据库、界面层之间传输的大量数据中包含一定的无用数据,存在资源浪费;(3)程序的更新、维护较为复杂。因此,在保留传统的B/S网络架构维护方便、分布性强、开发简单、对运行环境要求低的优势的基础上,本文提出一种多用户、多模型、个性化界面的网络架构,见图1。用户通过浏览器访问仿真界面,登录后可启动单独模型并对控件进行操作;模型层自动读取数据库中的用户信息和操作信息后进行仿真计算,将结果写入数据库;界面层调用数据库中的结果用于显示。
图1 基于Web的在线仿真架构
基于Web的燃气系统仿真架构是通过模型层、数据层、界面层等3个部分交互实现的,其中:模型层在.NET平台上通过Visual Studio 2015软件运用C#语言编程实现;数据层在MySQL环境下开发,建立数据表存储仿真数据、用户表等;界面层在.NET平台上通过Visual Studio 2015软件运用MVC模版开发,用于显示系统图及数据等。数据层与模型层和界面层分别进行实时数据通信,满足实时仿真的需求。
界面层的设计包括首页界面设计、登录界面设计、系统界面设计,运用面向对象的建模思想,选用ASP.NET平台的MVC模版,将网站分为模型层、视图层和控制器层进行设计。其中:模型层主要用于处理数据逻辑,与数据库形成数据传输,只需单次编码就可以被多个视图层重用;视图层是用户访问并与之交互的界面,只负责输出数据,并供用户操作;控制器层用于接收用户的输入,并调用模型和视图去满足用户的需求。通过这样的分层设计,可提高维护及代码编写设计的便捷性。
基于Web的仿真系统的各层会存在数据交互关系,MySQL数据库通过不同接口与Web端和服务程序端进行连接,实现数据传输、存储、编辑等功能,并根据用户在线情况对数据库中的数据进行定时清理。为保证仿真系统的正常运行,实现数据库对数据信息的处理功能,对数据进行充分的整理并在MySQL中建立数据表。其中数据信息包括以下3个方面的内容:
(1)用户信息表:用于保存用户的ID、账号、密码、状态等信息,实现用户管理功能。
(2)数学模型数据表:根据数学模型数据以及前端界面控件交互的需求在数据库中建立数据表,用于存取计算数据及控件交互信息。
(3)控制系统数据表:根据控制系统模型的信号以及Web端控制台的操作交互要求在数据库中建立控制系统数据表,用于存取信号(信号一般用bool类型数据表示)。
模型层的设计目的是实现模型在线运行,建立正确的仿真模型是保证基于Web的仿真系统功能实现的核心因素。通过选取合适的数值建模方法,依据物理模型的结构、原理,建立起正确的数学模型。运用C#语言将数学模型代码化,利用Windows服务应用程序配置用户权限,搭建与数据库的实时通信,给予登录用户启动、停止、注销权限。有多个用户就给予多个线程启动单独模型,让用户登录后可以操作模型、调用模型计算结果,保证数据库通信安全和多用户多模型功能的实现。
利用Microsoft Visual Studio 2015建立Windows服务程序来实现模型层与数据层之间的实时交互,配置服务程序的默认属性,保证服务程序的稳定运行和交互性。在服务程序项目中建立C#类库,用来保存仿真模型类、数据库连接配置文件、数据库调用文件、服务程序配置类、模型控制器类、用户类、服务程序类等,满足服务程序运行的基本功能。其中:数据库调用文件为MySQLhelper类,用于读取用户信息、更新用户对模型的操作属性以及用户操作内容等,从而判断用户的状态、在线用户量、对模型和数据库的操作情况等信息,实现用户对模型的操作管理及用户管理功能;服务程序配置类用来初始化算法及数据库连接命令;模型控制器类的作用是通过调用服务器配置类和MySQLhelper类配置基本参数,并用于判断、检测用户状态从而控制模型的启停,更新数据信息;用户类用来定义用户数据、初始化模型参数;服务程序类用于启动服务应用程序,通过定时器每秒识别一次用户的登录和操作情况,调用模型控制器类为不同用户单独启动一个新的模型,满足用户个性操作需求。
通过服务程序建立数据库与后端程序的实时通信联系,同时实现多用户多模型的功能。
界面层与数据层的通信是为了实现将数据可视化并将界面操作信息写入数据库。通过编写开发项目中的配置文件,实现与MySQL数据库的连接。利用HTML、JavaScript、CSS网络编程语言和数据库语言根据项目需求搭建首页界面、登录界面和系统界面,利用Ajax技术和Echarts控件美化显示界面。其中,登录界面在MVC模版的基础上进行用户权限修改,根据用户登录的权限给予其对模型的操作权限,并更新数据库登录信息,以供服务程序检测更新用户情况、启动新的模型。
界面层的主要作用是接收用户的操作信息并将其写入数据库,将数据库中的模型计算结果数据显示到Web界面中,用于操作模型和显示仿真结果。
为实现仿真系统在局域网内的多用户访问功能,将模型层、数据层、界面层依次部署于IIS管理器上,通过服务器配置、Windows 服务应用程序配置、Web端发布和测试,实现基于Web的局域网内多用户、多模型、个性化仿真。服务器部署流程见图2。
图2 服务器部署流程
为验证基于Web的多用户、多模型、个性化网络架构的实用性,保证仿真系统的正常运行,本文选取瓦锡兰20DF船用双燃料发动机为模型层开发对象,搭建数学模型并将其代码化,以实现基于Web的多用户多模型船用双燃料发动机燃气系统仿真。瓦锡兰20DF船用双燃料发动机基本数据见表1,其中GVU是gas valve unit的缩写,表示燃气阀组单元。
表1 瓦锡兰20DF船用双燃料发动机基本数据
模型层从两方面对瓦锡兰20DF船用双燃料发动机进行建模:一是运用热力学基本公式、容积法等数值建模方法对燃气系统中的管路、阀件进行建模,根据结构上输入输出关系建立燃气系统整体模型;二是利用有限状态机的思维建立瓦锡兰控制系统模型,根据燃气控制顺序和输入输出信号测试系统保证系统正确性。模型层基本架构见图3。
图3 模型层基本架构
燃气系统主要由内部燃气系统和GVU两部分组成。GVU包括一个气体压力调节阀和一系列的止回阀和泄放阀,用于确保在燃气模式下的操作可靠、安全;内部燃气系统包括双层壁气体管道、主燃气阀、排气阀,主燃气阀是将燃气输送到各气缸进气口的通道,排气阀用于在特定情况下释放气体压力和冲洗阀门。
根据燃气系统物理模型基本原理,运用容积法、热力学基本公式等方法建立燃气系统数学模型:
(1)燃气介质:包括对燃气气体常数、气体绝热指数、天然气密度、天然气相对分子质量等的定义和计算。
(2)燃气阀模型。对氮气吹扫阀、泄放阀等进行建模,通过阀门通用计算式和理想气体状态方程推出阀门流量、压力等参数的计算式。
(1)
式中:为阀门的流量;为流量系数;为阀门流通面积;为理想气体常数;为燃气介质的温度;Δ为阀前后的压差;为燃气压力。
(3)燃气管路模型。假设管路中不存在流阻,通过甲烷、氮气及混合气体的流入流出关系,利用能量守恒定律、质量守恒定理计算出管路的流量和燃气压力。
(2)
式中:为甲烷流入质量流量;为甲烷流出质量流量;为混合气体中甲烷的比例;为混合气体质量流量;为排出系数。
(3)
式中:为CH温度;为氮气流入质量流量;为氮气温度;为氮气流出质量流量;为管路的初始温度;为散热系数;为环境温度;为气体总质量。
=(××)
(4)
式中,为管路容积。
(4)GVU模型。假设燃气从进气阀经过GVU到主燃气阀整个过程为准静态过程,燃气成分几乎不发生改变,且温度变化缓慢,用理想气体状态方程和质量守恒定律建立GVU的宏观模型。利用理想气体状态方程和质量守恒定律得出
(5)
式中:为燃气进气阀的质量;为主燃气阀的进口质量。利用伯努利方程及流量、密度、质量流量间的关系推导出GVU质量流量计算式:
(6)
式中:为GVU调节产生变换的燃气质量;为因单位变换而导致的单位系数;为阀件流通开度;为燃气密度。
(5)主燃气阀模型。根据稳定流动连续性方程,气体通过任意截面的质量流量都是相同的,可得天然气流量方程,即
(7)
式中:为主燃气阀的气体质量流量;是天然气质量流量参数,根据气体的流动状态确定;是电磁阀进气压力。
燃气控制系统是UNIC C3(瓦锡兰20DF船用双燃料发动机控制系统)的重要组成部分之一,该系统主要控制燃气进气阀、气体压力调节阀等一系列阀门的动作,从而保证燃气压力的稳定及对燃气喷射量的精确控制。在燃气系统正常运行时,将默认状态、燃气泄漏测试、GVU准备、燃气供应系统准备、燃气系统冲扫、燃气压力稳定、燃气供应、燃气系统除气、燃气系统惰化作为状态机状态进行开发。在每个状态下,燃气系统会与主机遥控系统(RCS)、燃气探测系统、发动机控制系统(ECS)等形成信号、参数交互,例如燃气泄漏测试、燃气通风、燃气供应停止运行、燃气系统状态、燃气压力等,并对燃气系统中的各部件进行操作,监测过程参数,以维持发动机正常运行。
根据燃气控制系统的控制逻辑,利用有限状态机的建模思想,建立燃气控制系统,流程见图4。图4中:A,B,…,H为该模式下转换成功条件;A,B,…,H为转换失败条件;I表示惰化完成且继续燃气模式;I为惰化完成且结束燃气模式;I为惰化失败。转换成功条件指在该状态下无故障信号和操作信号输入,且燃气系统在某个状态下满足设定的运行时间要求;转换失败条件指在该状态下有故障信号、操作信号的输入或者燃气系统参数、阀门动作异常。在每个状态下,控制系统会对燃气系统中的阀门进行操作,并进行数据和信号的传输。
图4 燃气控制系统状态转换
为保证仿真的正确性,对基于Web搭建的瓦锡兰20DF船用双燃料发动机燃气系统仿真模型进行仿真验证。仿真验证采用定步长的方法(步长为1 ms,时长为1 000 s),算法为四阶龙格库塔法。
燃气系统仿真实验设置工况为从30%负荷上升到100%负荷,得到GVU燃气压力输出情况和主燃气阀单次输出燃气质量流量。仿真实验结果与台架试验结果的对比表明,发动机在不同负荷下的燃气压力和燃气质量流量仿真结果与实际结果的偏差都在5%以内,说明仿真效果良好。实验结果对比见图5和6。
图5 GVU输出燃气压力仿真实验与台架试验结果对比
图6 GVU单次输出燃气质量流量仿真实验与台架试验结果对比
以燃气系统为模型层开发对象,搭建基于Web的船用双燃料发动机燃气仿真系统。为保证系统承载力要求,本文采用多个用户同时登录对系统进行测试。测试结果表明,系统能够同时承载30个用户在线操作,系统承载力良好;系统可在用户登录后对模型进行操作,并根据用户的操作情况调用仿真模型的计算结果用以显示,在虚拟教学方面具有应用价值。
本文主要介绍了基于Web的船用双燃料发动机燃气系统仿真设计、开发、实现,提出一种多用户、多模型、个性化显示的创新型网络架构。为验证提出的虚拟仿真架构,使用C#、HTML、JavaScript、CSS等编程语言混合编程,对模型层、数据层、界面层进行开发,搭建基于Web的船用双燃料发动机燃气仿真系统。测试表明,该系统能够在运行时保证模型的正确性、多样性和实时性,能够同时承载30个用户在线操作,满足教学培训的基本要求。本文提出的设计方案不需要安装客户端,可通过浏览器直接操作,相对于软件系统提高了仿真系统的便捷性并降低了后期维护成本和对配置环境的要求。
未来可深入研究船用双燃料发动机整体机理,在模型层搭建船用双燃料发动机仿真模型,实现基于Web的双燃料发动机仿真。