利用电流互感器和Arduino进行交流电流测量
扫描二维码
随时随地手机看文章
电流互感器是一种仪表变压器,专门设计用于转换次级绕组中的交流电,产生的电流与初级绕组中的电流成正比。这种类型的电流互感器被设计为非隐形测量电流从高压子系统或高电流通过系统的地方。电流互感器的工作是将大电流转换为可以通过微控制器或模拟仪表轻松测量的小电流。我们之前在不同类型的电流传感技术文章中解释了使用电流互感器进行电流测量。
在这里,我们将详细学习这种电流传感技术,并在Arduino的帮助下连接电流互感器来测量交流电流。我们还将学习确定未知电流互感器的匝比。
电流互感器
正如我前面提到的,电流互感器是设计用来测量电流的互感器。上面显示了我目前拥有的两个变压器,称为窗口型电流互感器或通常称为铁心平衡互感器。
电流互感器是如何工作的?
电流互感器的基本原理与电压互感器相同,与电压互感器一样,电流互感器也由初级绕组和次级绕组组成。当交流电流通过变压器的初级绕组时,就会产生交流磁通,这在次级绕组中产生交流电流,在这一点上,你可以说它和电压互感器几乎是一样的,如果你认为这是不同之处。
一般情况下,电流互感器在负载电阻的帮助下总是处于短路状态,而且,通过次级绕组的电流只取决于通过导体的一次电流。
电流互感器结构
为了让您更好地理解,我已经拆除了我的电流变压器之一,您可以在上图中看到。
从图中可以看出,一根非常细的导线缠绕在环形铁芯材料周围,一组导线从变压器中伸出。主绕组只是一根与负载串联的单线,并承载流过负载的大电流。
电流互感器比
通过在电流互感器的窗口内放置一根导线,我们可以形成一个单回路,匝数比变为1:N。
像任何其他变压器一样,电流互感器必须满足如下所示的安匝比方程。
在那里,
动比
Np =主圈数
Ns =二次匝数
Ip =初级绕组电流
Is =次级绕组电流
要找到次级电流,把方程重新排列成
如上图所示,变压器的一次绕组由一个绕组组成,变压器的二次绕组由数千个绕组组成,如果我们假设通过一次绕组的电流为100A,则二次电流为5A。所以主次的比例就变成了100A: 5A或者20:1。因此,可以说一次电流比二次电流大20倍。
注意!请注意,电流比与匝数比是不一样的。
现在所有的基本理论都讲完了,我们可以把注意力转回到计算电流互感器的匝数比上来。
电流互感器错误
每个电路都有一些错误。电流互感器没有什么不同;电流互感器存在各种误差。下面描述了其中的一些
电流互感器的比例误差
电流互感器的一次电流并不完全等于二次电流乘以匝数比。一部分电流被变压器的铁芯消耗,使其达到励磁状态。
电流互感器相位角误差
对于理想的CT,初级和次级电流矢量为零。但在实际的电流互感器中,总是会有一个差,因为初级必须向铁心提供励磁电流,并且会有一个小的相位差。
如何减少电流互感器的误差?
为了获得更好的性能,总是有必要减少系统中的错误。因此,通过以下步骤,可以实现这一点
1.磁芯采用具有高磁导率和低磁滞的磁性材料。
2.负载电阻值必须非常接近计算值。
3.二次线的内部阻抗可以降低。
计算电流互感器的匝数比
测试设置已显示在上面的图像,我已经用它来计算出匝比。
正如我之前提到的,我拥有的电流互感器(CT)没有任何规格或零件号,只是因为我从一个坏掉的家用电表中抢救出来的。所以,在这一点上,我们需要知道匝数比来正确设置负载电阻的值,否则,各种各样的问题将在系统中引入,我将在文章的后面讨论更多。
在欧姆定律的帮助下,匝数比可以很容易地计算出来,但在此之前,我需要测量电路中作为负载的10W, 1K的大电阻,我还需要得到一个任意负载电阻来计算匝数比。
负载电阻
负载电阻
测试期间所有组件值的汇总
输入电压Vin = 31.78 V
负载电阻RL = 1.0313 KΩ
抗负荷RB = 678.4 Ω
输出电压Vout = 8.249 mV或0.008249 V
流过负载电阻的电流为
现在我们知道输入电流是0.03080A或30.80 mA
我们来计算一下输出电流
现在,为了计算匝数比,我们需要将一次电流与二次电流相除。
注意!请注意,误差主要是由于我不断变化的输入电压和万用表公差。
计算一个合适的负载电阻尺寸
这里使用的CT是电流输出类型。所以为了测量电流,它需要转换成电压型。openenergymonitor网站上的这篇文章给出了一个关于如何做到这一点的好主意,所以我将继续阅读这篇文章
在那里,
AREF = ADS1115模块的模拟参考电压,设为4.096V。
CT匝数= 0。我们之前已经计算过了。
最大一次电流=最大一次电流,它将通过CT。
注意!每个CT都有一个最大电流额定值,超过该额定值将导致铁芯饱和,最终导致线性误差,从而导致测量误差
注意!家用电能表的最大额定电流是30A,所以我就用这个值。
120.6Ω不是一个常见的值,这就是为什么我要使用三个电阻串联得到120Ω电阻值。在将电阻连接到CT后,我做了一些测试来计算CT的最大输出电压。
测试后可以观察到,如果电流互感器一次馈电1mA,输出RMS为0.0488mV。由此,我们可以计算出如果30A电流流过CT,输出电压将为30000 * 0.0488 = 1.465V。
现在,计算完成后,我将ADC增益设置为1x增益,即+/- 4.096V,这为我们提供了0.125mV满量程分辨率。这样,我们就可以计算出用这个装置可以测量到的最小电流。结果是3mA,因为ADC分辨率设置为0.125mV。
组件的要求
编写不带表的所有组件
线路图
下面的原理图显示了使用电流互感器进行电流测量的连接指南
这就是电路在面包板上的样子。
电流测量电路结构
在之前的教程中,我向您展示了如何在AD736 IC的帮助下准确测量True RMS电压,以及如何配置从输入正电压产生负电压的开关电容电压转换电路,在本教程中,我们将使用这些教程中的两种IC。
对于这个演示,电路是在无焊面包板上构建的,在原理图的帮助下;此外,直流电压是在16位ADC的帮助下测量的,以获得更好的精度。当我在面包板上演示电路以减少寄生时,我使用了尽可能多的跳线电缆。
Arduino代码电流测量
这里使用Arduino将测量值显示到串行监视器窗口。但是在代码中稍加修改,就可以很容易地在16x2 LCD上显示值。在这里学习16x2 LCD与Arduino的接口。
电流互感器的完整代码可以在本节末尾找到。这里解释了程序的重要部分。
我们首先包含所有必需的库文件。Wire库用于Arduino和ADS1115模块之间的通信,Adafruit_ADS1015库帮助我们读取数据并向模块写入指令。
16位ADC输出16位长整数,因此使用int16_t变量。使用了另外三个变量,一个用于存储ADC的RAW值,一个用于显示ADC引脚中的实际电压,最后一个用于显示该电压值到电流值。
通过启用9600波特率的串行输出来开始代码的设置部分。然后打印所设置的ADC增益;这是因为电压超过定义值肯定会损坏器件。
现在使用ads.setGain(GAIN_ONE)设置ADC增益;将1位分辨率设置为0.125mV的方法
之后,调用ADC begin方法,该方法设置硬件模块中的所有内容并统计转换。
在循环部分,我读取原始ADC值,并将其存储到前面提到的变量中以供以后使用。然后将原始ADC值转换为测量的电压值,并计算电流值并显示在串行监视器窗口中。
注意!如果你没有ADS1115模块的库,你需要在Arduino IDE中包含该库,你可以在这个GitHub存储库中找到该库。
完整的Arduino代码如下:
测试电路
用于测试电路的工具
•2个60W白炽灯泡
•Meco 450B+TRMS万用表
为了测试电路,使用了上述设置。电流从CT流到万用表,然后又回到主电源线。
如果你想知道FTDI板在这个设置中做什么,让我告诉你板载USB到串行转换器不工作,所以我不得不使用FTDI转换器作为USB到串行转换器。
进一步增强
你在视频中看到的几个mA误差(如下所示)只是因为我在面包板上做了电路,所以有很多接地问题。
本文编译自circuitdigest