你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

CORTEX的STM32的三相电能表方案

[复制链接]
iwqt1983 发布时间:2015-1-8 09:27

  一、关于CORTEX-M3与STM32

  最新一代ARM v7内核,命名为Cortex,同ARM7/9/10/11相比在架构上有了革命性突破。它采用高效的哈佛结构三级流水线,达到1.25DMIPS/MHz,在功耗上更是达到0.06mW/MHz。Cortex-M3使用Thumb-2指令集,自动16/32位混合排列。单周期的32位乘法以及硬件除法器,保证Cortex-M3的运算能力有大幅提高,Cortex-M3包含嵌套向量中断控制器NVIC,中断响应速度最快仅6周期,内部集成总线矩阵,支持DMA操作及位映射。

  STM32系统按性能分成两个不同的系列:STM32F103“增强型”系列和STM32F101“基本型”系列。增强型系列时钟频率达到72MHz,是同类产品中性能最高的产品;基本型时钟频率为36MHz,以16位产品的价格得到比16位产品大幅提升的性能。

  二、基于STM32的电能表方案

  根据电能表的功能和误差精度的需求,我们选用了STM32F103xx,最高工作频率为72MHz。

(三)AD73360与STM32的接口


. E/ \: d2 u" B8 P

  为了尽量少的占用CPU时间,需要使用STM32内部的硬件SPI和DMA单元实现数据传输,而STM32的内核根据DMA的传输结果来批量获取基础数据并启动数据处理程序。硬件连接关系如图4所示。


, D' D( M/ D/ e7 M" o, c' F

5 h, M# [& _" z* G6 |+ [

  在STM32的硬件设置程序中,需要关闭SPI的所有中断,设置SPI为从模式,并选取一个DMA通道与之协同工作,自动将SPI从模式收到的数据保存在指定的内存地址。为了令AD73360正确采集数据,还必须根据使用要求配置AD73360的内部寄存器,令AD73360处于数据模式并主动向STM32发送采样数据。

  三、主要电能参量的计算

  AD73360是固定周期采集,我们使用的是150Hz或160Hz,即每周期采集150/160点,为此AD73360采用的时钟是6.000MHz或16.384MHz,系统中对AD73360的配置为DMCLK分频因子为2048。AD73360是差分采集,很方便进行过零点检测和直流分量调节,以保证信号幅度对称,从而减小系统误差。

  电压测量(有效值)计算式:

  C/ p5 I$ H1 X4 j+ }8 R4 M$ f

  式中:U-电压有效值,n-每周期采样点数, uk —电压采样值

  电流测量(有效值)计算式:

! g0 c% w: _: L- W

  式中:I-电流有效值,n-每周期采样点数, ik-电流采样值

  在得到的电流电压有效值基础上计算出总功率S通过对时间积分的电流电压积得到有功功率P,无功功率Q是总功率S与有功功率P之差,功率因数是有功功率P与总功率S的比。

  对于单器件和三相四线星形负载的有功功率和无功功率的计算汇总如下:

  单元件有功功率计算式:

: q+ r: F# g* Y8 j

  式中: P-单元件有功功率,n-每周期采样点数, uk-元件上电压采样值, ik-元件上电流采样值

  单元件无功功率计算式:

, A3 s# o) j5 [+ @0 w% f5 ]' t. C

. t0 d" d% r$ a: v9 T4 @3 l! w; P9 b6 ^


. p  ], _! A# [5 O. `) L5 |

  (一)采集数据处理与计算

  在实际应用中,电力信号通过互感器采集到电能表中,通过一个6通道16位模拟前端处理器(AD73360)进行A/D转换,转换成数字信号并传输到STM32中。AD73360是6通道同步采样的Σ-ΔADC器件,它内置了基本型电压基准及通道内置独立的PGA,通过调整通道PGA可以获得合适的动态范围从而保证微弱信号的计量精度。


% R2 Q5 B! h# S8 z- T


& P6 N  N( T5 z" m

  电压电流输入信号首先需要RC滤波网络滤波和数据采样,然后进行A/D转换。AD73360有独立的时钟源,可配置为自动数据采集与发送模式,通过SPI总线不断的将数据传向STM32。STM32内的Cortex-M3内核对输入的数字信号进行处理,完成数字滤波,过零点检测,得到基本的电流电压数据,经过时间积分计算和转换得到相应的电能计量。

  (二)采样电路和滤波网络

  由于被采样信号为高电压信号和大电流信号,我们需要对被采样信号做高保真转换为双极性的电压信号以便用AD电路离散化处理,我们需要令输入信号位于AD73360的动态范围的正中。采用的方法是:定义ADC工作电压为5伏,选择参考电压2.5伏,将AD差分输入的负端直接接到参考电压输入,差分输入的正端接被测信号。电路分析可以参照图三:

* y+ K4 l; N- `+ f, _6 O2 T

. F! v6 e" D7 d. G9 N  E

四、非线性失真的补偿与修正


9 ~9 m, ?% S* V- S: f& t

  电信号采集过程中可能存在的电磁元件会造成采集信号和实际信号之间的相位失真以及线性失真。为了补偿和修正这些失真带来的误差,还需要使用分段矫正和补偿的方法。

  线性度补偿参数和相位补偿参数的获取方法如下:

  1、零偏校准:令所有通道输入为零,分别记录各通道零点位置。

  2、电压校准:令所有电压通道输入值为标准电压值220V(RMS),记录各相电压校准参数。

  3、电流校准:令所有电流通道输入值为分界点电流,记录各通道小电流测量段校准参数。再令所有电流通道输入值为最大值,分别记录各通道大电流测量段的校准参数。

  4、相移校准:分别令电流电压通道输入相位相差60度感性,并且电流通道的电流值处于相位补偿段的中间点,并根据有功电能误差来求取该补偿段的相位补偿参数。

  5、求取的全部补偿参数存储在非易失存储器中。


& U, p& G) M+ V  N7 B
: t( U% F2 C* z% u# f6 X; N  e$ Q, c
收藏 3 评论10 发布时间:2015-1-8 09:27

举报

10个回答
zhoupxa 回答时间:2015-11-19 08:55:22
本帖最后由 zhoupxa 于 2015-11-19 08:57 编辑 , w! n5 Z7 g& z* b! X6 [. R( l' V% N

7 h7 _2 @( L# d4 z使用这种方案并没有突出STM32 ARM MCU的优势,这里的MCU可以用很多其他单片机取代;9 Q4 c+ W. s, K6 N
可以通过对电力线路电压、电流信号进行简单调理,采用具有多通道12位ADC的STM32 ARM MCU芯片实现交流直接采样,然后再通过软件计算有效值、功率因数、频率、功率、电能等参数......
iwqt1983 回答时间:2015-1-8 09:27:57
希望设计思路对大家以后的设计有所帮助。
拼命三郎 回答时间:2015-1-9 12:40:18
不错不错  支持一下
wendy8888 回答时间:2015-2-12 14:26:25
有没有参考程序?
wyxy163@126.com 回答时间:2015-2-12 14:59:51
提示: 作者被禁止或删除 内容自动屏蔽
wendy8888 回答时间:2015-2-13 08:32:00
有否软件,源码?
damiaa 回答时间:2015-2-13 09:30:50
谢谢分享 电表
wangzhenassd 回答时间:2015-11-18 20:19:57
谢谢分享!
peter001 回答时间:2015-11-18 23:47:54
不错,支持一下
电子汪 回答时间:2015-11-23 09:12:26
顶一下  学习了

所属标签

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版