Forum: Mikrocontroller und Digitale Elektronik DC Motorregelung PWM + PID (Lastregelung)


von MOBA 2. (Gast)


Lesenswert?

Ich würde gerne einen DC Motor über eine H-Brücke mittels PWM steuern.
Das ist erstmal kein Problem. Allerdings wollte ich, wenn die Drehzahl 
einknickt, gegenregeln. (PWM @ 16khz)


Ich habe im Netz folgende Idee gesehen: Über den Motor (also am 
H-Ausgang) kommt ein Spannungsteiler (bpsw 10k, 10k). Das Mittensignal 
geht über eine 5V Z Diode an den ADC vom Atmel.


Jetzt die Frage: Klappt das wirklich? Wie regel ich dort nun die 
Drehzahl, bzw. was erwarte ich dort für Signale? Dazu stand leider 
nichts dort.

Ich denke ich muss messen, während der Motor "aus" ist bei der PWM. 
Welche Induktionsspannung bekomme ich dort und wie ist diese mit der 
Drehzahl zu vereinen?

von Olaf (Gast)


Lesenswert?

> Jetzt die Frage: Klappt das wirklich?

Klar, ich hab das vor 10Jahren mal im richtigen Internet <BG> 
diskutiert:

http://www.edaboard.de/motorsteuerung-ueber-gegen-emk-und-ixr-t13935.html

Ich hab das damals rein analog aufgebaut und es hat wunderbar 
funktioniert.
Macht Spass und man lernt etwas ueber Regelungstechnik. Genau das 
richtige fuer lange Winterabende. :-)

Olaf

von Jan Heynen (Gast)


Lesenswert?

Es ist moglich um wahrend die low periode von PWM die gegen-EMK von 
DC-motor zu vermessen. Das gibt dan in Prinzip das Drehzahl. Leiter ist 
das Signal sehr verrausch durch die commutierung / inductions-spitzen. 
Auch ist Schluss bei 100 % PWM (keine Low mehr). Darum ist es einfacher 
um das Drehzahl ueber ein Encoder zu vermessen.
MFG, RP6conrad.

von Olaf (Gast)


Lesenswert?

> Darum ist es einfacher um das Drehzahl ueber ein Encoder zu vermessen.

Ach was...braucht bloss ein paar Bauteile. So sah damals mein 
Versuchsaufbau aus:

http://www.criseis.ruhr.de/bilder/regler.jpg

Wie du schon richtig erkannt hast, 100% PWM geht nicht. Aber 95% (oder 
so) reichen ja auch aus. Mit Encoder wird halt gleich der Motor deutlich 
teurer. Das ist sinnvoll wenn man auch noch einen Positionsregelung 
braucht. Nur fuer Drehzahl und wenn es einfach und billig sein muss 
reicht auch ueber GegenEMK. Zumal man das ja auch im Mikrocontroller 
machen kann.

Olaf

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Die Drehzahlregelung über Gegen-EMK in einer Austastlücke hast Du heute 
in jedem Modelleisenbahndecoder mit Lastregelung drin. Das Prinzip ist 
immer gleich und wie oben schon beschrieben, bei der Regelung an sich 
unterscheiden sich die Produkte im Bereich zwischen brauchbar und 
butterweich.

von MOBA 2. (Gast)


Lesenswert?

Knut B. schrieb:
> Die Drehzahlregelung über Gegen-EMK in einer Austastlücke hast Du heute
> in jedem Modelleisenbahndecoder mit Lastregelung drin. Das Prinzip ist
> immer gleich und wie oben schon beschrieben, bei der Regelung an sich
> unterscheiden sich die Produkte im Bereich zwischen brauchbar und
> butterweich.

Jop, du hast es erkannt. Dafür soll das ganze werden.
Deswegen nix Encoder, da Motor vorgegeben. Butterweich ist mein Ziel.

Brauche ich noch die Dioden über den Motor (4 stk.) oder reichen die 
internen der Mosfets? Mit Dioden verfälscht das das Signal?


Wie ist der Zusammenhang zwischen gemessener Spannung und Drehzahl. Das 
ist mein Problem zzt.

von Olaf (Gast)


Lesenswert?

> Wie ist der Zusammenhang zwischen gemessener Spannung und Drehzahl. Das
> ist mein Problem zzt.

Das steht in den in meinem Link erwaehnten PDFs. Und es ist auch nicht 
ganz trivial. Zumal ich mir bei einer Eisenbahn auch vorstellen koennte 
das sich da etwas in Abhaengigkeit von der angehaengten Masse aendern 
koennte.

Olaf

von MOBA 2. (Gast)


Lesenswert?

Olaf schrieb:
>> Wie ist der Zusammenhang zwischen gemessener Spannung und Drehzahl. Das
>> ist mein Problem zzt.
>
> Das steht in den in meinem Link erwaehnten PDFs. Und es ist auch nicht
> ganz trivial. Zumal ich mir bei einer Eisenbahn auch vorstellen koennte
> das sich da etwas in Abhaengigkeit von der angehaengten Masse aendern
> koennte.
>
> Olaf

Okay ich gucke nochmal, die PDF hatte ich nicht gesehen. Welche 
spezielle ist das?

Ja klar mit der angehängten Masse stimmt schon.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Bei einer gut ausbalancierten Regelung, bei der mehrere Faktoren 
einbezogen werden, hat die angehängte Masse kaum Einfluss auf das 
Fahrverhalten. Der klassische PI(D)-Regler reicht hier nicht aus. 
Vielmehr muss man die Stellgröße mit weiteren außenliegenden 
Regelschleifen überlagern, um einerseits schnell genug reagieren zu 
können, andererseits aber auch das Aufschwingen zu verhindern. Kritisch 
ist das Befahren von Schrägen, also wenn starke Lastwechsel anstehen. 
Auf gerader Strecke muss dir Regelung nicht viel können aber bei einer 
Bergkuppe kann sie schnell außer Kontrolle geraten und die Lok wie einen 
Esel springen lassen. Wie oben schon gesagt, nicht trivial. Als 
hilfreich hat sich auch erwiesen, die Abtastungsintervalle relativ zur 
Drehzahl zu verschieben, um bei Langsamfahrt mehr Messungen zu bekommen, 
als bei Schnellfahrt, wo der Schwung des Gesamtsystems die Regelung 
träger macht. Je nach Motor sind mehrere kritische Drehzahlbereiche 
vorhanden, wo die Regelung stark gefordert ist. Es ist sinnvoll, die 
Regelparameter während der Fahrt ausgeben und loggen zu können, um zu 
sehen, wie sie sich unter den verschiedenen Bedingungen verhalten.

von MOBA 2. (Gast)


Lesenswert?

Knut B. schrieb:
> Regelparameter während der Fahrt ausgeben und loggen zu können, um zu
> sehen, wie sie sich unter den verschiedenen Bedingungen verhalten.

Die Links von Olaf sind alle tot.

Mich würde  jetzt noch interessieren was ich genau beachten muss.

In Zeitpunkt der Tastlücke muss die H-Brücke hochimpedant sein oder? Das 
die beiden Adern Masse haben wäre falsch da ich dann nicht kann konnte 
richtig?

Reicht mir der Spannungsteiler über den Motor oder muss ich noch den 
Stromverbrauch des Motors messen?

Hat jmd noch ein paar Infos zu der Regelung?

von willi (Gast)


Lesenswert?

Morgen,

wenn es für einen Modelleisenbahn Decoder sein soll, hab ich das schon 
gemacht:
http://forum.opendcc.de/viewtopic.php?f=39&t=3716

Tiny85 PWM mit 32 KHz, kurz unterbrechen EMK messen und Drehzahl mit PID 
Regler nachregeln. PID Regler ist der von der Atmel Apnote.

LG

von m.n. (Gast)


Lesenswert?

Für eine Drehrichtung: 
Beitrag "Drehzahlregler für DC-Motor, ATmega48-328"
Bei Auswertung der EMK ist es nicht erforderlich, eine höherfrequente 
PWM zu erzeugen. 200 - 300 Hz PWM-Frequenz sind sinnvoll, da die 
notwendige Pause zur EMK-Auswertung nicht zu kurz sein darf. Da eine PWM 
mit 100% nicht möglich ist, kann man die Versorgungsspannung erhöhen, um 
volle Drehzahl zu erhalten.

willi schrieb:
> wenn es für einen Modelleisenbahn Decoder sein soll, hab ich das schon
> gemacht:
> http://forum.opendcc.de/viewtopic.php?f=39&t=3716

Gut versteckt, da will man dann auch nicht stören ;-)

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

m.n. schrieb:
> Bei Auswertung der EMK ist es nicht erforderlich, eine höherfrequente
> PWM zu erzeugen. 200 - 300 Hz PWM-Frequenz sind sinnvoll, da die
> notwendige Pause zur EMK-Auswertung nicht zu kurz sein darf. Da eine PWM
> mit 100% nicht möglich ist, kann man die Versorgungsspannung erhöhen, um
> volle Drehzahl zu erhalten.

Eine hohe PWM-Frequenz ist sehr wohl notwendig, wenn man seine Ohren 
schonen will, denn bei den ansonsten laufruhigen Fahrzeugen will man 
keine unschönen Resonanzen durch die Motoransteurung haben. Die 
Austastung zum Messen der EMK hört man ohnehin, da muss man schon weiche 
Lücken programmieren, damit einem das Gebrumme nicht auf den Keks geht. 
Die hohe PWM-Frequenz gestattet auch ein weicheres Regeln, da man feiner 
abstimmen kann bei den Schwingungspaketen, die man dem Motor zukommen 
lässt. Und volle Spannung gibt man ohnehin nicht auf den Motor, da die 
allermeisten Loks bei 12V bereits für den Maßstab zu rasant unterwegs 
sind. Da die meisten Digitalanlagen mit 16V oder sogar noch darüber am 
Gleis abliefern, bleibt genug Regelreserve, auch wenn die nutzbaren 
Pakete nur 80% PWM entsprechen. Erklärung: Nicht bei jedem PWM-Umlauf 
wird die EMK gemessen, sondern nur alle 1...10ms, je nach Lastzustand. 
In dieser Zeit wird die PWM auf 0 reduziert, der jeweils untere 
Transistor der jeweils durchgeschalteten Richtung ist geschlossen, der 
obere ist offen, so dass an dem Anschluss die Motorspannung gemessen 
werden kann. Nach einer Zeit x ist die Messung abgeschlossen und die PWM 
wird wieder hochgefahren bis zur nächsten Messung.

: Bearbeitet durch User
von MOBA 2. (Gast)


Lesenswert?

Knut B. schrieb:
> m.n. schrieb:
>> Bei Auswertung der EMK ist es nicht erforderlich, eine höherfrequente
>> PWM zu erzeugen. 200 - 300 Hz PWM-Frequenz sind sinnvoll, da die
>> notwendige Pause zur EMK-Auswertung nicht zu kurz sein darf. Da eine PWM
>> mit 100% nicht möglich ist, kann man die Versorgungsspannung erhöhen, um
>> volle Drehzahl zu erhalten.
>
> Eine hohe PWM-Frequenz ist sehr wohl notwendig, wenn man seine Ohren
> schonen will, denn bei den ansonsten laufruhigen Fahrzeugen will man
> keine unschönen Resonanzen durch die Motoransteurung haben. Die
> Austastung zum Messen der EMK hört man ohnehin, da muss man schon weiche
> Lücken programmieren, damit einem das Gebrumme nicht auf den Keks geht.
> Die hohe PWM-Frequenz gestattet auch ein weicheres Regeln, da man feiner
> abstimmen kann bei den Schwingungspaketen, die man dem Motor zukommen
> lässt. Und volle Spannung gibt man ohnehin nicht auf den Motor, da die
> allermeisten Loks bei 12V bereits für den Maßstab zu rasant unterwegs
> sind. Da die meisten Digitalanlagen mit 16V oder sogar noch darüber am
> Gleis abliefern, bleibt genug Regelreserve, auch wenn die nutzbaren
> Pakete nur 80% PWM entsprechen. Erklärung: Nicht bei jedem PWM-Umlauf
> wird die EMK gemessen, sondern nur alle 1...10ms, je nach Lastzustand.
> In dieser Zeit wird die PWM auf 0 reduziert, der jeweils untere
> Transistor der jeweils durchgeschalteten Richtung ist geschlossen, der
> obere ist offen, so dass an dem Anschluss die Motorspannung gemessen
> werden kann. Nach einer Zeit x ist die Messung abgeschlossen und die PWM
> wird wieder hochgefahren bis zur nächsten Messung.


Es handelt sich um eine Gartenbahn (LGB) mit 24V. Also wie sieht das aus 
mit der H-Brücke. Im Zeitraum des Messens muss also die Brücke nicht auf 
High-Z stehen? Sondern kann angeschaltet bleiben (zu hälfte?).

Wie ist das mit der allg. Strommessung des Motors? Erforderlich?

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Strommessung brauchst Du nicht, aber eine fette H-Brücke, die noch dazu 
schnell schalten kann. Darauf solltest Du Dich als erstes konzentrieren, 
bevor Du Dich an die weitere Prgrammierung machst. Wenn du es Dir 
einfach machen willst, dann lass die beiden Low-Side-Transistoren 
(n-Kanal) nur die Richtung vorgeben, die beide High-Side-Transistoren 
(p-Kanal) lass die PWM schalten. Dann brauchst Du nur 2 schnelle 
Treiber, da die Low-Side direkt vom Controller geschaltet werden kann. 
Die p-Kanal-FETs lassen sich recht einfach gegen Masse ansteuwrn, so 
dass Du auch hier Teile sparen kannst. Die Programmierung ist auch 
einfacher, wenn Du nur 2 PWM-Kanäle zu verwalten hast.

Messzyklus:

1. PWM herunterfahren bei durchgeschalteter Low-Side
2. Warten bis Motorspannung hochläuft
3. Messen
4. PWM wieder hochfahren.

Einer der beiden Low-Side Transistoren bleibt immer durchgeschaltet, da 
Dir sonst der Massebezug zum Messen fehlt.

Als Überlastdetektierung kannst Du auch den Strom in der Brücke messen 
oder ihre Temperatur.

: Bearbeitet durch User
von m.n. (Gast)


Lesenswert?

Marius D. schrieb:
> Es handelt sich um eine Gartenbahn (LGB) mit 24V.

Welche Leistung hat der Motor und hat er auch noch Kraft, wenn er mit 16 
kHz getaktet wird?
Soll der Motor auch bremsen können oder ist genug Reibung vorhanden, 
dass die Bahn von selbst zum Stehen kommt?
Unter Umständen kannst Du eine Ansteuerung mit nur einem MOSFET 
verwenden, wenn zur Richtungsumkehr ein Relais verwendet wird.

von Frank T. (frank_t40)


Lesenswert?

Das wurde schon vor Jahren hier im Forum behandelt.
Link dazu:http://toralfwilhelm.de/

von MOBA 2. (Gast)


Lesenswert?

m.n. schrieb:
> Marius D. schrieb:
>> Es handelt sich um eine Gartenbahn (LGB) mit 24V.
>
> Welche Leistung hat der Motor und hat er auch noch Kraft, wenn er mit 16
> kHz getaktet wird?
> Soll der Motor auch bremsen können oder ist genug Reibung vorhanden,
> dass die Bahn von selbst zum Stehen kommt?
> Unter Umständen kannst Du eine Ansteuerung mit nur einem MOSFET
> verwenden, wenn zur Richtungsumkehr ein Relais verwendet wird.


Die von LGB verwendeten 7 poligen Bühlermotoren (kugelgelagert) haben 
extrem viel Kraft. Die nutzen ein Schneckengetriebe. 16 kHz wird auch 
von allen anderen Herstellern verwendet, sind die wahrscheinlich drauf 
ausgelegt.

Kleiner Loks (mit 1 Motor) besitzen ca. 10N. Manche haben bisschen mehr, 
manche weniger, je nach Bauart und vorallem Eigengewicht. Größere (2 
oder 3 motorige) dementsprechend weitaus mehr.

Bremsen muss die Lok via Motor nicht, das Getriebe hat ausreichend 
Reibung. Bei Gefälle jedoch (abh. von angehängter Last) muss 
gegengeregelt werden.


Auf Mechanik verzichte ich (Relais) immer gerne. Lieber Vollbrücke.


Ich habe eine 4 achsige Dampflok mit 1 Motor. Eigengewicht liegt ca. bei 
4kg. Die ist extrem stark. Hier ist das Getriebe leichtläufiger (die 
rollt von selbst bei Neigung). Der Motor kann wenn man sie richtig 
belastet auch gerne mal 4A ziehen.

von Meine Güte (Gast)


Lesenswert?

Marius D. schrieb:
> Ich würde gerne einen DC Motor über eine H-Brücke mittels PWM
> steuern.
> Das ist erstmal kein Problem.


Nein isses nicht wenn du von Regelungstechnik keine Ahnung hast.

Für die Drehzahlregelung wird P oder PI Regler eingesetzt, den D Anteil 
braucht man nicht.

Wenn du die Drehzahl oder den Ankerstrom nicht messen kannst, vergiss 
die Regelung.  Das würde dir Zeit sparen, lies einfach einen Skript 
drüber.

Meine Güte.

von m.n. (Gast)


Lesenswert?

Meine Güte schrieb:
> Nein isses nicht wenn du von Regelungstechnik keine Ahnung hast.
> ...
> Wenn du die Drehzahl oder den Ankerstrom nicht messen kannst,

War der Glühwein zu schlecht? Du hättest vollständig zitieren sollen.
Marius D. schrieb nämlich:
"Allerdings wollte ich, wenn die Drehzahl einknickt, gegenregeln."

Das Problem, was Du meine Güte lösen möchtest, existiert garnicht.

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.