在本培训系列的“使用
独立ADC的单相电表设计软件”
部分的视频中,
我们讨论了可用于
从ADS 131 ML4检测电压和电流样本计算
计量参数的算法。
此幻灯片显示用于计算
计量读数的公式。
对于RMS读数,全帧数据的平方样本的
运行和 - 大约一秒
与最近的零交叉
同步的数据 -
除以样本数。
然后可以从结果量中减去偏移量,
以减去高斯噪声的影响,
以获得更准确的RMS测量值。
随后,执行平方根运算,
并将得到的数量乘以比例因子,
以将结果转换为真实世界单位,
如伏特和安培。
为了计算有功功率,
然后将全帧数据的电压
和电流样本的乘积之和
除以当前帧内的样本计数,
然后乘以比例因子。
然后减去用于补偿电压
电流串扰的偏移。
对于无功功率,
遵循类似的过程,除了90度
移位版本的电压用于乘法
而不是原始电压样本,并且还使用
不同的无功功率偏移。
无功功率比例因子
是根据有功功率比例因子
和所选滤波器的特性在内部
计算的。
通过对计算的有功功率
求平方,将其加到
平方无功功率,然后取结果的
平方根来计算视在功率。
有功功率除以视在功率
以计算功率因数。
GUI采用此功率因数读取
并获取其反余弦,
它告诉您由于客户负载的反应
而产生的电压和电流波形之间的
基本偏移。
频率的计算是通过估计
背景过程中两个0交叉点之间的样本数量
并将ADC的采样率除以 -
在这种情况下为1000赫兹 -
通过该数字来完成的。
用于测试此设计的计量
计算可以分为两个部分 -
前景过程和后台过程。
后台进程主要处理软件中的
时序关键事件。
由于插入了ADS 131 ML4的D
就绪引脚,每次发生端口中断时都会
发生后台进程。
在后台处理中,如果设备
应该处于电流检测模式,
则插入D就绪引脚的唯一方法是,
如果ADS 131 ML4可能
检测到篡改了从仪表移动
中性连接。
如果由此触发了端口ISR,
则通过递增篡改计数变量
来记录此潜在篡改事件。
该变量计算自上次电源故障
以来在当前检测模式中检测到
篡改后发生的篡改次数。
递增变量后,退出ISR。
如果ADS 131 ML4不应处于
电流检测模式,
则插入D就绪引脚
并随后触发端口ISR是因为ADS 131 ML4中
有新的采样。
当发生这种情况时,
先前获得的电压和电流
样本存储在缓冲器中,
稍后将由每个样本dsp函数读取。
存储先前的电压和电流样本后,
触发MSP432 DMA以自动从ADS 131 ML4读取新生成的样本。
在触发DMA以读取
新的电压和电流样本之前
存储先前的电压和电流样本的目的
是使得在使用这些样本
进行计算的过程中不会覆盖
电压和电流样本信息。
触发DMA以读取新的ADS 131 ML4样本后,
将调用每个样本的dsp函数。
该功能负责更新用于计算
计量参数的中间点积量。
接下来,调用每样本能量脉冲处理函数,
其负责输出用于校准能量
和确定能量误差的
能量脉冲。
前台进程负责在重置后
立即设置硬件。
在设置硬件之后,代码
进入循环,首先检查
来自PC GUI的任何新消息,
并检查后台进程是否累积了一帧数据,
大约一秒钟与最近的0
交叉同步。
如果已经累积了足够的数据,
则前台进程使用来自后台进程的
中间点积来使用上一张幻灯片中
显示的公式计算实际单位中的
度量参数。
如果MSP432根据TPS 7878的
电源故障指示接收到进入电流检测模式的触发,
则清除篡改计数变量,
以便此变量仅计算
从上次电源故障实例
检测到篡改的次数,
而不是它计算从上次MSP432重置时
检测到的篡改总次数。
清除篡改计数变量后,
篡改LED将在上次已经
打开时关闭,然后进入当前
检测模式。
如果MSP432根据TPS 7878的
电网指示接收到退出电流检测模式的触发,
则检查篡改计数变量,
以查看ADS 131 ML4在
检测到的过程中
是否存在两个以上的
篡改事件。
最近ML4处于当前检测模式的时间。
如果ML4检测到两个以上的
篡改事件,则电路板上的LED指示灯亮,
表示上次ML4处于电流检测模式时检测到篡改。
基于具有由ML4检测到的两个
以上篡改事件来定义篡改事件的原因
是系统不指示来自
以下两个场景的篡改。
在第一种情况下,即当电源首次丢失时,
当电流尚未低于当前
检测模式阈值时,触发电流
检测模式,尽管已经指示
电源故障事件。
在第二种情况下,电源正在恢复到电表,
感应电流现在高于当前检测模式阈值,
但系统仍然没有足够的
时间退出电流检测模式,
因此这被视为篡改事件。
在检查篡改计数变量
是否大于2之后,如果是,则打开篡改LED,
退出当前检测模式。
然后,我们再次通过检查来自PC GUI的
任何新消息,在前景循环的开始处开始。
在左侧,我们看到每个示例dsp函数的
流程图。
每个样本dsp函数用于计算
中间点积结果,该结果被馈送到
前景过程中以计算
计量读数。
点积基本上是产品的运行总和。
在此功能中,来自ADS 131 ML4的
电压原始样本以及线电流
或中性线电流存储
在缓冲区中,
可用于ADC样本的任何特殊后处理
分析。
如果由于某种原因
需要存储DC滤波的ADC数据,
例如执行谐波分析,则也可以修改软件。
原始ADS 131 ML4样本是边整数,
并且使用DC跟踪滤波器移动
这些转换器上的任何直线DC或偏移值。
使用滤波器,电流样本的电压分别
获得对所有电压和电流的单独
DC估计。
然后从每个电压和电流原始ADC样本中
减去该估计值。
使用直流滤波电压和电流样本,
使用新的DC滤波样本更新方波电压,
平方电流,有功功率和无功功率的
运行总和。
这些运行和产品存储为64位值,
以防止在处理24电压
和电流样本时出现溢出。
请注意,单独的点积变量
用于线电流和中性线电流,
因为电流和功率计算都是
针对线电流和中性线电流进行的。
在累积大约一秒的足够样本之后,
后台过程触发前景过程
以使用来自后台过程的点积
计算VRMS,IRMS,平均有功功率
和平均无功功率的最终值。
此外,前景过程
还计算视在功率,有功,
无功和视在能量,频率和功率因数。
在测试软件中,
我们的阶段有两套产品。
在任何给定时间,
前景使用一个进行计算,另一个用作
背景的工作集。
在后台处理有足够的样本后,
它会交换两个点产品,
以便前景使用后台进程刚刚
计算的新获得的点积,后台进程使用
新的空集来计算下一组点积。
每当在电压信道上存在
对正向转变为负的前导0交叉时,
每样本dsp函数还负责
以每周期的样本为单位
更新相应的频率。
在电表中,负载的能量消耗
通常以几千瓦时的脉冲来
测量。
该信息可用于精确校准任何
仪表以进行精确测量。
通常,测量元件 -
在这种情况下是MSP432控制器 -
负责产生与消耗的能量
成比例的脉冲。
为了有效地完成这两项任务,
脉冲的产生必须准确,抖动相对
较小。
虽然时间抖动并不表示准确性差,
但时间抖动会给出仪表整体
精度的负面指示。
由于这种负面的准确性指示,必须对抖动
进行平均。
该应用使用平均功率来
产生这些能量脉冲,如右侧的
流程图所示。
平均功率在每个D就绪端口ISR中断累积,
从而对于当前一秒时间帧中的
每个中断均匀地扩展来自前
一个第二时间帧的累积能量。
这种积累过程相当于将能量
转换为能量。
当累积的能量超过阈值时,
产生脉冲。
保持高于该阈值的能量的量,
并且在下一个中断循环中在阈值之上
添加新的能量值。
因为平均功率趋于稳定,
所以这种产生能量脉冲的方式
非常稳定并且没有抖动。
阈值确定仪表制造商指定的
能量滴答并且是常数。
刻度通常以每千瓦时脉冲
或千瓦时为单位。
每个能量滴答必须产生一个脉冲。
例如,在本应用中,
对于有效无功电能,
每千瓦时产生的脉冲数被设定为6400。
在这种情况下,能量滴答是超过6,400的1千瓦时。
能量脉冲在集管上产生并可用,
也可通过电路板上的发光二极管产生。