|
这是 这个论坛的一段代码;
#define Vu 0.190 //电压通道采样电压
#define Vi 0.003 //电流通道采样电压
#define Un 220 //额定电压
#define In 4.15 //额定电流
#define Meter_G 1.163 //ATT7022E常数
//#define Meter_HFConst ((2.592*1E10*Meter_G*Meter_G*Vu*Vi)/(In*Un*Meter_Ec))
#define Meter_HFConst ((2.592*pow(10,10)*Meter_G*Meter_G*Vu*Vi)/(In*Un*Meter_Ec))
#define Meter_K (2.592*pow(10,10)/(Meter_HFConst*Meter_Ec*pow(2,23)))
if(ADataTypeDef.P>0x800000){
ADataTypeDef.Rp=0x1000000-ADataTypeDef.P;
ADataTypeDef.Rp=-((ADataTypeDef.Rp*Meter_K*fabs(PhaseA.I_Amp_Factor)*fabs(PhaseA.V_Amp_Factor))\
-((ADataTypeDef.Rp*Meter_K*fabs(PhaseA.I_Amp_Factor)*fabs(PhaseA.V_Amp_Factor))*PhaseA.P_Gain_compensation)); // 2^15/2^23
}
else
ADataTypeDef.Rp=(ADataTypeDef.P*Meter_K*fabs(PhaseA.I_Amp_Factor)*fabs(PhaseA.V_Amp_Factor))\
-((ADataTypeDef.P*Meter_K*fabs(PhaseA.I_Amp_Factor)*fabs(PhaseA.V_Amp_Factor))*PhaseA.P_Gain_compensation);
if(ADataTypeDef.Q>0x800000){
ADataTypeDef.Rq=0x1000000-ADataTypeDef.Q;
ADataTypeDef.Rq=-((ADataTypeDef.Rq*Meter_K*fabs(PhaseA.I_Amp_Factor)*fabs(PhaseA.V_Amp_Factor))\
-((ADataTypeDef.Rq*Meter_K*fabs(PhaseA.I_Amp_Factor)*fabs(PhaseA.V_Amp_Factor))*PhaseA.P_Gain_compensation));
}
else
ADataTypeDef.Rq=(ADataTypeDef.Q*Meter_K*fabs(PhaseA.I_Amp_Factor)*fabs(PhaseA.V_Amp_Factor))\
-((ADataTypeDef.Q*Meter_K*fabs(PhaseA.I_Amp_Factor)*fabs(PhaseA.V_Amp_Factor))*PhaseA.P_Gain_compensation);
ADataTypeDef.Rs=ADataTypeDef.S/256.0;
ADataTypeDef.Rurms=ADataTypeDef.URms/8192.0*PhaseA.V_Amp_Factor; // 2^10/2^23
完全不知道哪是哪
手册上说数据是补码形式:
不是取反加1么? 什么时候是这个意思了
手册的其他地方又写:
大于2^13就又怎样怎样算,
他娘的表示一个数据就非要搞得让地球人都没法看懂么?
名称一大堆
什么电表系数
电表系数参数
电表功率参数
。。。。。。。。。。。。。
不知所云
谁能告诉我怎么算 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
阿莫论坛20周年了!感谢大家的支持与爱护!!
月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!
|