- 12V Akku mit 280 Ah bauen         
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 12

Thema: Phasenstrom bei Schrittmotoren messen.

  1. #1
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2009
    Alter
    44
    Beiträge
    21

    Phasenstrom bei Schrittmotoren messen.

    Anzeige

    E-Bike
    Hallo, ich hoffe ich habe das richtige unterforum erwischt.

    Wie der Titel schon sagt geht es um Schrittmotoren und messen des Phasenstroms.
    Ich habe mir die Schaltung aus dem Projekt 'RN-Schrittmotor' mit ein paar Änderungen nachgebaut.

    Die Software habe ich bereits soweit das die Motoren per Microstep angesteuert werden.Mein aktuelles Problem ist, das ich im Moment nicht weiß wie ich die Phasenströme richtig messn soll.
    Die Anstereung erfolgt mittels PWM an den Enable-Eingängen des L298. Die PWM-Werte folgen einer Sinus-Kurve mit insgesamt 64 Schritten (Ja ich weiß etwas viel :P). Die PWM-Frequenz liegt bei 20kHz.
    Die Strommessung wird mit den ADC des Atmega64 über einen 0,56Ohm Widerstand und interner 2,56V Referenz gemacht.

    Ich habe mal ein paar Bilder mit einem Ozilloskop gemacht.
    Channel1 ist die Spannung über den Shunt. Channel2 ist der Zeitpunkt wo ich momentan den Strom messe.

    Bild1: 100% PWM, 64 Microschritte, Sinus-Frequenz 156,25Hz, 625 Microschritte pro Sekunde.
    Amplitude Channel1 (max): 600mV => 0,6V / 0,56Ohm = 1,071A
    Amperemeter im Spulenstrang: 618mA
    Stromaufnahme Netzteil: 418mA, davon 110mA Schaltung.
    Messung µC: 406mA

    Bild2: 80% PWM, 64 Microschritte, Sinus-Frequenz 156,25Hz, 625 Microschritte pro Sekunde.
    Amplitude Channel1 (max): 138mV => 0,138V / 0,56Ohm = 0,246A
    Amperemeter im Spulenstrang: 387mA
    Stromaufnahme Netzteil: 178mA, davon 110mA Schaltung.
    Messung µC: 71mA

    Man sieht die Messwerte der verschiedenen Geräte sind alle ziemlich unterschiedlich, ausserdem kann man erkennen dass der Messzeitpunkt bei 80% PWM nicht mehr passt.
    Wie kann ich nun am besten den Phasenstrom ermitteln?

    MfG
    AVR-Frickler
    Miniaturansichten angehängter Grafiken Miniaturansichten angehängter Grafiken pwm_80.jpg   pwm_100.jpg  

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo AVR-Frickler,

    Wie kann ich nun am besten den Phasenstrom ermitteln?
    Ich verstehe nicht, warum du überhaupt die Phasenströme messen willst. Microstep basiert doch auf dem Einstellen des Stromes, über Komperator wird mit einer Referenz verglichen und mittels Flipflop der Treiber abgeschaltet. Ein Oszillator schaltet den Treiber wieder ein.
    Die Referenz gibt der Controller mit einem D/A Wandler vor, und damit den Strom in der Wicklung.

    Kannst du zum Verständnis deine Schaltung posten?

    Gruß, Michael

  3. #3
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2009
    Alter
    44
    Beiträge
    21
    Hi Michael,

    ok eventuell trifft 'Microstep' es nicht ganz genau. Meine Software macht zur Zeit das was hier im Wiki beschrieben ist.

    Die Schaltung entspricht weitestgehend die des Projekts RN-Schrittmotor. Ich habe allerdings den Prozessor ausgetauscht, einen 3. Motor und Endabschaltung in Hardware hinzugefügt.

    Ich habe meine Schaltung mal angehangen.
    Hoffentlich wird nun klarer was ich vorhabe, und warum ich den Phasenstrom messen will.
    Angehängte Dateien Angehängte Dateien

  4. #4
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    Hallo AVR-Frickler,

    ich habe mir jetzt noch nicht die Details Deiner Steuerung angesehen, die Du gerade gepostet hast. Trotzdem habe ich erstmal drei Anmerkungen, die Dich vielleicht weiterführen:

    1. Die Spannungsmessung an der Motorwicklung über den Wicklungswiderstand führt nur dann zum Phasenstrom, wenn der Motor mechanisch blockiert ist. Wenn der Motor dreht (oder nur vibriert), wird eine Gegenspannung in der Spule induziert, die dazu führt, dass der Wicklungswiderstand scheinbar höher wird. Ein weiterer verfälschender Effekt ist der Einfluß der Induktivität, der bei steigender Frequenz den Widerstand ebenfalls scheinbar steigen läßt.

    2. Das Strommaximum ist phasenverschoben zum Spannungsmaximum. Deshalb ist es nicht richtig anzunehmen, dass der Meßzeitpunkt für die Messung des maximalen Stroms das Spannungsmaximum am Motor ist.

    3. Die Messwerte für den Strom am Shunt zeigen eine sehr schnelle zeitliche Veränderung, es handelt sich deshalb offensichtlich nicht um den Strom in der Wicklung, der könnte sich aufgrund der Induktivität nicht so schnell ändern. Ich vermute, dass der Stromanteil, der durch die Freilaufdiode (und gleichzeitig durch die Wicklung) fließt nicht durch den Meßshunt fließt. Das würde dann einen erheblichen Meßfehler ausmachen (durch die Freilaufdiode fließt bis zu 50% des gesamten Phasenstroms).

  5. #5
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2009
    Alter
    44
    Beiträge
    21
    Hi ranke,

    zu 1: Die Spannung über der Motorwicklung hatte ich mir mit dem Osziloskop auch mal angesehen, da kann man nicht wirklich sinnvoll messen.
    zu 2: Das habe ich bereits berücksichtigt der Zeitpunkt der Strommmessung ist bereits verschoben, man kann es auf den Osziloskop-Bild der 100% PWM auch erkennen. Das Spannungsmaximum ist dort wo die Kurve nicht unterbrochen ist und das Strommaximum dort wo halt die grösste Amplitude des Signals ist.
    zu 3: Das ist es was mir wahrscheinlich Probleme bereitet. Das dürfte auch erklären warum der Strom am Ampermeter höher ist als der Strom der dem Netzteil entnommen wird. Ich vermute mal das ein Teil des Stroms über die Freilaufdioden zurückfliest und dann in die 2. Wicklung bzw. in die Kondensatoren fließt.

    Wenn ich das richtig sehe werde ich Mikroschritt und (echte)Stromreglung wahrscheinlich nicht zusammen bekommen.

    MfG
    AVR-Frickler

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo AVR-Frickler,

    ich halte diese Schaltung für, ähh, nicht geeignet zur Ansteuerung von Schrittmotoren.
    Der L297 ist ja nicht umsonst erdacht worden
    Zudem erschließt sich mir der Sinn noch nicht.
    Du müßtest den Strom messen, ab einem bestimmten Wert Enable abschalten, mit einem Interrupt wieder einschalten und wieder von vorne.
    Und das ist nur für einen einzigen Microstep. Und für eine einzige Phase.
    Bei 3 Motoren hast du 6 Stück davon. Allein die Meßzeit für einen analogen Eingang ist mit 23Takten@200kHz 0,115ms (theoretisch!) dann bist du bei 6 Phasen bei 1,4 kHz PWM-Frequenz.
    Rechnet man nur 1/16 Schritt, also 3200 Microsteps pro Umdrehung bei einem 200er Motor, dann ist ab 1/2 Umdrehungen pro Sekunde Schluß mit der Stromerfassung, weil deine Messungen nicht mehr hinterherkommen.
    Und das ist noch schöngerechnet, ohne die eigentlichen Berechnungen und I/Os die ein Controller sonst macht.

    Gruß, Michael

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    27.08.2004
    Ort
    Kreis Starnberg
    Alter
    59
    Beiträge
    1.825
    AVR-Frickler:
    aus Deiner Antwort sehe ich, dass ich Deinen ersten Post noch nicht richtig verstanden hatte. Von den drei obengenannten Punkten bleibt eigentlich nur noch der dritte Punkt übrig.

    Wenn ich das richtig sehe werde ich Mikroschritt und (echte)Stromreglung wahrscheinlich nicht zusammen bekommen.
    Warum so negativ? Es sollte doch nicht so schwierig sein, den Strom der Freilaufdioden auch über den Shunt laufen zu lassen. Damit könnte man doch auch ein recht sauberes Stromsignal erwarten.

  8. #8
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2009
    Alter
    44
    Beiträge
    21
    @Michael, das was du beschreibst sehe ich jetzt nicht wirklich als Microstep, zumindest nicht so wie ich es verstehe.

    Ich verstehe Microstep so das ich mit den beiden Spulensträngen genau einen Punkt auf einem Kreis einstelle (vlt. etwas umständlich ausgedrückt :/)
    das bedeutet ich bestromme die eine Wicklung stärker als die andere.

    Jetzt wo ich es schreibe kommt mir glaube ich der Gedankenblitz. Mal sehen ob ich es richtig verstehe.
    Also im Moment habe ich feste Werte für meine Sinus-PWM, die einfach nur das Zeitverhältniss (On/Off) darstellen. du schlägst jetzt vor direkt die Stromwerte zu nehmen.

    {196mA, 390mA, 580mA, 765mA, 942mA, 1111mA, 1268mA, 1414mA, 1546mA, 1662mA, 1763mA, 1847mA, 1913mA, 1961mA, 1990mA, 2000mA }
    Dass könnte klappen werde ich mal versuchen umzusetzen, was mir ein wenig Bauchschmerzen bereitet sind die 1,4Khz PWM-Freqeunz.

    @ranke Ich wüsste nicht wie ich den kompletten Strom der Freilaufdioden mit über den Shunt bekomme. Man kann sicher die Freilaufdioden nicht direkt auf GND setzen sondern vor dem Shunt, aber reicht das?

  9. #9
    Erfahrener Benutzer Roboter Genie Avatar von Michael
    Registriert seit
    17.01.2004
    Ort
    Karlstadt
    Alter
    55
    Beiträge
    1.258
    Hallo AVR-Frickler,

    du schlägst jetzt vor direkt die Stromwerte zu nehmen.
    das ist nicht von mir, sondern bei Microstep üblich.
    Der Strom wird einfach über den Spannungswert am Komperator vorgegeben, den Rest erledigt die Hardware.

    was mir ein wenig Bauchschmerzen bereitet sind die 1,4Khz PWM-Freqeunz.
    das ist die schöngerechnete Updatefrequenz, wo dein Controller reagieren könnte, aber ich sehe gerade, es ist noch schlimmer, denn dabei hat der AD-Wandler nur 1 Messung gemacht, damit kannst du noch keinen Strom regeln.

    das bedeutet ich bestromme die eine Wicklung stärker als die andere.
    richtig, der Gag dabei ist ja, daß zum Einstellen des Stromes Zwischenwerte genommen werden, die eine Stellung des Rotors genau zwischen zwei benachbarten Steps ergeben.
    Aus 1/4 wird dann 1/8, dann 1/16 usw. Ab letzterem würde ich von Microstep sprechen. Diese Teilung vereinfacht die Software ungemein.
    Du kannst natürlich mit dem Strom jeden Winkel zwischen 2 Vollsteps einstellen.


    Ich wüsste nicht wie ich den kompletten Strom der Freilaufdioden mit über den Shunt bekomme.
    du mußt nicht den kompletten Strom wissen, es reicht, bei erreichen eines gewünschten Wertes den Strom abzuschalten und mit einem Oszillator wieder einzuschalten (deja-vu)
    Der Strom durch die Wicklung bleibt ja (mit Hilfe der Freilaufdiode und der hohen Frequenz des Choppers) in der Nähe des Abschaltpunktes.

    Gruß, Michael

  10. #10
    Neuer Benutzer Öfters hier
    Registriert seit
    15.09.2009
    Alter
    44
    Beiträge
    21
    Ich wüsste nicht wie ich den kompletten Strom der Freilaufdioden mit über den Shunt bekomme.
    du musst nicht den kompletten Strom wissen, es reicht, bei erreichen eines gewünschten Wertes den Strom abzuschalten und mit einem Oszillator wieder einzuschalten (deja-vu)
    Der Strom durch die Wicklung bleibt ja (mit Hilfe der Freilaufdiode und der hohen Frequenz des Choppers) in der Nähe des Abschaltpunktes.
    Das hab ich schon verstanden, das bezog sich auf die Aussage von ranke

    Wie gesagt, ich werde das mal so umsetzen wie du es beschriben hast.
    Aber wie du schon schreibst ich kann nur eine Messung machen und havbe so nicht wirklich eine Regelung.

    Erschwerend kommt noch dazu das ich 200Khz gar nicht einstellen kann bei meiner Quarz-Freqeunz, zur Zeit habe ich 125Khz mit dem höchsten Teiler eingestellt, die nächste Frequenz ist dann 250khz wodurch der A/D-Wandler wieder ungenau wird :/

Seite 1 von 2 12 LetzteLetzte

Berechtigungen

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

LiFePO4 Speicher Test