静态自动分析

2024-10-22

静态自动分析(精选7篇)

静态自动分析 篇1

行星齿轮型式的自动变速器目前占有着市场的大部分份额。由于结构复杂、多自由度等特性, 行星齿轮机构的运动特性难以用直观的方法加以分析, 加之离合器元件的受力情况与元件的相对运动状态有关, 使得数学建模的方法更加复杂。上世纪八十年代初, 美国克莱斯勒公司提出杠杆法的基本原理, 将行星齿轮机构中复杂的运动学关系简化为直观的等效杠杆。在此基础上, 杠杆法不断发展和完善, 逐渐被应用到自动变速器的设计、分析以及控制策略的研究中。本文将以某六速自动变速器为例, 采用杠杆法对其传动特性进行静态分析。

1 杠杆法原理

行星机构杠杆分析法是将行星机构用垂直布置的杠杆系等效代替来进行分析的一种方法。最基本的单个行星齿轮机构由太阳轮、行星轮、齿圈、齿架构成, 如图1 (a) 所示, 其等效杠杆图如图1 (b) 。将行星齿轮机构简化为具有三个节点的垂直杠杆, 三个节点分别代表太阳轮S、行星架C、齿圈R。太阳轮节点与行星架节点之间的长度为齿圈齿数f, 而齿圈节点与行星架节点之间的长度为太阳轮齿数e。

等效杠杆图上, 节点的水平移动代表着构件的旋转运动, 节点的水平力代表着构件上的转矩。规定向右的方向为正向, 便可以根据杠杆的基本关系对各节点的运动和受力进行分析。

2 传动特性的静态杠杆法分析

2.1 等效杠杆图

本文分析的变速箱行星齿轮机构由三个行星排构成, 如图2 (a) 所示。针对多行星排结构, 每个行星排可简化为一个杠杆及相应的节点, 各行星排之间的构件相互连接时, 在杠杆图中体现为各节点之间的连接。在对多重杠杆应用杠杆法时, 可对杠杆的力臂长度进行相应的调整。遵循各杠杆力臂长度比不变和相同节点之间的力臂长度相等的原则, 得到相应的杠杆图2 (b) 。

2.2 传动特性分析

该自动变速器各档位下离合器的工作情况如表1所示。以2档为例, 图3给出了该档位下的转速分析杠杆图。

根据相似三角形原理及各节点之间的连接关系, 列出如下方程组1) :

求解上述方程组, 可得2档的速比为:

同理对各个杠杆列出力矩平衡方程3) , 可得:

求解上述方程组, 可得2档的扭矩比为:

所求出的扭矩比与速比值完全吻合。

3 结论

利用杠杆法进行分析的基本步骤为1) 对行星齿轮进行分析, 画出各行星机构相应的杠杆形式, 确定杠杆几何参数;2) 根据各元件, 确定各节点及离合器元件之间的连接关系, 对杠杆图进行转化和整合, 确定最终的杠杆图;3) 根据相对运动关系确定各元件的受力, 根据杠杆法原理进行分析。杠杆法的简便和直观使其被广泛应用在在行星齿轮机构的设计和分析中, 静态分析可用来对设计方案进行计算和优化。

摘要:杠杆法是一种对行星齿轮机构进行转速和扭矩分析的方法。将行星齿轮转化为等效杠杆后, 根据杠杆的平衡关系, 对各节点的运动和受力进行计算分析。本文以某六速自动变速器为例, 采用等效杠杆法, 对静动态传动特性进行分析和计算验证。

关键词:自动变速器,行星齿轮,杠杆法

静态自动分析 篇2

1 简述抽象语法树的生成步骤

抽象语法树是指把源代码实施语法和词法分析后形成的产物。为了提升源代码分析和重构效率, 一般把源代码转换成为某个中间形式, 抽象语法树作为常用程序代码中间表示形式, 通过树状结构代表源代码抽象语法结构, 树状结构上每个节点均对应源代码某个构成元素。语法树树根表示开始符号, 每一个叶节点表示记号标记, 每个内节点采用非终结符标记。如果A是某个内节点的非终结符号标记, x1、x2, ···xn是本节点自左向右排列的所有子节点, 此时, 组成一个产生式, X1、X2···, Xn表示终结符或非终结符。根据C++语言语法规则, 语法分析器对产生的记号串进行分析, 严格按照规则把记号组成具有具体含义的语句, 从而构造相对应的语法树。

2 代码重构的意义

代码重构对研究和进行软件开发、维护等具有重要意义, 对编程人员来说, 代码重构是编写良好风格, 便于复用、扩展代码的重要指导, 使用合理的重构方法, 能有效减轻编码和调试人员的负担加大软件的使用效率。目前, 随着软件系统日益复杂, 大众对适于需求变化、提升软件生产率的开发方法提出更高的要求。针对不同的对象、设计框架及中间件等设计利于软件复用的方法, 将初始系统设计的更加灵活、完美, 达到软件扩展性要求。代码重构将当前代码进行全部或部分转换, 便于软件根据需求实施扩充, 借助抽象数据类型、提取结构等技术完善代码结构, 从而增加软件维护功能, 便于对原有软件进行升级。同时, 代码重构将复杂的结构程序逐渐简单化, 不单提升代码的易理解性, 也便于人们学习其编程方法。

3 克隆代码自动重构的方法

文中在创建代码克隆侦测识别设备基础上, 对克隆代码片断差异性展开分析, 并提取可变性代码获得自动重构的代码。

3.1 创建代码块对应关系

代码重构过程中, 先把代码划分为多个代码块, 随之依据语句差异度指标创建流程控制语句的关系, 并创建剩余代码块之间的对应关系。必须注意, 这里先要设定什么是简单语句, 语句主要划分为流程控制语句和除流程控制语句外的语句, 流程控制语句包括:if、for、while语句等等, 上述语句对程序控制流产生重要影响, 也是建立抽象语法树控制流对应关系中必须考虑的关键内容;简单语句包括变量定义语句 (int i=10) 、赋值语句 (i=j+k) 等。

3.2 分析控制结构的差异性

控制结构差异性分析必须标识两个对应流程控制语句的克隆, 上一环节计算相似性时借助Simian对其循环体展开克隆侦测, 这一环节只需借助上一步保存结构标识克隆部分即可。如果上一步没有配对成功的控制语句, 在方法最后一步将其整体当做可变点展开提取操作。

3.3 分析基本代码块差异性

基本代码块差异性分析由Simian展开克隆侦测操作, 依据侦测结构标识所克隆的代码。若经过侦测的克隆语句出现在失配控制语句中, 此时所克隆的语句称为无效语句。如图1, 该例子中a、b两个代码送至Simian展开克隆侦测, 侦测完成的克隆代码表示加重显示部分。

由图1可知, 将simian (a) 中循环体中两个语句与b循环体中的两个语句称作克隆, 这一克隆方法对部分设计无效, 因它们分别处在各种类型的流程控制语句中, 这一克隆对文中提取代码可变点并无意义。在第二步设计中, a中循环体与b中for循环均是失配的流程控制语句, 控制流结构设计处于最优状态。

3.4 可变性提取

依据上面几步标识克隆代码, 针对除去克隆代码外的各处可变点, 插入if语句或控制变量, 把两段代码合并为一段, 代码合并结果如图2。

上图2中, 两段代码v1、v2共设置4处可变点, 采用多个if语句、控制变量argl至arg4分别进行控制。必须注意, 因v1和v2中for语句循环体包含部分相同循环体, 差异度为2.可把for语句整体看成可变点, 从而减少某些不必要可变点数量, 缩减控制变量的个数。

4 结语

总之, 基于抽象语法树和静态分析设计代码自动重构的方法, 这一设计借助控制流程和基本代码块差异性和共性实现代码重构, 通过参数提取把差异性部分归纳至可变性代码, 这种方法有效实现克隆代码重构, 从而为开发者实施克隆代码自动重构提供重要参考。

参考文献

[1]涂颖, 张丽萍, 王春晖, 等.基于软件多版本演化提取克隆谱系[J].计算机应用, 2015 (4) :1169-1173, 1178.

[2]奚修学, 高亚.敏捷软件开发方法在C语言教学中的应用初探[J].成功 (教育版) , 2013 (22) :238.

[3]许雪林, 陈敏, 王璇, 等.嵌入式系统中实时和代码重构模式设计与实现[J].福建电脑, 2013 (10) :15-17, 162.

静态自动分析 篇3

关键词:华为,静态路由,路由探测,备份

随着信息技术在全球的发展和普及, 网络技术的的快速发展, 很多企业为适应网络经济的快速发展, 方便企业内部和企业之间的交流, 节省办公开销, 提高企业管理水平, 而组建了自己的局域网。

同时, 为了企业内部或企业之间为保持网络的稳定性, 在骨干链路的连接中, 通常采用多条通信链路, 当主链路出现故障时, 能够自动切换到备份链路上进行数据通信, 从而调高网络的可用性。

在网络链路的备份过程中, 通常会用到路由技术, 而静态路由由于实现简单、设备开销少等特点, 在中小企业局域网中得到广泛应用。但相对于动态路由, 静态路由没有路由收敛功能, 在一些特殊的场合, 静态路由往往需要配合一些其它技术手段 (如路由探测) 才能有效的实现链路备份功能。

1 静态路由技术分析

静态路由[1]是在路由设备上人为指定到达某目的网络的下一条的路由配置方法, 它适用于结构比较简单并且变动不大的网络, 利用静态路由的优先级 (Preference) 可实现链路备份。

静态路由中的Preference参数用于指定一条路由的优先级, 当路由表中存在多条匹配目的IP的路由条目时, 具有最低Preference值的路由将被应用, 如果这些路由的Preference值相同, 则使用具有最长子网掩码的路由条目, 如果子网掩码也相同, 则按照路由表由上至下顺序, 使用最上面的路由条目。

下面结合一实际企业网组网案例来介绍通过静态路由实现链路备份的方法。

如图1所示的网络拓扑结构, 路由器A、路由器B代表企业局域网络出口的边界路由器, 本案例采用华为路由器, 企业总部和分部通过电信部门提供的光缆专线进行互联, 为实现通信链路的可靠性, 在两个公司间布设了两条专线, 来实现通信链路备份。

IP地址段如图1所示, 通过在边界路由器上配置静态路由, 最终能够实现企业总部和分部间的网络互通。

具体配置步骤如下:

1) 配置网络设备的IP地址。根据网络拓扑结构图为路由器配置各端口的IP地址。

2) 配置静态浮动路由。为实现企业间的互访, 需要路由器A和路由器B上分别添加两条静态路由。

路由器A的配置[2]:

路由器B配置:

默认情况下, 华为路由的静态路由优先级为60。

因此, 在网络正常的情况下, 数据优先通过第一条静态路由转发, 当第一条链路断开时, 能够自动切换到第二条链路传输, 实现了链路的备份功能。

2 路由探测实现自动备份

以上通过配置静态路由优先级实现了链路的备份, 但由于静态路由没有路由收敛的问题, 只要相关端口协议UP, 该静态路由就存在。在实际的网络组建中, 由于电信部门提供的专线中间有许多有源网络设备, 即使中间链路故障, 路由器设备端口协议仍然显示UP, 静态路由不能够自动消失, 不能启动备份线路, 网络就中断了。

为解决以上问题, 我们可以增加路由探测功能, 让路由器能够感知下一条的静态路由。

路由探测[3] (Auto detect) 是一种利用ICMP协议的Reque s t/Re ply报文, 它具有定期检测网络连通状况的功能。路由侦测的对象是侦测组 (目的IP地址的集合) , 侦测的结果反映出来当前的连通状态, 即目的主机可达或不可达, 从而保证设备能够及时发现网络中存在的问题, 并产生相应的动作。

自动侦测的返回结果 (可达或者不可达) 可以被其他特性所应用, 作为该特性配置是否生效的一个必要条件。

因此, 用户可以将某条静态路由和某个侦测组进行绑定, 利用自动侦测的返回结果来控制静态路由的有效性。当侦测组可达时, 静态路由生效, 当侦测组不可达时, 静态路由无效。

路由探测IP数据包流程如图2所示。

路由探测具体配置方法如下:

#创建一个自动侦测组

#从下一跳地址172.16.0.2侦测192.168.0.2 (公司总部的一个IP地址) , 侦测序号为1

#侦测组可达时静态路由生效, 否则静态路由无效

路由器Router B的配置与Router A类似, 不再赘述。至此, 通过增加路由探测功能, 在主链路出现问题导致IP数据包不能通过时, 就可以自动切换到备份链路进行数据传输, 从而很好的通过静态路由实现通信链路的备份。

3 结论

静态路路技术规则简单、容易设计、工作效率高, 路由探测实现了局域网环境下一跳的感知情况, 而且可以实现端到端基于网络服务状态的备份功能, 因此利用静态路由技术配合路由探测功能能够很好的实现链路的自动备份功能, 非常适合在组建中小型企业网中使用。

参考文献

[1]冯浩, 黄治虎.交换机/路由器的配置与管理[M]北京:清华大学出版社, 2009.

[2]杭州华三通信技术有限公司.Comware V3操作手册[EB/OL].2007.

静态自动分析 篇4

关键词:植物保护,自动混药装置,试验研究,变量施药,静态混合器,混合均匀度

0 引言

我国是一个农业大国,农业在国民经济中占有很大的比重,而农药的投入则是保持农业持续高产的一个重要方面,化学农药在防治病、虫、草害,保证作物增产方面,有着很明显的作用。目前,在我国农业的生产过程中,农药都是采用手工进行配置,配置的农药在剂量、混合的均匀度等方面都有着很大的误差,而且费时费力,对操作者身体造成危害,不适于自动化操作进程。随着国际农业的发展,我国对农业及其环保方面的投入也不断加强,精确的施药技术与机具研究是精准农业中的一个重点内容,采用药水分离、在线配置和装备自动化的施药机具是实现精准施药的前提[1]。

目前,混药装置存在的问题是农药的配制既没有考虑变量施药的要求,也没有考虑手工作业的危险和经济效益[2]。具体表述如下:

1)传统手工配药由于操作者与农药直接接触,农药随时可能溅到操作者身体上造成危害;

2)由于主观因素的存在会造成剂量和浓度测量的误差;

3)手工配置农药对计量把握不准确,经常会造成大量剩余的农药,处理这些残余农药会造成环境的污染;

4)传统配药以手工作业方式为主,费时费力。

采用在线混药装置可避免以上手工配药的不利因素,主要体现在:电子传感器的发展为精确计量提供了前提条件;避免了人与药的直接接触,消除了潜在威胁;在线混药是根据喷施的条件来精确计量,药水分离,节约了资源;使用自动化机械配药,节省人力[3]。

因此,现代植保机械的发展趋势是研制喷雾在线自动混药装置,在喷雾机上分别设置药箱和水箱,使其直接注入喷雾管道系统,与水箱的清水按预先要求的比例完成在线混合。

1 理论分析

混合装置除考虑混合效果外,还应该考虑介质的特性、使用条件、功耗和易操作性等要求[4]。

1)介质的特性。农药分为乳化剂、悬浮剂和溶剂,混药装置要适用于不同的药剂类型及不同黏度的药液。

2)使用的条件。对于动态混合装置,由于具有机械活动部件,磨损和耐用度将大受影响,维修比较困难,同时机械活动部件使得混合器的密闭性受到影响。

3)功耗。机械活动部件要消耗功耗。对于田间喷雾,拖拉机的功耗除了要带动喷雾装置行走外,还要带动喷雾装置喷雾,在自动化的系统中,拖拉机还要驱动控制系统,这样机械活动部件的功耗就必须考虑。根据波兰学者Streiff对静态混合器的能耗定义[5],可以推导出静态混合器的能耗要比动态搅拌器的小一个数量级。

4)易操作性和经济效益。由于机械活动部件的磨损及耐用问题,不可避免地要加大经济投入,性价比就会降低,也影响了推广。

综合上述各方面的条件,本研究选用静态混合装置来实现在线混合。静态混合器是依靠设备的特殊结构和流体的运动,使两种流体各自分散,彼此混合起来,达到良好的均匀混合效果,其对于药剂类型比较繁多和复杂的农药混合来说是理想装备,而且能在很宽的雷诺数范围内使用。国内静态混合器按其固定部件结构的不同分为5种类型[6],即SV型(采用V型波纹片)、SL型(30°角组合金属板)、SK型(扭曲叶片)、SX型(45°角组合金属板)和SH型(双孔道及180°左右旋单元),各有不同的适用范围。根据农药剂型的多样性以及药液黏度范围广泛,本研究中选择SK型静态混合器。SK型静态混合器采用扭曲叶片结构,扭曲叶片的形式适合于湍流混合,且适用于很宽的黏度范围。从能耗方面讲,扭曲型叶片也好于其它结构。其原因是:随着流速的增大,在流动的断面方向会产生很多激烈的涡流和很强的剪切力。由于这种强大剪切力的存在,可有效地发生气液、液液和固液等的分散,或者液液及固液的溶解。静态混合器结构示意图如图1所示。

农药有4种剂型,即乳化剂、乳油剂(通常用于微量喷雾)、悬浮剂和溶剂,它们大部分是低粘度流体。而施药过程中,药剂和水流几乎都是湍流状态下的流体。湍流状态下,SK混合器的混合效果要好于其他静态混合器。依据混合器的选择依据,在保证延时要求和喷雾流量要求的基础上,混合器的长度选择为200mm,直径为15mm,符合L/D的选择要求。

2 实验方法与结果分析

2.1 实验装置介绍

实验中按照变量施药系统的要求,采用药水分离的方式药箱中装入纯药液,通过注入式[7]以一定的比例与水进行混合。混合器指的是SK型静态混合器。设计装有4个喷头的喷杆,喷头采用02型扇形雾喷头。试验中,药泵使用空气压缩泵,药液在压力为3×105Pa时,其流量为1.28L/min;水泵使用自吸泵,在水压为2×105Pa时的流量为10L/min。因此在药压为3×105Pa、水压为2×105Pa的条件下,浓度变化的范围为0~11.3%,这个压力是做完压力对混合均匀度的影响试验后确定的。此时,喷头的压力为2×105Pa。在进行压力影响因素试验时,由于注入式系统水管与药管的比例比较大(这是因为实际喷雾过程中,药液的浓度都不会超过10%,且水管直径较小对其进行流量控制时灵敏度高),水管的压力达到4×105Pa时,药剂流量的变化对喷头药液浓度的变化没有影响,即药剂没有注入到水流中;当水压超过3×105Pa时,对浓度变化的灵敏度就明显降低,因此试验中的最大水压为3×105Pa。试验装置结构如图1所示。

1.水箱2.水泵3.压力表(P1、P2、P3)4.步进电机5.量杯6.喷头7.喷杆8.静态混合器9.流量调节阀10.药箱11.气泵

2.2 实验方法

本研究的主要目的在于静态混合器与传统混药装置(本研究中指的是直接注入式系统)混合均匀度的区别,以及对变量延迟时间的改善,而影响混合均匀度和延迟时间的主要有流体流经的水管长度、药剂的剂型和液体的黏度。因此,针对这几个因素,对传统混药装置和安装有静态混合器的装置分别进行混合均匀度实验。注入式系统采用泵后注入,静态混合器直接安装在注入点后,对经过注入后的药水混合体进行混合,混合后的液体经过相邻50cm的4个喷头喷出。在系统开始喷雾达到稳定后,取同一时间段内4个喷头喷出的液体测量其浓度,观察混合均匀度。混合均匀度以CV值作为评价指标,CV值是指标准差与平均值之比乘以100。标准差和平均值的计算是以4个喷头的药液浓度为数据源。CV值越小,混合的均匀度越好。

实验在中国农业大学药械与施药技术中心完成,试验的药品有BSF、悬浮剂OBSE和黄原胶。BSF是生产溶剂型溶液时的药品,其水溶性很好。黄原胶是一种增稠剂,用来配置中高黏度的液体来代替真实药品。因为农药都是有毒的,而黄原胶增稠后的溶液与真实药品流体的性质几乎相同,而且没有毒性危险。0.05%的黄原胶黏度为7.31MPa·s,0.2%的黄原胶溶液黏度为42.0MPa·s。

在对装有静态混合器和直接注入系统进行对比试验时,针对农药剂型的不同与药液黏度的不同分别进行了实验,同时进行了混合器出口及注入点距离喷杆长度对混合均匀度的影响,药压和水压对混合均匀度的影响。首先进行了1g/L的BSF荧光示踪剂的实验,使用荧光仪测量浓度,而悬浮剂实验是分别称量药瓶的质量、药液加上药瓶的质量和烘干后纯药加上药瓶的质量,然后进行计算得到的浓度。在进行注入式实验时,以与混合器相同长度和相同直径的水管代替混合器。

2.3 结果与分析

注入点出口距离喷杆长度因素对比实验,如图3所示。

对于溶剂型药液,从图3中的CV值可以看出,在注入点出口距离喷杆长度一定的情况下,加了混合器后的CV平均值要比没有混合器的情况小,即均匀度较好。在变量施药系统中,由于目标作物的不同,需要喷施不同的药剂量,为此针对常用的各种药剂剂型和黏度不同的农药进行了实验分析。从实验数据中可以看出,对溶剂型农药,当长度增加到一定之后,加不加静态混合器的影响不大,主要是溶剂农药易溶于水,湍流状态下药液与水的相互碰撞渗透,从注入点注入后,即使没有专门的器件对流体进行剪切分割,经过一定长度后就能自动混合均匀。但可以看出:注入点出口距离喷杆长度对混合均匀度有影响,增大水管长度后,均匀度有明显改善。由于是用于变量施药系统,延时是一个很重要的参数,水管的长度过长将不可避免地增加延时时间。从实验结果可以看出,加入静态混合器以后,水管只需要30cm的长度就能达到直接注入式要求180cm长度的期望均匀度,也就是说从静态混合器出口出来的流体已基本达到均匀混合,从而缩短了水流的时间,有利于变量的延时控制。

对于悬浮剂,加了混合器的均匀效果要明显好于直接注入式。增加混合器出口距离喷杆的长度,均匀度效果变好。其原因在于;悬浮剂是固体颗粒与水的混合剂,由于固体颗粒的密度大于水,在没有机械剪切分割的情况下,固体容易产生沉淀。在静态混合器的作用下,由于静态混合器的特殊结构使流体与固体颗粒产生高强度的湍流,并不断地对流体进行分割—剪切—合流,使流体在流出静态混合器时仍然带有旋转与拉伸的作用,从而达到较好的混合效果,见表1所示。

对于中高黏度流体,这里采用加了增稠剂的BSF溶液。从表2中可以看出:当黏度一定时,随着水管长度的增加,混合均匀度变好;当水管长度一定时,随着黏度的增加,混合均匀度增加。在传统混药实验中,由于高黏度流体的分子聚集力比较强,在与水的相互碰撞下不易被分割,因此容易形成分层现象,相互间的渗透比较困难,难于实现混合;而加入静态混合器以后,由于静态混合器的特殊结构,增强了流体的剪切分割合流作用,分层现象得到了很好的抑制,容易混合均匀。

3 结论

从整个系统的运行及实验结果来看,在线混合器的设计是成功的。体现在以下几个方面:

1)实现了药水分离混合,避免了人与药直接接触。与传统混药装置相比较,混合均匀度有了改善,缩短了流体流经的水管长度,从而减少了变量延迟时间;

2)溶剂型药液的混合均匀度对水管长度的改变响应不大,从静态混合器出口出来的液体已达到基本混合均匀,对提高变量延迟是有效的;

3)对于中高黏度药液,静态混合器的安装使混合均匀度有明显的提高;

4)静态混合器的选择是可行的,不仅适用于不同类型的溶剂范围,而且对于混合均匀度的提高和减少变量延迟都有一定作用。

参考文献

[1]赵明海.当前农药使用存在的问题及解决对策[J].内蒙古农业科技,2004(2):141-143.

[2]李会芳,邱白晶,刘保玲,等.对精确农业中变量喷雾控制的研究[J].中国农机化,2004(3):25-27.

[3]何培杰,吴春笃,陈翠英,等.安全混药装置的实验研究[J].中国安全科学学报,2001,11(4):35-38.

[4]李纯煦.静态混合器的原理及应用[J].节能,1995(2):17-20.

[5]赵军.变量技术及其在农业机械中的应用[J].现代化农业,2004(12):25.

[6]彭小平.静态混合器的基本性能及应用[J].上饶师专学报,1994,14(6):60-65.

数组越界的静态分析 篇5

软件测试是保证软件质量和可靠性的重要手段,在整个软件生命周期中占有重要位置。根据在测试过程中是否运行软件代码,可将软件测试分为静态测试和动态测试两种方法。

在静态测试中最常见的问题之一为数组越界,数组越界是缓冲区溢出故障中最常见的问题,缓冲区溢出是一种常见且危害很大的软件错误,如果程序的缓冲区被写入超出其长度的内容,就会造成缓冲区溢出,程序的堆栈被破坏,从而导致软件系统崩溃。数组越界带来的后果主要有两种:(1)对数组的访问超越了边界,使程序运行错误,甚至导致出现异常;(2)对数组以外的区域进行操作,有可能引入恶意代码,对软件安全造成威胁,主要针对数组越界问题给出了防范技巧及检测方法和工具,并对方法及工具进行了优缺点分析。

2 静态分析

静态分析(Static Analysis),也叫静态规则检查或代码规范检查,是指在不执行程序代码的方式下,通过控制流分析、数据流分析、表达式分析、接口分析等寻找程序代码中可能存在的错误或评估程序代码的过程。静态分析是验证代码是否满足规范性、可靠性、可维护性、安全性等指标的一种代码分析技术。它可以手工进行,也可以借助软件工具自动进行,以达到检测的目的。其主要优点就是在程序运行之前就可以对程序故障进行定位。

静态分析技术主要具有以下特点:

(1)不必动态地运行程序。静态分析只需通过工具或人工或二者相结合的方法对代码进行分析,不必进行测试用例的设计和测试结果的判读等工作。

(2)执行速度快、效率高。目前成熟的代码分析工具每秒可扫描上万行代码,具有检测速度快、效率高的特点。

3 数组越界

数组(array)是C或C++等语言常见的一种数据类型,是若干同类变量的聚合,可以存储相同类型的多个数据项,它是同一种数据类型在内存中的连续存放。数组变量在定义时就已经确定了所使有的内存空间大小,因此程序在运行过程中如果数组变量的索引超过了定义的内存空间大小,系统可能会将一个随机的值赋给变量,而得不到预期的结果;对于越界写数据就有可能修改相邻内存的一些重要的信息,从而造成程序的运行混乱,这类错误称之为数组越界(Array Bound),数组越界在使用数组类型进行程序设计的软件中属于常见的一类错误,它主要是程序设计中引用数组元素时,对内存的操作超过了初始指定的范围而引起,通常数组越界分为上溢和下溢。声明/定义一个长度为的数组,则其下标范围为如果以为i数组下标引用数组元素,当时,则发生故障,称之为下溢;当则称之为上溢。因此对数组边界的检查即要检查数组的上界还需检查数组的下界。

C/C++语言为了提高运行效率,不会自动检查数组越界,也就是说如果数组越界,程序编译时不会报错,从而在执行时产生非法操作或者得不到正确的结果。在C/C++语言中下标的引用超过声明的范围是数组越界常见的错误,在程序中还有其他的一些错误,也属于数组越界:

(1)指针变量的引用:在C或C++语言中由于指针引用较普遍,通过指针可直接访问变量的内存地址,并且可以改变内存地址的指向和相应的内容,且C或C++语言本身并没有对边界进行自动检测的操作,因此在程序代码实现中,就要保证指针的指向不会超越边界,否则程序有可能存在越界。

(2)在C或C++语言中使用字符串操作的库函数,如strcpy(),sprintf()等库函数,由于其本身没有越界操作判断,往往会发生越界故障。例如在执行strcpy()函数时,需要考虑源参数所占空间大小必须小于或等于目标空间的大小,否则将出现越界。

数组越界漏洞产生必须要具备3个条件:

1)存在数组的形式;

2)存在对数组的拷贝或读取操作;

3)引用数组下标,超过了数组下标的允许范围。

下面是3个数组越界的例子:

这3道题都存在数组越界的问题:

题(1)中,Array[i]明显发生了数组越界。

题(2)中,是一个含有10个元素的字符数组,

指向的字符串长度为10,在进行调用时,会将的结束符也复制到数组里,即复制的字符个数为11,这样会导致出现数组越界。程序不一定会因此而崩溃,但这是一个潜在的危险。解决办法是将的元素个数定义为11。

题(3)中,代码第6行,p指向a的第1个元素,所以p+4指向a的最后一个元素即即p+16,此时指向的是数组a的第17个元素,显然已经越界了,因此输出的打印结果是个随机数。

由于C或C++语言不进行边界的自动检测,因此在程序代码编写过程中就需要考虑这方面问题,下面罗列了一些防止数组越界漏洞的小技巧:

(1)每次要访问数组时用if或断言来判断。

(2)用try…catch…语句来写代码。

(3)使用迭代器(iterator),遍历STL里面vector的部分或全部元素。

(4)分配好数组的长度、类别、数据的多少,注意及时释放内存。

(5)为防止越界访问,可以写一个array类把数组封装起来,在其operator[]中检查其下标是否越界。

(6)在数组结束时设置标志。

(7)函数参数是数组时一般应该把数组大小也传进来。

4 数组越界的检测

4.1 检测方法

目前检测数组越界的方法主要分为两大类:动态检测方法和静态检测方法。动态检测是在源代码中可能出现数组越界的位置进行插装,即在程序中数组使用的地方加入逻辑断言或其他类型的语句,对插装后的代码编译运行,在运行中检查是否存在缓冲区溢出漏洞,存在数组越界错误的程序运行时,它的运行现象表现是不定的,有时候程序一直运行,可能什么异常情况都不会发生;有时候,则是程序运行会出现异常崩溃,且出现的问题是不可复现的。动态检测方法能够精确判断出程序中是否出现了缓冲区溢出,检测结果的可信度较高;但其缺点是仅可以部分实现对数组越界故障的测试,且降低了程序的运行效率,增加了开销,在覆盖率和效率方面存在问题。

静态检测是相对于动态检测的另一大类方法,它可以全面检测程序的控制结构,静态检测方法通过分析源代码来检测可能存在的安全漏洞,其主要是对源程序进行词法分析和语法分析,产生与程序对应的语法数,将相应的节点挂在语法树上进行检测分析,其一般是通过使用预先定义好的漏洞数据库,在程序源代码中进行匹配查找操作。如果匹配成功,就给出相应的警告或错误信息,但可能会给出错误的警告,给检查结果带来负面影响。

4.2 检测工具

下面简要介绍一些数组越界检查相关的方法和工具。

(1)向程序和标准库的源代码中添加注解,用注解辅助静态分析工具Splint以快速有效地检测越界漏洞,这种方法具有简单、快速、高效、可扩充的特点。它利用程序中注解提供的信息,能够检测出程序中可能的数组越界漏洞,但其检测漏洞的能力受其分析方法的限制,Splint检测工具需要程序员在测试程序中添加辅助注解来完成检测,对于一个工程来说在源码中添加额外的注解是非常烦琐的事情,而且稍微不小心就会有遗漏的地方。这种方法如果对于大型的程序就显得不灵活,实用性不强,检测不全面等弱点。

(2)ARCHER是美国Stanford大学开发的一个分析大型软件中数组越界漏洞的静态分析工具。ARCHER首先利用一个转换器将程序转换成中间表示形式,然后,工具的遍历模块采用上下文敏感、路径敏感的数据流分析方法,产生中间表示的数据流状态信息,最后遍历模块调用求解器,记录和求解遍历过程中产生的状态信息。为了实现数组越界的检查,对于内存访问语句,ARCHER遍历模块首先调用求解器检查该语句是否可能越界,然后更新求解器的状态。这种方法的误报率低,但复杂度为指数级(N条分支语句可能产生条执行路径)。

(3)David Larochelle和David Evans提出了基于LCLint的缓冲越界检查方法。该方法在3个方面扩展了LCLint:提高越界检查的效率、增加在过程内检测时所使用的语义注释及提出一种对循环语句简单高效的分析方法,但其额外的人工语义注释仍然给使用者带来较大负担。

5 结语

数组越界故障已经对软件的安全构成了很大的威胁,国内外对数组越界的相关研究还有很多,T.M.Austin指出了如何有效地检查到程序中存在的指针和越界故障,R.Gupta给出了使用数据流分析优化数组越界检查,C.Cowan等人开发了一个缓冲区溢出故障测试工具等,由于程序设计语言的复杂性,现有的检测工具或方法很难达到非常理想的效果(既具有高效率,又能找到尽可能多的漏洞),因此针对数组越界检测还需要进一步的研究与完善。

参考文献

[1]宫战云.软件测试[M].北京:国防工业出版社,2006.

[2]叶焰锋,叶俊民,詹泽梅,雷志翔.数组越界的故障模型及其检测方法研究[J].微计算机信息(测控自动化),2007,23(11-1):145-147.

[3]赵鹏宇,李建茹,宫云战.Java语言中数组越界故障的静态测试研究[J].计算机工程与应用,2008,44(27):87-90.

[4]高传平,宫云战.数组越界的静态测试分析[J].计算机工程,32(3):70-72.

轨道静态检测数据应用分析 篇6

铁路线路作为铁路运输的基础设施,也是组成铁路线路的重要部分。作为一种连续的长大工程结构物,其良好的状态和技术质量水平直接关系到机车车辆的使用寿命以及机车车辆的正常运行,关系到行车的舒适性和安全性。由于轨道设备常年暴露在大自然的各种环境中,重载列车的运行以及各种气候条件和天气状况的影响下,轨道的几何形位不断变化,路基、道床随时发生变形,钢轨、轨枕、联接零件及线路设备等不断磨损,对线路造成诸多病害。通过工务检测可以了解线路设备的技术状态和变化规律,及时发现问题,从而科学、合理地安排线路的养护和维修,确保线路处于良好的质量状态,保证线路运输的安全。

轨道静态检测[1]作为工务检测的重要手段,是各工务段、车间、工区对线路进行检查的主要方式之一,是指在没有列车荷载作用时,利用检测工具或设备对轨道进行的检查。各区段负责人都应定期检查线路、道岔和其他线路设备,并重点检测薄弱环节,保证线路精准。

2 当前轨道静态检测技术、手段和相应的数据结构

2.1 轨检小车

轨道检测小车是采用高精度的电测传感器和一系列专用便携式检测机构及数据处理设备,可以在小车的推进过程中自动收集轨道的水平、高低、扭曲、轨距、轨向变化率等轨道不平顺参数的手推式机械装置。此种仪器在线路检测的使用中不仅提高了轨道检测的精度和效率,大幅度减轻了检测人员的工作量,而且计算机强大的数据处理功能可以为现场维修进行详细指导,在一定程度上消除了安全隐患;其缺点是在超限检测时,轨缝信息将引起频繁的超限误报。此外,目前我国维修人员的整体水平与国外水平相比有一定差距,而轨检小车对操作人员的要求较高。

2.2 探伤小车

探伤小车是我国目前探伤作业的主要手段。我国的探伤仪有5个不同通道,分别安装5种探头,以方便探头的维修和调整,同时可以利用列车间隔作业,并能自动识别钢轨种别的变动。目前探伤班组大致分为“母材班组及接头焊缝班组”[2]。探伤速度的控制在探伤过程中尤其重要,维修人员要做到“接头站、小腰慢、大腰匀速探”[2]的原则。另外,下道避车时间,操作人员的操作水平,轨面状态不良的情况都需要注意。探伤小车的缺点是效率低,受环境、仪器、人为因素影响容易漏检。目前,国外探伤大多以探伤车为主、探伤小车为辅,但我国还没能达到这种水平。

2.3 维修人员的日常检查

轨道的状态以及检查人员的水平都直接影响日常检查结果。每个检查人员处理病害的手段不同,对线路病害的判别差异较大,使带班人员难以掌握线路状态,直接影响检养修分离的结果,造成各种轨道病害的频发。目前的当务之急是提高检查人员及维修作业人员的整体水平以及整体素质。

2.4 工务检测数据内容

轨道检测从检测方式上分为动态检测和静态检测;从内容上可分为轨道几何行位检测、轨道部件状态检测及行车平稳性检测。它是轨道科学合理维护的基础,同时也为轨道结构设计及各有关维护标准制订提供试验依据[3]。形成的检测数据大致上包括以下几类数据:

(1)轨道几何尺寸检测数据

轨道几何尺寸常用的检测方法分为静态检测和动态检测两种。静态检测包括线路几何尺寸和道岔几何尺寸,一般利用万能道尺、弦线及板尺等检测工具沿线路逐点进行或用静态轨检仪检测,如图1所示;动态检测的主要设备是机车动态检测装置、轨道检查车、智能动态添乘仪、人工添乘以及检测钢轨伤损情况的钢轨探伤车。

(2)桥隧路基检测数据

桥隧路基检测由工务段检查监控,包括对桥梁、隧道、涵渠以及路基设备的经常检测、定期检测、水文观测和专项检查等[4]。

(3)维修验收与回检数据

线路线路维修分为临时补修、综合维修和经常保养。线路在做过某种维修以后,相关单位都要按规定对作业质量进行验收回检,不符合要求的要及时整改,确保维修后的线路达标。同时,验收单位要对维修作业做好验收记录,就形成了临修验收数据、综合维修验收数据、经常保养验收数据[4]。

2.5 数据来源

目前我国工务生产实际工作中,整个工务检测数据信息平台的数据来源于由各种检测方式获得的检测数据,此外还包括线路桥隧维修数据、工务部门规章制度和地理空间数据等。各种检测方式获得的检测数据包括以下两种:一是通过人工检测或仪器检测将检测数据以纸质文件的形式手动记录下来,并在检测完成后由人工上传到数据信息库中;二是检测设备将自身所带的计算机分析系统得到的电子数据,通过编写特定的数据入库程序导入数据库中[4]。工务静态检测数据的主要信息如见表1:

3 数据应用情况

国内主要利用检测数据的分析结果主要用于安排临时补修,例如通过分析检测数据,指导轨道检查车、机载式添乘仪和各级工务有关人员乘车检查并复核,通知工区对Ⅱ、Ⅲ级以上晃车地段进行检修;对于静态检查超过临时补修标准的超限处所和严重的结构病害需要及时组织人员紧急补修;其他数据主要是作为一个参考值,为确定选择性保养地段提供依据[4]。工务系统对各种检测数据多采用分开存储和独立分析的办法,如图2所示。

4 存在的问题

目前无碴轨道结构形式在国内高速铁路已得到广泛应用,这与它的耐久性和稳定性密不可分。无碴轨道采用的是整体式轨下基础,被称为“省维修”轨道,但是“省维修”不能不维修。随着重载铁路的发展,其轴重的增大加剧了轨道路基结构的沉降变形,线路的几何结构也会相应变化,轨道也会产生损坏,这就要求线路设备更高的安全性。此外,高速铁路作为我国的新生事物,行车速度高、密度大,对于工务部门的维修管理要求很高,其中主要是轨道线路的检测难度及工作量大幅度增加。而目前工务部门的检测手段主要是人工检测,效率不高,已经无法适应并满足轨道交通快速发展的需要,建立新的高速铁路维修管理体制迫在眉梢。

5 解决问题的思路

在日常维护过程中,工务管理部门需要在把握客观事实的基础上,借助现代化的科学技术手段来进行养护维修。特别是轨道几何状态检测方面,单纯依靠人工手段已经不能满足时代的需要,应该引进先进的的检测技术,把常规检查中无法人为发现的病害检测出来,实现工务管理由经验化转向信息化、由人工静态型向仪器动态型转变。只有建立了科学完备的工务维修管理体制,才能养护好轨道线路,确保轨道交通安全高效的运营。可以说,引进新的技术,已经成为目前工务部门亟待解决的问题。

5.1 图像处理技术

轨道的不平顺问题可以利用图象处理技术检测,同时可以使用该技术检测轨道部件状态,如鱼尾板折损、扣件脱落、螺栓松动、钢轨磨损、道床路基坍落、水侵等异常状况都可以全面监测。

5.2 激光光电检测技术

激光光电技术主要应用于测量轨道几何形位变化及限界检测中(如大桥、长隧道的宽度有无变化)。其主要原理是:激光器发出的激光经被测物体反射后,由线性扫描接收器根据光点位置变化确定被测物体的外形情况。

5.3 计算机技术

轨道检测技术的进步要大大得益于计算机技术的发展。先进的计算机技术不仅增加了检测项目,而且在实现同步检测的基础上提高了工作效率、检测精度和可靠性。它主要作用于两个方面:一是与传感器、模拟处理系统构成统一的模拟数字混合处理检测系统,完成轨道的检测;二是对测量结果进行统计分析及评价,为科学管理和维修决策提供科学依据[5]。

5.4 超声波探伤技术

超声波在异质界面上可以产生反射、折射和波形转换,可以检测出各种取向的缺陷。超声波探伤原理就是利用声波在不同介质中的传播特性进行工作。超声探伤系统发射出2.25HZ的高频声波,声波在钢轨中传播并在空气界面或裂纹处发生反射,并通过接受反射声波来判断钢轨中是否存在缺陷,以及缺陷的大小、形状和位置等特征。

6 结束语

软结构双锥天线静态建模力学分析 篇7

双锥天线因其自身渐变结构形式和水平旋转对称特点而具有良好的宽带特性和全向特性,它是一款很好的宽带全向天线[1],它的软结构形式广泛应用于中波通信和短波通信。其模型如图1所示。天线面依靠周围的边索支撑。振子的一端连接在铁塔的顶端,而另一端连接在铁塔底端,中间由环线支撑且与边索相连,振子呈均匀对称分布。

1 振子建模及受力分析

振子属于均布载荷作用的小垂线。设定第i(i=1,2…n;n为振子位置)个振子挂点的跨距为li,振子单位长度的质量为q1,振子两挂点角度相差αi,要求天线架设成形后各振子垂度基本一致,所以计算时先对振子给定一个垂度值Δfi=ali/cosαi,a为振子的相对垂度。对天线来说,一般取a=0.01—0.03。对于每个振子来说,要保证给定的相对垂度就必须在水平方向施加一定的拉力Hi,振子两挂点产生的支点反力分别为RaRb。当计算上锥体时Ra为铁塔垂直方向的分力,Rb为环形节点垂直方向的分力;当计算下锥体时Ra为环形节点垂直方向的分力,Rb为铁塔垂直方向的分力。振子的受力状态见图2。由小垂度柔线理论可知,水平方向施加的拉力[2]为:

Ηi=qli28fi(1)

式(1)中,q=q1cosαi(2)

因此,Ηi=q1li8acosαi(3)

B点为矩心,应用力矩平衡原理求得:

Ra=q1li2cosαi1+18acos2αi)(4)Rb=q1li2cosαi(1-18acos2αi)(5)

2 环线建模及受力分析

环线在天线设计中起到对振子的支撑定位作用,环线的稳定保证了天线结构的稳定。环线在空间除了受到振子的拉力外还受到边索的拉力作用。假定环线状态稳定时,其与边索的节点位置固定不变。边索在受到振子的作用力时,存在水平面和垂直面两个平面内的变形,其受力状态见图3。

假定振子数量为n,边索数量为m。其中边索上半部分充当振子作用,属于振子的一部分。振子均匀分布,每相邻两边索之间的振子数量为nm-1。则振子的分布关于环线的中心O点对称,振子的水平投影夹角为360°n,每段环线水平投影的中心角为360°m

2.1 水平面内受力分析

AB两支点的支座反力为:

Ray=Rby=12n=1nm-1Τyn(6)

设定环线在水平面内的最大垂度为y0,以O点为矩心,应用力矩平衡原理求得施加在环线上的弦向力为:

Η=1y0{Ray+n=112(nm-1)Τxn(f0-Yn)-n=112(nm-1)Τyn(d2-Xn)}(7)

环线上各节点水平面内的位移为:

fyn=Ray-n=0n-1ΤynΗ-n=0n-1Τxn(Xn-Xn-1)(8)

因此,环线上各节点水平面内的垂度为:

Yn=n=1nfyn(9)

为保证各振子达到稳定状态后,振子水平投影夹角不变,计算时必须保证振子与环线节点沿着环线径向变形。

2.2 垂直面内受力分析

AB两支点的支座反力为:

Raz=Rbz=12n=1nm-1Τzn(10)

环线上各节点垂直面内的位移为:

fzn=Raz-n=0n-1ΤznΗ(Xn-Xn-1)(11)

因此,环线上各节点水平面内的垂度为:

Ζn=n=1nfzn(12)

3 边索建模及受力分析

边索起到支撑整个天线面的作用,边索上端固定在塔上,下端固定在地锚上,中间只受环线作用,作用力分水平作用力和垂直作用力。受力状态见图4。

由已知条件可知,β=90(1-2m)°;γ=180°m。 根据力的合成求得:

Ηc=2(Ηcosβ+Raycosγ)(13)

实际计算时,从图4所示的受力状态无法求得C点的位移。因此,我们必须将C点两个方向的作用力分别独立考虑建立平衡方程,这样才能方便求得两个方向上力作用时的位移。假定边索所受弦向力为T,C点初始位置为(Xc0,Zc0),则分别考虑作用力时的受力状态见图5。

3.1 垂直方向受力分析

AB两支点的水平支座反力为:

Ηa'=Ηb'=Τcosθ(14)

A点为矩心,应用力矩平衡原理求得B点垂直支座反力为:

R0b=1Lr(2RazXc0+Ηb')(15)

然后以C点为矩心,应用力矩平衡原理求得C点的变化后位置为:

Ζc=Ζ0-R0bΗb'(Lr-Xc0)(16)

3.2 水平方向受力分析

AB两支点的垂直支座反力为:

R0b'=-R0a'=Τsinθ(17)

A点为矩心,应用力矩平衡原理求得B点垂直支座反力为:

Ηb=1Ζ0(R0b'Lr-ΗcΖc0)(18)

然后以C点为矩心,应用力矩平衡原理求得C点的变化后位置为:

Xc=Lr-ΗbR0b'(Ζ0-Ζc0)(19)

综上所述,我们通过计算振子的作用力,计算出环线和边索的受力状态和变形。环线和边索的变形影响振子的位置变化,导致振子的作用力发生改变,然后以变化后的振子作用力重新计算环线和边索的受力状态和变形。经过循环迭代使振子、环线和边索达到最终的平衡状态。计算程序流程图如图6所示。

4 工程应用

通过双锥天线静态建模力学分析,应用计算机编程对天线结构进行分析、计算,所得数据直接应用于天线设计,天线成形达到设计要求,工程应用效果良好。应用实例有国家广电总局201、202、203监测台天线项目,广州中海天线项目,顶天昊公司越南天线项目等。

5 结论

本天线建模力学分析除适用双锥天线的结构尺寸计算外,还适用鱼骨形天线、对数周期天线、扇锥天线、同相水平天线等多种线天线的结构尺寸计算。其计算结果满足实际工程的需要。该计算方法在许多实际工程中已经得到了很好的验证。

参考文献

[1]邮电部北京设计所.天线和馈电线.北京:人民邮电出版社,1985

[2]КaчyринВК.小垂度柔线计算理论.杨福新,译.上海:科学技术出版社,1958

[3]钱若军,杨联萍.张力结构的分析、设计、施工.南京:东南大学出版社,2003

上一篇:取舍原则下一篇:高中的几个关键词