-         

Seite 1 von 3 123 LetzteLetzte
Ergebnis 1 bis 10 von 30

Thema: Motorstrom an L298 trotz PWM messen

  1. #1
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.07.2007
    Alter
    33
    Beiträge
    214

    Motorstrom an L298 trotz PWM messen

    Anzeige

    Ich hab da ein Poblem:
    Im Moment hab ich in meiner Schaltung einfach nur einen 0,27 Ohm-Shunt gegen Masse am "Sense A"-Pin vom L298 hängen und greife davor die abfallende Spannung zum ADC ab. Das rechne ich dann um in mA.
    Normalerweise würde das ja auch funktionieren - wenn da nicht das PWM wäre...
    Dadurch bekomme ich völlig wirre Werte am ADC.
    Eine reine Mittelwertbildung hilft mir bei der aktuellen Schaltung auch nicht weiter.
    Ich hab in dem Zusammenhang schon was von RC-Gliedern gelesen, aber ich weiß
    1. nicht wie/wo genau ich das Glied anschließen soll und
    2. wie das C und R dimensioniert sein sollte.
    3. wie viele Messungen zur Mittelwertbildung sinvoll sind
    4. wie schnell die Messungen hintereinander erfolgen sollten
    Ich steuere das PWM von 0 bis etwa 60% aus.

    Kann mir jemand bei diesem RC-Glied und dem Drumherum helfen?
    Die Platine (Streifenraster) ist zwar schon fertig bestückt, aber ein RC-Glied könnte ich in der nähe des L298 schon noch unterbringen.
    Ich verzichte dabei allerdings bewusst auf einen OP-Amp. Das was an Spannung ankommt muss reichen.

    Außerdem wundert mich, wie man im Datenblatt vom L298 so eine Schaltung (nur mit Shunt) angeben kann, obwohl von vorneherein klar ist, dass es nicht funktionieren kann.

  2. #2
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2006
    Beiträge
    734
    Ich kenn mich da auch nicht aus, aber was ich bis jetzt herausbkeommen habe:
    Das Ding nennt sich Tiefpass, siehe wikipedia.

    zu 1: auch wikipedia zwischen masse und shunt plus. ausgang an µC eingang.

    zu 2: Bei einem RC-Glied ist die Grenzfrequenz fg die Frequenz, wo nur noch 70% des Signals ankommen. Deswegen sollte man immer fg immer sehr viel kleiner wählen, als das Signal, was man rausfiltern könnte. Oft findet man dafür << was nur "ganz ganz großer unterschied" heißt, konkret faktor 100. Zur Dimensionierung: Nicht zu hochohmig, aber auch nicht zu niederohmig. der ADC hat auch einen Innenwiderstand, der das meßergebnis verfälchen kann. das solltest du beachten.

    zu 3. Das kommt darauf an - mit einem Tiefpass machst du das ganze künstlich langsam und kriegst auch eine Phasenverschiebung. Du kannst aber durch diese Mittellung die Genauigkeit erhöhen, bzw. die Auflösung. Dazu gibt es eine appnote von atmel. prinzip ist 4 meßwerte rein, eins nach rechts shiften oder so.

    zu 4. Wie schnell die Meßungen hintereinander erfolgen sollten? Das kannst eigentlich nur du wissen. Möchtest du den Strom wissen? Wie oft soll dieser meßwert verwendet werden? oder möchtest du eine Überstromabschaltung realisieren. Dann würde der integrierte analogkomparator sich anbieten.


    Zu dem datenblatt, was ich nicht gelesen habe: Ein tiefpass ist ein konzept, kein konkretes bauteil. Realiseren kannst du das z.b. mit rc-glied, lc, opamp, kombinationen um die steilheit zu erhöhen, aber auch mit digitaler filterung innerhalb der cpu oder mit einem fpga. Und vor allem was damit ausgewertet werden soll ist auch unklar. beim l298 wird's wohl eher eine überstromabschaltung sein.

    Wirklich weiterhelfen kann ich dir nicht, weil ich es nie gemacht habe und auch nicht weiß was du machen möchtest :/ Aber vielleicht reicht das als Einstieg, damit andere es korrigieren können.

  3. #3
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    06.11.2006
    Beiträge
    1.078
    Hallo
    Du mußt den Strom nur dann messen bzw. den ADC abfragen, wenn die Brücke eingeschaltet ist.
    Einschalten, eine µs warten, messen.
    Mit freundlichen Grüßen
    Benno
    Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
    Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde

  4. #4
    Erfahrener Benutzer Roboter-Spezialist
    Registriert seit
    03.09.2005
    Ort
    Dachau
    Alter
    33
    Beiträge
    210
    nein das funktioniert nicht!
    das problem ist das er syncron mit der PWM messen müste!

    also entweder die PWM selbst Programmieren
    oder die PWM auf einen interrupt eingang legen,
    und bei einem interrupt den ADC auslesen und regeln.

    es kommt aber noch dazu wenn du eine PWM von 60% mehr spannung mist als bei 30%.

    für was für einen motor möchtest du den den strom regeln?

    ich befasse mich auch grad mit der thematik, und möchte den strom für einen Schrittmotor regeln!

    lg Amiwerewolf


    wer Mist mist, mist Mist!
    http://amiwerewolf.am.funpic.de
    Lieber ne Schwester im Puff als nen Bruder mit nem Opel!

  5. #5
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    06.11.2006
    Beiträge
    1.078
    Hallo
    Wenn er einschaltet und dann mißt, so ist das synchron.
    Außerdem soll nicht die Spannung gemessen werden, sondern der Strom.
    Da vorher bekannt ist, wie lang der Impuls sein wird, kann die Messung auch besser in die Mitte des Impulses gelegt werden.
    Ist eine Frage der Pulsfrequenz und der Rechengeschwindigkeit.

    Mit freundlichen Grüßen
    Benno
    Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
    Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde

  6. #6
    Erfahrener Benutzer Roboter Genie
    Registriert seit
    06.11.2006
    Beiträge
    1.078
    Hallo
    Das was an Spannung ankommt muss reichen
    Bei 0,27ohm und 2A hast Du gerade ein halbes Volt und damit bekommt der ADC 10% von seinem Auflösungsbereich angeboten.
    Mit freundlichen Grüßen
    Benno
    Wo man nicht mit Vernunft handelt, da ist auch Eifer nichts nütze; und wer hastig läuft, der tritt fehl.
    Ein König richtet das Land auf durchs Recht; wer aber viel Steuern erhebt, richtet es zugrunde

  7. #7
    Erfahrener Benutzer Begeisterter Techniker
    Registriert seit
    30.07.2007
    Alter
    33
    Beiträge
    214
    Also ich möchte in erster Linie eine Überstrom-Abschaltung für den Antriebsmotor realisieren. (Normaler DC-Motor mit externem Getriebe)

    Außerdem lassen ich den uC alle 2 Sekunden ein Paket mit Telemetriedaten zusammenstellen (Batteriespannung, Temperatur von einem NTC, Helligkeit von einem LDR ect) und sende es an den PC um es in der Programmoberfläche anzeigen zu lassen.
    Der gemessene Motorstrom wird auch in das Paket gepackt.
    Aber im uC müsste natürlich öfters gemessen werden als nur alle 2 Sekunden.
    Der Motor zieht im Leerlauf ca. 450 mA und im Normalbetrieb 500 - 1000 mA. Bei Blockade allerdings 2,6 A. (alles bei 5 V Nominalspannung)
    Ich denke das macht der L298 schon ein paar Hundert Millisekunden mit. (das passiert ja nicht ständig)
    Die Messung sollte wenn möglich alle 200 ms oder schneller erfolgen.

    Ich erzeuge das PWM mit "Timer1" und dem "PWM"-Befehl von Bascom - genau so wie im RN-Control-Demo-Programm.
    Ich glaub nicht das ich da rausbekomme wann gerade die Mitte eines On-Pulses kommt.
    zu 2: Bei einem RC-Glied ist die Grenzfrequenz fg die Frequenz, wo nur noch 70% des Signals ankommen. Deswegen sollte man immer fg immer sehr viel kleiner wählen, als das Signal, was man rausfiltern könnte. Oft findet man dafür << was nur "ganz ganz großer unterschied" heißt, konkret faktor 100. Zur Dimensionierung: Nicht zu hochohmig, aber auch nicht zu niederohmig. der ADC hat auch einen Innenwiderstand, der das meßergebnis verfälchen kann. das solltest du beachten.
    Das setzt aber vorraus das ich die PWM-Frequenz ect. kenne.
    Nur, woher nehmen ohne zu stehlen?

    Bei 0,27ohm und 2A hast Du gerade ein halbes Volt und damit bekommt der ADC 10% von seinem Auflösungsbereich angeboten.
    Das ist mir bewusst. Aber ich hab in der Planung nunmal keinen OpAmp vorgesehen. Beim nächstenmal dann...
    Wie gesagt, ein RC-GLied bekomm ich noch naträglich unter, aber n OpAmp wird vom Platz her schwierig.
    Das sind halt so die Kleinigkeiten die man beim ersten mal nicht bedenkt.
    Aber ich gelobe Besserung.

  8. #8
    Erfahrener Benutzer Roboter Experte
    Registriert seit
    30.09.2006
    Beiträge
    734
    Die PWM-Frequenz??? Diese gibst du doch vor, oder woher soll diese sonst kommen?

    Bei einer Überstromabschaltung ist die PWM egal. Du möchtest bei einer Stromüberschreitung abschalten, unabhängig vom Duty Cycle. WIe wäre es, mittels des ADC Komparators die shunt+ Spannung mit einer Referenzspannung (Spannungsteiler?) zu vergleichen? Bei einem Wechsel kannst du dann einen Interrupt auslösen und alles ausschalten.

  9. #9
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Hallo
    Du musst den Strom nur dann messen bzw. den ADC abfragen, wenn die Brücke eingeschaltet ist.
    Einschalten, eine µs warten, messen.
    Die Stromkurve des Motors wird vermutlich nicht parallel zur PWM-Spannungskurve laufen. Daher kann ich mir ehrlich gesagt nicht vorstellen, dass es viel bringt die Messung auf den Anfang der PWM-Periode zu synchronisieren.

    Soweit ich weiss kann der Strom in einer Spule nicht "springen". D.h. wenn der Motorstrom mit derselben Frequenz pulsiert wie die Spannung wird der Strom am Anfang der PWM-Periode noch ansteigen und man misst eher dessen Minimum als sein Maximum.

    Die Pulsweite der PWM dürfte auch keinen ganz unerheblichen Einfluss auf den Motorstrom haben und die kann man am Anfang der PWM-Periode auch noch nicht erahnen.
    Daher kann es eigentlich nicht viel bringen eine einzelne Messung auf einen bestimmten Zeitpunkt während der PWM-Periode zu synchronisieren.

    Mehrere Messungen pro PWM-Periode dürften aber auch schwierig sein, bei einer PWM-Frequenz im khz-Bereich hätte der Controller da reichlich zu tun.


    Ich vermute ein erster Schritt zum Erfolg ist, die PWM-Frequenz abgestimmt auf den Motor so hoch zu wählen, dass sich die PWM-Funktion aufgrund der Trägheit des Motorstroms nicht mehr im Strom wiederfindet.

    Inwiefern das möglich ist, weiss ich allerdings nicht, ich Suche selber noch eine Lösung für genau dasselbe Problem.

  10. #10
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    29.01.2004
    Beiträge
    2.441
    Bei einer Überstromabschaltung ist die PWM egal. Du möchtest bei einer Stromüberschreitung abschalten, unabhängig vom Duty Cycle. WIe wäre es, mittels des ADC Komparators die shunt+ Spannung mit einer Referenzspannung (Spannungsteiler?) zu vergleichen? Bei einem Wechsel kannst du dann einen Interrupt auslösen und alles ausschalten.
    Ich weiss zwar nicht wie der ADC-Komparator genau funktioniert, ich kann mir aber nicht vorstellen, dass der das Problem der welligen Stromkurve löst.
    Wenn die Stromkurve "hüpft" wir der Komperator den Saft vermutlich auch schon bei Stromspitzen abdrehen, die für eine Überlastung des Motortreibers noch nicht ausschlaggebend sind.
    Wenn die Schutzschaltung schon beim Einschaltstrom abschaltet ist der Motortreiber zwar effektiv geschützt, die Lösung an sich aber noch nicht ganz befriedigend

Seite 1 von 3 123 LetzteLetzte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •