为了尽量少的占用CPU时间,需要使用STM32内部的硬件SPI和DMA单元实现数据传输,而STM32的内核根据DMA的传输结果来批量获取基础数据并启动数据处理程序。硬件连接关系如图4所示。
在STM32的硬件设置程序中,需要关闭SPI的所有中断,设置SPI为从模式,并选取一个DMA通道与之协同工作,自动将SPI从模式收到的数据保存在指定的内存地址。为了令AD73360正确采集数据,还必须根据使用要求配置AD73360的内部寄存器,令AD73360处于数据模式并主动向STM32发送采样数据。
三、主要电能参量的计算
AD73360是固定周期采集,我们使用的是150Hz或160Hz,即每周期采集150/160点,为此AD73360采用的时钟是6.000MHz或16.384MHz,系统中对AD73360的配置为DMCLK分频因子为2048。AD73360是差分采集,很方便进行过零点检测和直流分量调节,以保证信号幅度对称,从而减小系统误差。
电压测量(有效值)计算式:
式中:U-电压有效值,n-每周期采样点数, uk —电压采样值
电流测量(有效值)计算式:
式中:I-电流有效值,n-每周期采样点数, ik-电流采样值
在得到的电流电压有效值基础上计算出总功率S通过对时间积分的电流电压积得到有功功率P,无功功率Q是总功率S与有功功率P之差,功率因数是有功功率P与总功率S的比。
对于单器件和三相四线星形负载的有功功率和无功功率的计算汇总如下:
单元件有功功率计算式:
式中: P-单元件有功功率,n-每周期采样点数, uk-元件上电压采样值, ik-元件上电流采样值
单元件无功功率计算式:
式中:Q-单元件无功功率,n-每周期采样点数, uk-元件上电压采样值, ik-元件上电流采样值(90度移相后)
三相四线三元件有功功率计算式: PΣ=Pu+Pv+Pw
式中: PΣ-三相有功功率,Pk -(k=u,v,w)各相有功功率
三相四线三元件无功功率计算式: QΣ=Qu+Qv+Qw
式中: QΣ-三相无功功率,Qk -(k=u,v,w) 各相无功功率