水泵程序化选型的实现

(整期优先)网络出版时间:2018-12-22
/ 2

水泵程序化选型的实现

苏渊平

合浦县廉州水利工程管理所

摘要:根据用户流量和扬程进行水泵选型查表的程序化

关键词:水泵选型;设计应用;程序化

引言

泵是一种面大量广的通用型机械设备,它广泛地应用于石油、化工、电力冶金、矿山、选船、轻工、农业、水利、民用和国防各部门,在国民经济生产中占有重要的地位。在建设工程的设计阶段,我们可以利用计算机高效的、高速的运算能力来减少、规避人脑的速度低下、容易出错,提高设计效率。

1.水泵程序化选型在设计中如何实现:在各类建设工程设计过程中常常需要配泵或配入泵站,特别是一些小型的泵站多,数量众多,且相似度高,为提高设计效率,有必要引入自动选泵以减少人力重复劳动。我们只要把准项目工程所需要的泵型即泵的工作环境条件、工作参数等,将相关的泵特性资料汇总成有利于程序化的Excel类电子表格。然后,按设计过程中的要求,或项目单独或批量选泵。而且在选泵程序中,可以采用评分制即利用工程中泵的工作环境条件、工作参数,以及泵的造价来进行综合评分,以之决定最优泵型。当然,也可以按分数高到低来排列,并附上超链接,好让设计人员来进行最终的取舍。

在一些水利工程建设中经常用到潜水泵,市面上符合国标部标的泵型很多。对于小型的泵站的设计,为了节约精力、节省设计时间没有必要求得全部泵型全部特性资料,只要手头的资料满足工程要求就可以了。如广西某山区县扶贫项目小型人饮工程需要配担水泵的工程数量比较多,故所选泵型以小型潜水泵为主。

2.选泵要素:一般有流量、扬程、工况、抗汽蚀性能、体积、重量、造价、效率等等。流量和扬程要求是水泵的最主要特性,它们直接决定了水泵的工作能力。所以,本程序主要依据此二者。

3.编程及语言:有了以上的准备工作之后,着手编写程序代码。流行的应用编程程序语言有多种,如VB、C、C++、C#、Java等等,但由于ExcelVBA处理表格形式的数据更加直观直接高效,再有其可以录制代码的功能非常友好,对于代码学习要求不高。故采用ExcelVBA。

3.1.实现过程:a、打开Excel,在Excel选项中,选择允许宏运行;b、新建工作簿《潜水泵自动选泵.xslm》,准备好《潜水泵性能参数表》;c、新增一工作表《自动选泵结果》,结合工作表《潜水泵性能参数表》的特点和使用者的习惯设计好其用户界面;d按键Alt+F11进入ExcelVBA,在VBAProject(潜水泵自动选泵.xslm)/MicrosoftExcel对象/Sheet1(自动选泵结果)名下的代码窗口中编写程序代码,并调试好程序,注意在程序增加容错代码及用户界面增加提示数值范围及意义。

3.2.共2个过程:a、参数单元格改变事件过程;b、选泵过程。

图1是用户界面截图。

图2

4.ExcelVBA代码及解释

参数单元格改变事件过程:PrivateSubWorksheet_Change(ByValTargetAsRange)If(Target.Row=4And(Target.Column>1AndTarget.Column<14))Or((Target.Row>1AndTarget.Row<4)And(Target.Column>1AndTarget.Column<5))ThenQJEndSub

选泵过程:SubQJ()DimpAsLong,sAsLongWorksheets("自动选泵结果").Activate

Range("A7:S1000").Cleari=4:p=8B2=[B2]:B3=[B3]:B4=[B4]'流量下限'流量上限'流量C2=[C2]:C3=[C3]:C4=[C4]'扬程下限'扬程上限'扬程D4=[D4]'转速E4=[E4]'水泵效率G2=[G2]:G3=[G3]:G4=[G4]'井径上限'井径下限'井径H3=[H3]'额定功率取向H4=[H4]'额定功率值K4=[K4]'电机效率L4=[L4]'功率因数

IfAbs(B2-0.75)>0.25OrAbs(B3-1.5)>0.5OrB4<=0OrAbs(C2-0.75)>0.25OrAbs(C3-1.5)>0.5OrC4<=0ThenMsgBox("流量、扬程必须大于0;它们的浮动倍数取值下限为0.5~1,上限为1~2")ExitSubEndIf

If(G2=""AndG3="")OrG4=""ThenGoTozuoIfG2<10OrG3<10OrG4<10OrG2>G4OrG4>G3ThenMsgBox("适用井径必须大于10mm,且按最小限值、最大限值、适用值填入")ExitSubEndIf

zuo:DoUntilWorksheets("潜水泵性能参数表").Range("A"&i)=""

WithWorksheets("潜水泵性能参数表")Bi=.Range("B"&i)Ci=.Range("C"&i)Di=.Range("D"&i)Ei=.Range("E"&i)Gi=.Range("G"&i)Hi=.Range("H"&i)Ki=.Range("K"&i)Li=.Range("L"&i)EndWith

IfD4<>""ThenIfAbs(Di/D4-1)>0.2ThenGoToNextOneIfEi<E4ThenGoToNextOneIf(H3="≤"AndHi>H4)Or(H3="≥"AndHi<H4)ThenGoToNextOneIfKi<K4ThenGoToNextOneIfLi<L4ThenGoToNextOneIfBi>=B4*B2AndBi<=B4*B3AndCi>=C4*C2AndCi<=C4*C3ThenWorksheets("潜水泵性能参数表").Range("A"&i&":N"&i).CopyRange("A"&p)p=p+1EndIfNextOne:i=i+1Loop[A7]="选泵结果:QJ潜水泵"&p-8&"个"Ifp<10ThenGoTojieshupp=7:mm=10000:GG=0Forj=8TopIfG4<>""Thenbb=Abs(Range("G"&j).Value-G4)IfRange("G"&j).Value>G4ThenRange("N"&j).Value="流量扬程合适,出水口径太大"EndIfIfG4=""AndG2<>""AndG3<>""Thenbb=Abs(Range("G"&j).Value*2-G2-G3)IfG2&G3&G4=""Thenbb=Abs(Range("B"&j).Value/Range("B4").Value-1)+Abs(Range("C"&j).Value/Range("C4").Value-1)Ifbb<mmThenmm=bbpp=Range("A"&j).Valuepp1=jEndIfNextj

IfRange("O"&pp1).Value<>"流量扬程合适,出水口径太大"AndRange("A"&pp1)<>""Then[D7]="推荐:"&pp[D7].Font.Color=&H1111FF[D7].Font.Bold=TrueEndIf

jieshu:EndSub’选泵过程结束

5.结论

程序化选型的关键是工具资料的电子表格化及规律化,其中电子表格化是为了方便电脑快速搜索,规律化可以减少程序代码。用户界面的设计主要根据使用者的习惯和工具资料的特点量身打造,主要是为了减少设计人员的搜索目标的精力和时间的消耗。程序一般以短小精悍为主。

当然,引入的选型条件越多,得到的结果越精确,更能体现计算机程序化选型比人工选型的优势。

参考文献

[1](美)JohnWalkenbach著冯飞、焦瑜净译中文版《Excel2007高级VBA编程宝典》清华大学出版社2009.2