电流互感器是一种专门设计用于变换二次绕组中交流电流的仪器变压器,其产生的电流量与一次绕组中的电流成正比。这种类型的电流互感器被设计为在不可见的情况下测量来自高压子系统或大量电流流过系统的电流。电流互感器的工作是将高电流量转换为低电流量,这可以通过微控制器或模拟仪表轻松测量。我们之前解释过在不同情况下使用电流互感器进行电流测量电流传感技术的类型文章

在这里,我们将详细学习这种电流传感技术把电流互感器接线测量交流电流在一个阿杜因诺。我们还将学习确定匝数比未知的电流互感器。

电流互感器

Current Transformer

正如我之前提到的,电流互感器是一种设计用于测量电流的变压器。上面显示了我目前拥有的两台变压器,称为窗口式电流互感器或通常称为堆芯平衡变压器r

电流互感器是如何工作的?

电流互感器的基本原理与电压互感器相同,类似于电压互感器,电流互感器也由一次绕组和二次绕组组成。当交流电流通过变压器的初级绕组时,会产生交流磁通量,在次级绕组中感应出交流电流。如果你认为这是区别的话,你可以说它几乎与电压互感器相同。

通常,电流互感器在负载电阻器, 此外,在次级绕组上流动的电流仅取决于流过导体的初级电流。

电流互感器结构

Current Transformer Construction

为了让你更好地理解,我拆除了我的一个电流互感器,你可以在上图中看到。

从图中可以看出,一根非常细的电线缠绕在环形芯材料周围,一组电线从变压器中出来。初级绕组只是一根与负载串联的单线,并承载流经负载的大电流。

电流互感器比率

Current Transformer Ratio

通过在电流互感器的窗口内放置一根电线,我们可以形成一个单独的回路匝数比变为1:N。

与任何其他变压器一样,电流互感器必须满足安培匝数比方程,如下所示。

TR=Np/Ns=Is/Ip

哪里

TR=传动比

Np=初级匝数

Ns=次级匝数

Ip=初级绕组中的电流

Is=二次绕组中的电流

要找到二次电流,请将方程重新排列为

Is=Ip x(Np/NS)

如上图所示,变压器的初级绕组由一个绕组组成,变压器的次级绕组由数千个绕组组成。如果我们假设100A的电流流过初级绕组,则次级电流将为5A。因此,初级和次级之间的比率变为100A比5A或20:1。因此,可以说初级电流比次级电流高20倍。

笔记请注意,电流比与匝数比不同。

现在,所有的基本理论都已经解决了,我们可以把注意力转向计算手中电流互感器的匝数比。

电流互感器错误

每个电路都有一些错误。电流互感器也不例外;电流互感器中存在各种误差。其中一些描述如下

电流互感器中的比率误差

电流互感器的初级电流并不完全等于次级电流乘以匝数比。一部分电流被变压器的铁芯消耗,使其进入励磁状态。

电流互感器的相位角误差

对于理想的CT,初级和次级电流矢量为零。但在实际的电流互感器中,总是会有差异,因为初级必须向铁芯提供励磁电流,并且会有很小的相位差异。

如何减少电流互感器的误差?

为了获得更好的性能,总是有必要减少系统中的错误。因此,通过以下步骤,可以实现

  1. 使用具有高磁导率和低磁滞磁性材料的磁芯。
  2. 负载电阻值必须非常接近计算值。
  3. 次级的内部阻抗可以降低。

反向计算电流互感器的匝数比

Turns Ratio of a Current Transformer

测试设置如上图所示,我用它来计算匝数比。

正如我之前提到的,我拥有的电流互感器(CT)没有任何规格或零件号,只是因为我是从一个坏的家用电表中抢救出来的。因此,在这一点上,我们需要知道匝数比,以设置负载电阻器正确地说,否则,系统中会引入各种问题,我将在本文后面详细讨论这些问题。

在欧姆定律,匝数比可以很容易地计算出来,但在此之前,我需要测量作为电路负载的10W、1K的大电阻器,我还需要获得任意负载电阻器以计算匝数比。

负载电阻器

Current Transformer Load Resistor

负载电阻器

Current Transformer Burden Resistor 

Current Transformer Testing

测试期间所有组件值的汇总

输入电压电压输入=31.78伏

负载电阻RL=1.0313 KΩ

负载阻力RB=678.4Ω

输出电压Vout=8.249 mV或0.008249 V

流经负载电阻器的电流为

I=Vin/RL
我= 31.78/1.0313=0.03080A或30.80 mA

所以现在我们知道了输入电流,哪个是0.03080A或30.80毫安

让我们看看输出电流

I=Vout/RB
I=0.008249/678.4=0.00001215949A或12.1594 uA

现在,到计算匝数比,我们需要将初级电流与次级电流分开。

匝数比n=一次电流/二次电流
n=0.03080/0.0000121594=2533.1972

因此电流互感器由2500匝(四舍五入值)

笔记请注意,这些错误主要是由于我不断变化的输入电压和万用表公差造成的。

计算合适的负载电阻器尺寸

这里使用的CT是电流输出类型。因此,要测量电流,需要将其转换为电压类型。这篇文章,在开放式能量监测器网站,给出了我们如何做到这一点的好主意,所以我将关注这篇文章

负载电阻器(欧姆)=(AREF*CT匝数)/(2√2*最大一次电流)

哪里

AREF=ADS1115模块的模拟参考电压,设置为4.096V。

CT匝数=二次匝数,我们之前已经计算过。

最大初级电流=流经CT的最大初级电流。

笔记每个CT的最大电流额定值超过该额定值将导致堆芯饱和,并最终导致线性误差,从而导致测量误差

笔记家用电能表的最大额定电流是30A,所以我选择这个值。

负载电阻器(欧姆)=(4.096*2500)/(2√2*30)=120.6Ω

120.6Ω不是一个常见的值,这就是为什么我要使用三个串联的电阻器来获得120Ω的电阻器值。将电阻器连接到CT后,我进行了一些测试,以计算CT的最大输出电压。

试验后,观察到如果1mA电流通过电流互感器的初级供电,输出为0.0488mV均方根。据此,我们可以计算出,如果30A的电流流过CT,输出电压将为30000*0.0488=1.465伏。

现在,经过计算,我已经设置模数转换器 获得1x增益哪个是+/-4.096伏,这给了我们0.125mV的全尺寸分辨率。这样,我们将能够计算出使用该设置可以测量的最小电流。结果是3毫安b因为ADC分辨率被设置为0.125mV。

所需组件

写入所有没有表的组件

ding="0" cellspacing="0" style="width:601px">

序号

部分

类型

1.

计算机断层扫描

窗口类型

1.

2.

Arduino纳米

通用的

1.

3.

广告736

集成电路

1.

4.

ADS1115型

16位ADC

1.

5.

LMC7660型

集成电路

1.

6.

120Ω, 1%

电阻器

1.

7.

10华氏度

电容器

2.

8.

33华氏度

电容器

1.

9

面包板

通用的

1.

10

跳线

通用的

10

电路图

以下示意图显示了的连接指南使用电流互感器进行电流测量

Current Measurement Circuit Diagram using Current Transformer

这就是电路在试验板上的样子。

Current Measurement using Current Transformer

电流测量电路结构

在上一个教程中,我向您展示了如何精确测量AD736集成电路帮助下的真实RMS电压以及如何配置开关电容电压转换器电路在本教程中,我们将使用这些教程中的两个IC。

在本演示中,电路在原理图的帮助下构建在无焊Breadboard上;此外,直流电压是在16位ADC的帮助下测量的,以获得更好的精度。当我在试验板上演示电路以减少寄生时,我使用了尽可能多的跳线。

电流测量的Arduino代码

这里,Arduino用于将测量值显示到串行监视器窗口。但只要在代码中稍作修改,就可以很容易地在16x2 LCD上显示值。学习16x2液晶显示器与Arduino的接口在这里

的完整代码电流互感器可以在本节末尾找到。这里对程序的重要部分进行了解释。

我们首先包括所有必需的库文件。Wire库用于在Arduino和ADS1115模块以及阿达果_ADS1015库帮助我们读取数据并向模块写入指令。

#include<Wire.h>#include<Adafuit_ADS1015.h>包含

接下来,定义乘法因子其用于根据ADC值来计算电流值。

#定义MULTIPLICATION_FACTOR 0.002734/*因子以计算实际当前值*/Adafuit_ADS1115广告;/*将其用于16位版本的ADS1115*/

16位ADC吐出16位长的整数,因此内部16_t使用了变量。使用其他三个变量,一个用于存储ADC的RAW值,一个用来显示ADC引脚中的实际电压,最后一个用来将该电压值显示为电流值。

int16_t adc1_raw_value值;/*存储原始ADC值的变量*/float measured_voltae;/*变量,用于存储测量电压*/浮动电流;/*存储计算电流的变量*/

通过启用9600波特的串行输出,开始代码的设置部分。然后打印所设置的ADC的增益;这是因为超过规定值的电压肯定会损坏设备。

现在使用设置ADC增益ads.setGain(增益_一);将1位分辨率设置为0.125毫米

之后,ADC开始方法被调用,该方法设置硬件模块中的所有内容和统计数据转换。

void setup(void){Serial.beggin(9600);Serial.println(“从AIN0..3获取单端读数”);//一些调试信息Serial.printlin(“ADC范围:+/-4.096V(1位=2mV/ADS1015,0.125mV/ADS1115)”);//ADC输入范围(或增益)可以通过以下//功能进行更改,但注意不要超过VDD+0.3V最大值,或者//如果调整输入范围,则不要超过上限和下限!//错误设置这些值可能会破坏ADC!//ADS1015 ADS1115/--------------------------------------/ads.setGain(增益两倍);//2/3x增益+/-6.144V 1位=3mV 0.1875mV(默认)ads.setGain(gain_ONE);//1x增益+/-4.096V 1位=2mV 0.125mV//ads.set增益(gain_TOW);//2x增益+/-2.048V 1位=1mV 0.0625mV//ads.set增益(gain_FOOR);//4x增益+/-1.024V 1位=0.5mV 0.03125mV//ads.set增益(增益_八);//8x增益+/-0.512V 1位=0.25mV 0.015625mV//ads.set增益(gain_SIXTEEN);//16x增益+/-0.256V 1位=0.125mV 0.0078125mV广告开始();}

部分中,我读取原始ADC值,并将其存储到前面提到的变量中以供以后使用。然后将原始ADC值转换为电压值进行测量,计算电流值并将其显示在串行监视器窗口中。

void loop(void){adc1_raw_value=ads.readADC_SingleEnded(1);measured_voltate=adc1_raw_value*(4.096/32768);current=adc1_raw_value*MULTIPLICATION_FACTOR;Serial.print(“ADC值:”);Serial.println; 串行.println(“”);延迟(500);}

笔记如果您没有ADS1115模块的库,您需要在Arduino IDE中包含该库,您可以在GitHub存储库.

完整的Arduino代码如下所示:

#include<Wire.h>#include<Adafruit_ADS1015.h>#define MULTIPLICATION_FACTOR 0.002734/*因子以计算实际电流值*/#define ADC_MAX_value 32768/*ADC产生的最大值*/#fine ADC_GAIN 4.096 Adafruit _ADS1115 ads;/*将其用于16位版本ADS1115*/int16_t adc1_raw_value;/*存储原始ADC值的变量*/float measured_voltae;/*存储测量电压*/浮动电流的变量;/*变量,用于存储计算的电流*/void设置(void){Serial.beggin(9600);Serial.println(“从AIN0..3获取单端读数”);//一些调试信息Serial.println[“ADC范围:+/-4.096V(1位=2mV/ADS1015,0.125mV/ADS1115)”];//ADC输入范围(或增益)可以通过以下//功能进行更改,但注意不要超过VDD+0.3V最大值,或者//如果调整输入范围,则不要超过上限和下限!//错误设置这些值可能会破坏ADC!//ADS1015 ADS1115/--------------------------------------/ads.setGain(增益两倍);//2/3x增益+/-6.144V 1位=3mV 0.1875mV(默认)ads.setGain(gain_ONE);//1x增益+/-4.096V 1位=2mV 0.125mV//ads.set增益(gain_TOW);//2x增益+/-2.048V 1位=1mV 0.0625mV//ads.set增益(gain_FOOR);//4x增益+/-1.024V 1位=0.5mV 0.03125mV//ads.set增益(增益_八);//8x增益+/-0.512V 1位=0.25mV 0.015625mV//ads.set增益(gain_SIXTEEN);//16x增益+/-0.256V 1位=0.125mV 0.0078125mV广告开始();}void loop(void){adc1_raw_value=ads.readADC_SingleEnded(1);measured_voltate=adc1_raw_value*(ADC_AIN/ADC_MAX_value; 串行.println(“A”);串行.println(“”);延迟(500);}

测试电路

Current Transformer Working

用于测试电路的工具

  1. 2个60W白炽灯泡
  2. Meco 450B+TRMS万用表

为了测试电路,使用了上述设置。电流从CT流到万用表,然后返回到主电源线。

如果你想知道FTDI板在这个设置中做什么,让我告诉你,板载USB到串行转换器不工作,所以我不得不使用FTDI转换器作为USB到串行的转换器。

进一步的增强功能

你在视频中看到的几个mA错误(下面给出)只是因为我在试验板中制作了电路,所以有很多接地问题。

我希望你喜欢这篇文章,并从中学到一些新东西。如果你有任何疑问,你可以在下面的评论中询问,也可以使用我们的论坛以供详细讨论。