mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Zeitkonstante - ich kann wohl nicht rechnen...


Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

folgendes Problem:

ein C mit 47nF wird über einen Widerstand von +Ub 5V aufgeladen.
Das C hängt am Analogcomparatoreingang AIN1 (-) eines tiny2313, AIN0 (+) 
ist auf die Bandgap-Spannung gesetzt (1,23V).

Counter 1 läuft (im Moment) ohne Vorteiler. Ich suche den rechnerischen 
Zusammenhang zwischen Widerstandswert und Zählerstand, wenn der 
Comaprator den Capture auslöst.

Zeitkonstante ist ja klar, aber wie berechnet sich die bei Ladespannung 
5V bis zum Erreichen der 1,23V???

Ich könnte es von Capturewert zurückrechnen, da die ganze Sache aber 
noch ein paar Ungenauigkeiten hat, ist mir das erstmal zu unzuverlässig.

Letztlich soll das Ding Widerstände messen, nicht sonderlich genau, nur 
zum Sortieren von Standardwerten.

Hat da jemand die passende Formel zur Hand?

Danke im voraus.

Gruß aus Berlin
Michael

Autor: ??? (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@???: naja, da bin ich durchaus vorbeigewandert...
Mein Problem ist eher, daß meine Schulzeit schon knapp 40 Jahre her ist 
und ich mir schon an der Umstellung der Formel etwas die Ohren breche 
und einfach hoffe, jemand hat das "mal schnell" drauf.

Rs muß doch eine halbwegs einfache Näherung zwischen Widerstandswert und 
Zeit unter den gegeben Umständen geben oder irre ich mich da schon?

Gruß aus Berlin
Michael

Autor: Currywurst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Näherungsweise kannst du ja "Tau" verwenden. Also R mal C. Tau ist die 
sogenannte Zeitkonstante die z.B. angibt wann dein Kondensator zu 63% 
geladen ist. Das ganze ist zwar eine Expotentialfunktion aber du kannst 
bis zum Zeitpunkt Tau durchaus einen linearen Zusammenhang von Spannung 
und Zeit annehmen. Ist zwar mathematisch nicht richtig aber du hast eine 
einfache Näherung zum Kopfrechnen.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Eine Näherungslösung ist diese:

Der Widerstand R, könnte zum Beispiel 10 kOhm sein, liegt während des 
Aufladevorgangs im Mittel an etwa 4,4 V. Anfangs 5,0 V, am Ende 3,77 V.

Dann ist der Strom durch R gleich 4,4 V / R, hier also 0,44 mA.

Mit dem Strom wird Dein C aufgeladen. Q = C * U, also die Ladung des 
vollen Kondensators ist 47 nF * 1,23 V = 57,8 nC.

Diese Ladung muss der Strom nun liefern. Q = I * t, also t = Q / I.
57,8 nC / 0,44 mA = 131 us.

Mit anderen Werten für R ganz ähnlich.

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Könnte mal jemand meine Ableitung kontrollieren

(d ist das Tau vom Wiki Artikel)


U(t) = Umax * ( 1 - e^(-t/d))

U(t) / Umax = 1 - e^(-t/d))

U(t) / Umax - 1  =  -e^...

1 - U(t)/Umax = e^(-t/d)

ln( 1 - U(t)/Umax ) = -t/d

d = ln( 1 - U(t)/Umax ) / -t       | d = R * C



R = ln( 1 - U(t)/Umax ) / (-t*C)

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@Currywurst: das ist ja gerade mein Problem...
Tau sagt mir zwar, wann der C auf 63% aufgeladen ist, also auf 3,15V.

Mein Problem ist nun, sozusagen "Tau" für 1,23V zu bestimmen.
Weil es eine Exponetialfunktion ist, verzweifle ich daran etwas.

Es müßte doch ein R  C  x gegen, bei dem x der Faktor ist, der nahe 
genug an 1,23V (24,6%) rankommt. Ich bekomme es aber irgendwie nicht 
gebacken.

Gruß aus Berlin
Michael

Autor: Andrew (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>d = ln( 1 - U(t)/Umax ) / -t

müsste doch d = -t / ln(1-U(t)/Umax) heißen, oder? Also Zähler und 
Nenner vertauschen.

Autor: yalu (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
So sollte es stimmen:

Ub ist die Betriebsspannung mit der der Kondensator geladen wird, Uref 
die
Spannung, an der der Komparator anspricht, tau die Zeitkonstante RC.

Ah, endlich konnte ich die [math]-Funktion des Forums einmal sinnvoll 
anwenden :)

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Andrew wrote:
>>d = ln( 1 - U(t)/Umax ) / -t
>
> müsste doch d = -t / ln(1-U(t)/Umax) heißen, oder? Also Zähler und
> Nenner vertauschen.

Ja du hast recht
(ich hatte vorher nach t aufgelöst, bevor ich gemerkt habe,
dass wir ja eigentlich nach R gehen und ich das R über d kriege)

d = -t / ln( 1 -U(t)/Umax)

für d einsetzen

R * C = -t / ln( .... )

               -t
R =  ------------------------
      C * ln( 1 - U(t)/Umax)

Aber das muesste es jetzt sein.

klingt auch plausibel:
Je länger die Zeit, desto größer war der Widerstand
da 1 - ...  kleiner 1 ist, ist der ln davon negativ,
daher muss t auch negativ sein, damit der Bruch positiv
wird.

Autor: Andrew (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also:

R = -t/[C*ln(1-U(t)/Umax]

und mit eingesetzten Werten:

R= 7.535 * 10^7 * t

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@Tom: das sieht erstmal sehr interessant aus, zumal der Weg µC-günsig 
wäre. Das spiele ich mal durch.

@Karl heinz Buchegger: ich nicht. ;)))

Sind der Sache ist es, ohne Aufwand eine "Widerstands-Sortierhilfe" zu 
bauen. Ich kann also gewisse Restfehler entweder ignorieren, kann sie 
aus einer Tabelle kompensieren oder mit einer E-Reihe im Flash 
abgleichen.

Deshalb gefällt mir auf Anhieb auch Toms Ansatz so gut.

Gruß aus Berlin
Michael

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ihr seit einfach zu schnell. :)) Ich muß das wohl alles erstmal in Ruhe 
lesen. :)

Gruß aus Berlin
Michael

Autor: Karl Heinz (kbuchegg) (Moderator)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Michael U. wrote:
> Hallo,
>
> @Tom: das sieht erstmal sehr interessant aus, zumal der Weg µC-günsig
> wäre. Das spiele ich mal durch.
>
> @Karl heinz Buchegger: ich nicht. ;)))
>
> Sind der Sache ist es, ohne Aufwand eine "Widerstands-Sortierhilfe" zu
> bauen. Ich kann also gewisse Restfehler entweder ignorieren, kann sie
> aus einer Tabelle kompensieren oder mit einer E-Reihe im Flash
> abgleichen.
>
> Deshalb gefällt mir auf Anhieb auch Toms Ansatz so gut.

Wo hast du das Problem?
Falls du den Rechenprobleme befürchtest:

der ganze ln( ... ) ist eine Konstante, da U(t) ja
konstant ist ( = deine Comperator Spannung)

Aber: ist ok. Meine kleinen grauen Zellen brauchten sowieso
etwas Gymnastik :-)

Autor: Ralf W. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab hier bei Atmel das dazu gefunden:
http://atmel.com/dyn/resources/prod_documents/doc0942.pdf

Autor: Currywurst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>>Sind der Sache ist es, ohne Aufwand eine "Widerstands-Sortierhilfe" zu
>>bauen. Ich kann also gewisse Restfehler entweder ignorieren, kann sie
>>aus einer Tabelle kompensieren oder mit einer E-Reihe im Flash
>>abgleichen.

Ist die Spannung an der R liegt groß gegenüber den 1,25 Volt dann kannst 
du ja lineare zusammenhänge annehmen. Der Widerstand ist ja für einen 
fast konstanten Spannungsabfall eine fast konstante Stromquelle. Für das 
sortieren in einer E12 Reihe reicht es bestimmt. Nehme mal an die Zeit T 
bis zum erreichen von 1,25Volt ist proportional zu R. Bei bekannter 
Kapazität C ergibt sich ein fast linearer zusammenhang von T und R.  Der 
Rest ist Dreisatzrechnung und ausprobieren.

Autor: Andrew (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Er braucht doch keine lineare Näherung, die Rechnung ist auch mit der 
Exponentialfunktion einfach aufzulösen und endet in einer Multiplikation 
mit einer Konstanten.

Autor: Tom (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Er braucht doch keine lineare Näherung, die Rechnung ist auch mit der
> Exponentialfunktion einfach aufzulösen und endet in einer Multiplikation
> mit einer Konstanten.

Kommt aber das gleiche dabei raus.

Konstante von Andrew:   R= 7.535 * 10^7 * t
d.h. t = 132,7 us bei R = 10 kOhm

Die lineare Näherung ergibt 131 us für 10 kOhm.

Diese Konstante muss nun Grundlage für die Programmierung sein - egal 
wie  ermittelt.

Bei dem Projekt wäre noch zu bedenken, dass Kondensatoren große 
Toleranzen haben können. Damit wird die Messung sehr ungenau. Kann man 
aber durch Kalibrieren mit einem bekannten Widerstand rausrechnen.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@Tom: ok, das nehme ich dann mal, Danke nochmal an alle.

Alles daran hat Toleranzen, Bandgap-Spannung, Betriebsspannung, 
Kondensator. Wie Du schon richtig sagst, kann ich das dann aber mit für 
mich ausreichender Genauigkeit rausrechnen.

Gruß aus Berlin
Michael


Autor: GeraldB (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wegen der e-Funktion dauert es eigentlich unendlich lange, bis C voll 
ist. Für die Praxis nimmt man an, das C nach 5 Tau voll ist.

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi!
Einen Gedanken hätte ich noch. In Anlehnung an Tom, den Rx aber in einen 
Stromtreiber einsetzen und mit Konstantstrom laden. Die e-Funktion ist 
dann
komplett raus. t= C*dU/I (gerade um U0 rum wirkt die e-Funkt. doch 
heftig)
Wenn du den Stromtreiber geschickt aufbaust kann die gemessene Zeit 
direkt dem Rx zugeordnet werden.

Viel Erfolg, Uwe

.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

@GeraldB: der Fall tritt ja nicht auf. Ladespannung am Widerstand ist Ub 
des AVR, also 5V. Schaltpunkt ist die Bandgap-Spannung also rund 1,23V. 
Weiter wird nicht geladen, nach dem Capture wird das C erst über den 
Messwiderstand und dann durch L am AVR-Pin entladen.

Ist bei kleinen Widerständen und damit großen nötigen Kondensatoren für 
sinnvolle Capturewerte sowieso nahezu AVR-Mißhandlung...

@Uwe: Im Moment besteht der Testaufbau aus 4x 7-Segment im Multiplex mit 
Stellentriebern und Segmentwiderständen, dem Tiny2313, 2 Cs und den 
Meßklemmen. Wenn irgendwie möglich, will ich es dabei belassen, 
irgendwie bin ich gerade auf dem "Minimal-Trip". ;)))

Gruß aus Berlin
Michael

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.