Akku laden - Wirkungsgrad in C einfügen

OP #4331948
Lesenswert?
• ▲
▼
Bei einem momentan laufenden Projekt messe ich über den DS2740 den 
Akkustand aus. Über diesen Chip kann man den Strom in einer 14-Bit 
Auflösung auslesen, daraufhin wird vom Chip die Kapazität eigens 
umgerechnet. Beim Entladen funktioniert ja alles toll- mein Problem ist 
jetzt nur das Laden, da gibts nämlich einen kleinen Wirkungsgrad von 0,8 
sagen wir mal.
Ich kann das Register für die Kapazität nach Belieben beschreiben wann 
ich will, allerdings stellt sich mir die Frage, WIE?

Ich messe alle 5 sek die Kapazität und den Strom. Je nach Sign Bit kann 
ich nun sagen, ob gerade Strom und oder aus dem Akku fließt.

Allerdings geht es nicht, dass ich sage:

(if SignBit == 1)
{
   capacity = capacity*0.8;          //rechne Wirkungsgrad 0.8 ein
   overwrite_capacity_register();    //überschreibe Register mit richt. 
Wert
}

Wie macht man das? Rechnet man die Differenz von altem und neuen Wert 
der Kapazität aus, multipliziert sie mit 0.8, rechnet sie zum alten Wert 
dazu und überschreibt diesen? ich habe gerade echt keine Ahnung wie ich 
das machen könnte, dass das zu 100% passt.

Danke für eure Hilfe,
Flo
Persönliche Seite #4332789
Lesenswert?
• ▲
▼
Florian G. schrieb:
> overwrite_capacity_register

Was ist denn ein capacity_register?

Im Datenblat steht ein "Current Register" und ein "Accumulated Current 
Register", kein  "Capacity Register".

Alles andere macht (wie Karl Heinz bereits schrieb) keinen Sinn. Jeder 
Akku hat eine andere Kapazität. Die kann man mit dem DS2740 wunderbar 
messen, aber nicht einstellen oder gar vorgeben.

Ich bin daher gerade dabei, jedem Akku einen Barcode aufzukleben. Aber 
das ist ein anderes Thema.
#4332874
Lesenswert?
• ▲
▼
Ich würde es so versuchen:
Beim Wechsel SignBit 0 -> 1 : start_cap=capacity
Beim Wechsel SignBit 1 -> 0 : capacity = 0.8*(capacity - start_cap) + 
start_cap

Um welchen Akkutyp handelt es sich? Nixx oder PB?
Zu hundert Prozent passen wird es nie weil der Wirkungsgrad von vielen 
Parametern abhängig ist. Als grobe Richtlinie passt es aber.

In regelmäßigen Abständen musst du bei Erkennung des 
Ladeabschaltkriteriums aber deine "capacity" mit der zur Verfügung 
stehenden Akkukapazität überschreiben. Die Akkukapazität kannst du dabei 
eigentlich nur aus einem kompletten Entladezyklus ermitteln.
Falls man nie einen kompletten Zyklus hat um den aktuellen Wert 
zuermitteln muss man die Kapazität abschätzen. z.B. Nennkapazität - (x 
mAh pro Ladezyklus) - (y mAh pro Jahr). Kommt halt immer darauf an wie 
genau man es haben will.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.