Forum: Analoge Elektronik und Schaltungstechnik DC Motor sanft starten, Strom-Peak vermeiden


von Borislav B. (boris_b)


Lesenswert?

Hallo,
ich möchte einen DC-Motor per Mikrocontroller ansteuern. Dazu verwende 
ich einen Motortreiber, über den ich die Drehrichtung und 
Geschwindigkeit des Motors einstellen kann. Letztere wird mittels eines 
Bytes (0-255) codiert.

Nun würde ich den Motor gerne in kleinen Schritten arbeiten lassen. Z.B. 
50ms laufen, 50 ms Pause usw. So wie ich das verstanden habe zieht ein 
DC-Motor aber beim Anlaufen ja besonders viel Strom (Peak). Das ständige 
an und abschalten wäre also ziemlich "anstrengend" für die Elektronik 
bzw. den Akku, richtig?

Würde es in diesem Fall helfen den Motor mit einer Art S-Kurve zu 
starten? Also die Geschwindigkeit langsam von 0 auf 255 hochzusetzen, 
anstatt direkt von 0 auf 255 zu springen?

Oder ist das Quatsch?

von Hubert G. (hubertg)


Lesenswert?

Boris P. schrieb:
> Oder ist das Quatsch?

Grundsätzlich kein Quatsch.
Ob es bei 50ms allerdings was bringt, bezweifle ich. Der Motor wird kaum 
zu stehen kommen oder er läuft gar nicht weg.

von chris (Gast)


Lesenswert?

nja du könntest mit einer pwm, gefiltert über ein RC-Glied,
an das gate/ die Basis eines Transistors gehen und dann wäre deine 
bedingung von 0-255 steuern erfüllt

von Borislav B. (boris_b)


Lesenswert?

chris schrieb:
> nja du könntest mit einer pwm, gefiltert über ein RC-Glied,
> an das gate/ die Basis eines Transistors gehen und dann wäre deine
> bedingung von 0-255 steuern erfüllt

Das funktioniert ja schon. Der Motor kann bereits per PWM angesteuert 
werden. Nun würde ich gerne aber anstatt den Motor direkt anzuschalten, 
einen "sanften" start machen. Dazu würde ich den DutyCycle der PWM 
langsam von 0 auf 100% erhöhen...

Hubert G. schrieb:
> Ob es bei 50ms allerdings was bringt, bezweifle ich. Der Motor wird kaum
> zu stehen kommen oder er läuft gar nicht weg.

Gut, bei den Zeiten bin ich nicht festgelgt. Bei voller Drehzahl läuft 
der Motor (dank Getriebe) mit 30 UPM. Diese würde ich nun gerne noch 
weiter verlangsamen. Da man mit der PWM ja irgendwann an seine Grenzen 
stoßen dürfte (Motor bleibt stehen?), wollte ich diesen eben immer 
wieder an und aus schalten.
Im Prinzip wären auch 500ms an (mit sanftem Hochfahren) und 500ms aus 
möglich...

Würde es dann besser funktionieren?

von chris (Gast)


Lesenswert?

na denn verändere den dutycycle mit einen zweiten timer der sagen wir 
mal alles 10ms einen Interreupt auslöst und in dieser ISR in das 
PWM-Register der neue wert geschrieben wird und wenn der Endwert 
erreicht ist wird der erste timer abgeschalten so das nur noch der 
PWM-Timer läuft...

Aber was ist denn deine Hardware?

von Hubert G. (hubertg)


Lesenswert?

Hast du das schon ausprobiert mit PWM?
Wenn es dir nichts ausmacht das der Motor langsam dahinruckelt, kann es 
schon funktionieren. Ob es allerdings schonend ist, bezweifle ich etwas.

von Schlumpf (Gast)


Lesenswert?

Boris P. schrieb:
> Das ständige
> an und abschalten wäre also ziemlich "anstrengend" für die Elektronik
> bzw. den Akku, richtig?

Glaube ich nicht..
Sonst würden Motoren nicht per PWM angesteuert werden.
Außerdem fließt im Elektromotor der Strom durch Spulen und wie war das 
gleich nochmal mit dem Strom in einer Spule? ;-)

Boris P. schrieb:
> Würde es in diesem Fall helfen den Motor mit einer Art S-Kurve zu
> starten? Also die Geschwindigkeit langsam von 0 auf 255 hochzusetzen,
> anstatt direkt von 0 auf 255 zu springen?

Glaube ich auch nicht.. Bei "1" Schaltest du den Strom genauso oft pro 
Zeiteinheit ein und aus, wie bei "250".

Boris P. schrieb:
> Gut, bei den Zeiten bin ich nicht festgelgt. Bei voller Drehzahl läuft
> der Motor (dank Getriebe) mit 30 UPM. Diese würde ich nun gerne noch
> weiter verlangsamen.

Dann stelle halt einen kleineren Duty-Cycle an deiner Steuerung ein, 
wenn sie dir das schon ermöglicht.

Boris P. schrieb:
> Diese würde ich nun gerne noch
> weiter verlangsamen. Da man mit der PWM ja irgendwann an seine Grenzen
> stoßen dürfte (Motor bleibt stehen?), wollte ich diesen eben immer
> wieder an und aus schalten.

Genau das macht doch ein PWM.. wenn der Duty-Cycle so klein ist, dann 
bleibt der Motor eben stehen. Da bringt es dich auch nicht weiter, ihn 
"manuell" zu schalten. Es sei denn, du willst eine art "Ruckelbetrieb".
Wenn du das willst und manuell schaltest, dann kannst du auch einfach 
die Frequenz des PWM reduzieren. Da kommt dann auf´s gleiche raus.

von Borislav B. (boris_b)


Lesenswert?

Schlumpf schrieb:
> Genau das macht doch ein PWM.. wenn der Duty-Cycle so klein ist, dann
> bleibt der Motor eben stehen. Da bringt es dich auch nicht weiter, ihn
> "manuell" zu schalten. Es sei denn, du willst eine art "Ruckelbetrieb".
> Wenn du das willst und manuell schaltest, dann kannst du auch einfach
> die Frequenz des PWM reduzieren. Da kommt dann auf´s gleiche raus.

Sicher? Vielleicht reden wir auch an einander vorbei.

Ich stelle mir 2 PWM Signale vor:

Signal 1 hat eine Frequenz von 1000 Hz. Über den Duty Cycle wird die 
Geschwindigkeit des Motors eingestellt. Ich konnte es nicht überprüfen, 
aber vermutlich wird die Spannung unterhalb von 50% DutyCycle zu niedrig 
sein, unter der Motor stehen bleiben. So lässt sich der Motor also nicht 
weiter verlangsamen.

Daher möchte ich nun eine zweite PWM darüberlegen. Diese hat eine 
Frequenz von 1 Hz, so dass der Motor jede Sekunde 500ms läuft und 500ms 
stillsteht. Damit lässt sich die Geschwindigkeit des Motors also 
nochmals halbieren (auch hier ließe sich der DutyCycle variieren).

Ergibt das soweit Sinn?

Zu meiner ursprünglichen Frage:
Nun wollte ich anstatt der harten Flanken der zweiten PWM das ganze 
sanft an und ausschalten, um starke Strom-Peaks zu vermeiden. Dazu würde 
ich den DutyCycle der 1. PWM variieren.

von Schlumpf (Gast)


Lesenswert?

Boris P. schrieb:
> Sicher?

Ja, sicher!

Boris P. schrieb:
> aber vermutlich wird die Spannung unterhalb von 50% DutyCycle zu niedrig
> sein, unter der Motor stehen bleiben.

Du weisst aber schon, wie ein PWM funktioniert, oder?

Boris P. schrieb:
> Ergibt das soweit Sinn?

Ganz und gar nicht..

Erklärung:
Mit einer klassischen PWM wird die Pulsweite Moduliert (Wie der Name 
schon sagt). Das heißt, es wird ein Pulsbetrieb mit einer konstanten 
Frequenz vorgenommen, wobei das Verhältnis zwischen An und Aus variabel 
ist.
An der Amplitude ändert sich dabei aber gar nichts. Also ändert sich 
auch nichts an der Spannung.

Wenn dein Motor bei einem Duty Cycle von 50% einfach stehen bleibt, dann 
ist dein PWM und dein Motor einfach nicht aufeinander abgestimmt.
Beim Einschalten muss der Strom schon die Chance haben, sich an der 
Induktivität voll aufzubauen.

von Helge A. (besupreme)


Lesenswert?

Probier erstmal aus, wie weit du mit der Drehzahl runter kommst mit 
einer PWM.

von oszi40 (Gast)


Lesenswert?

Langsam ruckelfrei fast ohne Strom losfahren und anfänglichen 
mechanischer Widerstand überwinden wird wohl nicht so einfach werden. 
Einfacher wäre: ein gescheites Netzteil zu nehmen was den Strom 
verträgt.

von Borislav B. (boris_b)


Lesenswert?

Schlumpf schrieb:
> Mit einer klassischen PWM wird die Pulsweite Moduliert (Wie der Name
> schon sagt). Das heißt, es wird ein Pulsbetrieb mit einer konstanten
> Frequenz vorgenommen, wobei das Verhältnis zwischen An und Aus variabel
> ist.
> An der Amplitude ändert sich dabei aber gar nichts. Also ändert sich
> auch nichts an der Spannung.

Mir ist schon klar wie eine PWM funktioniert ;-)
Die im Mittel anliegende Spannung, und auch die aufgenommene Leistung 
des Motors ändert sich aber schon durch die Variation des Duty Cycles. 
Das meinte ich eigentlich.

Helge A. schrieb:
> Probier erstmal aus, wie weit du mit der Drehzahl runter kommst mit
> einer PWM.

Jau, jetzt warte ich erstmal auf den Motor, dann schauen wir weiter.

oszi40 schrieb:
> Einfacher wäre: ein gescheites Netzteil zu nehmen was den Strom
> verträgt.

Das sowiso :-) In meinem Fall ein Blei-Akku, aber auch der sollte das 
vertragen.

von innerand i. (innerand)


Lesenswert?

Boris P. schrieb:
>
> Jau, jetzt warte ich erstmal auf den Motor, dann schauen wir weiter.

Sie haben also noch keinen Motor, wissen aber schon, dass dieser bei 
einem Duty-Cycle von 50% nicht mehr läuft?

von Borislav B. (boris_b)


Lesenswert?

innerand innerand schrieb:
> Boris P. schrieb:
>>
>> Jau, jetzt warte ich erstmal auf den Motor, dann schauen wir weiter.
>
> Sie haben also noch keinen Motor, wissen aber schon, dass dieser bei
> einem Duty-Cycle von 50% nicht mehr läuft?

Nein, wissen tu ich das nicht. Ich habe aber schon häufiger gelesen, 
dass ein DC-Motor nicht über den kompletten DutyCycle Bereich von 0 bis 
100% regelbar ist. Ist diese Annahme falsch?

Der Motor um den es geht ist in einem Spannungsbereich von 6 bis 12V 
verwendbar. Daher komme ich auf die 50%, bei der im Mittel die untere 
Grenze von 6V erreicht sein dürfte...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Boris P. schrieb:
> Ich habe aber schon häufiger gelesen,
> dass ein DC-Motor nicht über den kompletten DutyCycle Bereich von 0 bis
> 100% regelbar ist. Ist diese Annahme falsch?

Steuerbar ist er das sicher, regelbar hängt von einer Reihe von 
Faktoren, wie z.B. der inneren Reibung des Motors und natürlich der Last 
ab. Je reibungsärmer das ganze ist, umso früher wird die reingesteckte 
elektr. Leistung die Reibungen überwinden und der Motor fängt an zu 
drehen. Je hochwertiger ein Motor ist, umso langsamer kann man ihn 
regeln - gut aufgelöste Erfassung der Drehzahl vorausgesetzt.

: Bearbeitet durch User
von innerand i. (innerand)


Lesenswert?

Boris P. schrieb:

> Der Motor um den es geht ist in einem Spannungsbereich von 6 bis 12V
> verwendbar. Daher komme ich auf die 50%, bei der im Mittel die untere
> Grenze von 6V erreicht sein dürfte...

Da müsste man jetzt mal wissen welchen Motor Sie da bekommen.
Kann es sein, dass der bereits Steuerelektronik an Board hat, diese eine 
Spannung von 6-12V benötigt und der einen Eingang für ein PWM-Signal hat 
über den die Drehzahl vorgegeben werden kann?

von innerand i. (innerand)


Lesenswert?

Matthias Sch. schrieb:

> Steuerbar ist er das sicher, regelbar hängt von einer Reihe von
> Faktoren, wie z.B. der inneren Reibung des Motors und natürlich der Last
> ab. Je reibungsärmer das ganze ist, umso früher wird die reingesteckte
> elektr. Leistung die Reibungen überwinden und der Motor fängt an zu
> drehen. Je hochwertiger ein Motor ist, umso langsamer kann man ihn
> regeln - gut aufgelöste Erfassung der Drehzahl vorausgesetzt.


Steuern und Regeln vertauscht? Imho ist es genau umgekehrt. Regeln kann 
ich ihn auf jeden Fall (da sorgt dann die Regelung dafür, dass Reibungen 
bzw. Laständerungen kompensiert werden),

von Borislav B. (boris_b)


Lesenswert?

innerand innerand schrieb:
> Da müsste man jetzt mal wissen welchen Motor Sie da bekommen.
> Kann es sein, dass der bereits Steuerelektronik an Board hat, diese eine
> Spannung von 6-12V benötigt und der einen Eingang für ein PWM-Signal hat
> über den die Drehzahl vorgegeben werden kann?

Das ist ein Billig-Motor von eBay. Leider ohne Datenblatt. Eine 
Steuerung ist da sicherlich nicht an Board ;-)

von Micha H. (mlh) Benutzerseite


Lesenswert?

Boris P. schrieb:

> Der Motor um den es geht ist in einem Spannungsbereich von 6 bis 12V
> verwendbar. Daher komme ich auf die 50%, bei der im Mittel die untere
> Grenze von 6V erreicht sein dürfte...

Du weißt nicht wie PWM funktioniert und auch nicht wie DC-Motoren 
funktionieren.

Wie immer hier schreibst Du nichts über den Anwendungsfall, hast noch 
nicht mal den Motor auf dem Tisch, lamentierst aber schon rum wie 
schlecht das geht.
Lass den Motor erst mal kommen und hänge eine einfache PWM dran. Wenn 
dann Schwierigkeiten auftauchen, kannst Du wieder schreiben.

Bei mir laufen DC-Motoren mit PWM so langsam, daß man die Umdrehungen 
mitzählen kann. Ganz ohne "doppelte" PWM.

: Bearbeitet durch User
von Borislav B. (boris_b)


Lesenswert?

Micha H. schrieb:
> Du weißt nicht wie PWM funktioniert.

Doch, weiß ich.

Micha H. schrieb:
> Wie immer hier schreibst Du nichts über den Anwendungsfall,

Das ist ja auch irrelevant. Wenn ich schreibe, dass ich die Drehzahl 
eines Motor in einem Möglichst großen Bereich varieren möchte,genügt das 
wohl. Was würde es dir helfen wenn ich schreibe, dass das Ganze für eine 
Goldfisch-Fütter-Maschine, einen RC-Modell-Laster oder einen 
vollautomatischen Regenschirm gedacht ist?

Micha H. schrieb:
> hast noch
> nicht mal den Motor auf dem Tisch, lamentierst aber schon rum wie
> schlecht das geht.

Weil ich die Zeit, bis der Motor da ist, gerne nutzen würde um mir schon 
mal Gedanken über die Ansteuerung zu machen. Ist das so schlimm?

Micha H. schrieb:
> Lass den Motor erst mal kommen und hänge eine einfache PWM dran. Wenn
> dann Schwierigkeiten auftauchen, kannst Du wieder schreiben.

Wird gemacht.

von innerand i. (innerand)


Lesenswert?

Boris P. schrieb:

> Das ist ein Billig-Motor von eBay. Leider ohne Datenblatt. Eine
> Steuerung ist da sicherlich nicht an Board ;-)

Die Angabe eines Spannungsbereiches von 6-12V bei einer GSM ist 
jedenfalls seltsam.

Grundsätzlich kann man bei einer GSM von 0 V bis zur Nennspannung 
betreiben.
Siehe: 
http://upload.wikimedia.org/wikipedia/commons/2/28/Betriebsdiagramm_fremderregte_Gleichstrommaschine.svg

Bei ihrem Motor wird es sich halt um eine permanenterregte GSM handeln, 
dass heißt ihr Phi ist konstant und sie können damit nur im 
Ankerstellbereich Arbeiten.

von Udo S. (urschmitt)


Lesenswert?

Boris P. schrieb:
> Weil ich die Zeit, bis der Motor da ist, gerne nutzen würde um mir schon
> mal Gedanken über die Ansteuerung zu machen. Ist das so schlimm?

Dann messe die Drehzahl und baue eine DrehzahlREGELUNG.
Damit kannst du dich beschäftigen, bis dein Motor da ist.

von Borislav B. (boris_b)


Lesenswert?

Udo Schmitt schrieb:
> Dann messe die Drehzahl und baue eine DrehzahlREGELUNG.
> Damit kannst du dich beschäftigen, bis dein Motor da ist.

Eigentlich muss da nichts geregelt werden. Es reicht mir grob die 
Drehzahl vorzugeben, ohne "Rückkanal".

von innerand i. (innerand)


Lesenswert?

Udo Schmitt schrieb:

> Dann messe die Drehzahl und baue eine DrehzahlREGELUNG.
> Damit kannst du dich beschäftigen, bis dein Motor da ist.

Und wenn man es richtig machen will, dann unterlagert man der 
Drehzahlregelung noch eine Stromregelung.

(Wobei man sich die Drehzahl einer GSM ganz gut errechnen kann, mann 
muss die also nicht unbedingt direkt messen.)

von Micha H. (mlh) Benutzerseite


Lesenswert?

Boris P. schrieb:
> Micha H. schrieb:
>> Du weißt nicht wie PWM funktioniert.
>
> Doch, weiß ich.

Das weißt Du aber geschickt zu verbergen. Tip: unterscheide zwischen 
mittlerer Spannung und Peakspannung. Es ist ein himmelweiter Unterschied 
ob Du per PWM 50% mittlerer Spannung auf den Motor gibst oder per 
Spannungsregelung. Die 50% PWM entsprechen von der Wirkung nicht den 6V 
aus einer Spannungsregelung. Genau an diesem Punkt kommt die 
Wirkungsweise eines DC-Motors ins Spiel.

>> Wie immer hier schreibst Du nichts über den Anwendungsfall,
>
> Das ist ja auch irrelevant.

Nein, weil es ein großer Unterschied ist ob Du eine kontinuierliche oder 
eine ungleichmäßige, z.B.oszillierende Kraft erzeugen willst.

> Weil ich die Zeit, bis der Motor da ist, gerne nutzen würde um mir schon
> mal Gedanken über die Ansteuerung zu machen. Ist das so schlimm?

Ganz und gar nicht, wenn man nicht wie Du gleich das Rad neu erfinden 
will. Programmiere die PWM und baue die Treiberschaltung auf, das ist 
Zeit sinnvoll genutzt.

> Micha H. schrieb:
>> Lass den Motor erst mal kommen und hänge eine einfache PWM dran. Wenn
>> dann Schwierigkeiten auftauchen, kannst Du wieder schreiben.
>
> Wird gemacht.

Besser ist das.

von Stefan F. (Gast)


Lesenswert?

Kleiner Tip: Kauf Dir einen Roboter Bausatz (NiboBee oder Asuro) und 
probier die Regelung mal damit aus. So kannst Du in einem preisgünstigen 
Modellversuch erste Erfahrungen machen und dann auf etwas größeres 
umsteigen.

Ich kann dazu aus eigener Erfahrung sagen, dass der Roboter beliebig 
langsam anfahren, fahren und abbremsen kann - ganz ohne zu Ruckeln und 
ohne Hexenwerk. Es gibt da keine minimale Drehzahl. Von 0 bis 100% ist 
alles drin.

Es kommt einzig und alleine auf einen vernünftigen Regelalgorithmus an, 
dessen Parameter an die Eigenschaften der Maschine (nicht nur des 
Motors) angepasst sind.

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.