静态测试(共5篇)
静态测试 篇1
1 代码分析
1.1 常规信息
由代码分析可以得到以下信息:
(1)静态分析符号表格:这里包括的项目有文件信息、类Class的信息、函数的信息、变量的信息与标签的信息。
(2)类/模板结构图:类似于VC++中ClassView标签页,左边显示工程中的类以及类中所有元素的列表,右边则显示相应激活类的源代码。
(3)类/函数关系图:包括显示类的继承图、函数的调用图与类-函数耦合图。
(4)层次流程图:当选中某一个类中的一个函数时,会显示这个函数内部的控制流程图 (CFG) 。
1.2 CFG图
CFG图是代码分析中很重要的概念,有助于帮助我们理解代码分析的任务,也是最常用的代码静态分析的手段。
入口语句:程序的第一个语句;条件转移语句或者无条件转移语句的转移目标语句;紧跟在条件转移语句后面的语句。
基本块(Basic Block,简称BB):是指程序中一顺序执行的语句序列,其中它只有一个入口语句或者一个出口语句。在执行时只能由入口语句进入,从出口语句退出。
连接操作:F (A) 代表程序A的控制流图模型,有两个控制流图F1与F2, Seq (F1, F2) 表示顺序连接操作,表示将F1的终点结点和F2的开始结点进行合并所形成的流图。设有另外的A’是另外的一个代码块,于是有F (A;A’) =F (A) ;F (A’) 。所以程序顺序连接操作后的流图等价于流图的顺序连接操作。
可以通过不断的顺序连接和嵌套构造新的流图。通常可以利用顺序、选择、迭代结构组成程序的结构化特性。可以利用一个机制确定流图的结构化。
2 代码审查
2.1 内存泄漏
计算机内的存储区域可以分为静态存储区域、栈与堆。这三块区域通常被放在一块连续的物理存储区域中。静态存储区域是指存储空间在程序开始前就可以分配,并且在程序运行过程期间都存在;当程序运行到一个特殊的执行点(左括号)时,存储单元可以在栈上进行创建。出了这个执行点(右括号),这个存储单元会被自动释放。这些栈分配运算内置在处理器的指令中;存储单元也可以在堆(也可以称为自由存储区)上创建,在运行时调用程序分配这块内存。可以在任何时刻任何地方决定需要多少内存,并且必须手工把这块内存释放掉,内存的生命周期由程序员决定而不受范围作用域的限制[29]。
根据遍历程序中语句Si的类型,不断的对指针映射集M进行添加、删除与修改操作。如果存在对于某个语句Si, M中存在<Ф,h (i) >这个映射,则在Si处发生内存泄漏问题。遍历程序中的语句时,可通过CFG图进行路径的遍历。这个算法只能处理发生内存泄漏的所有情况的一个子集,并不能包括实际代码中的所有情况。
2.2 空指针引用
存在属于集合S的集合X,如果对于在集合X中任意一个x,存在x∆y,那么y∆S是X的上界,记为X∆y;同理,如果对于在集合X中任意一个x,存在y∆x,那么y∆S是X的下界。
构造一个格的变换形式型如:Vars NULL, Vars表示程序中一系列声明的变量。在CFG图上的结点v给出一个约束变量〖v〗,用它来表示在程序的一个点上符号表中所有变量的状态。对于变量的声明的约束表示为:
对于所有的结点〖v〗=JOIN (v) 。指向分析发生在分析树基础上,分析结果返回可用pt函数表示。对于任意一个指针变量p,返回pt (p) 集表示p指向的目的。这个指向函数可以表示为pt (p) =〖p〗。通过分析,如果在程序的某个点上〖v〗 (p) =NN,那么*p是安全的[32]。
3 软件度量
3.1 质量模型
软件度量会程度不等的涉及到软件测量问题,包括成本和工作量估计、生成率度量和模型、数据收集、质量模型和度量、可靠性模型、性能评估和模型、结构和复杂性度量与能力成熟度评估等。软件度量能够定量化项目进度、项目状况、工作成效、产品规模以及产品质量的性能。现有一些成熟的软件度量工具,比如OOMetrics/Developer, Hindsight/SQA等。应用Logiscope也可以进行软件的度量,采用Boehm开发的模型结合McCall质量模型定义的方法设计质量模型。Logiscope的质量模型通常称为FCM (Factor Criteria Metric,因素准则度量) 。
3.2 度量元
度量元是静态测量结果,提供和被分析程序的复杂性相关的指示,理解程序的容易程度可读性、可维护性和可靠性等。度量元可应用到不同的领域,适用范围是可变的。
在Logiscope工具有一些已定义好的度量元用来衡量C++各种元素的复杂度,并且可以把这些度量元进行组合成为一个新的度量元以适应不同的需求。
cl_func_calle是个类范围的度量元,属于数据流领域,用来定义在类中的方法调用定义在类外的函数的个数。dc_callpe度量元表示对于一个分析的函数,调用了定义在这个函数所属类外的函数的个数。cl_data_class度量元用来表示类类型的属性个数。
参考文献
[1]王乾宇, 朱小冬, 王毅刚, 李想.基于TestQuest的嵌入式软件可靠性测试环境框架研究[J].中国测试, 2012, (01) :106-109.
[2]程晓菊, 李仁发.基于函数切片的嵌入式软件回归测试研究[J].计算机工程, 2012, (02) :54-56.
[3]孙凯, 龚建军, 康佳, 陈培俊, 邓江明, 冯亮, 李远文, 朱小勇, 蒲蔚若.反应堆控制和保护系统嵌入式软件的组合测试[J].核动力工程, 2012, (01) :56-59.
静态测试 篇2
1 静态工作点
在图1 (a) 的放大电路工作时, 估算静态工作点的电流和电压。
放大电路输入端加上信号ui时, 三极管的输出信号uCE和iC, 既要满足三极管的输出特性, 又要满足uCE=UCC-iCRc方程。将uCE=UCC-iCRc用直流负载线MN表示, 其斜率为, 如图1 (b) 所示。因此, 静态工作点Q是输出特性曲线和直流负载线的交点。
2 电路参数对静态工作点的影响分析
要想输出信号不失真, 电路参数的设置, 就要使得信号的整个周期工作在晶体管放大区, 即设置Q在放大区中间区域。否则Q点过高或过低都将容易产生非线性失真, 电路参数Rb, Rc, Ucc, β 对静态工作点Q影响分析如下:
2.1 Rb对Q的影响
其它电路参数不变, 直流负载线MN不变。
当, 在三极管输出特性曲线上表现出Q点沿负载线上移, 靠近饱和区, 易出现饱和失真, 如图2 (a) 中的Q”。过大的ICQ会造成三极管的 β 变小, 放大能力下降, 因此Rb不能太小, 以保证集电极电流ICQ不得超过其最大允许电流ICM。
当, 在三极管输出特性曲线上表现出Q点沿负载线下移, 靠近截止区, 因此容易出现截止失真, 如图2 (a) 中的Q’。
2.2 Rc对Q的影响
其它电路参数不变, , 直流负载线MN斜率发生变化。
当Rc减小→ UCEQ=UCC-ICQRC增大, 直流负载线MN变陡, 斜率变大, Q点沿输出特性曲线向右方移动, 如图2 (b) 中的Q”, 使得动态工作范围增大。但限制了输入的交流信号的正半周信号的最大幅度 (Umi<UCC-UCEQ) 之外, 还会造成三极管静态功耗也增大, 并且过小的集电极电阻Rc还会使得本级管子放大增益 (倍数) 大大减少。当电路存在下一级电路时, 本级电路过低的输出电阻, 将难以匹配下级电路输入电阻。
当Rc增大→UCEQ=UCC-ICQRC减小, 负载线MN变平坦, 斜率变小, Q点沿输出特性曲线左移, 向饱和区移动, 如图2 (b) 中的Q’, 易产生饱和失真。
2.3 UCC对Q的影响
其它电路参数不变, 直流负载线MN斜率不变。
当, Q点向左下方移动, 如图2 (c) 中的Q”, 三极管更加安全, 但动态工作范围减小。
当UCC增大, , Q点向右上方移动, 如图2 (c) 中的Q’。使得动态工作范围增大, 此时ICQ, UCEQ同时增大, 使得三极管静态功耗增大较快, 因而应防止静态工作点超出三极管安全工作区的范围。
2.4 β 对Q的影响
其它电路参数不变, 直流负载线MN不变。
减小 β, 三极管输出特性曲线下移, 如虚线所示。此时直流负载线MN不变, IBQ不变, 但ICQ=βIBQ减小, UCEQ=UCC-ICQRC增大。故Q点将沿直流负载线下移, 如图2 (d) 中的Q”, Q”点靠近截止区, 易产生截止失真。
增大 β, 三极管输出特性曲线上移, 如虚线所示。此时直流负载线MN不变, IBQ不变, 但ICQ增大, UCEQ=UCC-ICQRC减小。故Q点将沿直流负载线上移, 如图2 (d) 中的Q’, Q’点靠近饱和区, 易产生饱和失真。
3 仿真测试
利用Mulitisim 10 创建仿真电路[2,3], 如图3 (a)
3.1 Rb变化仿真测试
由仿真实验验证, 如表1, Rb的取值逐渐增大, 三极管工作状态由饱和→放大→截止。
说明:在某个电流区域是差不多的, 但在ICQ不同时, 是有变化的, 有时变化还可能很大, 这些都可以相应的从晶体管特性曲线上看出来的。所以, 在同一个晶体管上, β 不是固定的, 只是在某个电流区域中很接近。对一般的晶体管来说, β 值有随电流增大的趋势。
3.2 Rc变化仿真测试
由仿真实验验证, 如表2, Rc的取值逐渐增大, 三极管工作状态由放大→饱和。
3.3 Ucc变化仿真测试
由仿真实验验证, 如表3, Ucc的取值逐渐增大时, ICQ, UCEQ同时增大, 使得三极管静态功耗增大较快, 因而应防止静态工作点超出三极管安全工作区的范围。
3.4 β 变化仿真测试数据
温度升高, β增大。三极管2N2222A工作温度范围是-65℃~200℃, 利用mulitisim软件仿真分析方法中的温度扫描分析, 将温度设置-50℃上升到150℃, , 取5 个温度点, 分别仿真分析静态工作点IBQ, ICQ, UCEQ。如图3 (b) 所示:
由仿真分析结构可以得出, 随着温度的上升, ICQ在增大, UCEQ在减小。使静态工作点Q由截止区→放大区→饱和区移动变化。
4 结论
综上所述, 电路参数设置的不合适, 会使得静态工作点偏离放大区中间区域过多。若Q设置过高, 可以采用增大Rb、减小UCC、降低β 等措施;若Q设置过低, 可减小Rb、增大UCC、提高 β 等措施;若Q设置靠近饱和区, 可减小Rc。实际调试中, 主要通过改变电阻Rb来改变静态工作点。当然也需要将参数综合考虑, 根据失真情况及输出范围的要求, 合理选择或调整电路参数确定静态工作点。同时还可以从电路结构上入手, 在发射极串联电阻, 引入串联电流负反馈, 稳定静态工作点。
参考文献
[1]童诗白, 华成英.模拟电子技术基础[M].北京:高等教育出版社, 2001.
[2]张志友.Multisim在电工电子课程教学中的典型应用[J].实验技术与管理, 2012, 29 (04) .
静态测试 篇3
随着智能手机与大众工作生活的关系逐渐密切, 各类安全问题也日益凸显。僵尸病毒、收费陷阱、隐私窃取、流氓软件、垃圾短信等负面新闻不断出现, 影响了用户的消费信心, 阻碍了移动互联网产业的健康发展。
程序开发人员常说“源代码不会撒谎”, 意思是不管文档怎样记录、广告如何宣传, 应用软件表现出来的任何行为最终都能在源代码中找到答案。但是, 为了保护商业机密, 很多软件在进行第三方安全测试时并不提供源代码, 因此在常规的黑盒测试之外, 只能直接从程序的二进制代码入手进行逆向分析[1]。从测试的角度看, 作为“固化的源代码”, 二进制代码更不会撒谎, 这是因为:
1. 使用不同的编译选项, 可以从同一份源代码生成千差万别的二进制代码;
2.无论怎样调整编译选项, 也难以从逻辑行为不同的源代码生成运行于同一目标平台的完全相同的二进制代码。
在这个意义上, 二进制代码确切标识了用来生成它的源代码, 更为直接地体现了程序的行为逻辑。逆向分析分为静态和动态两类:静态分析的特点是不实际执行程序;反之, 通过在真实或模拟环境中执行程序进行分析的方法称为动态分析, 它们一般都要求测试人员对目标平台架构和汇编语言有精确的理解。IDA Pro[2]是目前功能最强的反汇编及调试工具, 能处理多种硬件平台下的原生代码, 包括使用Symbian C++SDK和iOS Objective-C开发的程序。开源工具smali[3]实现了在Android系统的dex格式文件及其反汇编代码之间的双向转换。
本文通过笔者在工作中的实际案例对手机软件二进制代码静态逆向安全测试的思路、方法、过程以及注意事项进行了介绍。测试对象是Symbian S60平台上某款免费下载软件中的两个主要可执行文件, 即主程序文件和下载加速器文件。
测试内容包括:
1. 该软件是否存在静默安装卸载其它软件的可能;
2. 是否存在未经用户授权而发送短信的嫌疑;
3.是否存在与其它软件产生恶意冲突的隐患;
4.是否存在泄漏用户隐私信息的风险。
1静默安装卸载
容易验证, 作为分析对象的两个可执行文件是使用诺基亚Symbian S60 C++SDK开发的, 运行在加载ARM芯片和S60 v3系统的手机上。如果它们调用了静默安装或卸载程序的功能, 则必然会引用相应的系统函数。因此, 这里的主要工作就是在目标文件的反汇编结果中分析对这些系统函数的调用情况。不过, C++编译器会对程序符号名称进行混淆 (Mangling) [4]以支持函数重载等语言特性, 所以还需要知道这些系统函数在二进制代码中对应的引用名。通过Google得知静默安装卸载功能位于S60SDK API插件的SW Installer Launcher部分[5], 进而从SDK中提取出对应的导入库文件swinstcli.lib。至此, 可以利用objdump工具[6]获得实际函数名与二进制代码引用名的对应关系:
(输出结果约440行, 从略) 。再参照SDK文档, 就可总结出S60 v3系统中静默安装卸载程序功能对应的系统服务函数名称, 如表1所示。
使用IDA Pro分别对两个可执行文件进行反汇编, 并搜索导入函数列表。主程序文件仅引用了有提示的程序卸载系统服务函数 (未在表1列出) , 不存在静默安装卸载程序的功能。但在下载加速器插件的反汇编代码中, 地址0x217D8至0x217F4之间出现了对SWInstCli_4和SWInstCli_13函数的连续调用, 如图1所示。对跳转地址回溯归并后发现, 共有4个静默安装卸载系统服务函数被程序自身实现的入口地址为0x216FC的函数调用, 它们构成一个完整的静默安装程序的过程。使用相同的方法, 还在同一可执行文件中查找到完整的静默卸载程序的过程。
被测软件的官方文档并未说明下载加速器插件模块为何需要使用静默安装卸载程序的功能, 因此对用户存在暗箱操作的可能。即使该功能仅用于软件自身的配置升级, 也应当提示用户有选择地进行操作, 而非静默执行。
以上描述了手工执行二进制代码静态逆向分析的方法, 整个过程较为繁琐。尤其是可执行文件中的函数调用关系错综复杂, 仅仅300余KB的下载加速器插件的函数逻辑图就达到了肉眼难以辨识的程度 (见图2) 。我们还利用IDA Pro提供的脚本扩展IDAPython[7]开发了一键式扫描工具, 只需要指定待测的二进制代码模块, 就能够全自动地分析模块自身实现的哪些函数调用了静默安装卸载功能, 并生成直观的调用关系图 (见图3) 。这种方法具有很强的普适性:测试人员按照一定的语法规范编写希望搜索的恶意代码行为模式, 就可以快速自动定位被测二进制代码中的调用地址, 获得准确的上下文逻辑结构。作为验证, 我们对被测软件包含的其它可执行文件和动态链接库文件进行过批量扫描, 准确查出了所有对于静默安装卸载功能的引用。
2未经授权发送短信
诺基亚S60 v3及以上的手机操作系统支持至少三种发送短信的方式:
1.“低级别”的使用网络套接字的SMS PDU (短信协议数据单元) 方式。首先创建一个短信对象CSmsMessage并设置短信内容, 然后调用SetToFromAddressL函数设定接收端的手机号码, 最后写入一个短信套接字RSmsSocketWriteS-tream并调用CommitL方法完成发送。
2.“较高级别”的RSendAs方式。
首先调用Connect方法连接到系统的发送短信服务, 调用CreateL方法创建一个短信对象, 然后调用AddRecipientL方法设定接收端的手机号码, 调用SetBodyTextL方法设置短信内容, 最后调用SendMessageAndCloseL完成发送。
3.“更高级别”的SendUI方式。
首先调用NewLC方法创建一个CMessageData对象, 然后调用CSendUi类的CreateAndSendMessageL方法弹出短信编辑界面, 就可以等待用户输入内容并完成发送。
值得注意, 前两种方式都不需要通过任何图形化界面与用户进行交互, 即所谓的“后台”发送。
使用与上一节类似的方法对主程序文件进行逆向分析, 发现它分别在地址0x7BB14和0x296C0处引用了第一和第三种发送短信的系统函数。在被测软件的界面上, 我们仅发现了一处明显需要使用发送短信功能的可操作项, 即菜单“选项→推荐给好友→短信推荐”。手工选择该菜单项后, 弹出了短信编辑框界面, 即对应于方式三。方式一的可操作项未出现在用户界面上, 因此存在未经用户授权发送短信的嫌疑。
通过类似的分析发现, 加速器插件调用了其它类型的API函数, 包括CSmsSettings::GetServiceCenter (获取服务中心对象) 、CSmsPDU::SetServiceCenterAddressL (设置服务中心地址) 、CSmsPDU::ToFromAddress (获取短信目的地址) 等。这些函数的功能是读取和设置短信服务的一些参数, 并不能发送短信。但是, 通常概念的下载加速器并不需要使用这些功能, 用户帮助文档上也未发现相关的声明。因此, 被测软件存在侵犯用户隐私的隐患。
3软件恶意冲突
软件恶意冲突的表现形式有很多种, 我们在测试时仅分析了强制终止其它进程的行为。在Symbian系统上, 根据指定的进程名 (允许包含通配符) 强制终止进程的常见步骤如下:
1.使用指定的进程名创建一个TFindHandleBase“句柄查找对象”;
2.调用TFindProcess::Next方法查找下一个匹配的进程名;
3. 若查找失败则结束, 否则调用RProcess:
:Open方法打开该进程, 获得对它的访问权限;
4. 调用RProcess::Kill方法强制终止该进程;
5. 如有必要, 返回第2步重复查找。
这刚好可以作为前面提出的“恶意代码行为模式”使用。利用脚本程序处理后发现, 两个可执行文件都包含与上述步骤几乎完全一致的代码逻辑。图4显示了下载加速器模块中对RProcess::Open和RProcess::Kill的调用情况。因此, 被测软件存在与其它软件产生恶意冲突的隐患。
4用户隐私泄漏
作为下载工具, 被测软件需要访问移动互联网是合情合理的, 因而从网络通信内容的角度进行分析比较困难。我们的思路是, 从软件内置的网址字符串入手, 发现可能存在的用户信息泄漏。
在主程序文件的反汇编代码中搜索字节长度不小于5的文本字符串 (包括ASCII和Unicode字符串) , 共得到755个匹配项。在结果中查找网址字符串 (包含字段“http://”、“www.”、“.com”、“.cn”、“.net”、“.org”、“.htm”、“.php”、“.asp”、“.aspx”等) , 发现地址0x5F950处内容为http://heimutuzhu.gotoip4.com/counter.php。在我们的测试期间, http://heimutuzhu.gotoip4.com/counter.php网页界面如图5所示, 通过观察判断它的功能可能为统计移动互联网流量。
在反汇编代码中对该字符串进行交叉引用查找, 只有1处使用了该网址字符串, 如图6所示。
这部分代码的功能是, 将上述网址字符串和另外两个字符串“?cid=XXX”、“&ver=YYY” (其中“XXX”和“YYY”由程序运行时生成) 拼接起来得到一个形如http://heimutuzhu.gotoip4.com/counter.php?cid=XXX&ver=YYY的“网页地址+参数信息”的URL链接。从上下文分析, “XXX”可能为用户或手机相关的ID号, “YYY”可能为手机机型、系统版本或其它版本参数。如果被测软件未经提示访问了上述URL链接, 就存在泄漏用户隐私的风险。
两个被测文件中还包含其它可疑网址字符串, 这里不继续展开分析。
5关于动态逆向分析
以上演示了通过手工和自动化方式对Symbian系统二进制代码进行静态逆向分析的过程, 二者都可以有机结合到上文提出的综合测试服务平台中。一般而言, 使用动态逆向分析有可能获得更为丰富的结果, 比如可以设置断点直接查看上一节中的具体版本参数值。IDA Pro确实提供了调试Symbian程序的能力[8], 但在本案例中效果并不理想, 原因之一是, 类似的联网软件很容易接受官方服务器指令改变自身行为逻辑, 而服务器端应用及数据在我们的测试中都没有条件获得, 因此很难重现某些恶意行为。虽然工作量较大, 静态逆向分析在这种情况下展现了独特的优势:二进制代码直接反映了源代码逻辑, 再加上软件包附带的数字签名的抗抵赖性, 就构成无法撤销的铁证。
6结语
自动化能力的提升是软件测试领域的发展方向, 能够发现并解决开发过程中无能为力的问题是专业测试的价值体现。手机软件安全测试的研究方兴未艾, 本文使用的逆向分析技术及案例分析是该领域的一个有益参考。
参考文献
[1]Brian Chess and Jacob West, Secure Programming with Static Analysis, Addison Wesley, 2007.
[2]IDA Pro, 交互式二进制代码逆向分析工具, http://www.hex-rays.com.
[3]smali-an assembler/disassembler for Android’s dex format, code.google.com/p/smali.
[4]Wikipedia, Name mangling, en.wikipedia.org/wiki/Name_mangling.
[5]Nokia Developer Website, Symbian S60Deploy-ment Installation-SW Installer Launcher API, www.developer.nokia.com/Community/Wiki/SW_Installer_Launcher_API.
[6]objdump, MinGW编译器套件中的库文件和目标文件符号转储工具 (开源) , nuwen.net/mingw.html.
[7]IDAPython, IDA Pro的Python脚本扩展, code.google.com/p/idapython.
静态测试 篇4
在实际的桥梁工程中, 为了了解钢筋混凝土桥梁的承载能力和使用性能, 为以后的养护、加固和运行后的安全使用提供可靠有效的资料, 必须对桥梁进行荷载试验。而在荷载试验过程中, 结构在受力时, 其内部会产生内力, 而内部应力在正常的情况下无法直接测到, 目前通用的做法就是根据材料力学中应力与应变的关系式, 通过应变测试系统来测出结构的应变, 间接的计算出结构的内部应力。因此, 结构应变测量是钢筋混凝土桥梁荷载试验中研究构件应力状态必不可少的一个指标。
实际应变测试中, 测试方法和测试仪器也是多种多样的, 比如常见的机械式测量仪器、电测仪器等。在检测中, 通常采用的试验方法是通过应变片作为传感器来完成试验, 该试验方法的原理就是被测结构物的变形通过应变片电阻值的变化反映出来。而且结构应力应变测试往往采用的是惠斯通电桥电路, 并需通过调理电路提供激励电压、组桥及对信号进行滤波和放大。在这里, 介绍一种叫DH3818-2静态应变测试仪, 该仪器主要就是以电阻应变片作为测量传感器, 并与屏蔽线作为导线连接来共同完成试验。
1 应变测试分析系统
DH3818-2静态应变测试分析系统是一种最常用的测量结构应变的方法, 该应变测量方法的核心元件是应变片, 主要是通过导线把应变片和静态应变测试仪连接在一起, 作为一个测试系统来进行静载试验, 完成应变的测量。
1.1 系统组成及功能
本文介绍的DH3818-2静态应变测试仪器共有20个通道, 可以同时测量20个测点。测量前, 需要根据应变片的灵敏系数、屏蔽线电阻、桥路连接方式等, 计算出修正系数, 并输入其值, 同时需对每一个通道进行平衡操作。仪器图片见图1。
1.2 应用范围及修正系数的确定
本文中介绍的应变测试仪的桥路连接方式有6种, 每种连接方式的使用用途以及在测试前需要输入的参数也是各不相同的, 每种方式的用途也是不同的。
1.2.1 测量范围
1) 根据测量方案, 完成全桥、半桥、1/4桥 (公共补偿) 状态下的静态应变的多点检测。
2) 和各种桥式传感器配合, 实现压力、荷重等物理量的检测。
3) 可以对小电压信号进行检测, 分辨率高达1 uv。
1.2.2 修正系数的确定
在桥梁应变测试前, 由于应变片和导线的不同, 需要对应变片和导线的灵敏系数进行修正, 进而确定修正系数, 实际修正系数=A×B×C。
其中, A为通过应变片的灵敏系数K确定的, 即A=2/K, K为应变片的灵敏系数;B是由路桥连接方式确定的, 方式一、二为1, 方式三为1/ (1+u) , 方式四为1/2, 方式五为1/2 (1+u) , 方式六为1/4;C为导线电阻的影响, C=1+nRL/R, RL为单根导线的电阻, R为应变片的电阻。
若导线和应变片的电阻差值较大, 需要对其进行修正, 反之, 不需要。
1.3 工作原理
本文主要是以1/4桥 (公共补偿) 连接方式来简述其测量原理, 图2为该桥路连接的测量原理图。
其中, AC为电源端, A端接电源正极, C端接电源负极, B, D两端分别为信号输出端, Rg为工作片电阻, AD间的R为补偿片电阻, BC, CD间的R为测试系统内部的标准电阻, Kf为低漂移仪表放大器增益。
根据电桥原理, 输出电压Vi与桥压Eg、应变片的灵敏系数K、输入应变ε有关, 表达式为Vi=0.25Eg×K×ε。
由低漂移仪表放大器输出电压的表达式, 即V0=Kf×Vi=0.25Eg×K×ε×Kf推出应变量ε的表达式, 故ε=4V0/ (Eg×K×Kf) 。
2 测试试验
为了验证该测试系统的可靠性、准确性, 分别采用DH3816和DH3818-2测试系统对某桥的成桥应变进行了测试试验。由应变试验的具体要求可知, 在进行试验时, 可以采用不同方式的桥路连接方式。本次试验采用的1/4桥 (公共补偿) , 分别测得某成桥在某一荷载作用下相应梁的实际应变值ε1, ε2及其理论计算值如表1所示。
由表1可知, 分析比较测试应变值ε1和ε2的测量结果, DH3818-2应变测试系统的精度还是挺高的, 而且与理论计算值几乎相吻合, 能够应用于现实工程结构应力应变的测试当中, 但还是存在一定范围内的误差。引起测试结果存在误差的主要原因可能主要有以下两点:
1) 该测试系统的组成元件精度不够, 引起测量误差。
2) 在测量前, 未对导线的灵敏系数进行修正, 导致测量误差。
在现实的应变测试中, 该应变测试系统还受温度、空气湿度、电磁、电压等的影响。
3 常见的主要问题
1) 仪器在测试前, 不能平衡, 主要原因是连接工作片的导线长度和连接补偿片的导线长度不等, 而且差值较大, 致使他们的电阻阻值超值、工作片的电阻和补偿片的电阻阻值超出该系统所要求的范围、没有设置修正系数或者修正系数设置为0。
以上原因造成的仪器不能平衡, 需要使用万能表分别检查导线的电阻来确定是否超值。
2) 在测试过程中, 应变数据不够稳定, 引起此现象的主要原因是电压不符合仪器所要求的电压、导线和应变片接触不良、应变片不能很好的与结构物表面接触、电磁场的影响。
3) 测量结果随着时间在不断的变化, 而且变化无规律, 时大时小, 不能准确的确定该点的应变值, 这主要是由于现场温度在不断的变化, 且温差大造成的。
4 建议
1) 能否考虑装一个屏蔽测试现场周围的电磁场的影响, 保证测试系统的正常使用, 确保数据的准确性。
2) 配置一个电源充电装置, 保证在外接电源断电的情况下, 测试系统还能利用自带的充电装置正常进行, 完成应变的测量。参考文献:
参考文献
[1]宋文绪, 杨帆.传感器与检测技术[M].北京:高等教育出版社, 2004:190-243.
[2]曹玲芝.现代测试技术及虚拟仪器[M].北京:北京航空航天大学出版社, 2004:158-167.
[3]韦俊.46.5米大跨度门式多弧形刚架结构现场静载试验研究[D].西安:西安建筑科技大学硕士论文, 2008.
静态测试 篇5
传感器进行特性标定以确定其各项性能指标是否满足使用要求。静态特性是指传感器在输入物理量处于稳定状态时输出与输入关系[1], 主要包括线性度、灵敏度、滞后性、重复性和静态误差等。以往对传感器静态特性的研究需要多种仪器进行采集、繁琐的人工计算, 导致效率低、可靠性差[2]。随着计算机的发展以及各种编程软件的使用, 通过计算机的高速数据处理能力和虚拟仪器所见即所得的特性, 设计一种半自动化的传感器动静态特性标定系统就能在很大程度上提高对传感器特性研究的速度和准确性, 也有助于提高实验水平[3,4,5]。
1 系统总体结构
测试系统由电热源、热电偶传感器、NI USB-6009数据采集卡、隔离变送器、WD990微机供电电源、作为标准用水银温度计、计算机等组成。其中NI USB-6009数据采集卡为8路模拟输入通道, 2路模拟输出通道, 12条数字I/O线, 32位分辨率计数器, 具有基本的数据采集功能。K型热电偶传感器测量温度的隔离变送器, 主要用于测量0-200℃的温度。变送器内有冷端补偿功能, 输入、输出和辅助电源之间是完全隔离 (三隔离) , 可以承受2500VDC的隔离耐压。
数据采集软件以美国NI公司开发的Lab Windows/CVI为开发平台, 它以ANSIC为核心, 将C语言平台与用于数据采集、分析和表达的测控专业工具结合起来, 增强了C语言的功能, 通过其强大的函数库功能, 为建立检测系统、自动测量系统和过程监控系统等提供了一个良好的软件开发环境。
STTT-R型热电偶静态特性测试系统框图如图1所示。当热电偶将数据传入变送器后, 通过信号调理电路将温度信号转换为电压信号;转换后的电压信号经NI-USB 6009传输至PC机的数据采集软件, 进行数据的采集、显示和存储。
2 系统软件设计
2.1 静态数据采集模块
采集模块用于对静态数据进行采集以及实时图形显示。在采集的过程中, PC机界面显示所采数据以及操作步骤, 使用户可以一目了然的观察所采集到的数据结果。在进行静态拟合时主要采用了Advanced Analysis库中的Poly Fit函数对采集到的静态数据进行拟合计算。静态数据采集操作界面如图2所示, 整个界面分为三部分:实时图像显示、静态数据采集记录、操作步骤提示等。
2.2 数据保存模块
本测试系统对采集数据进行多种格式的保存, 其中包括“.GP文件”、二进制文件、“.txt文件”以及excel表格文件, 运用Active X技术, 将数据保存为excel格式, 并实现数据报表的输出。软件编程课实现所保存文件存放在“D:我的文档桌面新建文件夹”目录下, 便于用户查找和使用。本测试系统通过使用Excel Report.fp和Microsoft Excel9.0函数库, 可根据采集次数的不同自动调整excel表格的格式, 使界面友好化、个性化, 满足人机交换界面的需求。
3 数据处理及误差来源
对热电偶传感器静态特性的衡量是线性度和灵敏度。在传感器中将实际特性曲线与拟合直线不吻合的程度, 被称为“非线性误差”或“线性度”。用公式表示为:
其中, e1为线性度;Δmax为实际特性曲线与拟合直线之间的最大偏差;yFS是满量程输出。传感器的静态灵敏度是指线性传感器的校准线的斜率, 它是传感器的输出量和输入量变化之比, 即:
某次测量结果数据记录如表1所示, 通过计算可得知该热电偶的线性度以及灵敏度。
STTT-R型热电偶在测量过程中的主要误差来源有:传感器对分度表的误差;绝缘不良引起的误差;线路电阻引起的误差;测量仪表的误差以及传热误差、动态相应误差、干扰误差等。对于热电偶来说还有参考端温度变化引起的误差;补偿导线的误差等。其中有些误差是在一定条件下才会出现, 而且通过一定措施是可以消除的。
4 结论
以NI USB-6009为依托构建通用型数据采集测试系统, 使用CVI平台设计“STTT-R”型热电偶静态特性测试软件, 对热电偶线性度、灵敏度等静态特性进行处理。通过虚拟仪器技术改变了传统对传感器进行人工标定的方法。通过多次试验表明, 该系统可以方便高效的实现用户对传感器静态特性的测试。
参考文献
[1]赵兵, 杨基峰, 孙书林, 王帅.基于LabVIEW的传感器静态特性标定系统[J].仪表技术与传感器, 2011, 06:20-22.
[2]刘琳, 向学军, 王晓烨.基于LabVIEW的温度传感器特性实验数据分析系统设计[J].三峡大学学报:自然科学版, 2007, 06:544-545.
[3]张海丽, 苏淑靖.基于LabWindows/CVI的测试仪软件设计[J].测控技术, 2012, 07:88-91.
[4]杨建和.基于LabWindows/CVI数据采集系统的设计[D].北京邮电大学, 2012.
[5]赵兵, 孙书林, 王帅, 王娜.基于LabVIEW的传感器静态特性标定方法研究[J].青海大学学报:自然科学版, 2010, 06:24-27.
[6]吴疆, 秦存民, 王莉.细丝热电偶温度传感器动态特性研究[J].航空精密制造技术, 2008, 04:34-36.
[7]贾廷珏.实验室热电阻温度计标定方法研究[J].工业计量, 2009, 04:8-10.