• 用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图


    本文从本人的163博客搬迁至此。

    想设计几个实验,既能展示NI的LabVIEW和数据采集卡的功能特点,又能够让普通电类专业本科学生可以理解,自然首先想到了《电子技术基础》课程的内容。第一个例子采用了“绘制晶体三极管输出特性曲线”的例子,原因有三:其一,作为《模拟电子技术》课程的基本内容,基本上所有电类专业的学生都学过三极管输出特性曲线;其二,这个例子既要控制基极电流和集电极电压,又要测量集电极电流,特别适合既有A/D又有D/A转换功能的数据采集卡来完成;其三,LabVIEW强大的绘图功能可以完美的展现输出特性曲线。

     一、什么是三极管输出特性曲线   

       康华光版的《电子技术基础——模拟部分》这样介绍输出特性曲线:输出特性是在基极电流IB一定的情况下,集电极与发射极之间的电压VCE与集电极电流IC之间的关系曲线,用函数表示为:

    用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图 - 何乐生 - 何乐生的163博客                                                             (1)

         以下是我从小功率高频三极管9018的数据手册中截取的输出特性曲线图:

    图1 标准输出特性曲线

    继续摘录经典教材的解释:输出特性的其实部分很陡,VCE略有增加时,IC增加很快,这是由于在VCE很小时,集电结的反向电压很小,对到达基区的电子吸引力不够,这时IC受VCE的影响很大。VCE稍有增加,从基区到集电区的电子也增加。故IC随VCE的增加而增加。但VCE超过某一数值后,特性曲线变得比较平坦。这是由于VCE大于这一数值后,集电结的电厂已经足够强,能使发射区扩散到基区的电子绝大部分都到达集电区,故VCE再增加,IC就增加不多了。改变IB的值,即可得到一组输出特性曲线。由于三极管是一种电流控制器件满足: 用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图 - 何乐生 - 何乐生的163博客 ( 其中用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图 - 何乐生 - 何乐生的163博客 为电流增益)。在VCE大于零点一定数值以后,输出特性是一组间隔基本均匀,比较平坦的平行直线。 

       据我理解,所谓“输出特性”应该是由集电极电压VCE和基极电流iB共同决定集电极电流的一种特性,这种特性图应该是一张三维曲面图,其水平面上的两个自由度为VCE和IB,垂直方向上的大小应为集电极电流IC。但由于早期计算机绘制三维图形的能力有限,输出特性曲线图只选取了其中IB为10uA、20uA……100uA等几个整数时的几根曲线,全部绘制在一张平面图上,从而得到了图1所示的用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性曲线(面)图 - 何乐生 - 何乐生的163博客 标准的“输出特性曲线图”。

      二、测试电路   

       为了绘制类似图1的输出特性曲线,需要数据采集卡分别控制被试三极管的基极电流IB和集电极电压VCE,同时测量流入集电极的电流IC。

        其中,控制基极上的电流IB较容易:由于发射结压降基本固定,只需要在基极上串联一个固定电阻,同时控制电阻另一端的电压即可。但是,要想在控制集电极电压VCE的同时测量流入集电极的电压并不简单。利用反馈原理设计了如下图所示的测试电路。

    图2 三极管特性图测试电路 

    图2中I_CTL和V_CTL是由数据采集卡上的DAC输出的控制电压,AI4和AI5则连接到数据采集卡的ADC输入端。其中,I_CTL用于控制基极电流IC,其控制的电流等于(VI_CTL - VBE)/R_tb,VBE是发射结压降,基本固定为在0.7V左右。运放OP_tB接成跟随器,它在使输入电压和输出电压相等的同时降低输出阻抗,其目的是为了降低USB-6009输出电阻对I_CTL的影响。运放OP_tA和电阻R_tc则构成了一个用于测量电流的负反馈系统,根据负反馈系统的分析方法来分析这个电路:

        1、根据运放“虚短”的原则,运放的同相端电压应该相等。而被试晶体管V_test的集电极被连接到了运放的反相输入端,应该和连接到同相输入端的V_CTL相等。也就是说只要数据采集卡控制了V_CTL,也就控制了V_test的集电极电压。

       2、运放的输出端在连接到V_test的集电极之前,通过了电阻R_tc。为了使集电极电压等于V_CTL,运放输出端电压势必高于V_CTL。根据“虚断”的原则,没有电流流入运放的反相输入端,也就是从运放输出端流出的电流全部经过R_tc流入了集电极。这样可以推断:运放输出端的电压等于集电极电压V_CTL加上集电极电流IC在电阻R_tc上的压降。这样只要通过数据采集卡测量出运放的输出电压,就可以通过V_CTL和R_tc的阻值计算出IC。

    用NI的数据采集卡实现简单电子测试之2——绘制三极管输出特性图 - 何乐生 - 何乐生的163博客                                                             (2)

     3、当然上述分析“虚短”和“虚断”结论的前提是,系统必须是一个稳定的负反馈系统。而上述电路的负反馈属性是显然的。 

    当然,是用图1电路的限制也是明显的:

      1、电压限制,由USB-6009的DAC输出的控制电压可达0-5V,也就是V_CTL(VCE)可达5V,也就要求此时运放输出端电压VAI4也必将达到5V以上。而要使LM358的输出电压达到5V,其电源电压必须在6.5V以上。而为了方便学生使用,我将本测试电路设计为采用USB口供电,显然无法达到要求,值得采用升压DC-DC(Step_up)来为该电路供电——好在MC34063A电路非常便宜。升压后VPP为12V左右。

    图3 电源电路

    MC34063没什么好说的,需要解释的是MOS管MOS_SW的作用。我是这么想的:为防止MC34063A工作时的开关噪声对其他测试电路的影响,可以用USB-6009的数字I/O P0.1在不需要时将MC34063关掉……

    2、电流限制,普通运算放大器LM358的最大输出电流仅为20mA左右,因此图2所示的测试电路只能测试IC小于20mA的小功率情况。如果需要测试大电流三极管,可以在运放的输出端之后加一个晶体管射极跟随器。

    三、测试程序

    1、程序的流程如图4所示:

    图4 测试程序流程图

    程序中包含两个循环,中间的小循环用于采集IB固定的条件下,一条输出特性曲线上的点;外圈的大循环用于绘制不同的输出特性曲线。

    2、基极电流IB的设置

    基极电流靠USB-6009的DAC实现控制,需要把每次循环所需的电流折算为需要输出的电压Vout,由于计算公式较复杂,采用公式节点实现如图5:

    图5 用公式节点计算基极电流的控制电压

     

     其中,0.57是常见小功率三极管9013的发射结压降,39*10**3是39K欧的电阻,10*10**(-6)是10uA电流(公式节点中的两个乘号**表示乘方运算),i是大循环中的循环次数。

    3、集电极电压VCE的设置

       集电极电压也靠USB-6009的DAC实现控制,依次递增DAC输出的电压V_CTL即可达到控制集电极电压的目的,也采用公式节点实现如图6:  

    图6 集电极电压计算的公式节点

    集电极电压从0.01V开始,每次递增0.05V。

    4、集电极电流IC的测量

     

    图7 集电极电流计算的公式节点

    根据图2所示的反馈电路和公式(2),集电极电流IC等于电阻R_tc上的压降除以它的阻值,Vcx是由测量得到的运放输出电压VAI4,VCE是由软件通过DAC设置的集电极电压,0.22是R_tc的阻值220欧姆。

    5、曲线图的绘制

       采用“XY曲线图”控件绘制输出曲线图。需要注意的是,XY曲线图需要将x轴的值构成的数组和y轴的值构成的数组打包成一个簇方可实现显示。如果包含x轴和y轴数值的数组本身已经是二维数组,XY曲线图控件会自动绘制出颜色不同的多条曲线。

    6、USB-6009的控制

       由于每次设置电流IB和电压VCE后只能采集一个有用的电流,因此USB-6009的ADC和DAC通道都采用“1通道1采样”的模式。但如果在每次D/A输出和A/D采集之前都重新配置ADC和DAC将会使测试过程非常缓慢,因此需要使用“DACmx开始任务”函数

    来一次性启动ADC和DAC任务,以后每次都只需要通过句柄操作即可。

    根据实测,测试8条输出特性曲线,每条曲线完成约100个测试点,所需的总测试时间约在1-2秒左右。

    7、测试过程控制

    不可能在程序开始运行后不断的重复测量过程,因此采用“事件结构”管理了一个“开始测试”按钮,只有单击“开始测试”,测试过程才会开始。

    8、测试程序框图

    不可能在一幅图中展示整个测试程序框图,挑选以下两个比较重要的程序框图展示。

     

    图8 设置基极电流的程序框图

    图9 设置集电极电压的程序框图

    四、程序运行结果

         1、输出特性曲线

         采用常见小功率NPN型三极管9013作为测试对象,得到如图9所示的测试结果,与经典教科书介绍的晶体管输出特性曲线一致。

    图10 实际测试得到的三极管输出特性曲线

     2、输出特性曲面

      不知“三极管输出特性曲面”这种说法对不对,但这是我从当学生时就像做的一件事,即将多条输出特性曲线绘制在一张三维图中。在LabVIEW中,这非常容易。

     

    图11 三极管输出特性曲面1

    图12 三极管输出特性曲面2

    绘制这个三维曲面的代码也很简单,无非是把曲面上的每个点在X,Y,Z 三个轴上的投影分别用一个矩阵送给三维曲面控件。在上面程序的基础上添加曲面显示的程序框图如图13所示。

    图13 绘制三极管输出特性曲面的程序框图

      

    未完待续……

     

     

  • 相关阅读:
    UIImageView动画 UISlider控制速度
    python学习笔记——装饰器
    python学习笔记——继承
    python学习笔记——异步IO
    思路清楚的最大堆实现
    推荐几个IDEA必备的好用插件
    记工作中遇到的Date类相关的坑
    navicat数据库表数据复制到excel产生的列错位问题
    submit提交时进行页面验证
    SublimeText3常用快捷键和优秀插件(转载)
  • 原文地址:https://www.cnblogs.com/helesheng/p/9794857.html
Copyright © 2020-2023  润新知