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

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

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

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

                                                             (1)

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

图1 标准输出特性曲线

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

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

 二、测试电路   

为了绘制类似图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。

                                                             (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 绘制三极管输出特性曲面的程序框图

未完待续……

转载于:https://www.cnblogs.com/helesheng/p/9794857.html

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

  1. 用NI的数据采集卡实现简单电子测试之6——数字I/O及测试平台

    本文从本人的163博客搬迁至此. 前面几个例子介绍了NI数据采集卡的模拟输入和输出功能,本例则集中介绍USB-6009的数字输入输出功能.本例包括基本数字IO电路及在LabVIEW中控制USB-600 ...

  2. 用NI的数据采集卡实现简单电子测试之1——USB-6009简介

    本文从本人的163博客搬迁至此. 几年以来,一直担任学校"虚拟仪器"课程教师.以前上课都以介绍LabVIEW编程为主,硬件实验一直没有开展.这次借"西部高校实力提升工程& ...

  3. 用NI的数据采集卡实现简单电子测试之4——半导体温度传感器

    本文从本人的163博客搬迁至此. 为了展示NImax(Measurement & Automation explorer)的强大配置功能,做了一个半导体温度传感器测试的示例. 一.半导体温度传 ...

  4. 盘活NI DAQmx数据采集卡—使用DAQWare for DAQmx工具软件

    DAQWare for DAQmx是一个用于NI DAQmx驱动的数据采集卡的数据采集软件,可以帮助用户在没有LabVIEW编程基础的情况下更好的使用NI数据采集卡. DAQWare for DAQm ...

  5. 用C语言给NI公司数据采集卡编程序进行电压数据采集

    NI公司有很多款性能比较好的数据采集卡,我实验室有数据采集卡6353和USB-6210,都是USB连接电脑,只是供电方式不同,通道数目不同,我都编过一些程序,程序编写是一样的,都是调用NI公司提供的D ...

  6. Labview软件、NI数据采集卡、汽车发动机数据采集学习总结(四)-------发动机上的传感器详解

    系列文章目录 第一章:汽车发动机数据采集上位机环境的搭建 第二章:Labview中的DAQ助手中器件详解 第三章:利用labview和NI数据采集卡采集汽车发动机中温度传感器的电压信号并处理 第四章: ...

  7. python数据采集仪_数据采集卡支持python么深入理解Python生成器(Generator)

    我们可以通过列表生成式简单直接地创建一个列表,但是受到内存限制,列表容量肯定是有限的.而且,创建一个包含100万个元素的列表,不仅占用很大的存储空间,而且如果我们仅仅需要访问前面几个元素,那后面绝大多 ...

  8. LabVIEW数据采集卡

    CSDN话题挑战赛第2期 参赛话题:学习笔记 博客写作背景----项目中解决的问题 最近遇到一个使用stm32单片机多路采集信号的项目,还需要在上位机进行波形的查看,信号算法的处理,初步定为使用lab ...

  9. 超宽带高速记录回放系统的分类和使用方法的高速数据采集卡的分类和使用方法

    8bit 1GS/s 高速数据采集卡 产品编号:HSDAQ9870 规 格:8bit 1GS/s 高速数据采集卡 及专用高性能磁盘阵列服务器系统 产品类别:高速数据采集卡 Product charac ...

  10. 第三方数据采集卡在LabVIEW中使用Express VI简化编程范例

    什么是Express VI? Express VI是NI LabVIEW中提供的快捷的编程方法,用很少量的操作替代复杂.底层的代码,常见的如:DAQ助手ExpressVI和仿真信号Express VI ...

最新文章

  1. opencv 凹凸性检测 和 缺陷分析
  2. 钉钉自定义机器人python_使用钉钉自定义机器人发送舔狗日记[70行][python]
  3. Spring Security 5.5发布,正式实装OAuth2.0的第五种授权模式
  4. python对笔记本电脑的要求-Python的用法笔记本
  5. codeblocks无法打开文件kernel32.lib
  6. opencv学 之图像傅里叶变换dft
  7. Cloudflare通过UnstoppableDomains添加对“.crypto”域名的支持
  8. Python中Permission denied怎么解决
  9. Golang的cookie
  10. axios请求拦截器错误_React中使用高阶组件和axios的拦截器,统一处理请求失败提示...
  11. 【iCore3双核心板】iCore3双核心板使用说明(图文)
  12. 自编基于jQuery实现分页插件
  13. 强化学习推荐系统_推荐人系统:价值调整,强化学习和道德规范
  14. 【MFC开发(4)】按钮控件BUTTON
  15. 【笔记】软件质量保证(Software Quality Assurance)复习笔记
  16. C4D 展UV的那些坑
  17. js pdf文件 如何调用打印机打印_pdf.js —— 在线预览下载打印pdf文件插件,实现的两种方式...
  18. span 禁止选中_网页代码常用小技巧(禁止另存为)
  19. 皮卡丘是如何发电的?
  20. zeros什么意思_zeros:zeros还是zeroes?4)是什么意思?

热门文章

  1. 无人车系统(八):Udacity ‘s无人驾驶仿真环境(python与c++数据接口)
  2. Git down代码简易操作手册
  3. 线下化妆品零售店如何做私域获客?
  4. 在编辑word时,如何查找和替换空格符呢?
  5. U盘中文件夹变为应用程序exe不能打开怎样修复
  6. Win7网络和共享中心 依赖服务或组无法启动 解决办法
  7. Linux日文教程,Ubuntu日语、法语输入法的设置
  8. 无限级分销管理系统的设计与实现
  9. •SVG g、defs、symbol和use元素详解
  10. 数字万用表短路时电阻不为0怎么办