仿真的军用电路板故障诊断系统研究
时间:2011-09-08 16:23:31点击:次
从故障建模、故障注入,到电路仿真、数据分析,最终建立故障诊断系统。本系统的设计主要分为分析部分、输入部分、仿真部分和输出部分四部分组成。电路板仿真故障诊断系统总体设计流程如图1所示。 1.1 分析邵分 FMEA(Failure Mode and Effects Ahalysis,故障模式和影响分析)分析指对系统中每一故障模式的严重程度、检测难易程度以及发生频度进行分类,将发生概率高、危害度大的故障选作故障集,而不必对所有元件的硬故障都予以考虑,有针对性地建立模型进行仿真,使大规模电路仿真得到了简单化、实用化。通用元器件故障模式的确定,可参考引用权威的故障模式统计报告,如国产电子元器件可引用GJB299-C,国外电子元器件可引用MIL-HDBK-217F。 1.2输入部分 根据FMEA分析,设置元器件故障参数。画电路图,标注各元件名称及参数值,标注各元件节点及节点编号等;建立电路的输入文件,输入文件有两种形式:一种是网表形式;另一种是原理图形式。 1.3电路仿真部分 通过FMEA分析知道了系统中最容易发生故障的元件或子电路,并建立其故障模型,利用仿真软件PSpice对电路进行仿真,采用灵敏度分析找出对电路测试点输出影响最大的元件,并设置故障模式,再用蒙特卡罗分析法获取电路在各个状态模式下的信号波形。 1.4输出部分 利用小波分析的“数学显微镜”等功能对电路输出信号的故障特征进行提取,并进行归一化处理,而后输入BP神经网络完成故障诊断。这样既可以减少BP神经网络输入数目,简化神经网络结构,缩短训练时间,又提高了辨识故障类别的能力。 2关键技术 2.1故障诊断系统搭建 在实际设计中,该系统设计是基于LabVIEW平台开发的,内嵌数据库软件ACCESS,仿真工具PSpice,各种算法的开发工具Matlab,VC++6.0作为主程序的开发工具,主要负责各个软件之间的调度协调。整个系统由四个功能模块、一个主控模块和人机界面组成。系统结构组成框图如图2所示。 2.2 Matlab读取PSpice的仿真数据 利用PSpice的电路仿真功能,使用PSpice提供的元器件及故障模型,对电路进行直流分析、交流分析等,然后将所得到的输出文件,尤其是波形文件导入Matlab中进行数据分析,例如可以进行频谱分析、去噪等处理进行小波分析,提取某一区间的波形特征,可以进一步使用神经网络进行特征的模式识别。 PSpice的输出文件有.out格式和.dat格式两种,再将这些文件导入Matlab中进行处理,对故障进行定位。PSpice波形文件可以使用.PLOT语句在.out文件中显示。现在将PSpiee的波形文件导入Matlab中进行处理。 在PSpice窗口中选择File/Export/Text,在Export Text Data对话框中输入保存路径和保存的文件名,为了使Matlab读取数据方便,一般将该文件的保存路径设置为Matlab安装目录中的work文件夹。此时,Matlab对该文件的读取有两种方法: (1)启动Matlab,单击File/Import Data,在Import窗口中选择先前保存的.txt文件,在Import Wizard对话框中选择Column separator为Space(空格),在Matlab的引导下将.txt文件的数据导人.dat矩阵中,就可以使用Matlab对PSpice的波形数据进行处理了。 (2)直接通过Matlab提供的函数编写M文件,打开.txt文件,选择import data函数: 第一种方法将PSpice输出的文本格式的波形文件保存在ans矩阵中,在Matlab工作空间(WorkspaceBrowser)中双击ans矩阵就可以看到波形文件包含的内容了。第二种方法是将波形文件的内容存放在用户自己定义的矩阵y中,此时就可以通过对矩阵y的操作来实现对PSpice输出波形文件的进一步处理。 2.3 VC++6.0与Matlab混合编程 Matlab引擎是一组函数,通过这组函数,用户可以.在自己的应用程序中实现对Matlab的控制,来完成复杂的计算和图像绘制等任务,这就相当于把Matlab当作一个计算引擎。VC++与Matlab混合编程部分程序如下: 以上就完成了Matlab引擎的启动,需要注意的是在运行完毕后应使用engClose(ep)函数关闭引擎。 在确定输入参数符合要求后,使用Switch语句和if语句进行判断使用的小波变换类型,运行相应的程序,使用engEvalString()函数可以执行Matlab命令,从而实现对PSpice输出波形文件进行绘图或者小波变换。