使用Arduino的能量计算



如果我有功率、电流、电压值,我如何计算准确的能量

这是能量计算的代码,结果是错误的,所以我如何修复

我想测量表观能量,我对V,I,p值没有问题

if(millis() >= energyLastSample + 1)                                                
{
energySampleCount = energySampleCount + 1;  
energyLastSample = millis(); 
}
if(energySampleCount >= 1000)
{                                                       
apparent_energy_l1 = apparent_power_l1/3600.0;                                            
finalEnergyValue_l1 = finalEnergyValue_l1 + apparent_energy_l1;

apparent_energy_l2 = apparent_power_l2/3600.0;                                            
finalEnergyValue_l2 = finalEnergyValue_l2 + apparent_energy_l2;

apparent_energy_l3 = apparent_power_l3/3600.0;                                            
finalEnergyValue_l3 = finalEnergyValue_l3 + apparent_energy_l3;

//  Serial.print(finalEnergyValue,2); 
//  Serial.println("test"); 
energySampleCount = 0 ;                                                           
}
energy_total=  finalEnergyValue_l1+finalEnergyValue_l2+finalEnergyValue_l3;
}

关于使用Arduino或任何微控制器进行功率计算的一些提示,开源代码或项目,解决我的问题的指导方针

请注意,能量(W x t(是功率随时间变化的度量,而功率是功的度量,这意味着你不能简单地将功率除以3600(这将是从秒转换为小时的因子(来获得能量值。功率(W(是对设备当前工作量的测量。如果你想计算设备消耗的能量,你必须连续测量功率,例如以1s为间隔,并将其添加到计数器中。然后你有一个值,它代表W-瓦特秒。然后,您可以根据该值计算消耗的Wh。

示例:您的设备耗电300W。你让这个设备运行整整3个小时。如果按说明测量每秒的功耗,则测量值为3240000瓦。3240000瓦/3600=900Wh/1000=0.9千瓦时。当然,您可以更改测量间隔,以满足您在准确性方面的需求。

伪码:


if ( millis() >= lastmillis + 1000 )
{
lastmillis = millis();
wattseconds = wattseconds + power; #increment energy counter by current power
kilowatthours = wattseconds / 3600000; 
print(kilowatthours)
}

当然,您可以使用带有外部RTC的1秒中断来获得更准确的计时。

相关内容

  • 没有找到相关文章

最新更新