当前位置:首页 > 技术学院 > 技术前线
[导读]谐振法测电感(转)

1、制作

先是试制了网上流行的LM311电路。因手上没有LM311,用LM393代换。虽然只有几个元件,但也焊接了几个小时。

原电路出现以下问题:

1、频率稳定性不好,跳得比较历害

2、测量大电感误差非常大,可达20%

3、测量更大的电感,如10H以上的电感,很多无法测量,不起振。

解决方法:

示波器观察,谐振器上面的波形非常差,说明电路Q值太低。

原电路使用33k电阻反馈(就是那3个100k电阻的并联值),测大电感时,频率低,阻抗大比33k电阻还大, Q值严重下降,造成电路不起振,就算起振了,测值误差也大得惊人。所以改用1兆欧高阻耦合。

改了之后,可以测到1000H以上的大电感,而且很准。

2、性能

为了与电桥比对,所以上限频率只做到200kHz,辅助电感是220uH

零点缓慢漂移,得经常清零,比较讨厌。这是谐振元件温漂害的。

不过,秒一级的稳定性比较好,读数不会乱跳,因为频率只会跳1个计数值(1计数对应2Hz,计数时间采用0.5秒),所以清零后,及时测量,还是可以准确测量0.x uH电感的。

从几uH到1H之间实测来看,误差小于1%,1H到几百H,误差可以5%左右估算,一般是偏大。因为本电路测量大电感的电压比较高,不易与电桥比对。铁芯电感的电感量随测量电压升高,电感量略有增加。

3、校准

通过修改程序中的这一句校准:

c0 = 3.12e-9 * c2c(f);

其中3.12e-9表示谐振电容在1kHz频率下是3.12nF。

实测700uH空芯线圈,根据误差大小,调整3.12的值,重新下载,使得测量准确。

本表测量的结果实际上是等效并联电感。

4、电容容量修正

•谐振器的极限谐振频率是200kHz。

•涤纶电容随频率变大而变小,所以程序内建修正表,改正电容的容量误差。

以下是3.12nF电容的真值修正表,其中b数组是容量的修正系数

code float a[5]={100, 1000, 10000, 100000, 200000 }; //频率

code float b[5]={1.004, 1.000, 0.992, 0.975, 0.973 }; //修正量(涤纶原真修正表)

•修正值改进

那个1M欧的耦合电阻,在超声波范围内并不是存阻的。当频率较高时,电阻两端的分布电容及LM393内的信号耦合是不可以忽略的。虽然是电容耦合量很小,但在密勒效应的作用下,会被成百上升倍放大,有效谐振电容变小。频率比较高时,谐振器的阻抗很小,所以反馈系数非常弱,这就造成密勒效应的影响严重,可影响2%以上,为此高频率下,有效谐振电容仅修正系数仅为0.973是不够的。

此外,LM393的延迟也会造成振荡频率变小,引起测值变大。如果谐振器高Q,则影响小。整个回路的Q值只有20左右,所以频率高时,这个影响也是不能忽略的。用排除法证明:表笔接20R电阻测量电路中的那个功率电感,结果输电感量变大了2%,并联串联关系的转换远没有2%变化,谐振电压的变化也远不足以造成2%的变化,而接电阻后谐振阻抗变低,密勒效应更大,应造成电感量测值变小才对。显然,这2%的增加是LM393引起的。

以上因素,结合起来,修正表变为

code float a[5]={100, 1000, 10000, 100000, 150000 }; //频率

code float b[5]={1.004, 1.000, 0.992, 0.960, 0.950 }; //修正量(综合修正表)

•测量100uH以下的电感的改正

测量这种电感,频率大约在150kHz至200kHz

这个范围内频率变化,产生如下效果:

功率电感约有0.5uH的变化,电感量随频率变大而变小,引起电感测值变小。

涤纶电容随频率增加,容量变小,引起电感测值变大。

以及其它方面因素影响,相互补偿,最后结果150kHz以后的电容修正值与200kHz的修正值是一样的。所以电容修正表上限只要做到150kHz即可,大于150kHz的使用150kH的修正值。

//==========================================================================

// LC表驱动程序 V1.0

// 许剑伟 于莆田 2012.10

//==========================================================================

//==========================================================================

#define uchar unsigned char

#define uint unsigned int

#define ulong unsigned long

#include

//==========================================================================

// 项目:LCD1602 四线驱动程序

// 设计要点:

// LCD1602 的运行速度慢,而单片机运行的速度快,因此容易因为速度不

// 匹配造成调试失败。因此,调试之前应准确测试lcd_delay() 延时函数

// 准确的延时量,如果不能满足注释中的要求,则应调整循次数。每步操

// 作所需的延时量,按照数据手册指标指行,同时留下足够的时间余量。

// 硬件连接:

// 至少需要9条线,电源线2条,7条信号线。信号线详见程序中的接口定义。

// 清注意对LCD1602比对的调节,否则无显示。

// 设计:许剑伟,于莆田,2010.12

//==========================================================================

sbit lcd_RS = P0^1; //数据命令控制位,0命令1数据

sbit lcd_RW = P0^2; //读写位,0写1读

sbit lcd_EN = P0^3; //使能位,下降沿触发

sbit lcd_D4 = P0^7; //数据端口D4

sbit lcd_D5 = P0^6; //数据端口D5

sbit lcd_D6 = P0^5; //数据端口D6

sbit lcd_D7 = P0^4; //数据端口D7

//==========================================================================

void lcd_delay(int n){ //LCD专用延时函数

//32MHz钟频下,约循环3000次延迟1毫秒

int i,j;

if(n<0) { for(i=0;i< 20;i++); return; } //10us

if(n== 0) { for(i=0;i<100;i++); return; } //50us

for(;n;n--){ for(j=0;j<2000;j++); } //n毫秒

}

//==========================================================================

void lcd_B(char f, uchar c, char t){ //控制四线式接口LCD的7个脚

//f=0写命令字, f=1写RAM数据, f=2读地址(或读忙), f=3读RAM数据

lcd_EN = 0;

lcd_RS = f%2;

lcd_RW = f/2%2;

//移入高四位

lcd_D4 = c & 16;

lcd_D5 = c & 32;

lcd_D6 = c & 64;

lcd_D7 = c & 128;

lcd_EN = 1; lcd_delay(-1); lcd_EN = 0; //使能脉冲

if(f==4) { lcd_delay(t); return; }

//移入低四位

lcd_D4 = c & 1;

lcd_D5 = c & 2;

lcd_D6 = c & 4;

lcd_D7 = c & 8;

lcd_EN = 1; lcd_delay(-1); lcd_EN = 0; //使能脉冲

lcd_delay(t); //不同的命令,响应时间不同,清零命令需要2ms

}

//==========================================================================

void lcd_init(){ //LCD1602 初始化

//启动四线模式须势行9个步骤,初始化所须耗时较长,约65ms,时限不可减

lcd_delay(20); //启动lcd之前须延时大于15ms,直到VDD大于4.5V

lcd_B(4, 0x30, 9); //置8线模式,须延时大于4.1ms

lcd_B(4, 0x30, 5); //置8线模式,须延时大于100us

lcd_B(4, 0x30, 5); //置8线模式,手册中未指定延时

lcd_B(4, 0x20, 5); //进入四线模式

lcd_B(0, 0x28, 5); //四线模式双行显示

lcd_B(0, 0x0C, 5); //打开显示器

lcd_B(0, 0x80, 5); //RAM指针定位

lcd_B(0, 0x01, 5); //启动清屏命初始化LCD

}

//==========================================================================

//=========================几个功能常用函数=================================

void lcd_cls() { lcd_B(0, 0x01+0, 2); } //清屏

void lcd_cur0() { lcd_B(0, 0x0C+0, 0); } //隐藏光标

void lcd_goto1(uchar x){ lcd_B(0, 0x80+x, 0); } //设置DDRAM地址,第1行x位

void lcd_goto2(uchar x){ lcd_B(0, 0xC0+x, 0); } //设置DDRAM地址,第2行x位

void lcd_putc(uchar d) { lcd_B(1, 0x00+d, 0); } //字符输出

void lcd_puts(uchar *s){ for(; *s; s++) lcd_B(1,*s,0); } //字串输出

//==============字符显示函数====================

#define digW 4 //数字显示位数宏

void lcd_puti(long a,char w){ //定宽显示正整数

char i=0, s[10]={32,32,32,32,32,32,32,32,32,32};

if(a<0) { a=-a; lcd_puts("-"); }

else lcd_puts(" ");

do{

s[i++] = a%10+48;

a /= 10;

}while(a);

for(;w;w--) lcd_putc(s[w-1]);

}

void lcd_putf(float a,char n,char w){ //浮点输出,n是保留小数的位数,w是数字宽度

char i,g,fi=0;

long b,c=1;

if(a<0) { lcd_putc('-'); a = -a; }

else { lcd_putc(' '); }

for(i=0;i

for(i=1;i

b = a;

for(i=0;i

g = b/c;

b -= g*c;

c /= 10;

if(g>9||g<0) g='*'-48;

if(i == w-n ) lcd_putc('.');

if(!g && !fi && i

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

本文中,将对示波器的原理、示波器带宽不够会带来的影响予以介绍。

关键字: 示波器 指数 数字示波器 模拟示波器

为增进大家对示波器的认识,本文将对示波器采样时间的设置、示波器采样率、示波器触发等知识予以介绍。

关键字: 示波器 指数 数字示波器 模拟示波器

为增进大家对示波器的认识,本文将对示波器的时基以及普源示波器波形粗的原因予以介绍。

关键字: 示波器 普源示波器 指数

设计工程师为了解决ISI问题,常常需要在链路损耗和均衡技术之间做出综合考虑。泰克的SDLA软件不仅可以模拟发送端的Tx EQ和接收端的Rx EQ,还能模拟传输链路的不同损耗。

关键字: 通信 示波器 测试测量

整流桥的外观可以直接反映其制造质量和装配工艺。一般来说,整流桥的外观应该平整光滑,没有明显的划痕、破损或者氧化。首先要将整流桥从设备中取下来,然后进行以下检测。

关键字: 整流桥 示波器 电流

随着汽车电子技术的快速发展,LIN(Local Interconnect Network)总线技术作为一种低成本、简单的串行通信协议,在汽车内部网络中得到了广泛应用。LIN总线主要用于连接传感器和执行器等低速设备,实现与...

关键字: 汽车电子 串行通信协议 示波器

泰克实时示波器支持TekExpressLVDS自动测量软件,涵盖LVDS时钟和数据的30多个测量项目,一键完成一致性测量。

关键字: 通信 示波器 测试测量

示波器是一类能够 用于检测交流电流或脉冲电流波的形态的仪器设备。示波器由电子管放大仪、扫描振荡器、阴极射线等组合而成。

关键字: 示波器 交流电流 脉冲电流

电源未接通;辉度旋钮未调节好;X,Y轴移位旋钮位置调偏;Y轴平衡电位器调整不当,造成直流放大电路严重失衡。示波器维修

关键字: 示波器 电源 电位器

我们在设计高速接口芯片时,到底应该使用LVDS,还是CML(JESD204)呢?

关键字: 示波器 测试测量
关闭
关闭