2019-Electronic-Design-Competition-D-Question-Based-On-FPGA-and-Verilog

故障分析

  1. R1开路 R1开路之后,放大电路没有了一个合适的静态工作点,三极管工作在截止区,此时放大电路的输入电阻Ri(以后没有特殊说明时,Ri和Ro指的是输入信号频率为1k时的Ri和Ro。)应该约等于R2的值为15k,由于没有输出的交流信号,Ro的测量值应该为0,测得的UCQ值应该是1 k + 2 k 1 k + 3 k + 2 k ∗ 12 V = 8 V \frac{1k+2k}{1k+3k+2k}*12V=8V 根据Judge_Change中的case(R1_OPEN):分支代码即可看出,程序中就是依靠的这三个参数进行判断的,判断R1是否开路。由于测量存在误差,元器件的参数存在离散性,所以Ri>13k && Ro<100 && 7000mV<UCQ<9000mV,这些判断门槛范围都是我根据自己电路进行实际的测量得到的,获得的方法就是在测量模式下将R1开路然后测量一遍数据,看一下测得数据是多少,根据测得的数据进行门槛设置。后面的其他故障同样可以这么做,根据测试仪的实际数据然后结合理论分析设置判断的条件。
  2. R2开路 R2开路同样影响的是静态工作点,但是这里的UCQ受三极管的特性影响较大,不同的9013很可能不大相同,我这里的判断依据是 3000mV<UCQ<4000mV,这个范围是我在测量模式下将R2开路之后测量得到的值,这个值比较特殊,其他的故障不会造成 UCQ等于这个值,这个范围的设定还是需要各位进行实际测量得出。
  3. R3开路 R3开路导致三极管集电极没有电压,导致三极管无法正常工作,BE相当于一个二极管,因此输入电阻很小,同时没有信号输出Ro也测量不到,UCQ基本为0,Av(没有说明的话Av表示1k时的增益)基本为0。考虑到测量误差等影响,程序中的判断依据如下,各位可以根据自己电路实际测量值进行设置。
  4. R4开路 R4开路同样会影响电路的静态工作点,E极没有了直流通路,三极管截止。体现在参数中就是Ri=R1//R2=11k、UCQ=8V、Ro测量值为0。考虑到测量的误差,程序中的判断条件如下。
  5. R1短路 R1短路影响的还是电路的静态工作点,三极管完全饱和,UCQ=12V-UBE-UCE=12-0.7-0.3=11V,这时的Ri基本为0,Ro测量值为0,这些参数的判断范围和门槛最好根据自己实际的测量值进行设置,特别是UCQ的值,不同的三极管的UBE和饱和UCE还是有点差别的,同时电源的12V的误差也会影响最终的UCQ值,软件中的判断部分代码如下。
  6. R2短路 R2短路导致三极管截止,体现在参数上就是Ri基本为0、UCQ=8V、Ro测量值为0,考虑到误差的情况下设置的判断条件如下。
  7. R3短路 R3短路导致没有输出电阻,三极管的UCQ为12V,同时Ro的测量值为0,代码中判断R3短路的条件如下。主要根据UCQ的与众不同来判断。
  8. R4短路 R4短路的话影响电路的静态工作点,三极管基本饱和,UCQ=UCE=0.3,此时虽然三极管饱和但是Ui还是会对三极管的基极电流产生影响,这里体现在会产生Uo的输出,虽然这个Uo大概率是失真的,但是测试仪还是会测量到信号Uo,参数体现就是Av的值不为0,由于Ui很小,最后的Av可能有一定的数值,但是不会很大。我经过实际的测量,得到我的电路中此时的Av大概在4.0(带一位小数,程序中为40)左右,这个值需要各位实际进行测量然后进行设置。相关判断条件如下。
  9. C1开路 C1开路不会影响电路的静态工作点,由于输入开路此时测量的到的Ri应该是无穷大,由于没有输出信号Ro测量值为0,Av也为0。由于电路的静态工作点正常,此时的UCQ会由于电路中三极管的差别产生细微的差别,我这里测量得到UCQ为4.8V左右(实际的静态工作点为7.2V,由于外接了R38和R39,导致电压下降。),这个值需要实际测量得出。程序中的相关判断条件代码如下。
  10. C2开路 C2开路同样不影响电路的静态工作点,Ri≈R1//R2//(1+β)R4,由于β的差异不同的电路会有区别,但是Ri<R1//R2=10.9k,这个值还是需要各位具体测量之后在进行设置。会对Av产生影响,Av会减小,Av≈R3/R4=2,这里的Av也最好进行实际测量之后在设置。软件中判断相关代码如下。
  11. C3开路 C3开路不影响放大电路的任何特性,C3的作用就是和放大电路的输出电阻R3构成了一个低通滤波器,C3存在时截止频率大概是169k,去掉C3之后该电路的截止频率由放大电路的带宽决定,fβ=fT/β,通过查看9013的数据手册可以知道三极管的特征频率fT是100MHz,因此fβ>300kHz。这里为了判断C3是否开路,选择去测量信号频率为200kHz时的Av200k。 通过图1可以知道,测量Av200k之前需要先判断Av5k有没有测量,这里的Av5k认为是放大电路的通频带增益,为了节省时间没有去对整个频率范围进行扫描,直接认为Av5k就是通频带的最大增益,这样做会有误差,但是会减少测量时间,程序中判断C3开路的流程基本如下。
  12. C3增大为原来两倍 C3增大为原来的两倍,对整体的影响体现在后面的低通滤波器的带宽变窄了,我这里的判断方法是和C3开路一起判断,同样是测量Av200k来进行判断。按照理想的阻抗计算的话,C3为470pF时Av200k应该等于Av5k(认为是通频带的最大增益)的0.65左右,C3为940pF时Av200k应该等于Av5k的0.39左右,算上元器件的误差(电阻电容的误差需要尽可能的接近理论值,否则需要校准。),最后经过实际的测试我这里取了0.55作为门槛判断值。具体的程序在FPTX_Cal_200K_Handle函数中,上面已经给出了函数的具体代码。
  13. C2增大为原来的两倍 C2增大为原来的两倍后,主要影响的就是放大电路的低频特性,我这里采用的判断依据是测量信号频率为200Hz是的Av200,此时放大电路的低频特性主要受C2影响,如果C2增大为原来的两倍的话那么Av200也将会适当的变大。放大电路的增益Av≈\frac{βR3}{rbe+(1+β)Re}Av≈rbe+(1+β)ReβR3 ,C2变大会为原来的两倍时主要影响的就是rbe+(1+β)Re的大小,将信号频率变为200会放大其对rbe+(1+β)Re的影响。由于这里的rbe会比测量得到的Ri大一些,我实际测量的到Ri在2k左右,所以rbe我设为3k。信号为1k时C2变大为2倍,Re从3.4欧变为1.7欧,设β为150,则rbe+(1+β)Re从3513欧变为3255欧,变化了7%,这个变化程度很小,可能一点测量误差就会导致判断出错。信号频率为200欧时,C2变为原来的两倍后,Re从16.95欧变为8.47欧,则rbe+(1+β)Re从5559欧变为4279欧,变化了23%,这个变化就比较大了,一点测量误差基本不会影响最后的判断。 上面的理论分析,只是为我们确定了一个判断的方向,需要去求Av200,求Av200的方法我采用了均方根算法,由于这个频率不大,采用均方根算法比较准确。判断流程图如下所示。 C2变为原来两倍的判断程序部分在Av_Cal_200Hz_Handle函数中,函数中计算采样的到数据,计算完成之后得到Av200的值,由于这个判断是在其他故障判断之后的,并且C2变为两倍基本不会对Ri、Ro、UCQ和Av产生影响,并且之前故障的判断门槛已经比较的宽松,不会和C2变为两倍产生冲突,因此这里只是单纯的判断了一下Av200是否大于100.0(这个值还是需要各位去进行实际测量得到,受β的影响比较大。注意Av都是带有一位小数的,所以程序里是大于1000。),大于则认为是C2变为两倍故障。 也可以将本次Av200的值和之前Av200的值进行比较,如果本次Av200的值突然变大了不少,认为是C2变为2倍了。
  14. C1变为两倍 C1变为两倍的故障判断,我在程序中没有实现,根据理论分析来说,C1变为原来的两倍会影响放大电路的输入电阻Ri的大小,但是这个变化不会很明显,采用我原来的硬件电路这个变化是测量不出来的。要判断C1是否变大为原来的两倍,需要采用一个阶跃信号对电容进行充电,然后测量电容充电的快慢,来判断C1是否变大为原来的两倍,按照这个思路我去仿真了一下。下面是仿真结果。