基于Saber的电路故障仿真分析方法转让专利

申请号 : CN201010260836.7

文献号 : CN102156760B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 赵广燕孙宇锋高婷许健

申请人 : 北京航空航天大学

摘要 :

一种基于Saber的电路故障仿真分析方法,其特征在于:该方法步骤如下:步骤一:进行Saber电路功能建模和仿真,步骤二:确定要仿真的器件故障模式;步骤三:故障建模;步骤四:故障注入;步骤五:故障电路仿真,生成故障仿真结果;步骤六:故障判据设置;步骤七:给出故障分析结果。该方法针对已有电路故障仿真只能进行数字电路仿真的问题,提出在数模混合仿真平台Saber故障仿真实用方法。另外,增加了很多前人未解决的故障仿真模型,可以仿真48种故障模式。故障自动注入的实现,大大提高了故障仿真效率。突破了Saber与故障仿真直接的接口,给出了一套行之有效的信号故障判定方法。

权利要求 :

1.一种基于基于Saber的电路故障仿真分析方法,其特征在于:步骤一:进行Saber电路功能建模和仿真;即按照设计需求在Saber平台上绘制电路原理图,电路原理图调试编译最终符合需求,作为正常电路;将此电路生成网表文件,进行直流、瞬态仿真,获得正常电路仿真结果;

步骤二:确定要仿真的器件故障模式;GJB299C归纳不同种类器件的各种故障模式,电阻有开路、短路、参数漂移故障模式,线型集成电路有输出超差、无输出故障模式;电路设计人员需要确定进行哪个器件的哪类故障模式的仿真,要仿真线型集成电路的输出超差故障模式;对电路的多个器件的多种故障模式进行仿真,就形成了故障模式集;

步骤三:故障建模;每个故障模式对应于一个故障仿真模型,建立故障仿真模型的过程即故障建模;为构建故障仿真模型,需要先研究器件每个故障模式下的表现形式;但是有些故障模式不够细化,不能直接进行故障建模,这类故障模式需要先进行量化;该基于Saber的电路故障仿真分析方法的一部分重点内容就是给出器件故障模式对应的故障建模方法,并且提出了故障建模方法在Saber平台下的具体实现过程;

表1故障建模方法

表2故障模式的Saber实现方式

步骤四:故障注入;故障注入实质上是一个将故障仿真模型引入正常电路的过程;用到了两种注入方式:手动注入和自动注入;

手动注入方式是手动修改原理图和元器件参数设置,优点是直观;但由于每次注入都需要人工操作,适合于少量故障注入的情况;

直接修改电路原理图,将器件故障反映到原理图上;一方面直接修改器件连接方式,器件开路故障模式直接断开器件的引脚,因为Saber仿真支持悬空;短路模式直接短接;另一方面将已经建好的故障仿真模型注入到指定位置,器件开路故障模式给器件串联一个大阻值的电路,实现断开效果;修改原理图故障注入方式的优点是比较直观,缺点是需要手工注入;该类注入方式主要适用于引脚类故障模式,开路、短路、断不开、引线故障、无输出与引脚连接有关的故障模式;

直接修改器件属性设置,对于电阻、电容及二极管简单的分立元器件,直接修改元器件属性,以达到修改器件参数的效果;这种修改属性故障注入方式只适用于参数漂移、增益性能退化的参数类故障模式;

自动注入方式是修改电路网表文件,适合于大量注入故障的情况;自动注入方式要修改电路网表文件,由于网表文件中每类器件网表语言格式差别很大,一次故障注入需要修改网表文件中几处内容,不同故障模式修改内容不同;故障自动注入实现,是突破的难点;

网表包含元件名、连接点和所有非默认的元件参数以及器件之间连接设计;由于Saber仿真器不能直接读取电路图,必须通过网表来进行模拟,该种注入方式优点是减少了故障注入后其它操作步骤,使用效率高,尤其是大量故障注入,其效果更为明显;

电路正常状态下某一电容的网表文件格式为:

c.cin p:inp m:in=c=33n

电容“短路”故障模式下,网表文件更改为:

c.cin p:inp m:inp=c=33n

电容“参数漂移”故障模式下,网表文件更改为:

c.cin p:inp m:in=c=40n

步骤五:电路故障仿真,生成故障仿真结果;第四步故障注入完成之后,电路就变成了含有故障仿真模型的电路,对此电路仿真即为电路故障仿真;只进行一个故障模式的仿真,采用手工仿真,直接操作Saber仿真软件的静态工作点分析和瞬态分析,就完成仿真;但是对电路中每个器件的不同故障模式都仿真一遍时,一个由几十个器件的中等规模电路就会有几百个故障模式,即要仿真几百次,依据采用手动仿真会非常麻烦;

为此,该基于Saber的电路故障仿真分析方法另一个创新点就是直接调用Saber仿真内核进行仿真,根据设置故障模式的数量调用相应次数的仿真,完成一次仿真之后执行下次仿真时,Saber仿真器会被再次调用;这一过程采用程序控制,完全脱离的人的手工操作;

如何利用程序从后台直接调用Saber仿真器成为基于Saber的电路故障仿真分析方法又一技术突破,即Saber与故障仿真之间的仿真接口;

手动仿真时,用户只需要将电路生成网表文件,然后点击瞬态仿真,进行瞬态仿真设置;至于仿真器的调用由Saber平台来完成;而自动仿真不需要有界面出现,网表文件生成、瞬态分析设置、仿真器调用都通过程序直接控制;网表文件,后缀为.sin,故障注入后电路的网表文件生成过程在步骤一至步骤四中已经介绍;瞬态分析设置不再使用Saber平台提供的界面进行设置,而是将正常电路仿真时的仿真设置文件转化为仿真控制命令,将所有命令写到.scs文件中,.scs文件格式如下:dc(density 2)

tr(tend 6m,tstep 10u,monitor 100,siglist vout,terror 1000u,density 2,method trap,order1,tniter 12)stress仿真器是通过程序控制命令来调用的,要求.scs文件和.sin文件在同一个路径下,具体调用格式是:Saber安装路径.sin文件路径-b

步骤六:故障判据设置;故障判据实质上是判定故障仿真输出波形是正常还是故障的判定标准;对于模拟信号的判别方法给出两种方法:波形判别法和参数判别法;

参数判别法要设置判定起始时间、判定终止时间和判定参数;判定参数有:信号最大值、信号最小值、信号有效值、信号实际值、信号均值、信号绝对均值、信号上升时间、信号下降时间、信号保持时间、信号波形因子、信号波峰因子;如果提取故障仿真输出的波形参数值与限定的值范围内,则认为波形正常,否则判定波形故障;

波形判别法判定两个波形的相似度,采用波形面积计算的方法;波形之间的相差概率叫做差异度,如果故障仿真输出和正常仿真输出的差别在差异度允许范围内,则认为是该波形是正常的,否则判定波形为故障;

对于数字信号的故障判定方法:主要采用允许跳变时间;如果数字信号的跳变时间段在允许范围内,则判定波形正常;

步骤七:给出故障分析结果;根据故障判据判定故障仿真输出的各个节点信号是正常还是故障的;故障分析模块主要是根据判据文件中的信息,从仿真文件中获得各种判定参数,从而进行故障分析;

其中的算法为各种参数的计算,主要有:

1)获得绝对均值

绝对均值是指定时间内信号的代数绝对值的平均值;主要算法为:将指定时间内所有单位时间内起始时刻的信号值取绝对值,然后获取平均值,即为信号的绝对均值;

公式:

2)获得面积

面积是指定时间内,信号值曲线与时间轴所围部分的面积,有正负之分;主要算法为:将指定时间按照仿真输出文件的划分,求出每个最小时间单位内以时间单位为宽,该时间单位起始时刻的信号值的大小为长的矩形面积,最后将指定时间单位内的所有矩形面积求和,得到的结果就是信号的面积;

公式:

3)获得平均值

平均值是指定时间内信号值的平均值;主要算法为:对指定时间内的所有最小单位起始时刻的信号值的大小求平均值,所得即为平均值;

4)获得信号下降时间

信号下降时间是指定时间内,信号值从第一次开始下降到最近一次停止下降之间的时间;主要算法为:(1)从指定时间的起始时刻开始,顺序判断每个单位时间结束时刻的信号值是否小于起始时刻;

(2)若单位时间内结束时刻的信号值小于起始时刻信号值,记录该单位时间的起始时刻为信号开始下降时刻,跳至步骤(3);否则,若该单位时间结束时刻不是指定时间结束时刻,则跳至下一单位时间,继续执行步骤(2),否则信号下降时间为零,该算法结束;

(3)从该时刻开始,顺序判断每个单位时间结束时刻的信号值是否大于或等于单位时间起始时刻的信号值;

(4)若某单位时间内结束时刻的信号值大于或等于该单位时间起始时刻的信号值或该单位时间结束时刻是指定时间结束时刻,则记录该单位时间的结束时刻为信号下降停止时刻,跳至步骤(5);否则,跳至下一单位时间,继续执行步骤(4);

(5)由信号开始下降时刻和信号下降停止时刻相减,获取信号下降时间;算法结束;

获得信号下降时间公式:

t下降=t(0.1xmax)-t(0.9xmax)

注:该时间为下降段;Xmax为指定时间内信号的最大值;

t(0.1xmax)信号开始下降时刻;t(0.9xmax)信号下降停止时刻;

5)获得差异度

差异度是指在指定时间内,待判信号的面积与正常信号面积之差的绝对值与正常信号面积的比值;主要算法为:分别计算出指定时间内待判信号和正常信号的面积,取二者之差的绝对值,该值与正常信号面积的比值即为差异度;

公式:

6)获得最大值

最大值是指定时间内信号的代数值的最大值;求该值时,先设定第一个时刻的值为最大值,然后判断指定时间内每个时刻与当前最大值的大小关系;如果当前最大值更大,则继续判断下一时刻,否则将该时刻信号值设为最大值;指定时间所有时刻判定结束后,所得即为最大值;

7)获得最小值

最小值是指定时间内信号的代数值的最小值;求该值时,先设定第一个时刻的值为最小值,然后判断指定时间内每个时刻与当前最小值的大小关系;如果当前最小值更小,则继续判断下一时刻,否则将该时刻信号值设为最小值;指定时间所有时刻判定结束后,所得即为最小值;

8)获得信号上升时间

信号上升时间是指定时间内,信号值第一次开始上升到最近的停止上升之间的时间;

主要算法为:

(1)从指定时间的起始时刻开始,顺序判断每个单位时间结束时刻的信号值是否大于起始时刻;

(2)若单位时间内结束时刻的信号值大于起始时刻信号值,记录该单位时间的起始时刻为信号开始上升时刻,跳至步骤(3);否则,若该单位时间结束时刻不是指定时间结束时刻,则跳至下一单位时间,继续执行步骤(2),否则信号上升时间为零,该算法结束;

(3)从该时刻开始,顺序判断每个单位时间结束时刻的信号值是否小于或等于单位时间起始时刻的信号值;

(4)若某单位时间内结束时刻的信号值小于或等于该单位时间起始时刻的信号值或该单位时间结束时刻是指定时间结束时刻,则记录该单位时间的结束时刻为信号上升停止时刻,跳至步骤(5);否则,跳至下一单位时间,继续执行步骤(4);

(5)由信号开始上升时刻和信号上升停止时刻相减,获取信号上升时间;算法结束;

获得信号上升时间公式:

t上升=t(0.9xmax)-t(0.1xmax)

注:该时间为上升段;Xmax为指定时间内信号的最大值;

9)获得波形因素

波形因素是指定时间内信号的有效值与绝对均值之间的比值;

公式:

10)获得有效值

有效值是指定时间内信号值平方和的平均值的平方根;主要算法为:从指定时间的起始时刻开始,将每个单位时间内起始时刻信号值的平方与单位时间的积相加,得到的结果除以指定时间长度后取平方根,所得结果即为有效值;

公式:

11)获得波峰因子

波峰因子是指定时间内信号的最大值与有效值之间的比值;

公式:

12)获得信号保持时间

信号保持时间是指定时间内从信号值第一次上升停止后到最近的一次信号值下降开始之间的时间;主要算法为:(1)从指定时间的起始时刻开始,顺序判断每个单位时间结束时刻的信号值是否大于起始时刻;

(2)若单位时间内结束时刻的信号值大于起始时刻信号值,则跳至步骤(3);否则,若该单位时间结束时刻不是指定时间结束时刻,则跳至下一单位时间,继续执行步骤(2),否则信号保持时间为零,该算法结束;

(3)从该时刻开始,顺序判断每个单位时间结束时刻的信号值是否不大于起始时刻;

(4)若单位时间内结束时刻的信号值不大于起始时刻信号值,记录该单位时间的起始时刻为信号上升停止时刻,跳至步骤(5);否则,若该单位时间结束时刻不是指定时间结束时刻,则跳至下一单位时间,继续执行步骤(4),否则信号保持时间为零,该算法结束;

(5)从该时刻开始,顺序判断每个单位时间结束时刻的信号值是否小于单位时间起始时刻的信号值;

(6)若某单位时间内结束时刻的信号值小于该单位时间起始时刻的信号值或该单位时间结束时刻是指定时间结束时刻,则记录该单位时间的结束时刻为信号下降开始时刻,跳至步骤(7);否则,跳至下一单位时间,继续执行步骤(6);

(7)由信号上升停止时刻和信号下降开始时刻相减,获取信号下降时间;算法结束;

公式:

t保持=t1(0.9xmax)-t2(0.9xmax)

其中:t1和t2分别为连续的上升段和下降段。

说明书 :

基于Saber的电路故障仿真分析方法

(一)技术领域:

[0001] 本发明提供一种基于Saber的电路故障仿真分析方法(Saber为美国Synopsys公司的混合系统仿真软件),属于电路故障仿真分析领域。(二)背景技术:
[0002] 故障仿真技术是一种为分析系统性能和功能测试而发展起来的将故障建模、故障注入及系统性能仿真相结合的分析技术。它以数字模拟为手段,通过分析系统内部各组成单元的失效机理及其表现形式,在系统原有功能模型基础上构建系统故障仿真模型,实现对存在故障单元的系统进行分析的过程。
[0003] 电路故障仿真是将故障注入和电路仿真相结合,根据器件的故障机理,将故障注入到电路中,获得电路在故障模式下仿真输出的技术,是一种实现电路可靠性设计的有效辅助方法。故障注入是指按照某些策略,人为地将故障引入目标系统的过程。在航空航天等领域,对电路可靠性要求极高,器件故障可能会带来机毁人亡的后果,通过运用电路故障仿真,能够找出故障影响严重的器件,只要电路设计过程中对这类器件予以重点关注,可避免严重后果产生。另外,在故障诊断领域,故障仿真的输出结果是故障字典的重要依据。 [0004] 在电路故障仿真技术发展之前,要想提前获得电路故障后的影响,常采用的两种方式是硬件故障注入和软件故障注入。对于电路而言,硬件故障注入往往会造成电路器件损伤、失效,造成很大的经济损失;而软件故障注入又存在对某些非程序控制器件不可达的缺点。而基于仿真的故障注入技术就可以很好的避免此问题,能够在设计阶段帮助电路设计人员及早发现问题,有助于早改进。另外,基于仿真的故障注入成本低,可以无限次的故障注入和仿真,无需花费任何硬件成本。而且采用故障仿真的方式,相对于硬件注入而言,仿真时间极短。
[0005] 对于电路的故障仿真,就是采用基于仿真的故障注入,前人提出的方法主要有基于硬件描述语言VHDL平台进行故障建模和仿真。该类故障仿真的优点是可以对数字电路进行故障仿真,缺点是对模拟电路和数模混合电路的故障无法仿真,因为VHDL平台本身只能仿真数字电路,不能仿真模拟电路。针对上述问题,本发明借助第三方数模混合仿真软件Saber进行故障仿真,不仅可以进行数字、模拟、数模混合电路故障仿真,同时也确保了仿真精度和速度。(三)发明内容:
[0006] 1、目的:本发明的目的是提供一种基于Saber平台的故障仿真分析方法,提出了器件故障模式对应的故障仿真模型、故障注入方法,突破Saber平台与故障仿真之间的接口。
[0007] 2、技术方案:本发明是通过以下技术方案实现的:
[0008] 本发明一种基于Saber的电路故障仿真分析方法,其步骤如下:
[0009] 步骤一:进行Saber电路功能建模和仿真。即按照设计需求在Saber平台上绘制电路原理图,电路原理图调试编译最终符合需求,作为正常电路。将此电路生成网表文件,进行直流、瞬态仿真,获得正常电路仿真结果。
[0010] 步骤二:确定要仿真的器件故障模式。电路设计人员需要确定进行哪个器件的哪类故障模式的仿真。
[0011] 步骤三:故障建模。每个故障模式对应于一个故障仿真模型,建立故障仿真模型的过程即故障建模,故障建模是本发明的一项重点和难点。故障建模的基础是细化故障模式,并且要分析研究器件每个故障模式下的表现形式,最终建立基于表现形式的故障仿真模型。建立故障仿真模型是故障仿真的前提。故障建模方法见后列表1所示;此处介绍几种常用的故障模式对应故障仿真模型的建模方法,以说明故障建模过程: [0012] 1“开路”:故障引脚串接大电阻(1010欧姆)或者直接断开;
[0013] 2“短路”:故障引脚之间并联小电阻或者直接短接;
[0014] 3“接触不良”:选择故障器件任意端接Flash开关,之后接后端,通过控制Flash开关周期为整个仿真时间的一定比例(如10%)达到闪断效果;
[0015] 4“参数漂移”:修改器件某个重要的电参数值,由于该故障模式多中类型器件都会发生,对于不同器件类型,需要修改的值不同。如电阻需要修改阻值,电容修改容值,电感需要修改电感值。修改之后的值都是在原有基础上正负漂移一定比例;
[0016] 5“无输出”:故障器件输出端接地;
[0017] 6“参数超差”:故障器件输出端接增益控制器,改变增益的系数; [0018] 7“保险丝断不开”:保险丝两端直接短接;
[0019] 8“保险丝断开慢”:保险丝熔断电流在原来基础上增大5%;
[0020] 步骤四:故障注入。故障注入实质上是一个将故障仿真模型引入正常电路的过程。本发明用到了两种注入方式:手动注入和自动注入。手动注入方式是修改原理图和元器件参数设置。自动注入方式是修改电路网表文件,由于网表文件中每类器件网表语言格式差别很大,一次故障注入需要修改网表文件中几处内容,不同故障模式修改内容不同。实现故障自动注入,也是本发明突破的难点。
[0021] 步骤五:故障电路仿真,生成故障仿真结果。第四步故障注入完成之后,电路就变成了含有故障仿真模型的电路,对此电路仿真即为故障电路仿真,输出仿真结果。 [0022] 对于电路仿真,本发明的创新点就是从后台直接调用Saber仿真内核(Saber仿真器)进行仿真,实现自动仿真,根据设置故障模式的数量调用相应次数的仿真,完成一次仿真之后执行下次仿真时,Saber仿真器会被再次调用。这一过程采用程序控制,完全脱离的人的手工操作。
[0023] 步骤六:故障判据设置。故障判据实质上是判定故障仿真输出波形是正常还是故障的判定标准。对于模拟信号的判别方法给出两种方法:波形判别法和参数判别法。 [0024] 参数判别法要设置判定起始时间(ms)、判定终止时间(ms)和判定参数。判定参数有:信号最大值、信号最小值、信号有效值、信号实际值、信号均值、信号绝对均值、信号上升时间、信号下降时间、信号保持时间(高低电平)、信号波形因子、信号波峰因子。如果提取故障仿真输出的波形参数值(如信号最大值)与限定的值范围内,则认为波形正常,否则判定波形故障。
[0025] 波形判别法可以判定两个波形的相似度,采用波形面积计算的方法。波形之间的相差概率叫做差异度,如果故障仿真输出和正常仿真输出的差别在差异度允许范围内,则认为是该波形是正常的,否则判定波形为故障。
[0026] 对于数字信号的故障判定方法:主要采用允许跳变时间。如果数字信号的跳变时间段在允许范围内,则判定波形正常。
[0027] 步骤七:给出故障分析结果。根据故障判据判定故障仿真输出的各个节点信号是正常还是故障的。故障分析模块主要是根据判据文件中的信息,从仿真文件中获得各种判定参数,从而进行故障分析。
[0028] 3、优点及功效:
[0029] 本发明针对已有电路故障仿真只能进行数字电路仿真的问题,提出在数模混合仿真平台Saber故障仿真实用方法。另外,增加了很多前人未解决的故障仿真模型,可以仿真48种故障模式。故障自动注入的实现,大大提高了故障仿真效率。突破了Saber与故障仿真直接的接口,给出了一套行之有效的信号故障判定方法。
(四)附图说明:
[0030] 图1本发明故障仿真分析方法流程图
[0031] 图2本发明实施案例1所选用的放大电路原理图
[0032] 图3本发明实施案例1所选用的放大电路的正常仿真输出波形
[0033] 图4本发明实施案例1所选用的放大电路中q_3p“基极、集电极短路”故障仿真波形
[0034] 图5本发明实施案例1所选用的放大电路中q_3p“基极开路”故障仿真波形 [0035] 图6本发明实施案例1所选用的放大电路中q_3p“增益等性能的退化”故障仿真波形
[0036] 图7本发明实施案例1所选用的放大电路中x1“pp引脚开路”故障仿真波形 [0037] 图8本发明实施案例1所选用的放大电路中x1“pp、pm引脚短路”故障仿真波形 [0038] 图9本发明实施案例1所选用的放大电路中x1“参数漂移”故障仿真波形 (五)具体实施方式:
[0039] 本发明故障仿真分析方法流程图如图1所示。本发明提出的一种基于Saber的电路故障仿真分析方法,其步骤如下:
[0040] 步骤一:进行Saber电路功能建模和仿真。即按照设计需求在Saber平台上绘制电路原理图,电路原理图调试编译最终符合需求,作为正常电路。将此电路生成网表文件,进行 直流、瞬态仿真,获得正常电路仿真结果。
[0041] 步骤二:确定要仿真的器件故障模式。GJB299C归纳不同种类器件的各种故障模式,比如电阻有开路、短路、参数漂移故障模式,线型集成电路有输出超差、无输出故障模式。电路设计人员需要确定进行哪个器件的哪类故障模式的仿真,比如要仿真线型集成电路的输出超差故障模式。如果想对电路的多个器件的多种故障模式进行仿真就形成了故障模式集。
[0042] 步骤三:故障建模。每个故障模式对应于一个故障仿真模型,建立故障仿真模型的过程即故障建模。为构建故障仿真模型,需要先研究器件每个故障模式下的表现形式。但是有些故障模式不够细化,不能直接进行故障建模,这类故障模式需要先进行量化。本发明的一部分重点内容就是给出器件故障模式对应的故障建模方法,如下表1所示。并且提出了故障建模方法在Saber平台下的具体实现过程,如下表2列举部分所示。 [0043] 表1故障建模方法
[0044]
[0045]
[0046] 表2故障模式的Saber实现方式(部分)
[0047]
[0048]
[0049] 步骤四:故障注入。故障注入实质上是一个将故障仿真模型引入正常电路的过程。本发明用到了两种注入方式:手动注入和自动注入。
[0050] 手动注入方式是手动修改原理图和元器件参数设置,优点是直观。但由于每次注入都需要人工操作,适合于少量故障注入的情况。
[0051] 直接修改电路原理图,将器件故障反映到原理图上。一方面可以直接修改器件连接方式,比如器件开路故障模式可以直接断开器件的引脚,因为Saber仿真支持悬空。短路模式可以直接短接。另一方面也可以将已经建好的故障仿真模型注入到指定位置,比如器件开路故障模式可以给器件串联一个大阻值的电路,实现断开效果。修改原理图故障注入方式的优点是比较直观,缺点是需要手工注入。该类注入方式主要适用于引脚类故障模式,比如开路、短路、断不开、引线故障、无输出等与引脚连接有关的故障模式。 [0052] 直接修改器件属性设置,对于简单分立元器件,如电阻、电容、二极管等可直接修改元器件属性,以达到修改器件参数的效果。这种修改属性故障注入方式一般只适用于参数类故障模式,例如参数漂移、增益等性能的退化等。
[0053] 自动注入方式是修改电路网表文件,适合于大量注入故障的情况。自动注入方式要修改电路网表文件,由于网表文件中每类器件网表语言格式差别很大,一次故障注入需要修改网表文件中几处内容,不同故障模式修改内容不同。故障自动注入实现,是本发明突破的 难点。
[0054] 网表包含元件名、连接点和所有非默认的元件参数以及器件之间连接设计。由于Saber仿真器不能直接读取电路图,必须通过网表来进行模拟,该种注入方式优点是减少了故障注入后其它操作步骤,使用效率高,尤其是大量故障注入,其效果更为明显。 [0055] 电路正常状态下某一电容的网表文件格式为:
[0056] c.cin p:inp m:in=c=33n
[0057] 电容“短路”故障模式下,网表文件更改为:
[0058] c.cin p:inp m:inp=c=33n
[0059] 电容“参数漂移”故障模式下,网表文件更改为:
[0060] c.cin p:inp m:in=c=40n
[0061] 步骤五:电路故障仿真,生成故障仿真结果。第四步故障注入完成之后,电路就变成了含有故障仿真模型的电路,对此电路仿真即为电路故障仿真。如果只进行一个故障模式的仿真,可以采用手工仿真,直接操作Saber仿真软件的静态工作点分析和瞬态分析,就可以完成仿真。但是对电路中每个器件的不同故障模式都仿真一遍时,一个由几十个器件的中等规模电路就会有几百个故障模式,即要仿真几百次,这时如果依据采用手动仿真会非常麻烦。
[0062] 为此,本发明的另一个创新点就是直接调用Saber仿真内核(Saber仿真器)进行仿真,根据设置故障模式的数量调用相应次数的仿真,完成一次仿真之后执行下次仿真时,Saber仿真器会被再次调用。这一过程采用程序控制,完全脱离的人的手工操作。 [0063] 如何利用程序从后台直接调用Saber仿真器成为本发明的又一技术突破,即Saber与故障仿真之间的仿真接口。
[0064] 手动仿真时,用户只需要将电路生成网表文件,然后点击瞬态仿真,进行瞬态仿真设置;至于仿真器的调用由Saber平台来完成。而自动仿真不需要有界面出现,网表文件生成、瞬态分析设置、仿真器调用都通过程序直接控制。网表文件,后缀为.sin,故障注入后电路的网表文件生成过程在前一部分已经介绍;瞬态分析设置不在使用Saber平台提供的界面进行设置,而是将正常电路仿真时的仿真设置文件转化为仿真控制命令,将所有命令写到.scs文件中,.scs文件格式如下:
[0065] dc(density 2)
[0066] tr(tend 6m,tstep 10u,monitor 100,siglist vout,terror 1000u,density 2,method trap,order 1,tniter 12)
[0067] stress
[0068] 仿真器是通过程序控制命令来调用的,要求.scs文件和.sin文件在同一个路径下,具体调用格式是:
[0069] Saber安装路径.sin文件路径-b
[0070] 步骤六:故障判据设置。故障判据实质上是判定故障仿真输出波形是正常还是故障的判定标准。对于模拟信号的判别方法给出两种方法:波形判别法和参数判别法。 [0071] 参数判别法要设置判定起始时间(ms)、判定终止时间(ms)和判定参数。判定参数有: 信号最大值、信号最小值、信号有效值、信号实际值、信号均值、信号绝对均值、信号上升时间、信号下降时间、信号保持时间(高低电平)、信号波形因子、信号波峰因子。如果提取故障仿真输出的波形参数值(如信号最大值)与限定的值范围内,则认为波形正常,否则判定波形故障。
[0072] 波形判别法可以判定两个波形的相似度,采用波形面积计算的方法。波形之间的相差概率叫做差异度,如果故障仿真输出和正常仿真输出的差别在差异度允许范围内,则认为是该波形是正常的,否则判定波形为故障。
[0073] 对于数字信号的故障判定方法:主要采用允许跳变时间。如果数字信号的跳变时间段在允许范围内,则判定波形正常。
[0074] 步骤七:给出故障分析结果。根据故障判据判定故障仿真输出的各个节点信号是正常还是故障的。故障分析模块主要是根据判据文件中的信息,从仿真文件中获得各种判定参数,从而进行故障分析。
[0075] 其中的算法为各种参数的计算,主要有:
[0076] 1)获得绝对均值
[0077] 绝对均值是指定时间内信号的代数绝对值的平均值。主要算法为:将指定时间内所有单位时间内起始时刻的信号值取绝对值,然后获取平均值,即为信号的绝对均值。 [0078] 公式:
[0079]
[0080] 2)获得面积
[0081] 面积是指定时间内,信号值曲线与时间轴所围部分的面积,有正负之分。主要算法为:将指定时间按照仿真输出文件的划分,求出每个最小时间单位内以时间单位为宽,该时间单位起始时刻的信号值(包括正负号)的大小为长的矩形面积,最后将指定时间单位内的所有矩形面积求和,得到的结果就是信号的面积。
[0082] 公式:
[0083]
[0084] 3)获得平均值
[0085] 平均值是指定时间内信号值的平均值。主要算法为:对指定时间内的所有最小单位起始时刻的信号值的大小(包括正负号)求平均值,所得即为平均值。
[0086]
[0087] 4)获得信号下降时间
[0088] 信号下降时间是指定时间内,信号值从第一次开始下降到最近一次停止下降之间的时间。主要算法为:
[0089] (1)从指定时间的起始时刻开始,顺序判断每个单位时间结束时刻的信号值是否小于起始时刻。
[0090] (2)若单位时间内结束时刻的信号值小于起始时刻信号值,记录该单位时间的起始时刻为信号开始下降时刻,跳至步骤(3);否则,若该单位时间结束时刻不是指定时间结束时刻,则跳至下一单位时间,继续执行步骤(2),否则信号下降时间为零,该算法结束。 [0091] (3)从该时刻开始,顺序判断每个单位时间结束时刻的信号值是否大于或等于单位时间起始时刻的信号值。
[0092] (4)若某单位时间内结束时刻的信号值大于或等于该单位时间起始时刻的信号值或该单位时间结束时刻是指定时间结束时刻,则记录该单位时间的结束时刻为信号下降停止时刻,跳至步骤(5);否则,跳至下一单位时间,继续执行步骤(4)。
[0093] (5)由信号开始下降时刻和信号下降停止时刻相减,获取信号下降时间。算法结束。
[0094] 公式:
[0095] t上升=t(0.1xmax)-t(0.9xmax)
[0096] 注:该时间为下降段。
[0097] 5)获得差异度
[0098] 差异度是指在指定时间内,待判信号的面积与正常信号面积之差的绝对值与正常信号面积的比值。主要算法为:分别计算出指定时间内待判信号和正常信号的面积,取二者之差的绝对值,该值与正常信号面积的比值即为差异度。
[0099] 公式:
[0100]
[0101] 6)获得最大值
[0102] 最大值是指定时间内信号的代数值的最大值。求该值时,先设定第一个时刻的值为最大值,然后判断指定时间内每个时刻与当前最大值的大小关系。如果当前最大值更大,则继续判断下一时刻,否则将该时刻信号值设为最大值。指定时间所有时刻判定结束后,所得即为最大值。
[0103]
[0104] 7)获得最小值
[0105] 最小值是指定时间内信号的代数值的最小值。求该值时,先设定第一个时刻的 值为最小值,然后判断指定时间内每个时刻与当前最小值的大小关系。如果当前最小值更小,则继续判断下一时刻,否则将该时刻信号值设为最小值。指定时间所有时刻判定结束后,所得即为最小值。
[0106]
[0107] 8)获得信号上升时间
[0108] 信号上升时间是指定时间内,信号值第一次开始上升到最近的停止上升之间的时间。主要算法为:
[0109] (1)从指定时间的起始时刻开始,顺序判断每个单位时间结束时刻的信号值是否大于起始时刻。
[0110] (2)若单位时间内结束时刻的信号值大于起始时刻信号值,记录该单位时间的起始时刻为信号开始上升时刻,跳至步骤(3);否则,若该单位时间结束时刻不是指定时间结束时刻,则跳至下一单位时间,继续执行步骤(2),否则信号上升时间为零,该算法结束。 [0111] (3)从该时刻开始,顺序判断每个单位时间结束时刻的信号值是否小于或等于单位时间起始时刻的信号值。
[0112] (4)若某单位时间内结束时刻的信号值小于或等于该单位时间起始时刻的信号值或该单位时间结束时刻是指定时间结束时刻,则记录该单位时间的结束时刻为信号上升停止时刻,跳至步骤(5);否则,跳至下一单位时间,继续执行步骤(4)。
[0113] (5)由信号开始上升时刻和信号上升停止时刻相减,获取信号上升时间。算法结束。
[0114] 公式:
[0115] t上升=t(0.9xmax)-t(0.1xmax)
[0116] 注:该时间为上升段
[0117] 9)获得波形因素
[0118] 波形因素是指定时间内信号的有效值与绝对均值之间的比值。
[0119] 公式:
[0120]
[0121] 10)获得有效值
[0122] 有效值是指定时间内信号值平方和的平均值的平方根。主要算法为:从指定时间的起始时刻开始,将每个单位时间内起始时刻信号值的平方与单位时间的积相 加,得到的结果除以指定时间长度后取平方根,所得结果即为有效值。
[0123] 公式:
[0124]
[0125] 11)获得波峰因子
[0126] 波峰因子是指定时间内信号的最大值与有效值之间的比值。
[0127] 公式:
[0128]
[0129] 12)获得信号保持时间
[0130] 信号保持时间是指定时间内从信号值第一次上升停止后到最近的一次信号值下降开始之间的时间。主要算法为:
[0131] (1)从指定时间的起始时刻开始,顺序判断每个单位时间结束时刻的信号值是否大于起始时刻。
[0132] (2)若单位时间内结束时刻的信号值大于起始时刻信号值,则跳至步骤(3);否则,若该单位时间结束时刻不是指定时间结束时刻,则跳至下一单位时间,继续执行步骤(2),否则信号保持时间为零,该算法结束。
[0133] (3)从该时刻开始,顺序判断每个单位时间结束时刻的信号值是否不大于起始时刻。
[0134] (4)若单位时间内结束时刻的信号值不大于起始时刻信号值,记录该单位时间的起始时刻为信号上升停止时刻,跳至步骤(5);否则,若该单位时间结束时刻不是指定时间结束时刻,则跳至下一单位时间,继续执行步骤(4),否则信号保持时间为零,该算法结束。 [0135] (5)从该时刻开始,顺序判断每个单位时间结束时刻的信号值是否小于单位时间起始时刻的信号值。
[0136] (6)若某单位时间内结束时刻的信号值小于该单位时间起始时刻的信号值或该单位时间结束时刻是指定时间结束时刻,则记录该单位时间的结束时刻为信号下降开始时刻,跳至步骤(7);否则,跳至下一单位时间,继续执行步骤(6)。
[0137] (7)由信号上升停止时刻和信号下降开始时刻相减,获取信号下降时间。算法结束。
[0138] 公式:
[0139] t保持=t1(0.9xmax)-t2(0.9xmax)
[0140] 其中:t1和t2分别为连续的上升段和下降段。
[0141] 实施案例1
[0142] 用一放大电路来说明故障仿真分析方法,该放大电路原理图如图2所示,该电路的正常仿真输出vload的波形如图3所示,幅值为正负12v左右的正弦波。
[0143] 案例实施流程步骤为上述七个步骤。针对本案例,步骤二所选用的故障模式,对于双极型晶体管选择了基极集电极短路、基极开路、增益等性能退化三个故障模式;对于变压器选择了pp引脚开路、pp、pm引脚短路、参数漂移三个故障模式。通过步骤五之后,得到了各个故障模式仿真结果如表3所示。步骤六故障判据设置选用两种方法波形判别法和参数判别法。其中波形判别法,将波形相似度设定为90%;参数判别法,设定判定起始时间0ms、判定终止时间50ms,另选择三个参数:信号最大值设定为12v、信号最小值设定为-12.5v、信号均值设定为0。通过步骤七,给出故障分析结果。所设定的两种判据方法给出的结果相同,如表3分析结果列所示。
[0144] 表3放大电路故障仿真分析
[0145]