5 软件编程
5.1 VB 介绍
本课题采用Visual Basic6.0编写程序,因VB比较易学易懂,没有严格的语法格式,且之前也有过接触。VB是由美国微软公司于1991年开发的一种可视化的、面向对象和采用事件驱动方式的结构化高级程序设计语言,可用于开发 Windows 环境下的各类应用程序。它简单易学、效率高,且功能强大可以与 Windows 专业开发工具SDK相媲美。在Visual Basic环境下,利用事件驱动的编程机制、新颖易用的可视化设计工具,使用Windows内部的广泛应用程序接口(API)函数,动态链接库(DLL)、对象的链接与嵌入(OLE)、开放式数据连接(ODBC)等技术,可以高效、快速地开发Windows环境下功能强大、图形界面丰富的应用软件系统。VB的特点如下: (1).面向对象
VB采用了面向对象设计思想,它基本思路是把复杂设计问题分解为个个能够完成独立功能——相对简单对象集合。所谓“对象”就是个可操作实体如窗体、窗体中命令按钮、标签、文本框等面向对象编程就好像搭积木样员可根据和界面设计要求直接在屏幕上“画\\\出窗口、菜单、按钮等区别类型对象并为每个对象设置属性。 (2).事件驱动
在Windows环境下是以事件驱动方式运行每个对象的都能响应多个区别事件,每个事件都能驱动段代码——事件过程该代码决定了对象功能通常称这种机制为事件驱动事件可由用户操作触发也可以由系统或应用触发例如单击个命令按钮就触发了按钮Click(单击)事件该事件中代码就会被执行。若用户未进行任何操作(未触发事件)则就处于等待状态整个应用就是由彼此独立事件过程构成 。 (3).软件Software集成式开发
VB为编程提供了个集成开发环境在这个环境中编程者可设计界面、编写代码、调试直至把应用编译成可在Windows中运行可执行文件并为它生成安装VB集成开发环境为编程者提供了很大方便 。
5.2 界面设计
软件的界面设计要求合理,美观且功能尽可能的强大。但对于初学者而言,要达到每条要求难度还是挺大的,这需要的一定的实际经验。当然,对于软件编写,还有一点也是值得注意的,那就是保密。对于此,就设计了一个登陆界面如图5-1所示。
20
图5.1.登录界面
本软件的主界面如图5.2所示,主要由菜单、管道示意图及操作栏3部分组成。菜单中有“结束”和“帮助”这两个功能。对于设计一个软件来说,添加必要的使用说明是非常必要的,它可以帮助使用者在使用过程中很好的使用这个软件,对使用软件的过程中可能会碰到的问题也可以查询、了解。操作栏中有绘制管网、绘制用户、添加、删除管道这四个功能,可以实现对管道示意图的操作。数据查询栏中有局部阻力系数的查询,可以查询比较常见的局部阻力件的阻力系数。
图5.2.主界面
在管道示意图上,每根管道都有编号,点击编号便可进入对应的数据输入窗口,如图5.3所示。输入数据时必须注意单位,否则会导致运算出错,此外输入的数据必须在一定范围内,不能偏离实际,也不能脱离研究的局限。
21
图5.3.数据输入窗口
5.3 程序实现
5.3.1 单管计算
在计算模型中,需要使用迭代算法求取每段管线的末端参数,而迭代过程中压力、温度等参数具有相关性,给迭代算法带来较大困难。本文采取一次循环两次迭代的方法,即在迭代时,先按照迭代初值和温度计算公式求得末端温度,并对其进行末端热力参数值修正,然后采用迭代算法算出管段的局部阻力即管段的压差,就可求出末端的压力。这样,既易计算,且结果也满足精度要求。在计算过程中, 对于比体积和比定压热容等参数, 根据IF97 的公式,有学者编制了相关参数计算的函数,只要把这个类模块调用到程序中,注意在这过程中需要建立动态连接。单管计算流程见图5.3 。
求中间参数时需要调用WAPSCN.BAS中的计算公式,相应的VB语句如 Call DT2V96(P, T, V, r)-- 求比容(m^3/kg)
Call DT2CP96(P, T, CP, r)-- 求定压比热(kJ/(kg.℃) Call DT2U96(P, T, U, r)-- 求运动粘度(m^2/s) Call DT2PRN96(P, T, PRN, r)-- 求普朗特数
循环中使用了DO LOOP UNTIL 的语句,通过判断来确定循环是否应该跳出循环。
Loop Until Abs(T2(N) - T2(N - 1)) <= 0.2
语句意思是当前后两次的运算结果小于等于0.2时就跳出循环,继续执行下面的语句。
开始
22
开始 6. 赋迭代初值 1.输入管段始端参数,判断参数输入的正确性 T_end1=T_start 2.赋迭代初值 p_end1=p_start T_end1=T_start 6. 根据平均温度和修正后的压力调用模块得热力参数 3.根据平均温度和压力调用类模块得热力参数 7.求出管道末端的温度T_end2 否 4. 计算管段压降 ⊿p 8. 求出管道内外壁面温度Tn和Tw 5. 求出末端压力 P_end2 9.判断是否满足迭代结束的精度 否 6.判断是否满足迭代结束的精度 是 是 结束
图5.3.单管道迭代流程图
23
单管道的程序设计界面如图5.4所示。
图5.4.单管计算
5.3.2 管网设计计算
管网的设计计算以单管迭代计算为基础 ,从热源节点开始,逐一进行各管线的热力计算,具体步骤如下:
(1)获取管网结构简图,建立相应的枝状模型;
(2) 取热源节点为始端,其左子节点为末端节点,组成第1 根管线,获取热源节点
热力参数、与热源连接的左子节点管线长度及保温层厚度等参数; (3)对管线进行单管迭代计算;
(4) 判断步骤(4)是否有满足约束条件的解,如果有,向管线末端节点参数赋值,
否则提示没有可行的方案,结束计算;
(5)判断管线末端节点的左节点是否为空。如果不为空,且未进行过热力计算,
则以管线的末端节点和左子节点为始、末端节点,进行循环计算;如果为空或者左子节点已进行循环计算,则对其右子节点执行上述判断和操作; (6)如果节点是叶子节点或者左右子树均已进行热力计算,则上推至其父节点,
如果其父节点不为空,执行步骤(6) ,否则认为计算完成。
24