Bagaimana saya bisa tahu berapa banyak jus baterai LiPo masih ada di dalamnya?

17

Misalkan saya memiliki sirkuit yang mengambil daya dari Baterai LiPo. Saya ingin tahu berapa daya baterai yang masih ada di dalamnya. Idealnya rangkaian level daya ke tegangan akan menjadi yang terbaik .. dengan cara ini saya dapat menghubungkan output dari rangkaian tersebut ke input ADC di Arduino saya.

ppvi
sumber

Jawaban:

17

Sejujurnya, jika Anda berhasil menemukan cara untuk melakukan ini dengan andal, hanya mengukur voltase, dan mematenkannya, maka Anda tidak akan pernah harus bekerja lagi. Energi yang tersedia yang tersisa di baterai secara longgar terkait dengan tegangan terminal tetapi juga tergantung pada suhu baterai.

Metode umum untuk menentukan status pengisian baterai adalah menggunakan penghitung coulomb untuk menghitung biaya masuk dan keluar sel. Ini memberikan perkiraan yang lebih baik dari kondisi pengisian baterai, meskipun energi aktual yang tersedia masih tergantung suhu. Pada suhu rendah kapasitas baterai bisa kurang dari 50% dari nominal. Perangkat contoh adalah ST STC3100 . Ini menggunakan antarmuka I2C untuk berkomunikasi dengan prosesor. Penghitungan coulomb dilakukan dengan mengintegrasikan arus masuk dan keluar sel selama siklus pengisian / pengosongan. Jika Anda tahu kapan baterai sudah penuh maka Anda dapat memperkirakan jumlah muatan yang telah digunakan.

kamu
sumber
3
Saya pikir Ian memaku yang ini. Jika Anda mencari peretasan yang lebih mudah, tetapi kurang akurat, Anda dapat menggunakan pintasan saat ini. Ini adalah resistor yang sangat rendah, sangat presisi (katakanlah, 0,1 ohm) yang Anda masukkan secara seri dengan baterai Anda. Anda kemudian dapat menggunakan Arduino untuk mengukur tegangan baterai dan perbedaan voltase di shunt. Cicipi yang ada di 10 Hz, dan Anda dapat menghitung daya instan. Lacak itu dari waktu ke waktu, dan saya yakin Anda bisa mendapatkan 10% dari nilai sebenarnya jika beban dan suhu Anda cukup konstan.
pingswept
2
Saran ini secara efektif menggulung versi Anda sendiri dari penghitung coulomb. Masalahnya adalah bahwa Anda harus menambahkan pemindahan level sinyal analog dan amplifikasi ke tegangan shunt resistor sehingga sinyal analog berada dalam rentang tegangan input ADC dan mencakup rentang wajar rentang tersebut.
uɐɪ
@Ian: Fakta sebenarnya. Mungkin perlu penyaringan noise juga.
pingswept
@pingswept Kalman filter akan sangat bagus di sana
NickHalden
@ James, ada banyak kemungkinan penaksir di luar sana (Kalman Filter, Extend Kalman Filter, teknik prognosis, pengamat mode geser, dan seterusnya). Itu semua tergantung pada model rangkaian yang Anda gunakan untuk memperkirakan perilaku tegangan baterai, menemukan nilai parameter rangkaian, dan melacaknya dari waktu ke waktu. Masalahnya adalah, semakin akurat modelnya, semakin tahan noise, dan semakin tidak termodelkan karakteristik yang Anda coba pertanggungjawabkan, maka semakin banyak daya CPU dan data yang diperlukan.
Joshua
2

Masalah besar adalah bahwa tegangan output tetap cukup datar untuk sebagian besar waktu. Jadi, kecuali Anda memiliki A / D yang sangat bagus, Anda tidak dapat memantaunya secara langsung. Itulah sebabnya laptop dan sejenisnya cenderung menggunakan jam untuk mengukur daya yang tersisa.

Grafiknya cukup mudah ditemukan jika Anda mencari "kurva debit baterai"

http://shdesigns.org/batts/battcyc.html

Ron
sumber
1

Apa yang saya lakukan sekarang pada baterai besar yang terdiri dari banyak sel Lipo adalah sebagai berikut. Saya pertama kali mengisinya (lihat lembar data sel untuk tegangan maksimum). Selanjutnya saya akan menguras baterai dengan resistor besar sementara menggunakan penjepit saat ini terhubung ke ruang lingkup serta mengukur tegangan baterai. Ada catu daya secara paralel dengan baterai dinilai pada tegangan cutoff untuk baterai sehingga saya dapat meninggalkan pengaturan untuk menguras baterai sampai titik di mana tidak dianjurkan untuk melangkah lebih jauh. Dengan cakupan (beberapa kebetulan, tidak tahu model) saya dapat merekam arus dari waktu ke waktu, dan dengan demikian menentukan kapasitas. Ketika kapasitas ditentukan, saya akan mencatat arus dan tegangan secara konstan ketika sedang digunakan, dan dengan demikian saya dapat lebih akurat menemukan muatan yang tersisa.

Erik
sumber
0

Jawaban ini terlalu bagus .

Saya menemukan solusi komersial lebih murah.

Di lab Anda, jika Anda dapat mengukur beban perangkat, Anda tidak perlu memasukkan meteran biaya di dalamnya.

Misalnya: skema beban daya sederhana

state       load
--------------------
standy      0.1 A
full on     1 A

Jika Arduino memerintahkan kedua negara - atau dapat membacanya, data digital - bingo.

Arduino menghitungnya dan menambah dua penghitung ini: waktu dalam keadaan siaga, waktu penuh.

Matematika mudah untuk menghitung berapa banyak jus yang dihisap perangkat Anda dari baterai.

Massimo
sumber
Ini mengasumsikan beban perangkat Anda tetap dan dapat diprediksi.
Connor Wolf
Diasumsikan beban rata-rata hampir tetap, katakan + - 5%. Biasanya ini dapat diterima, karena lebih sederhana dan lebih murah daripada pengukuran biaya adc penuh. Jika ada kebutuhan untuk ukuran yang tepat, masukkan lebih banyak waktu dan uang.
Massimo