电子系统故障诊断与测试性课程设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2.
附一:实时诊断被测电路
图2-1分压电路
表2-1优化后的故障源-测试依赖矩阵
报警情况:虚拟测试中t13和t32发生报警,其他的几个虚拟测试不发生报警。
首先,除开报警点以外分析:虚拟测试中不发生报警的测试点说明对应测试单元正常,即可检查出R8、R7、R6、R5、R4、R2、R1为正常;
其次,对报警点分析,虚拟测试中发生报警的测试点对应测试单元不正常,即可检查出R3为故障点。可得源程序如下:
#include<stdio.h>
void main(void)
{
int i,j,a=3,b=7; //a,b:报警
intA[7]={0,0,0,0,0,0,0},
B[7]={0,0,0,0,0,0,0},
int ARRAY[7][9]={{0,0,0,0,1,0,0,0,1},
{0,1,0,0,0,0,0,1,0},
void test_t6()
{
if (t[6]==0)
{
printf("此时故障可能存在于F1\n\n");
printf("需要继续检测t3,t3=%d\n",t[3]);
test_t3();
}
else if (t[6]==1)
{
printf("故障存在于F0以及F2-F6\n\n");
printf("需要继续检测t3,确定最终结果,t3=%d\n",t[3]);
for(i=0;i<7;i++)
{
if(A[i]==1)
printf("%d",i);
}
printf("\n问题部分为:");
for(i=0;i<7;i++)
{
if(B[i]==1)
printf("%d",i);
}
printf("\n");
}
运行结果如下:
3
3.1相关性模型
相关性是指被测对象的组成单元和测试点之间、组成单元之间或测试点之间存在的逻辑关系。例如:测试点 依赖于组成单元 ,则 发生故障时, 的测试结果应是不通过的;反之,如果 的测试通过了,则证明 是正常的,这就表明 与 是相关的。
被测单元 ( unit under test )的相关性模型可用下述矩阵表示:
其中,第i行矩阵为:
式中: Pi表示第i个组成单元的故障在各测试点上的反应信息,它表明了Pi与各个测试点T j ( j = 1, 2,…,n)的相关性。
第j列矩阵为:
式中: Qj表示第j个测试点可测得各组成单元的故障信息,它表明了Qj与各组成单元F i ( i = 1, 2,…, m)的相关性。则有如下定义:
t0t1t2t3t4t5t6t7
F00 0 0 1 0 0 1 1
F10 0 0 1 0 0 0 1
F20 0 1 1 0 0 1 1
F30 0 0 1 1 1 1 1
F40 0 0 0 0 0 1 1
F50 1 0 1 0 1 1 1
F61 1 1 1 1 1 1 1
WFD1 2 2 6 2 3 67
F10 0 0 1 0 0 0 1
F20 0 1 1 0 0 1 1
F30 0 0 1 1 1 1 1
F40 0 0 0 0 0 1 1
F50 1 0 1 0 1 1 1
F61 1 1 1 1 1 1 1
F70 0 0 0 0 0 0 0
WFD1 2 2 6 2 3 67
(2)化简矩阵,t7=1,重新计算WFD值,有
设 简化后的多信号相关矩阵为 ,则第 个测试(信号检测)的故障隔离权值(提供故障隔离用信息的相对度量) 可用下式计算,即
式中, -列矩阵 中元素为“1”的个数;
-列矩阵 中元素为“0”的个数;
计算出各测试点的 之后,选用其中 值最大者对应的测试检测信号为优先故障隔离用测试检测信号。其对应的列矩阵为
用 把矩阵D一分为二,得到两个子矩阵
{
if(ARRAY[i][j]==1)
{
A[i]=1;
}
}
}
for(j=4;j<7;j++)
{
for(i=0;i<7;i++)
{
if(ARRAY[i][j]==1)
{
A[i]=1;
}
}
}
for(i=0;i<7;i++)
{
if(ARRAY[i][8]==1)
{
A[i]=1;
}
}
/*输出可Leabharlann Baidu出问题点*/
if (t[7]==0)
{
printf("系统无故障,检测结束\n");
}
else if(t[7]==1)
{
printf("故障存在于F0-F6单元中\n\n第二步:检测测试点t6: t6=%d\n",t[6]);
test_t6();
}
else
printf("输入错误\n");
}
//////////检测t6//////////////
电子系统故障诊断与测试性课程设计
1.
A Design-For-Test Structure for Optimising Analogue and Mixed Signal IC Test
一种优化模拟及混合信号集成电路测试的可测性设计结构
Abstract—Anew Design-for-Test (DfT) structure based on aconfigurable operational amplifier, referred to as a “swapamp” is presented that allows access to embeddedanalogue blocks. The structure has minimal impact oncircuit performance and has been evaluated on a customdesigned Phase Locked Loop (PLL) structure. A test chipcontaining faulty and fault free versions of this PLLstructure, with and without DfT modifications, has beenfabricated and an evaluation of this DfT scheme based onthe swap-amp structure carried out. It is shown that forembedded analogue blocks, the DfT strategy can not onlyimprove and simplify analogue & mixed signal IC test, butcan also be used for diagnostics.
式中, - 中等于“0”的元素所对应的行构成的子矩阵;
- 中等于“1”的元素所对应的行构成的子矩阵;
- 中等于“0”的元素的个数;
-下标,为选用测试点测试所检测信号的序号。
3.3依赖矩阵
t0t1t2t3t4t5t6t7
F00 0 0 1 0 0 1 1
F10 0 0 1 0 0 0 1
F20 0 1 1 0 0 1 1
F30 0 0 1 1 1 1 1
F40 0 0 0 0 0 1 1
F50 1 0 1 0 1 1 1
F61 1 1 1 1 1 1 1
F70 0 0 0 0 0 0 0
3.3.1测试流程
(1)计算WFD值,有依赖矩阵可知第一步判断t7的取值,有
t0t1t2t3t4t5t6t7
F00 0 0 1 0 0 1 1
F50 1 0 1 0 1 1
F61 1 1 1 1 1 1
WFD1 2 2 6 2 3 6
(4)化简矩阵,可得
t2t0t1t4t5
F21 0 0 0 0
F00 0 0 0 0
F61 1 1 1 1
F30 0 0 1 1
F50 0 1 0 1
WF12 2 2 2 0
(5)化简矩阵,可得
t2t0t1t4
{0,0,0,1,0,0,0,1,0},
{0,0,0,1,0,0,1,0,0},
{1,0,0,0,0,1,0,0,0},
{0,0,1,0,0,1,0,0,0},
{0,0,0,1,0,1,0,0,0}}; //判断矩阵
/*输出正常点*/
for(j=0;j<3;j++)
{
for(i=0;i<7;i++)
3.2确定最优诊断策略
故障检测 仅是判断 是否存在故障,因此应选择关联组成单元(故障类)多的信号优先进行检测,从而以最少的测试判定 是否存在故障。
设简化后的 “组成单元故障类-信号检测”相关矩阵为 ,则第 个测试(信号检测)的故障检测权值(提供故障检测用信息的相对度量) 可用下式计算,即
计算出各个测试的 之后,选用其中 值最大者为优先故障检测用测试。用其对应的列矩阵 把矩阵 一分为二,得到两个子矩阵
摘要-基于可配置的运算放大器,被称为“交换放大器”的新的可测性设计结构(DFT)允许访问嵌入式模拟块。该结构对电路性能的影响很小,并已在定制设计的锁相环(PLL)结构上进行评估。生产的测试芯片基于交换放大器结构进行了DFT评估,它包含有无故障的PLL结构,有无DFT的修改。结果表明:对于嵌入式模拟块,DFT的策略,不仅可以改善和简化模拟与混合信号IC测试,但也可以用于诊断。
for(i=0;i<7;i++)
{
if(A[i]==1)
NULL;
else if(ARRAY[i][a]==1)
{
B[i]=1;
}
}
for(i=0;i<7;i++)
{
if(A[i]==1)
NULL;
else if(ARRAY[i][b]==1)
{
B[i]=1;
}
}
/*print result*/
printf("\n正常的部分为:");
F61 1 1 1
F30 0 0 1
F50 0 1 0
WF12 2 2 2
综上,可得树状图如下:
可得源程序如下:
#include <stdio.h>
#include "PointMeasure.h"
int t[8];
int F0,F1,F2,F3,F4,F5,F6,F7;
void main()
{
int i=0;
(3)化简矩阵,重新计算WFD值,有
若t6=0,则有
t0t1t2t3t4t5t6
F10 0 0 1 0 0 0
WFD0 0 0 3 0 0 0
若t6=1,则有
t0t1t2t3t4t5t6
F00 0 0 1 0 0 1
F20 0 1 1 0 0 1
F30 0 0 1 1 1 1
F40 0 0 0 0 0 1
在建立了U UT的相关性模型之后,按照下述两条原则对相关性矩阵进行简化,识别出冗余测试点和故障隔离的模糊组。
1)比较相关性矩阵 的各列,如果有Tb = Td且 ,则Tb与Td是互为冗余的。选用其中容易测量的或测试费用较少的一个测试点,并在 中去掉未选测试点对应的列。
2)比较相关性矩阵 的各行,如果有Fk = Fl且 ,则对应的故障是不可区分的。可将Fk和Fl对应的故障作为一个故障隔离模糊组进行处理,并在 中将Fk和Fl对应的行合并为一行。
test_tl3();
}
else
{
printf("输入错误");
}
}
/////////////检测t3点///////////////
void test_t3()
{
if (t[3]==1)
{
printf("F1故障\n");
}
}
void test_tl3()
{
if (t[3]==0)
{
printf("F4故障\n");
printf("\n本系统中有八个测试单元F0-F7\n设定了八个测试点t0-t7,t0-t7只能取0或者1:\n");
printf("输入t0-t7检测结果:\n");
for(i=0;i<8;i++)
{
printf("t%d is:\n",7-i);
scanf("%d",&t[7-i]);
}
printf("\n第一步:检测t7: t7=%d\n",t[7]);
式中, - 中等于“0”的元素所对应的行构成的子矩阵;
- 中等于“1”的元素所对应的行构成的子矩阵;
- 中等于“0”的元素的个数;
-下标,为选用测试点测试所检测信号的序号。
故障隔离 是找出 的哪个组成单元存在故障的过程,是区分正常的和有故障组成单元的过程,根据第一次测试结果把 分割为正常的和含有故障的两部分,下一次只对有故障的部分进行测试,直到有故障部分为单个组成单元或模糊组为止。为在任何情况下都能以较少的测试完成故障隔离,测试选择方法应为故障隔离所需平均测试步骤越少越好。
}
else if(t[3]==1)
{
printf("故障存在于F0,F2,F3,F5,F6中\n\n需要继续检测t5,t5=%d\n",t[5]);
test_t5();
}
}
///////////检测t5////////////
void test_t5()
{
if (t[5]==0)
相关文档
最新文档