请问单片机实现电量算法
我用定时器中断采集ad转换的电流,然后累加积分,请问这个算法有多大的误差, 我的ad误差可以保证1mv,
你好,不知道你说的累加积分是怎么个算法?是累加求均值吗?
怎么是求均值呢,我是定时器1s采集一次adc转换的电流,然后用一个变量保存累加,
eg:
void timer0_IRQ() { //清除中断标志位 //1s中断赋初值 //变量++ if(timer0_v++=200)//1s时间到 { timer0_v=0; adc_Q+=adc_sort(2); send_char(adc_Q);//发送给串口 已经充进多少电量 } }
这个意思啊,那这应该是叫累加,去掉积分更容易理解一点。这样去计算充进去多少电以前没见过,你怎么判断它充满电?能不能把你的应用在详细说一下,给电池充电还是其他什么的,不是很清楚
我就是想知道电量计芯片里面是如何精确计算出容量的,我现在也只是有这么一个思路,当然呢,我说的积分没错的,如果我把定时中断是设置成10ms的话,那么我就是10ms采集一次adc转换,然后累加除以100,就是一秒内充进多少电量。大致就是这么回事,
请问电流积分算法和阻抗追踪是一个概念吗?
高精度的ADC只是电量计的一个条件,但是最关键的是电量计算的算法。电量计算法时非常复杂的,尤其考虑到温度,负载,老化自放电等因素影响。电流积分是相对比较简单的方式,没有对这些因素进行很好补偿,在电流积分基础上改进的有CEDV算法,阻抗跟踪算法时结合了一些电压查表和电流积分的一些思想,引入了阻抗的概念,这个专利算法能够保证各种情形下的良好精度。阻抗跟踪算法的介绍文档 http://www.ti.com/lit/pdf/slua450
我现在就只需要电流积分算法实现电源对锂电池充进容量的估算,精度在10%都可以,请问有什么好的参考文献吗。或者代码,万分感谢
目前没有相关代码提供,另外10%的误差如果是常温新电池还是可以实现,但是如果考虑老化低温动态负载实际上非常有挑战性的,不是那么容易做到的。
TI的电量计都是将算法集成在芯片内部,客户不需要参数算法计算。