Forum: Mikrocontroller und Digitale Elektronik Anfangerfrage - Mit Ampere im Timer die entnommene Kapazität berechnen.


von Jens (Gast)


Lesenswert?

Hallo Zusammen,

ich habe einen kleinen Logger, über einen Widerstand messe ich die
Ampere (mit dem Multimeter verglichen, stimmt soweit).

In der Hauptschleife habe ich die Millisekunden, z.B.
1
1.006ms
2
1.043ms
3
1.080ms
4
1.116ms
5
1.153ms
6
...

und den aktuellen Amperewert z.B.
1
0,120A
2
0,290A
3
0,290A
4
0,280A
5
0,230A

Kann ich auch mit diesen Angaben die entnomme Kapazität (mAh) berechnen?
Wäre die Rechnung dann einfach (für den zweiten Durchlauf mit obigen 
Werten):
1
while(1) {
2
3
   // mah Berechnung
4
   mA = 0,290A / 1000; // 290mA
5
6
   // Vergangene Zeit in Stunden h
7
   h = (1.043ms - 1.006ms) / 1000 (sekunde) / 60 (minute) / 60 / (stunde) // 0,00001028
8
9
   mAh += 0,00001028 * 290mA;
10
}

Oder wird das grundsätzlich anders berechnet?
Sollte man hier einen Timer nehmen? Um für bessere Auflösung
mit festen (größeren) Zeitabschnitten rechnen...

* 0,00001028 erscheint mir schon etwas komisch :) hmmm

Vielen Dank & Viele Grüße
Jens

von Otto (Gast)


Lesenswert?

Das wird anders berechnet - Du musst die entnommene Kapazität pro 
Zeitintervall fortlaufend aufsummieren.

Otto

von Thilo M. (Gast)


Lesenswert?

Es kommt natürlich darauf an, wie schnell du auswerten willst. Für eine 
Anzeige muss man ja nicht einen 10ms-Wert berechnen, da genügt ein 
Intervall von 1s oder 0.5s (Timer-Interrupt verwenden).
Du musst den Messwert auf eine Stunde normieren, das wäre bei einem 
Intervall von 1s: Messwert/3600, bei 0.5s: Messwert/7200.
Diese normierten Werte addierst du stetig auf, wie Otto schon schrieb.

Wenn du mit einem µC rechnest, dann solltest du beachten, dass die 
Zahlen entsprechend klein, bzw groß werden können, was bei schnellen 
Berechnungen entscheidenende Rechenleistung kosten kann, je nach 
Anwendung.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

ich geh mal davon aus, dass der Code von dir nur Pseudocode sein soll 
(Zahlen mit Komma und Einheit..)

Dennoch muss die Berechnung von A auf mA nicht
mA = 0,290A / 1000; // 290mA

sondern
mA = 0,290A * 1000; // 290mA

sein.
1A = 1000mA, 1mA = 0,001A


Der Rest erscheint mir sonst soweit richtig (von dem allgemeinen 
Einheitenkuddelmuddel abgesehen). Wenn du mit Einheiten rechnest, dann 
bitte auch immer und überall.


Du summierst ja auf und multiplizierst mit der verstrichenene Zeit. Habt 
ihr beiden über mir eigentlich seinen "Code" gelesen? ;)

Gruß
Lasse

von Jens (Gast)


Lesenswert?

Hallo,

vielen Dank für die Antworten, @Lasse ja nur pseudocode...
ich versteh das Prinzip, müßte glaube ich das gleiche sein.
Mal schauen wir genau das wird ...;)

Jens

von Maxx (Gast)


Lesenswert?

Die einfache Integration wie du sie machst ist sicher okay und wird 
denke ich meistens so gemacht.

Wenn du nicht mit Mathe auf Kriegsfuß stehst und ein bissle was 
"Schöneres" (in Hinsicht auf einen geringeren Integrationsfehler) 
ausprobieren möchtest, schau dir mal Runge-Kutta-Verfahren an.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.