APP下载

基于Unity 3D的恒压供水虚拟实训教学装置开发

2017-09-09王大虎卢正帅贾倩

软件导刊 2017年8期
关键词:工程实践三维建模虚拟现实

王大虎+卢正帅+贾倩

摘 要:针对高校电气控制课程实训平台数量不足、实训内容简易匮乏和学生工程实践能力差等问题,选择生活中较为典型的恒压供水系统作为教学载体,设计了恒压供水虚拟实训装置。系统采用3ds Max建立水泵、压力传感器、水池等三维模型,利用Unity 3D开发恒压供水上位机虚拟仿真软件,以PLC、变频器和继电器等搭建硬件控制电路作为下位机,上位机仿真软件和下位机硬件控制电路通过通信接口模块连接交换数据,实现了融合虚拟场景和硬件控制电路的虚拟实训装置的开发。结果表明,虚拟实训装置能够有效降低实训设备成本,弥补实验设备数量不足,充实实训内容,提升学生工程实践能力。

关键词:恒压供水;虚拟现实;三维建模;工程实践

DOIDOI:10.11907/rjdk.171369

中图分类号:TP319

文献标识码:A 文章编号文章编号:1672-7800(2017)008-0100-03

0 引言

恒压供水系统在自来水厂、居民生活区、企业生产用水和农田灌溉系统等方面应用广泛,恒压供水设备可靠安全运行直接关系到人民群众的生命和财产安全[1]。电气控制课程专业实践性强,实验教学在学生将理论水平转化为动手能力过程中和培养实际解决问题能力方面发挥了重要作用。因此,将恒压供水系统列入电气控制课程实训内容十分必要。

目前电气控制课程实验教学方式主要有以下3种[2]:①学生通过计算机编写PLC梯形图控制程序后下载到控制器中观察输出点指示灯状态,判断程序是否实现控制目标,因该方法缺少控制对象,故只可进行简单软件调试;②高校依据课程安排选取典型控制对象如电机和交通灯等模拟实际控制系统,但与实际工程相差较远;③采用大型PLC综合实训平台能够模拟多种工业控制系统,但设备价格昂贵,设备损耗严重,大量购买设备并不现实。胡盘峰等[3]设计的基于PLC的新型变频恒压供水系统,缺少上位机组态,人机交互性差,主要适用对象为住宅小区,不适用于学生实训。居荣等[4]开发的基于实际应用的恒压供水实验装置,仅有缺少楼层模拟,与实际工程应用差距较大。张学辉等[5]的开发基于PLC及变频器的恒压供水实训系统,系统结构复杂且可扩展性差。

针对上述问题,本文设计了基于Unity 3D的恒压供水系统虚拟实训装置。系统采用3ds Max创建虚拟实验场景、虚拟传感器和虚拟水泵等设备三维模型,以Unity 3D为模型引擎开发上位机虚拟仿真软件,下位机采用PLC和变频器等设备组成硬件控制电路,上位机虚拟仿真软件和下位机硬件控制电路通过通信接口模块交换数据,具有操作简便、成本低、扩展性好等优点。

1 虚拟恒压供水系统总体设计

针对电气控制课程实验教学特点,系统主要应用于电气控制课程实验教学,在PLC程序运行时需要实时通过虚拟场景验证控制器的输出信号,同时也需要将虚拟传感器的状态传给控制器,通过虚实结合的方式来再现整个控制过程。系统总体框图如图1所示,系统由仿真软件、接口模块和硬件电路三部分构成。硬件电路输出的各种控制信号,经过接口电路处理后送给仿真软件,实现对虚拟场景中虚拟开关和执行机构的控制,虚拟传感器的检测信号经过接口模块送给控制电路,实现压力控制的闭环。

仿真软件主要用来模拟恒压供水系统实际工作现场,根据工艺要求和性能要求,压力传感器采集压力信号由A/D转换模块将设定值与采集值比较,PID根据变频器参数进行数据处理,处理结果以频率形式输出以此控制水泵工变频运行,实现管网压力稳定的目标[1,6-7]。Unity 3D是虚拟恒压供水系统仿真软件的开发工具,可视化编程界面,脚本编辑高效,支持多种编程语言,可以用来控制虚拟三维设备模型动作和模拟真实控制效果,再现恒压供水现场控制过程。

硬件部分包括接口模块和控制电路,控制电路包括操作平台和交互设备,交互设备包括键盘和鼠标,用来控制虚拟场景和视角。控制电路主要由PLC、开关电源、继电器和变频器等设备组成,接口模块来以单片机和继电器为核心实现电平转换和电压线性转换来进行数据交换。

2 仿真软件

2.1 模型创建

建模是虚拟仿真软件开发的基础,模型质量好坏决定了仿真软件水平高低[8]。根据在现场拍摄的恒压供水系统照片及网上搜集的相关资料,采用3ds Max创建恒压供水装置的三维模型及场景模型,如楼房、水箱、水泵、压力传感器等。建模时需要保证虚拟场景和真实场景相同,虚拟物体在场景中的摆放位置也应与真实物体在现实世界中的摆放位置保持一致,在创建三维模型时为了减少软件占用内存空间,使软件运行更为流畅,需要删除模型的面数和分段数。为了让模型细节更加逼真,需要为模型添加贴图。通常情况下设置图片大小为512×512,格式为png。虚拟场景中管道模型材质为不锈钢,具有反射特性,因此需要为其添加反射贴图,提高光泽度,降低高光级别,实现更逼真的效果。模型创建完成后,为保证模型比例一致,需要通过3ds Max将模型导出为.FBX格式文件。图2为恒压供水系统实物与三维线框模型对比。

2.2 数据交换

数据交换是虚拟交互基础,通过C#命名空间System.IO.Ports中SerialPort类实现[9]。关键通信程序如下:

void Start()

{

SP = new SerialPort("COM3", 9600, Parity.None, 8, StopBits.One);

SP.Open();

_thPort = new Thread(RecData);

_thPort.Start();

}

首先在Start函數内实例化一个SerialPort类SP串口,初始化参数包括串口号、波特率、校验位、数据位和停止位,该参数应与接口模块串口参数一致。然后打开串口,利用Thread函数开启一个RecData线程,用来接收数据帧。最后在FixedUpdat函数中调用。RecData程序如下:endprint

private void RecData()

{ try

{ Byte[] buf = new Byte[1];

if (SP.IsOpen) SP.Read(buf, 0, 1);

if (buf.Length == 0)

return;//如果没有数据,直接返回;

else

UserData = buf[0]; //接收一位数据

}

catch (Exception ex)

{

Debug.Log(ex);

}

}

在RecData线程内,使用SP串口的Read函数循环读取接收缓冲区数据,并将结果返回给数组buf。根据buf的长度判断是否读取到数据,如果数组长度为0则直接返回,否则将数据赋给UserData。软件根据UserData的不同数值,执行视角切换、水泵启停、位置转换等操作。

2.3 模型驱动

将创建好的三维模型导入Unity 3D,同时为模型添加粒子特效模拟水流效果,设定粒子碰撞和粒子渲染参数。为了让模拟场景水泵运行声音,需要在场景中添加音源组件Audio Source和声音监听组件Audio Listener,并添加到对象物体上,通过脚本控制水泵运行声音的有无。采用键盘和鼠标来控制Cam行走、转向、仰视和俯视等动作,通过RoleControl脚本实现角色控制,实现仰视和俯视角度的控制,Clamp和Euler两个函数实现:Mathf.Clamp(headAngleY, downLimit, upLimit);Head.transform.localRotation = Quaternion.Euler(headAngleY, 0, 0)。函数中参数headAngleY表示相机当前沿Y轴方向的倾斜角度,downLimit和upLimit分别表示俯视和仰视的最大角度[10]。Clamp函数将返回一个位于downLimit和upLimit之间的值。当headAngleY小于downLimit时,返回downLimit,当headAngleY大于upLimit时,返回upLimit,否则返回headAngleY。从而避免出现俯视和仰视角度过大与现实不符的情况。Quaternion.Euler(headAngleY, 0, 0)表示绕X轴旋转headAngleY度,即限制角色只在YZ平面仰视和俯视,以免出现左右倾斜的现象。

3 硬件电路

3.1 接口模块

接口模块采用STC12C5A60S2型号的单片机作为数据处理核心,包括电源电路、时钟电路、复位电路和输入输出接口等[11]。电源电路用于将AC220V转化为DC5V为单片机各部分供电,时钟电路用于控制单片机,各部分电路严格按照时序进行工作,通过外部按键在单片机RST端产生高电平恢复各寄存器默认状态,输入输出电路则通过循环扫描端口的方式,接收外部经过4N35光电隔离器的输入信号。

3.2 控制电路

恒压供水系统的目标是将供水管网压力通过传感器送给控制器,由变频器A/D转换模块将模拟量转化为数字量,压力设定值和采集值两个数据同时经过PID控制模块进行数据处理,并将结果以运行频率的形式进行输出。PID控制模块具有比较和差分的功能,当供水压力低于设定压力时,运行频率升高,反之则降低,同时也可根据压力变化快慢进行差分调节[12-14]。控制电路由PLC、变频器和触摸屏等组成,PLC采用的是西门子S7-200系列,虚拟传感器采集的压力流量值通过接口模块送给PLC,然后PLC经过PID运算后输出给控制变频器和接口模块,最后传给虚拟仿真软件用于控制虚拟水泵转速和阀门开度等模型,触摸屏用于设定管网压力,显示设备运行状态。如表1所示I/O分配表。

4 测试结果

无负压供水系统是目前常见的较为先进的供水设备,主要由水泵、电机、控制柜、稳流罐、远传压力表、集水管、负压解除器、出水管、電磁阀等构成,具有投资成本低、节能和设备占地少等优点[15]。当用户用水量增加时,压力传感器检测到自来水的压力低于用户所需用水压力,控制器则通过变频器启动管网,直到管网压力增加到用户所需用水压力时控制器控制变频器以输出恒定的工作频率,保证管网压力恒定。系统效果如图3所示。

5 结语

采用三维建模、人机交互、虚拟仿真等技术,以生活中典型的恒压供水系统为研究对象开发的恒压供水虚拟实训教学装置解决了电气控制课程中教学中实验设备数量不足、实验内容简易匮乏和学生工程实践能力差等问题。系统具有成本低廉、模型逼真和使用方便等优点,能够激发学生的学习热情、提高学生的工程实践能力。

参考文献:

[1] 张邦成,王华振,李淼,等.基于PLC控制的恒压供水系统设计[J].计算机测量与控制,2013,21(8):2136-2145.

[2] 王敬冲,王大虎,刘海洋.虚拟仿真在PLC配料控制系统教学中的应用[J].实验室研究与探索,2015,34(9):75-78.

[3] 胡盘峰,陈慧敏.基于PLC的新型变频恒压供水系统设计[J].机械工程与自动化,2011,4(2):141-143.

[4] 居荣,鞠勇.基于实际应用的恒压供水系统实验装置设计[J].南京师范大学学报,2006,6(4):21-25.

[5] 张学辉,程显吉,韩培成.基于PLC及变频器的恒压供水实训系统开发[J].机械与电子,2011,28(9):99-100.

[6] 杨柏松,熊建斌,李长庚.基于变频器内置 PID 模块的恒压供水系统[J].电子设计工程,2015,23(20):161-165.

[7] 齐继阳,孟洋,李金燕,等.模糊 PID 在恒压供水控制系统中的应用[J].自动化与仪表,2015,35(3):44-47.

[8] 王大虎,史艳楠,陈文博.基于Quest3D的煤矿副井提升机虚拟实操系统的开发[J].制造业自动化,2014,36(9):114-117.

[9] 罗资琴,罗超,徐帅.基于Unity3D的化工装置虚拟培训系统技术与应用[J].数字技术与应用,2015,32(2):52-55.

[10] 刘海洋,王大虎,王敬冲.基于Quest3D的采煤机虚拟培训系统设计[J].工矿自动化,2015,4(4):102-105.

[11] 朱向庆, 胡均万, 陈宏华,等.多功能单片机实验系统的研制[J].实验室研究与探索,2012,31(4):41-44.

[12] 田亚娟,郭丽颖.变频恒压供水PLC控制系统的设计[J].计算技术与自动化,2010,29(1):25-28.

[13] 朱雪凌,张娟,许智勇,等.基于PLC的变频恒压供水系统的设计[J].华北水利水电学院学报,2013,34(2):87-90.

[14] 王梅,马小平,金立.基于S7-200的恒压供水控制系统设计[J].工矿自动化,2010,32(9):129-131.

[15] 王欢欢,刘书明,姜帅,等.无负压供水模式下管网水力模拟与安全评价分析[J].环境科学,2013,34(1):163-168.endprint

猜你喜欢

工程实践三维建模虚拟现实
REALITY BITES
农用风力发电机叶片设计
虚拟现实技术向科幻小说借灵感
数控仿真系统三维建模技术研究
高分子材料与工程专业实习模式的探索与实践
基于CDIO模式的机械电子工程专业教学体系改革
基于职业标准的三维数字建模技术课程改革
浅谈虚拟现实