基于VBA实现EXCEL预制接触网软横跨.docVIP

基于VBA实现EXCEL预制接触网软横跨.doc

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于VBA实现EXCEL预制接触网软横跨

精品论文 参考文献 基于VBA实现EXCEL预制接触网软横跨 中铁十二局集团电气化工程有限公司 天津 300308 摘要 通过将软横跨的手工计算过程转换为Excel能够识别处理的Excel函数、VBA程序模块,用VBA设计良好的数据输入输出交互窗口,再将分散的程序、窗口、模块整体组合联系起来,成为一个计算系统,实现Excel预制接触网软横跨 0 前言 在目前的接触网施工中,接触网软横跨的预制计算主要有两种。一种是手工预制接触网软横跨,这是一项繁琐、重复的计算过程,计算量很大,手工计算费时费力而且容易出错。一种是由专业的软件制作团队制作的接触网软横跨预制软件。目前接触网软横跨预制主要有autolisp、C++等开发,但是此类程序的编写需要程序制作的专业人士完成。 而利用Excel中自带的函数及VBA编程工具编制一些相对简单的程序就能完成复杂的软横跨预制计算。其中部分计算过程可以由Excel自带的函数计算,而一些较为复杂的计算过程,则可以通过Excel中自带的VBA编程工具通过编写程序代码实现。该方法综合了手工计算与专业软件的优势,既弥补了手工计算繁琐易错的缺陷,又无需技术人员具备专业的软件知识便可掌握,填补了接触网软横跨预制领域的空白。 过VBA实现Excel预制接触网软横跨可以分为参数搜集测量、建立计算模块、设计建立窗口、程序整体设计和程序的调试修改等几个步骤。预制的过程是一个循序渐进的过程,前面参数的搜集测量和计算出的结果为最终的计算做铺垫。接触网软横跨的预制过程是环环相扣的,因此在整个开发过程中需要仔细严谨的对待。 1参数搜集测量 对接触网软横跨预制计算进行VBA编程开发,首先要获取计算所需的相关参数。有些是图纸或规程直接可以得到的参数,如:支柱的尺寸、线材的线密度、各种金具绝缘子的质量尺寸等。还有就是需要通过现场测量得到的参数,如:侧面限界、股道间距、股道高差、支柱斜率、支柱地面到正线轨平面的距离。 2将计算公式转换为Excel函数或者VBA语言,建立计算模块 一般简单的计算通过Excel自带的函数就能解决,但是如果碰到反复的计算、有循环的计算、需要条件判断的计算,就需要通过编写VBA 程序模块来解决。 接触网软横跨预制计算可以根据所求的过程建立模块,软横跨的手工计算的流程是:①横向承力索驰度F1、F2的计算;②偏移距离a1、a2、a3、b1、b2、b3的计算;③各节点负载Q1、Q2、Q3…的计算;④确定横向承力索最低点,最低点到左侧横向承力索悬挂点L1,最低点到横向承力索右侧悬挂点L2;⑤子力矩M1、M2的计算;⑥横向承力索水平分力T的计算;⑦横向承力索各股道悬挂点至支柱悬挂点的高差m1、m2、m3…的计算。如图1所示。 图1 软横跨预制示意图 2.1各节点负载的计算 每个节点的负载由纵向悬挂负载G,节点零件负载J,横向承力索与上、下部定位绳总重P,绝缘子总重Z组成。由于需要事先对节点类型等进行判断,所以用VBA的条件语句判断之后再套用公式比直接在Excel中计算要简便。负载计算程序如下: Function jd_fz(a1, a2, a0, m, gc, gj, l, gFJL, ggd, p1, p2, p0, gjyz, cp1, cp2, cp0, nFJL) As Double lsquo;声明模块名称及所需输入的数据名称类型 Dim c1, c2,c3,n As Integer lsquo;声明计算过程中需要的变量 If m = 6 Or m = 7 Or m = 10 Then n = 2 Else If m = 0 Then n = 0 Else n = 1 lsquo;通过节点类型判断悬挂承导线的根数,6、7、10型节点为2,0型节点为0,其他类型为1 If p1 = 8 Or p1 = 1 Or p1 = 2 Or p1 = 3 Or p1 = 4 Then c1 = 3 Else If p1 = 9 Then c1 = 4 Else c1 = 0 lsquo;通过节点类型判断悬挂绝缘子的数量,8、1、2、3、4型节点为3个,9型节点为4个,其他类型0个 jd_fz = n * (gc + gj) * l + c1 * cp1 * gjyz * 0.5 + 5 * n + (a1 + a2) * (nFJL * gFJL + 2 * ggd) * 0.5 + c2 * cp2 * gjyz * 0.5 lsquo;计算节点负载公式 End Function lsquo;程序结束,返回

文档评论(0)

xyz118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档