PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Allgemeine Frage zu RC-Tiefpass & Strommessung



Cairol
23.07.2008, 13:33
Ich hab mir zur Strommessung eines PWM-gesteuerten Motors einen RC-Tiefpass zusmammengesteckt und bin beim Ergebnis der Spannungsform etwas unschlüssig ob das jetzt brauchbar ist um es mit einem ATMEGA über den ADC einzulesen und den tatsächlichen Strom einigermaßen genau zu berechnen.
Ich verwende so einen Tiefpass zum ersten mal und für mich sieht das ziemlich "groggy" aus... :-s

Am Anhang hab ich 4 Bilder vom Oszi:
Die PWM-Frequenz liegt bei 2 kHz und der RC-Tiefpass hat fg=256 Hz mit R=6,2kOhm und C=100nF. Hier liest man ja öfters was von "ca. Faktor 5-10 niedrigere Grenzfrequenz als die PWM-Frequenz" für den Filter.
Bei mir wäre es jetzt Faktor 8.
PWM-Rate ist auf 50% eingestellt.
Erzeugt wird die PWM von einem RN-Control mit dem L293D-Motortreiber.

1. Bild: Motor-Last nach dem RC-Filter gemessen
2. Bild: Motor-Last direkt am PWM-Ausgang gemessen
3. Bild: rein ohmsche Last nach dem RC-Filter gemessen
4. Bild: rein ohmsche Last direkt am PWM-Ausgang gemessen

Wäre nett, wenn mal jemand die Bilder anschaut und mir mitteilt ob das ein "Normales" Ergebnis ist von der Wellenform her, so dass man (evt. mit Aufnahme mehrerer Messwerte und anschließender Mittelung) zu einem brauchbaren Ergebnis kommt.

Gruß,

Cairol

Gock
23.07.2008, 14:07
Sämtliche fehlenden "Achsenbeschriftungen" machen einen Vergleich der Bilder nicht einfacher. Allerdings sollte ein gut gefiltertes Signal wesentlich anders aussehen. Die Flankensteilheit der gefilterten Signale ist noch zu hoch und die Unterschiede innerhlab des Signals scheinen zu gravierend für eine Messung.
Bist Du sicher, dass Du richtig angestöpselt hast?
Wähle wenn möglich eine wesentlich tiefere Grenzfrequenz.
Gruß

Cairol
23.07.2008, 15:22
Die Spannung vor dem L293D war 10V. Bei 50% PWM und den Verlusten im Treiber kommen unbelastet noch ca. 4 V raus.

Zeiteinteilung war bei allen Messungen auf 0,2 ms/DIV eingestellt.
Die Spannungseinteilung war - bis auf Bild 3 auf 2V/DIV eingestellt.
Bei Bild 3 (Ohmsch - nach RC) auf 0,1 V/Div.

Die Messschaltung ist im Anhang.
Bitte nicht wundern über den 15 Ohm-"Shunt". Bei den messungen mit Motor hab ich einen verwendet, der nur ca. 20 mA im Leerlauf zieht. Normal nehm ich den Shunt schon "etwas" kleiner... O:)

Gock
23.07.2008, 15:32
Wenn PWM- auf Masse liegt, dann sollte das prizipiell funktionieren. Ansonsten kommt es darauf an, was zwischen PWM- und Masse hängt. Falls da noch was dazwischen hängt, brauchst Du einen Differenzverstärker, in den könntest Du auch einen Tiefpass integrieren.
Gruß

Cairol
23.07.2008, 15:59
Wenn das PWM aktiviert ist, liegt der Anschluss den ich mit PWM- bezeichnet habe, auf Masse.

Ich leg den Tiefpass nochmal neu aus und geh dabei noch tiefer mit fg.
Melde mich wahrscheinlich morgen wieder.

Besserwessi
23.07.2008, 17:14
Das Problem ist, das PWM nicht die ganze Zeit auf Masse liegt. Das Signal ist also nur solange brauchbar, wie PWM Auf Masse liegt. Im Prinzip könnte das schon gehen, man müßte nur den AD Wandler mit dem PWM Signal Syncronisieren und nur in dieser Phase Messen. Die Alternative wäre ein Differenzverstärker.

Trotzdem sieht das gefilterte Signal etwas komisch aus, etwas so, als wäre die Grenzfrequenz des Filters doch höher als gedacht. Wenn man keine so schnelle Antwort braucht, kann man die Grenzfrequenz auch tiefer wählen.

Cairol
24.07.2008, 00:43
EDIT:
OK, ich glaub das wird so nix.
Ich hab jetzt den Tiefpass auf fg=23 Hz abgesenkt, aber das Ergebnis st ähnlich schlecht.

Wenn ich allerdings den Kondensator vom Tiefpass gegen die echte Masse lege und nicht an den 2. PWM-Anschluss, dann bekomme ich tatächlich eine ziemlich ordentliche Gleichspannung mit vernachlässigbarem Ripple.
So hätte ich es gerne...
Aber leider hab ich damit kein gemeinsames Bezugspotential mehr mit dem Shunt, so dass die Spannungen zwar glatt, aber nicht mehr nur vom Motorstrom abhängig sind - und damit nicht verwertbar.

Da ich für diesen Test das RN-Control benutze, kann ich natürlich nur NACH dem Motortreiber den Strom messen. In der Regel reicht es mir nämlich schon, den kompletten Stromvon Motortreiber & Motoren zusammen zu messen. Die paar mA vom Treiber fallen da nicht ins Gewicht oder man rechnet sie raus.

Wenn ich den Shunt und den RC-Filter bereits VOR dem Treiber in die Zuleitung lege, dann hab ich ja das selbe Bezugspotential, weil Treiber und Shunt dann gegen GND geschaltet sind.
Dann sollte das ja wie erhofft funktionieren, oder?

Das mit dem Differenzverstärker behalt ich mal im Hinterkopf - falls ich doch mal die Motoren separat nach dem Teiber messen will.
Vielleicht wäre es auch wirklich sinnvoll die PWM bei den nächsten Projekten selbst zu erzeugen und nicht den BASCOM-Befehl zu nehmen.

Ich danke euch schonmal bis hier her.
Sobald das Thema wieder akut wird - bei meinem nächsten Projekt - grab ich diesen Thread wieder aus.

Gruß, Cairol.

Besserwessi
24.07.2008, 17:31
Wenn man den Differenzverstärker dadurch umgehen will, das man nur ausließt, wenn der eine PWM Ausgang auf masse ist, darf man keinen Teifpass geggen Masse benutzen. Ein Tiefpass gegen GND würde ja die Störungen aus der Zeit wenn das Signal nicht gültig ist mit dem gültigen Signal vermischen. Man hat aber immer noch das Problem, das man so nur jeweils für eine Drehrichtung auslesen kann.

Die Signale mit dem Tiefpass sehen aber auch noch etwas so aus als wäre da noch etwas nicht ganz in Ordnung. Es ist leider nicht mal klar zu erkennen in welcher Phase der PWM-Ausgang gerade auf Masse ist. Es würde etwas helfen wenn man nicht gerade 50% PWM Verhältnis, sondern z.b: 30% oder 70% nimmt.

Wahrscheinlich wäre es auch einfacher den Strom ähnlich wie beim L293 üblich an der GND Leitung zu messen. Man hat da zwar noch ein Bischen Basisstrom vom Treiber mit drin, aber das ist ein eher kleiner Fehler.

shaun
25.07.2008, 10:02
Was liegt denn da nun zwischen "PWM-" und "Masse"? Ein weiterer MOSFET, der die PWM-Stufe zuschaltet? Was auch immer, der Spike am Anfang des "gefilterten" Signals hätte mich sogar eine bloß ungünstig angeklemmte Masseleitung des Oszis nicht ausschliessen lassen (ok, bei 1k Last weniger das Problem), aber wenn da sogar konzentrierte Bauelemente zwischen liegen ist es natürlich Essig mit Massebezug. Kannst Du den nicht irgendwie herstellen? Muss da unbedingt was zwischen PWM- und der echten Masse liegen?

@besserwessi: kann eine Drehrichtung schreiben, oder wieso liest man die aus? Sorry für Korinthenkacken, aber ich habe mich drei Jahre zu intensiv mit dem Auslesen von gespeicherten Daten beschäftigt, als dass ich jegliches Abfragen und/oder Interpretieren von "Echtzeitinformationen" als Auslesen bezeichnet dulden könnte ;)

Cairol
26.07.2008, 01:13
Also was da "dazwischen" liegt, kann ich nicht sagen.
Das ist Einfach der L293D-Motortreiber der von einem Microcontroller das PWM-Signal bekommt.
"Theoretisch" liegt der eine Pol des PWM-Ausgang auf Masse wenn die PWM aktiviert ist, aber auf dem Oszi sieht man trotzdem einen Spannungswert != 0 und eine nicht ganz reine, DC-artige Form.

Das mit dem Masseanschluss zwischen Oszi und Board war schon OK, das hab ich direkt an einen GND-Pin des Boards angeschlossen und dort war das Signal wirklich störungsfrei 0.

Besserwessi meinte wohl "auslesen" in dem sinn, dass ich die Spannung die ich vom RC-Filter abnehme auf den AD-Wandler des Microcontrollers gebe und den Wert dort "einlese" oder eben aus dem RC-Filter "auslese".
Ich denke das kann man schon so "rennen lassen"... ;)