基于Flowmaster的提灌站稳态和 过渡过程仿真软件开发

2018-10-12 11:37周小波李光辉曾文明李玉玲阮红丽赵九洲陈小明郭跃生
中国农村水利水电 2018年9期
关键词:瞬态稳态计算结果

卢 珍,周小波,李光辉,曾文明,李玉玲,阮红丽,梁 君,赵九洲,陈小明,郭跃生

(1.四川省农业机械研究设计院,成都 610066;2.西华大学能源与动力工程学院,成都 610039; 3.宜宾市翠屏区农林畜牧局,四川 宜宾 644000)

提灌站是解决丘陵地区农业灌溉用水的重要基础设施,在确保粮食安全生产方面担负着重要作用。在提灌站方案设计中,泵的选型、管道匹配、阀门类型、阀门关闭规律以及水锤防护措施等是否合理,依据相关公式进行计算较为复杂。若设计方案不合理,可能导致提灌站抽不上水或者运行工况不满足要求,还可能存在一些安全隐患,甚至导致在实际运行中发生水锤事故,最终造成大量财力、物力和人力的损失[1]。

近年来,随着计算机科学技术的飞速发展,数值模拟仿真技术已广泛应用于各个领域。相比于传统研究方法,数值模拟仿真具有研究周期短、成本低、可预见性以及可靠性高等优点,已成为工程设计和科学研究中的一个重要工具[2-5]。

作者利用计算机仿真技术,结合Flowmaster流体系统仿真软件,应用可视化编程技术,开发了一个专门针对提灌站稳态和过渡过程运行的仿真软件,为提灌站工程设计人员提供一个较为方便快捷、安全可靠的设计方案优化工具,实现对设计方案的提前预测和修改完善,从而有效降低设计成本和设计风险,提高工程运行可靠性。

1 Flowmaster软件的介绍

Flowmaster软件是全球著名的一维流体系统仿真分析软件,具有计算效率高、求解结果精确、建模方式快捷、软件接口丰富等优点,具备开放而多样的联合仿真接口开发能力,易于实现软件集成与半实物仿真。目前已被汽车、能源动力、航空航天等诸多行业的各种流体系统所采用。该软件提供了丰富多样的元件,可以计算分析流体系统的运行情况,如开启和关闭阀门、改变泵转速时流体系统各节点处运行参数变化。根据对流体系统中各个环节的参数进行精确的计算分析,工程师可以快速地进行流体系统的优化设计[6]。

2 仿真软件的开发

2.1 仿真软件的特点

该仿真软件的特点是参数设置方便和计算效率高,登录该软件后,无需再搭建管路模型,只需直接选择需要的管路模型,通过输入水泵、管道、阀门等设备的关键参数以及边界条件和计算条件,通过运行仿真,即可进行设计方案稳态运行情况下实际运行工况点参数的计算确定,过渡过程运行工况下事故停泵后水泵流量变化、水泵转速变化、止回阀后压力变化以及压力最大值的计算确定,通过稳态和过渡过程的计算结果,即可判定设计方案的合理性,从而有效提高设计方案的可靠性,降低设计风险。

2.2 软件开发思路

采用Flowmaster组建提灌站管路系统计算模型,并将其作为计算核心,在后台运行计算。利用VB.NET面向对象的可视化编程特点开发软件登录界面、前处理输入界面、计算界面和后处理输出界面等用户交互界面,借助Flowmaster开放的联合仿真接口开发功能实现数据的有效传输。仿真软件开发流程见图1。

图1 仿真软件开发流程Fig.1 Development flow chartof simulation software

2.3 组建提灌站管路系统模型

提灌站水力系统由进水池、进水钢管、水泵、闸阀、止回阀、出水钢管、出水池等组成。根据实际的提灌站水力系统组成,确定计算类型,在Flowmaster中组建提灌站水力系统稳态和过渡过程计算模型,然后将计算模型打包,存放到指定位置,仿真计算过程中再用相关程序调用对应水力模型。

在组建提灌站水力系统稳态和过渡过程计算模型过程中,进水池和出水池采用压力源边界条件代替。提灌站水力系统稳态计算模型和过渡过程计算模型见图2。稳态计算模型需去掉控制器组件。

图2 提灌站水力系统稳态和过渡过程计算模型Fig.2 Hydraulic system steady state calculation modelof pump station 注:1-压力源;2-钢管;3-弯头;4-钢管;5-大小头;6-水泵;7-大小头;8-弯头;9-闸阀;10-止回阀;11-弯头;12-钢管;13-压力源;14-控制器。

2.4 界面设计

采用VB.NET进行界面设计,主要包括登录界面、主界面、前处理界面、计算界面和后处理界面。

(1)登录界面。通过在登录界面输入用户名和密码即可登录仿真软件。登录界面见图3。

图3 登录界面Fig.3 Login interface

(2)主界面。主界面主要具有新建、打开、保存文件以及选择进入前处理界面、计算界面和后处理界面的功能。主界面见图4。

图4 主界面Fig.4 Main interface

(3)前处理界面。前处理界面包括管路模型选择界面和参数输入界面。

管路模型选择界面有IS泵管路模型、S型泵管路模型、D型泵管路模型3种,用户可根据实际需求进行选择。管路模型选择界面见图5。

图5 管路模型选择界面Fig.5 Pipe model selection interface

确定管路模型的代码如下:

If ListBox1.SelectedIndex = 0 Then

IS_selected = True

S_selected = False

D_selected = False

ElseIf ListBox1.SelectedIndex = 1 Then

IS_selected = False

S_selected = True

D_selected = False

ElseIf ListBox1.SelectedIndex = 2 Then

IS_selected = False

S_selected = False

D_selected = True

End If

参数输入界面包括管路系统计算模型、计算类型选择、元件参数和节点参数输入3个区域,其功能可以实现在稳态计算工况下,对管道、阀门、水泵等设备的关键参数输入以及计算条件的设置,也可以实现在瞬态计算工况下,对管道、阀门、水泵等设备的关键参数输入以及阀门关闭规律、计算条件的设置。参数输入界面见图6。

图6 参数输入界面Fig.6 Parameter input interface

参数写入到变量代码如下:

If mark = 1 Then

source_A_total_pressure = DataGridView2.Rows(0).Cells(1).Value

ElseIf mark = 2 Then

pipe_A_length = DataGridView2.Rows(0).Cells(1).Value

pipe_A_diameter = DataGridView2.Rows(1).Cells(1).Value

ElseIf mark = 3 Then

bend_A_diameter = DataGridView2.Rows(0).Cells(1).Value

bend_A_deflection_angle = DataGridView2.Rows(1).Cells(1).Value

bend_A_radius_diameter = DataGridView2.Rows(2).Cells(1).Value

ElseIf mark = 4 Then

pipe_B_length = DataGridView2.Rows(0).Cells(1).Value

pipe_B_diameter = DataGridView2.Rows(1).Cells(1).Value

ElseIf mark = 5 Then

gradual_A_length = DataGridView2.Rows(0).Cells(1).Value

gradual _A_minor_diameter = DataGridView2.Rows(1).Cells(1).Value

gradual _A_major_diameter = DataGridView2.Rows(2).Cells(1).Value

ElseIf mark = 6 Then

pump_rated_flow = DataGridView2.Rows(0).Cells(1).Value

pump_rated_head = DataGridView2.Rows(1).Cells(1).Value

pump_rated_speed = DataGridView2.Rows(2).Cells(1).Value

pump_rated_power = DataGridView2.Rows(3).Cells(1).Value

pump_initial_speed = DataGridView2.Rows(4).Cells(1).Value

(4)计算界面。点击计算按钮后,计算界面可显示计算进度,计算界面的功能是通过联合仿真接口与Flowmaster软件进行参数传输,调用Flowmaster软件进行后台运行计算。计算界面见图7。

图7 计算界面Fig.7 Calculation interface

以下以IS型泵管路模型开发流程为例进行介绍。

IS型泵稳态计算程序开发流程:①加载IS型泵管路特性曲线计算模型;②创建Suter-M、Suter-H曲线;③仿真平台与Flowmaster之间参数传递;④不同流量下管路系统压降计算,确定管路系统水头特性;⑤加载IS型泵管路系统稳态计算模型;⑥仿真平台与Flowmaster之间参数传递;⑦计算系统流量、各元件流速、雷诺数、压降,确定IS泵运行工况。

不同流量下管路系统压降计算代码如下:

For i = 0 To 9

source1 = net.Component("1")

source1.UseAppUnitSet = True

source1.SetLineBySearch("", "Mass Flow Rate")

flowrate(i) = D_max_flowrate * 998 / 10 + i * D_max_flowrate * 998 / 10

source1.SetCLValue(flowrate(i))

source1.SaveChanges()

inde1 = res.ComponentIndex(2)

inde2 = res.ComponentIndex(3)

inde3 = res.ComponentIndex(4)

inde4 = res.ComponentIndex(5)

inde5 = res.ComponentIndex(6)

inde6 = res.ComponentIndex(7)

inde7 = res.ComponentIndex(8)

inde8 = res.ComponentIndex(9)

inde9 = res.ComponentIndex(10)

pressure_drop(0) = res.ComponentValue(inde1, 401, 1, 0)

pressure_drop(1) = res.ComponentValue(inde2, 401, 1, 0)

pressure_drop(2) = res.ComponentValue(inde3, 401, 1, 0)

pressure_drop(3) = res.ComponentValue(inde4, 401, 1, 0)

pressure_drop(4) = res.ComponentValue(inde5, 401, 1, 0)

pressure_drop(5) = res.ComponentValue(inde6, 401, 1, 0)

pressure_drop(6) = res.ComponentValue(inde7, 401, 1, 0)

pressure_drop(7) = res.ComponentValue(inde8, 401, 1, 0)

pressure_drop(8) = res.ComponentValue(inde9, 401, 1, 0)

For j = 0 To 8

pressure_drop_sum(i) = D_pressure_drop_sum(i) + D_pressure_drop(j)

Next

计算系统流量、各元件流速、雷诺数、压降,确定IS泵运行工况代码如下:

res_pipe1_pressure_drop = Math.Round(res.ComponentValue(index1, 401, 1, 0), 6)

res_pipe1_reynolds_number = Math.Round(res.ComponentArmValue(index1, 2, 91, 0))

res_pipe1_velocity = Math.Round(res.ComponentArmValue(index1, 2, 206, 0), 6)

res_pipe2_pressure_drop = Math.Round(res.ComponentValue(index2, 401, 1, 0), 6)

res_pipe2_reynolds_number = Math.Round(res.ComponentArmValue(index2, 2, 91, 0))

res_pipe2_velocity = Math.Round(res.ComponentArmValue(index2, 2, 206, 0), 6)

res_pipe3_pressure_drop = Math.Round(res.ComponentValue(index3, 401, 1, 0), 6)

res_pipe3_reynolds_number = Math.Round(res.ComponentArmValue(index3, 2, 91, 0))

res_pipe3_velocity = Math.Round(res.ComponentArmValue(index3, 2, 206, 0), 6)

res_bend1_pressure_drop = Math.Round(res.ComponentValue(index4, 401, 1, 0), 6)

res_bend1_reynolds = Math.Round(res.ComponentArmValue(index4, 2, 91, 0))

res_bend1_velocity = Math.Round(res.ComponentArmValue(index4, 2, 206, 0), 6)

IS型泵瞬态计算程序开发流程:①加载IS型泵管路系统瞬态计算模型;②创建Suter-M、Suter-H曲线和阀门开度曲线opening;③仿真平台与Flowmaster之间参数传递;④瞬态计算时间步长设置;⑤计算阀门关闭后节点压力变化和泵转速、流量变化。

瞬态计算时间步长设置代码如下:

gendat = net.GeneralData

gendat.SetLineBySearch("", "Simulation Start Time")

gendat.SetCLValue(opening_curve(0, 0))

gendat.SaveChanges()

gendat.SetLineBySearch("", "Simulation End Time")

gendat.SetCLValue(opening_curve(num_of_openingcurve1 - 1, 0))

gendat.SaveChanges()

gendat.SetLineBySearch("", "Time Step")

gendat.SetCLValue(Time_step)

gendat.SaveChanges()

计算阀门关闭后节点压力变化和泵转速、流量变化代码如下:

com_num_of_atr = res.ComponentNumberOfAttribValues(index1, 9)

res_pump_volumeflow_ST = res.ComponentArmTimeHistory(index1, 2, 202)

res_pump_speed_ST = res.ComponentTimeHistory(index1, 9, com_num_of_atr)

index2 = res.NodeIndex(10)

res_node_10_pressure = res.NodeTimeHistory(index2, 294)

test = res.ComponentNumberOfAttribValues(index1, 206)

(5)后处理界面。后处理界面包括稳态计算结果输出界面和瞬态计算结果输出界面。

稳态计算结果输出界面包括计算结果、特性曲线、管路系统稳态计算模型3个区域,其功能可以实现在稳态计算工况下,提灌站管路系统实际运行工况点的流量、功率、效率等关键参数的输出和显示,以及水泵特性曲线和管路特性曲线的显示。稳态计算结果输出界面见图8。

瞬态计算结果输出界面包括计算结果和管路系统瞬态计算模型2个区域,其功能可以实现在瞬态计算工况下,事故停泵后,蝶阀后压力变化曲线以及最大压力值的输出和显示,水泵转速变化曲线、水泵流量变化曲线的输出和显示。瞬态计算结果输出界面见图9。后处理界面开发流程图见图10。

判断计算类型代码如下:

If IS_ selected = True Then

If Model_IS_SS_checked = True Then

IS稳态计算结果.ShowDialog()

ElseIf Model_IS_ST_checked = True Then

IS泵瞬态计算结果.ShowDialog()

End If

ElseIf S_ selected = True Then

If SModel_IS_SS_checked = True Then

S稳态计算结果.ShowDialog()

ElseIf SModel_IS_ST_checked = True Then

S泵瞬态计算结果.ShowDialog()

End If

图8 稳态计算结果输出界面Fig.8 Steady state calculation results output interface

图9 瞬态计算结果输出界面Fig.9 Transient state calculation results output interface

图10 后处理输出界面开发流程Fig.10 Development flow chart of post-processing output interface

ElseIf D_ selected = True Then

If Model_D_SS_checked = True Then

D稳态计算结果.ShowDialog()

ElseIf Model_D_ST_checked = True Then

D泵瞬态计算结果.ShowDialog()

End If

End If

输出各元件压降、雷诺数等计算结果代码如下:

TextBox1.Text = res_pipe1_pressure_drop * 100

Label1.Text = "压降"

TextBox2.Text = res_pipe1_reynolds_number

Label2.Text = "雷诺数"

TextBox3.Text = res_pipe1_velocity

Label3.Text = "流速"

确定蝶阀后最大压力代码如下:

res_node_10_ pressure_max = res_node_10_ pressure(0, 1)

res_node_10_ pressure_min = res_node_10_ pressure(0, 1)

For i = 1 To node_10_length1-1

If res_node_10_ pressure(1, i) > res_node_10_ pressure_max Then

res_node_10_ pressure_max = res_node_10_ pressure(1, i)

End If

If res_node_10_ pressure(1, i) < res_node_10_ pressure_min Then

res_node_10_ pressure_min = res_node_10_ pressure(1, i)

End If

Next

3 现场测试与计算案例对比

为了分析仿真软件的计算精度是否满足要求,以某提灌站管路系统为计算对象,提灌站基本参数见表1。首先在提灌站稳态运行情况下,进行现场测试,然后在仿真软件上进行稳态仿真计算,最后将现场测试数据和仿真软件计算数据进行对比。对比结果见表2。

表1 提灌站基本参数 m

表2 现场测试数据与仿真软件计算数据对比Tab.2 Thesimulation data Compared with the test data

由表2可知,该提灌站管路系统在稳态运行情况下,现场测试的水泵实际工作流量为682.17 m3/h,仿真软件计算的水泵实际工作流量为672.84 m3/h,仿真软件计算的流量结果比现场测试的流量小了9.33 m3/h,仿真计算误差为-1.37%;现场测试的水泵实际工作扬程为32.48 m,仿真软件计算的水泵实际工作扬程为33.86 m,仿真软件计算的扬程比现场测试的扬程高了1.38 m,仿真计算误差为+4.24%。水泵实际工作流量和实际工作扬程的仿真计算误差较小,仿真计算结果具有实际参考价值。

4 结 语

基于flowmaster的提灌站稳态和过渡过程运行仿真软件界面设计简单、友好。该软件专业性强、计算速度快、计算精度高,设计人员仅需输入水泵、管道、阀门等设备的关键参数以及边界条件和计算条件即可进行运行仿真计算,根据计算结果设计人员即可判断设计方案的合理性,若设计方案不合理,便可快速地进一步对设计方案进行修改完善。可作为提灌站工程设计人员在设计选型时参考。

猜你喜欢
瞬态稳态计算结果
可变速抽水蓄能机组稳态运行特性研究
碳化硅复合包壳稳态应力与失效概率分析
电厂热力系统稳态仿真软件开发
激发态和瞬态中间体的光谱探测与调控
高压感应电动机断电重启时的瞬态仿真
元中期历史剧对社会稳态的皈依与维护
基于改进HHT的非高斯噪声中瞬态通信信号检测
趣味选路
扇面等式
DC/DC变换器中的瞬态特性分析