Forum: Mikrocontroller und Digitale Elektronik Motor mit PWM steuern


von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Hey Leute,

ich versuche derzeit einen DC -Motor mit einem Arduino Motorshield rev.3 
zu steuern. Die Geschwindigkeit kann man ja mit dem

analogWrite(3, variable); einstellen...
Dies stellt ja je nach Variablenwert eine PWM mit gewissen DutyCycle am 
Ausgang des Motorshields ein.

Das Funktioniert auch schon ganz gut...
Jetzt habe ich aber erfahren das die Frequenz bzw. Periodendauer von 
dieser PWM je nach Motor einen gewissen idealen Wert hat (Motor an einen 
Frequenzgenerator anschließen und durch Hören eruieren bei welcher 
Frequenz er am besten Läuft.

Meine Frage:

Stimmt das so? Also das man die Frequenz der PWM an den Motor anpassen 
muss?
Wie kann ich die Frequenz mit der die PWM am Motorshield-Ausgang 
rauskommt verändern?

Hoffe ich habe meine Fragestellung verständlich formuliert.

LG

: Bearbeitet durch User
von Carsten R. (kaffeetante)


Lesenswert?


von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Danke für die Antwort, also muss ich die PWM frequenz anpassen... In dem 
Artikel steht das bei besseren Motoren die Periodendauer der der PWM im 
Datenblatt angegeben ist... habe einen Maxon motor, aber den einzigen 
Wert der etwas mit zeit zu tun hatte war:

Mechanical time constant = 6.12ms

was ist diese Mechanical time constant? habe so das Ggefühl die hat 
nichts damit zu tun...

von Falk B. (falk)


Lesenswert?

@ LeiderNichtVerfügbar AuchNicht (Firma: Keine) (strgfn)

>Frequenzgenerator anschließen und durch Hören eruieren bei welcher
>Frequenz er am besten Läuft.

>Stimmt das so? Also das man die Frequenz der PWM an den Motor anpassen
>muss?

Mehr oder weniger schon. Wenn aber dein Motor mit der 
Arduino-Standard-PWm gut läuft, muss man da nicht krampfhaft was ändern.

>Wie kann ich die Frequenz mit der die PWM am Motorshield-Ausgang
>rauskommt verändern?

Man muss die Register des AVR mittels Datenblatt selber einstellen. Die 
Arduino-Lib bietet dafür keine Funktionen.

>Datenblatt angegeben ist... habe einen Maxon motor,

WELCHEN GENAU? Siehe Netiquette.

>Mechanical time constant = 6.12ms

>was ist diese Mechanical time constant?

Die mechanische Zeitkonstante des Rotors. Sie sagt, vereinfacht, wie 
lange der Motor braucht, bis er 2/3 der vollen Drehzahl erreicht hat, 
wenn man ihn schlagartig mit voller Spannunung einschaltet.

> habe so das Ggefühl die hat
>nichts damit zu tun...

Indirekt schon. Der Arduino gibt die PWM mit 480 Hz aus, das sind 2ms. 
Da ist für einen so flinken Motor wie deinen schon grenzwertig, d.h. er 
ruckelt ein wenig, vor allem bei niedrigen Drehzahlen. Optimal wäre hier 
wohl eine PWM mit 5-10 kHz.

: Bearbeitet durch User
von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Der Ausgewählte Motor ist dieser hier:

Motor - DCX22S GB KL 12V

ich nutze den Motor im niedrigen Drehzahlbereich, also sollte ich die 
PWM Frequenz wohl verändern.

ist diese Frequenzänderung eigentlich eine "von Arduino gewollte" 
Funktion oder ist das eher unüblich bzw. gefährlich?

von Falk B. (falk)


Lesenswert?

@ LeiderNichtVerfügbar AuchNicht (Firma: Keine) (strgfn)

>ist diese Frequenzänderung eigentlich eine "von Arduino gewollte"
>Funktion

Nein.

> oder ist das eher unüblich bzw. gefährlich?

Ja.

Wahrscheinlich muss man komplett auf analog Write() verzichten und 
direkt die Register beschreiben. Das ist aber kein Problem. Der 16 Bit 
Timer hat nur 2 Konfig-Register, das kriegt man hin.

Beitrag "Re: Arduino Mega 11 PWM-Pins mit 1kHz"

Alles schon mal da gewesen ;-)

von m.n. (Gast)


Lesenswert?

LeiderNichtVerfügbar A. schrieb:
> Motor - DCX22S GB KL 12V

Falk B. schrieb:
> Optimal wäre hier
> wohl eine PWM mit 5-10 kHz.

Ich würde sogar auf >= 16 kHz gehen, damit keine nervenden Geräusche zu 
hören sind.

Ursprünglich hattest Du etwas von BEMF geschrieben. Falls das noch Dein 
Ziel ist, mußt Du mit der PWM-Frequenz wieder deutlich heruntergehen, 
damit die Spannung am Motor gemessen werden kann.

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

BEMF??

Danke für die Beantwortung meiner Fragen:)


Ich bin ziemlich neu mit Arduino bzw. Mikrocontroller programmieren, 
weiß also nicht ob ich mich da jetzt rantrauen werden und die Frequenz 
verändern will:)

Derzeit ist der motor relativ laut wenn ich ihn mit niedrigen 
drehzahlen/niedriger PWM(dutyCycle) ansteuere...er pfeift dann bzw hat 
so ein quietschen...

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

ich denke ich werde das mit den PWM Frequenz ändern doch versuchen...

Das Problem dabei ist das man die Frequenz durch ändern des "divisors" 
verändern kann.
Bei den Pins 3 und 11 welche das Motorshield verwendet sind damit aber 
nur folgende Frequenzen möglich:

31372.55 Hz
3921.16 Hz
980.39 Hz
490.20 Hz (Standard)
245.10 Hz
122.55 Hz
30.64 Hz

reichen 3921.16 Hz denn auch?

optimal wäre doch wenn ich die 31372.55 Hz halbieren könnte, ist das 
denn irgendwie möglich?


Die andere Idee wäre das ich Pin 5 und 6 nehme, da hätte ich Frequenzen:

62500.00 Hz
7812.50 Hz
976.56 Hz (Standard)
244.14 Hz
61.04 Hz

Hier könnte ich die 7812.50 Hz verwenden und müsste dann eben am 
motorshield ein kabel von Pin 3 zu Pin 5 oder 6 legen...
könnte das dem Arduino schaden wenn ich eine PWM einfach an Pin 3 lege?
oder wähle ich pin 3 dann einfach als input und ignoriere den Wert?

von Sascha (Gast)


Lesenswert?

Das nennt sich CTC Modus, steht im Datenblatt.

Lies das Datenblatt (Sektion: Timer 1) und guck dir noch an wie so ein 
Hardwaretimer funktioniert.

Was du brauchst, ist ein Timer der nicht immer bis 65535 zählt um deinen 
einen Overflow zu haben sondern ein Timer, wo man diese Obergrenze 
einstellen kann.
Zu welcher Obergrenze der Timer zählt, das steht in einer sehr 
pratischen Tabelle im Datenblatt.
Da gibts auch zig Möglichkeiten (Tipp: Compare Match Register).

von Sascha (Gast)


Lesenswert?

Und was zum Teufel ist Pin 3? "(PCINT17/TXD) PD1" wirds ja wohl 
garantiert nicht sein.

von Uwe S. (regionalligator)


Lesenswert?

LeiderNichtVerfügbar A. schrieb:
> 31372.55 Hz

Dann nimm die Frequenz. Eisenlose Motoren wie dieser werden nicht mit 
(minimal) ca. 16KHz angesteuert, weil sie sonst unrund liefen. Das wäre 
auch schon bei 200Hz nicht mehr der Fall. Es geht um die sehr kleine 
Motorinduktivität. Diese verhindert einerseits eine starke Stromspitze 
während des Pulses, und andererseits lässt erst sie den Strom während 
der Pausen weiterfließen (über die Freilaufdiode). Wird dieser Motor mit 
nur 480Hz angesteuert, und bei niedrigen Drehzahlen belastet, dann kommt 
die Motorinduktivität schon nach z.B. 100 Mikrosekunden Pulsdauer in 
Sättigung, der Strom steigt gewaltig, und Motor und Mosfet werden heiß. 
Nach dem Puls fällt der Strom recht schnell wieder auf null ab, der 
Motor kann also trotz der starken Erwärmung und des hohen Verbrauchs 
nicht mal sein Nenndrehmoment erbringen.

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Habe ich bei einer so hohen Frequenz nicht große Verluste?

von m.n. (Gast)


Lesenswert?

Uwe S. schrieb:
> Wird dieser Motor mit
> nur 480Hz angesteuert, und bei niedrigen Drehzahlen belastet, dann kommt
> die Motorinduktivität schon nach z.B. 100 Mikrosekunden Pulsdauer in
> Sättigung, der Strom steigt gewaltig, und Motor und Mosfet werden heiß.

Nur als Hinweis, es handelt sich um einen 12 VDC Motor. Da darf man 
sogar konstant 12 V anlegen, ohne daß irgendetwas gesättigt oder zu heiß 
wird.
Er dreht nur munter vor sich hin.

LeiderNichtVerfügbar A. schrieb:
> ich nutze den Motor im niedrigen Drehzahlbereich,

Welche Drehzahl brauchst Du denn?

von Uwe S. (regionalligator)


Lesenswert?

LeiderNichtVerfügbar A. schrieb:
> Habe ich bei einer so hohen Frequenz nicht große Verluste?

Ja, die Umschaltverluste am Mosfet und seiner Ansteuerung steigen 
generell. Aber das ist doch ein Püppi-Motörchen dort, bei der Leistung 
ist das gar kein Problem. Kannst also einen kleinen Mosfet mit sehr 
kleinen Kapazitäten nehmen.

Bitte beachte, daß die Freilaufdiode bei dieser Betriebsart (niedrige 
Drehzahl/hohe Frequenz) für den vollen Motorstrom ausgelegt sein sollte.

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Im bereich 50 U/s also 3000/min

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Ich benutze das arduino Motorshield das meines wissens mit einer 
H-Brücke funktioniert. ist die überhaupt für so hohe Frequenzen 
ausgelegt?

Der Motor soll maximal 3000U/min leisten, zum teil (kurzzeitig) auch 
kleiner: (300U/min)

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Uwe S. schrieb:
> LeiderNichtVerfügbar A. schrieb:
>> 31372.55 Hz
>
> Dann nimm die Frequenz. Eisenlose Motoren wie dieser werden nicht mit
> (minimal) ca. 16KHz angesteuert, weil sie sonst unrund liefen.

Bei 16kHz únrund ?

> Das wäre auch schon bei 200Hz nicht mehr der Fall.

Bei weniger dann nicht mehr ?

> Es geht um die sehr kleine
> Motorinduktivität. Diese verhindert einerseits eine starke Stromspitze
> während des Pulses, und andererseits lässt erst sie den Strom während
> der Pausen weiterfließen (über die Freilaufdiode). Wird dieser Motor mit
> nur 480Hz angesteuert, und bei niedrigen Drehzahlen belastet, dann kommt
> die Motorinduktivität schon nach z.B. 100 Mikrosekunden Pulsdauer in
> Sättigung, der Strom steigt gewaltig, und Motor und Mosfet werden heiß.
> Nach dem Puls fällt der Strom recht schnell wieder auf null ab, der
> Motor kann also trotz der starken Erwärmung und des hohen Verbrauchs
> nicht mal sein Nenndrehmoment erbringen.

Alles haarsträubender Unsinn.

von Motorisator (Gast)


Lesenswert?

Uwe S. schrieb:
> sehr kleine
> Motorinduktivität. Diese verhindert einerseits eine starke Stromspitze
> während des Pulses,

Wie, um alles in der Welt, verhindert eine kleine Induktivität eine 
starke Stromspitze?? Doch höchstens nach dem Motto, besser eine kleine 
als überhaupt keine Induktivität.

m.n. schrieb:
> Nur als Hinweis, es handelt sich um einen 12 VDC Motor. Da darf man
> sogar konstant 12 V anlegen, ohne daß irgendetwas gesättigt oder zu heiß
> wird.
> Er dreht nur munter vor sich hin.

Genau, und man darf sogar eine niedrigere Spannung anlegen ohne daß das 
Motörchen explodiert.

von m.n. (Gast)


Lesenswert?

LeiderNichtVerfügbar A. schrieb:
> Ich benutze das arduino Motorshield das meines wissens mit einer
> H-Brücke funktioniert. ist die überhaupt für so hohe Frequenzen
> ausgelegt?

Ist das ein Teil mit dem antiken L298? Da sind 31 kHz die obere Grenze 
der PWM-Frequenz. Ich weiß nicht, womit und wo der Arduino seine PWM 
erzeugt und ausgibt. Transparenter wäre es, selber einen Timer dafür zu 
konfigurieren. Falls das PWM-Signal an PWMA oder PWMB anliegen sollte, 
wäre das eine ganz 'bescheidene' Lösung.

> Der Motor soll maximal 3000U/min leisten, zum teil (kurzzeitig) auch
> kleiner: (300U/min)

Die Leerlaufdrehzal des Motors liegt bei rund 12000 U/min. 300 U/min 
sind 1/40 davon. Sofern man die PWM darauf einstellt (rund 3% 
Tastverhältnis), bleibt der Motor sehr kraftlos. Solche kleinen 
Drehzahlen müssen unbedingt geregelt werden, da der Motor sonst bei 
minimaler Last einfach stehen bleibt, sofern er überhaupt noch dreht.
Welches Drehmoment wird benötigt oder anders gefragt, was ist Deine 
Anwendung?

von Uwe S. (regionalligator)


Lesenswert?

Schade, daß hier so wenig Wissen bezüglich DC-Motoren und ihrer 
Ansteuerung per Pulsweite gegeben ist, und einige hier nicht mal das 
Geschriebene verstehen. Aber auch wenn es so keinen Spaß mehr macht, so 
ist ja eh alles gesagt.

Vielleicht so viel noch: bei Verwendung einer Brücke muss die Frequenz 
für diesen eisenlosen Motor erst recht hoch sein (z.B. 16KHz). Weil es 
keinen Freilauf mehr gibt. Bei z.B. 200Hz oder so an der Brücke wird 
dieser Motor sogar im Leerlauf sehr heiß.

Wünsche dem TO viel Erfolg!

: Bearbeitet durch User
von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

m.n. schrieb:
>

> Die Leerlaufdrehzal des Motors liegt bei rund 12000 U/min. 300 U/min
> sind 1/40 davon. Sofern man die PWM darauf einstellt (rund 3%
> Tastverhältnis), bleibt der Motor sehr kraftlos. Solche kleinen
> Drehzahlen müssen unbedingt geregelt werden, da der Motor sonst bei
> minimaler Last einfach stehen bleibt, sofern er überhaupt noch dreht.
> Welches Drehmoment wird benötigt oder anders gefragt, was ist Deine
> Anwendung?

Ich benutze den Motor als eine Art Servo, abhängig von einem 
Potentiometer soll er sich zur Position des Potis begeben.
Ich habe es jetzt so gemacht das je näher der Motor seinem Sollwert 
kommt desto langsamer wird er, damit er nicht bei jeder kleinen Änderung 
voll anfährt und es ruckelt.

>müssen unbedingt geregelt werden

wie müsste ich das anstellen? Mit einem PID-Regler?

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

Uwe S. schrieb:
> Schade, daß hier so wenig Wissen bezüglich DC-Motoren und ihrer
> Ansteuerung per Pulsweite gegeben ist, und einige hier nicht mal das
> Geschriebene verstehen. Aber auch wenn es so keinen Spaß mehr macht, so
> ist ja eh alles gesagt.
>
> Vielleicht so viel noch: bei Verwendung einer Brücke muss die Frequenz
> für diesen eisenlosen Motor erst recht hoch sein (z.B. 16KHz). Weil es
> keinen Freilauf mehr gibt. Bei z.B. 200Hz oder so an der Brücke wird
> dieser Motor sogar im Leerlauf sehr heiß.
>
> Wünsche dem TO viel Erfolg!


Ich teste ihn jetzt schon länger mit den 490 Hz und habe dabei 
vermutlich schon alles und jede PWM variation versucht...Warm geworden 
ist da nie etwas, weder im Leerlauf noch mit kleinen Lasten.

Wenn ich den Motor mit 31kHz PWM ansteuere könnte das ein Problem geben?

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

m.n. schrieb:
>
>
> Ist das ein Teil mit dem antiken L298? Da sind 31 kHz die obere Grenze
> der PWM-Frequenz. Ich weiß nicht, womit und wo der Arduino seine PWM
> erzeugt und ausgibt. Transparenter wäre es, selber einen Timer dafür zu
> konfigurieren. Falls das PWM-Signal an PWMA oder PWMB anliegen sollte,
> wäre das eine ganz 'bescheidene' Lösung.
>
>

Das bedeutet mit 31372Hz kann ich dieses Bauteil nicht ansteuern?

: Bearbeitet durch User
von Uwe S. (regionalligator)


Lesenswert?

LeiderNichtVerfügbar A. schrieb:
> Ich teste ihn jetzt schon länger mit den 490 Hz und habe dabei
> vermutlich schon alles und jede PWM variation versucht...Warm geworden
> ist da nie etwas, weder im Leerlauf noch mit kleinen Lasten.

Tja, dann hast du keine Brücke, und/oder der Motor wurde wenig 
belastet/hatte einen Freilauf. In der Brücke klappt das mit den 231uH 
des Motors nicht ansatzweise, kann man leicht ausrechnen. Und braucht 
man gar nicht erst, denn die Hersteller entsprechender Steuerungen 
nutzen keine Frequenzen nahe 20KHz, weil ihnen langweilig ist. Die 
Physik zwingt sie dazu.

von Carsten R. (kaffeetante)


Lesenswert?

Michael B. schrieb:
> Uwe S. schrieb:
>> LeiderNichtVerfügbar A. schrieb:
>>> 31372.55 Hz
>>
>> Dann nimm die Frequenz. Eisenlose Motoren wie dieser werden nicht mit
>> (minimal) ca. 16KHz angesteuert, weil sie sonst unrund liefen.
>
> Bei 16kHz únrund ?
>
>> Das wäre auch schon bei 200Hz nicht mehr der Fall.
>
> Bei weniger dann nicht mehr ?
>
> ...
> Alles haarsträubender Unsinn.

Motorisator schrieb:
> Uwe S. schrieb:
>> sehr kleine
>> Motorinduktivität. Diese verhindert einerseits eine starke Stromspitze
>> während des Pulses,
>
> Wie, um alles in der Welt, verhindert eine kleine Induktivität eine
> starke Stromspitze?? Doch höchstens nach dem Motto, besser eine kleine
> als überhaupt keine Induktivität.
>
> m.n. schrieb:
>> Nur als Hinweis, es handelt sich um einen 12 VDC Motor. Da darf man
>> sogar konstant 12 V anlegen, ohne daß irgendetwas gesättigt oder zu heiß
>> wird.
>> Er dreht nur munter vor sich hin.
>
> Genau, und man darf sogar eine niedrigere Spannung anlegen ohne daß das
> Motörchen explodiert.



Ihr habt den Text missverstanden. Der erste und zweite Satz ist im 
Konjunktiv geschrieben. Es geht darum, daß das "unrund laufen" eben 
nicht das Argument für die 16 kHz sind, denn das kann man schon mit 
deutlich niedrigeren Frequenzen vermeiden.

Bei der Motorinduktivität liegt die Betonung zunächst nicht auf klein, 
sondern auf Induktivität, welche den Strom zunächst etwas begrenzt / 
glättet. Das "klein" kommt erst beim Bezug zur niedrigen Frequenz zum 
Tragen, mit dem Hinweis, daß sie bei kleiner Induktivität die Frequenz 
angemessen hoch sein muß um eine Sättigung zu vermeiden.

Hier wäre noch zu ergänzen, daß es vorrangig die niedrigen Drehzahlen 
betrifft, denn dort baut der Motor keine nennenswerte Gegenspannung auf 
(drehzahlabhängig) und man hat nur die "kleine" Spuleninduktivität und 
den ohmschen Kupferwiderstand. Dort hat an Verhältnisse nahe dem 
Blockierstromverhalten. Damit kann man den Motor auch bei Nennspannung 
überlasten, ja sogar bei niedrigeren Spannungen.

Der Motor verträgt nur eine begrenzte Verlustleistung, vor allem wenn er 
fast steht und es somit keine aktive Kühlung gibt. Nun sind die Verluste 
in den Wicklungen abhängig von I².

Wenn man die Verluste dann mal in Abhängigkeit vom Ripple und damit auch 
der Frequenz ausrechnet, wird man feststellen, daß die Verluste bei 
gleichem mittlerem Strom mit dem Ripple steigen bzw Fallen. Im 
Umkehrschluss bedeutet dies, daß bei den gleichen Verlusten der mittlere 
Strom niedriger ist wenn der Ripple durch niedrigere Frequenz steigt. Da 
Strom und Drehmoment proportional zueinander sind, ist das dauerhaft 
lieferbare Drehmoment bei höherem Ripple niedriger.

Das ist das Prinzip. Wo jetzt die Grenzen zur Überlastung liegen, ist 
Bauteileabghängig. Es kann durchaus sein, daß diese Grenze im konkreten 
Anwendungsfall noch nicht überschritten wird. Der Strom ist 
lastabhängig, proportional zum abgerufenen Drehmoment. Das ändert aber 
nichts am Prinzip. Auch ob es ein eisenloser Motor ist oder nicht ändert 
daran kaum etwas. Es verschiebt und verformt nur die Grenzen.

Nachtrag:
Den Datenblättern die ich gefunden habe, konnte ich bislang nicht 
entnehmen ob es sich bei dem Motor um eine "eisenlose" Bauart handelt. 
Wo steht das?

: Bearbeitet durch User
von Michael B. (laberkopp)


Lesenswert?

Carsten R. schrieb:
> Wenn man die Verluste dann mal in Abhängigkeit vom Ripple und damit auch
> der Frequenz ausrechnet, wird man feststellen, daß die Verluste bei
> gleichem mittlerem Strom mit dem Ripple steigen bzw Fallen. Im
> Umkehrschluss bedeutet dies, daß bei den gleichen Verlusten der mittlere
> Strom niedriger ist wenn der Ripple durch niedrigere Frequenz steigt. Da
> Strom und Drehmoment proportional zueinander sind, ist das dauerhaft
> lieferbare Drehmoment bei höherem Ripple niedriger.

Wahr ist:

Ein Motor der z.B. mit 50% seiner Nennspannung mit Gleichspannung 
betrieben wird, wird weniger warm und hat dafür aber auch weniger 
Drehmoment als derselbe Motor der mit einer Halbbrücke an seiner 
Nennspannung mit 50% PWM betrieben wird, obwohl beide dieselbe mittlere 
Drehzahl erreichen.

Auch wahr ist allerdings auch:

Da der Motor ja 100% PWM bzw. volle Nennspannung aushält, ist es egal ob 
er wärmer wird, er hält das schon aus. Auch für das höhere erzielbare 
Drehmoment ist er ausgelegt, denn es ist ja immer noch kleiner als das 
Drehmoment bei Nennlast.

Die einzig wirkliche Unterscheidung kommt bei der PWM-Frequenz:

Wenn die deutlich höher liegt, so daß die Motorinduktivität deutlich 
stromglättend wirkt, also aus PWM Betrieb eher ein Gleichstrombetrieb 
wird, dann entsteht durch EMK ein grösseres Kollektorfunkenfeuer welches 
den Kollektor aufheizt und schneller verschleissen lässt.

Die von Uwe vorgeschlagene höhere Frequenz ist also eher ein Nachteil.
Schade, daß hier von Uwe so wenig Wissen bezüglich DC-Motoren und ihrer
Ansteuerung per Pulsweite gegeben ist.

: Bearbeitet durch User
von Uwe S. (regionalligator)


Lesenswert?

Laberkopp, dein letztes Posting enthält leider keinerlei Wahrheit. Nicht 
ein Punkt stimmt, daher lohnen sich Berichtigungen leider nicht.

Falls du weiter posten wirst, werde ich eventuell doch noch auftretende, 
zufällige Wahrheiten kurz bestätigen. Das geht viel schneller. Wenn 
nichts kommt, war wieder alles falsch.

von Carsten R. (kaffeetante)


Lesenswert?

@ Michael

In deinem letzten Beitrag ist, abgesehen von Grammatik und 
Rechtschreibung, Inhaltlich so ziemlich alles falsch.

Michael B. schrieb:
> Wahr ist:
>
> Ein Motor der z.B. mit 50% seiner Nennspannung mit Gleichspannung
> betrieben wird, wird weniger warm und hat dafür aber auch weniger
> Drehmoment als derselbe Motor der mit einer Halbbrücke an seiner
> Nennspannung mit 50% PWM betrieben wird, obwohl beide dieselbe mittlere
> Drehzahl erreichen.

Da geht es schon los. Weder die Erwärmung noch das Drehmoment werden 
durch die Spannung bestimmt, sondern durch den Strom. Auch wenn die 
Spannung den Stromfluß bewirkt, so ist die Stromstärke davon nur 
indirekt und mittelbar abhängig. Im Leerlauf ist der Strom am 
niedrigsten und steigt mit der Beanspruchung (Drehmoment) und der daraus 
resultierend sinkenden Drehzahl an.

50% Nennspannung entspricht nicht 50% PWM. Zudem ist es abhängig von der 
Art der Last. Am einfachsten ist das bei ohmschen Lasten zu erkennen. Da 
ergibt das am Ende 25% Leistung bei 50% Spannung vs 50% Leistung bei 50% 
PWM mit voller Spannung.

Bei induktiven Lasten ist das nicht so vorhersagbar, weil nicht der 
Strom proportional zur Spannung ist, sondern die Stromänderung! Zudem 
ist der Widerstand vom Elektromotor nicht nur induktiv, sondern hat auch 
einen ohmschen Anteil.

Der Rest deines Beitrages ist auch nicht besser, da du von den oben 
genannt falschen Zusammenhängen ausgehst. Das ist nicht böse gemeint, 
aber du gehst einfach von den falschen Annahmen aus.

von Carsten R. (kaffeetante)


Lesenswert?

Mit steigender Frequenz erhöhen sich zwar die Schaltverluste in der 
Elektronik, aber die Verluste im Motor sinken mit steigender Frequenz.

Höhere Frequenzen verursachen zwar eigentlich höhere Eisenverluste, aber 
dafür sinkt die Amplitude mit steigender Frequenz, was der wichtigere 
Faktor ist, zumindest solange kein Polwechsel erfolgt. Und darauf hat 
die PWM-Frequenz keinen direkten Einfluss, allenfalls durch eine 
geringfüg andere resultierende Drehzahl.

Das Bürstenfeuer wird maßgeblich vom Strom zum Zeitpunkt des Polwechsels 
bestimmt. Auch hier hat die PWM-frequenz keinen so direkten Einfluß, 
welcher zudem eher umgekehrt als behauptet ist. Durch den höheren 
Stromripple bei niedrigerer Frequenz ist der Strom nicht mehr so 
gleichmäßig. Das überträgt sich auf das Funkenfeuer.

Allerdings hat man mit steigenden Frequenzen zunehmend andere dDinge zu 
beachten. Die Elektronik muß schneller werden (Transistoren, Dioden...) 
und das Thema EMV wird zunehmend bedeutsam, weil die Grenzwerte 
frequenzabhängig vorgegeben sind, wohingegen die Vorteile einer weiteren 
Frequenzsteigerung immer weiter schwinden. Wenn die Amplitude schon 
klein ist, gibt es da nicht mehr viel wegzuoptimieren.

: Bearbeitet durch User
von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

OK leute, das ist mir inzwischen viel zu hoch, verstehe etwa 1/4 von 
allem was hier geschrieben wird:D

Also zu eigentlichen Frage:

Motor - DCX22S GB KL 12V
Spannung die ich anlege max 14V (Duty Cicle der PWM immer unter 50%)
Motor controller: L298P

Soll ich die Frequenz verändern? zur Auswahl stehen dabei mit meinem 
derzeitigen Fähigkeiten:

31372.55 Hz
3921.16 Hz
980.39 Hz
490.20 Hz
245.10 Hz
122.55 Hz
30.64 Hz

7812.50 Hz
976.56 Hz
244.14 Hz
61.04 Hz

: Bearbeitet durch User
von Carsten R. (kaffeetante)


Lesenswert?

Siehe Artikel.

Meist geht alles oberhalb von 1-2 kHz. Eisenlose Motoren verlangen 
tendentiell eine höhere Frequenz! Häufiges Motiv für höhere Frequenzen 
ist die Vermeidung von Frequenzen im hörbaren Bereich.

Man sollte aber im Kopf haben, daß der Motor trotz bzw. gerade durch die 
Drosselung überhitzen kann, wenn man längere Intervalle im niedrigeren 
Drehzahlbereich arbeitet, da hier der Strom ansteigt. Das ist aber auch 
Lastabhängig. Oft sind E-Motoren kurzfristig in hohem Maße überlastbar 
solange sie nicht überhitzen und die Wärme über die Zeit verteilt wieder 
loswerden können.

Wenn dich eventuell hörbare PWM-Frequenzen nicht stören, solltest du dir 
Aussuchen können, ob du die knapp 4 kHz oder die knapp 8 kHz nimmst, 
vorausgesetzt die Temperatur von Motor und Shield bleibt bei deiner Last 
im Rahmen. Bei einem Servo sollte das machbar sein, da die üblicherweise 
nicht dauerhaft laufen. Ich würde aber bei der Ansteuerung aufpassen. 
Kleine Abweichung = kleiner Dutycycle? Nicht daß der Servo dauerhaft 
unterhalb des Losbrechmomentes bestromt wird, also trotz Strom stehen 
bleibt.

Garantien kann dir aber keiner geben. Wir kennen die Last nicht und ich 
habe hier auch keine Lust die Spezifikationen des Arduino Motorshields 
herauszusuchen. Im Zweifelsfall müßte man sich den Motorstrom mit einem 
Oszi genauer anschauen.

von LeiderNichtVerfügbar A. (Firma: Keine) (strgfn)


Lesenswert?

ok, danke für die Antwort, werde es mal mit den knapp 4 kHz versuchen.
Strom wird vom Shield begrenzt und liegt bei maximal 2A.

LG

von Jörg E. (jackfritt)


Lesenswert?

@Carsten
D.h. für geringstes Funkenfeuer, Abnutzung Kohlen und Kollektor, eine 
PWM Frequenz wählen die auf die jeweilige Wicklungsinduktivität 
abgestimmt ist, und auch noch Abhängig von der Drehzahl eingestellt 
werden sollte? Für mich hört sich das nach ausmessen mit dem Oszi an.
Oder gibt's da ne einfachere Methode? Wie machen das die Profis? Geheime 
Tabellen in jahrelanger Arbeit zusammengemessen? Oder läßt sich das mit 
ner Formel annähernd bestimmen? Wohl eher nich da jeder Motor nen 
anderen Kollektor-Kohlenaufbau hat oder liege ich da falsch?
Die anderen Faktoren wie Treiber,Verluste,EMV,Kosten mal außen vor 
gelassen.

von Falk B. (falk)


Lesenswert?

@Jörg Esser (jackfritt)


>D.h. für geringstes Funkenfeuer, Abnutzung Kohlen und Kollektor, eine
>PWM Frequenz wählen die auf die jeweilige Wicklungsinduktivität
>abgestimmt ist,

Ja.

>und auch noch Abhängig von der Drehzahl eingestellt
>werden sollte?

Eher nicht.

>Für mich hört sich das nach ausmessen mit dem Oszi an.
>Oder gibt's da ne einfachere Methode? Wie machen das die Profis?

Die messen auch erstmal schnell mit einer Stromzange. Oder sie messen 
die Wicklungsinduktivität und berechnen daraus den Stromripple.

L = U * t / I

von Carsten R. (kaffeetante)


Lesenswert?

Es ist nicht ganz so kompliziert.

Das Bürstenfeuer entsteht ja durch die Umpolung bzw. die 
Stromunterrechung und wird nicht durch die PWM verursacht und davon nur 
indirekt ein wenig beeinflußt!

Ein hoher Stromripple erzeugt tendentiell eine höhere Streuung in der 
Intensität des Bürstenfeuers. Im Umkehrschluß ist es bei "echtem" 
Gleichstrom am Gleichmäßigsten. Nehmen wir also die als gedankliche 
Referen. Man versucht also den Ripple nicht zu groß werden zu lassen.

Das hat man in der Regel schon dadurch erreicht, daß man aus 
akkustischen Gründen die Frequenz in den nicht mehr hörbaren Bereich 
gelegt hat. Sind Geräusche nicht das Argument, z.B. weil das Getriebe 
schon viel lauter ist, kann man die Induktivität ausmessen oder ins 
Datenblatt schauen, sofern vorhanden, um die minimale Frequenz zu 
bestimmen. Trotzdem ist aber das Ergebnis des Probelaufes entscheidend. 
;-)

Auch bei perfekter Gleichspannung wird man trotzdem immer einen 
"Grundripple" haben durch die Umpolungen.

Da die Last die mittlere Stromstärke insgesamt anhebt, ist deren 
Auswirkung bedeutender. Die Last anzutreiben ist aber das Ziel. Da kann 
man nichts machen.

Die Hauptmaßnahmen werden durch externe Entstörung und konstruktiv im 
Motor durch geeignete Bürsten, deren Positionierung etc. ergriffen. 
Darum haben solche Motoren oft eine bevorzugte Laufrichtung in der das 
Bürstenfeuer geringer ist als bei der Richtungsumkehr.

Mit anderen Worten:

Man kann da schon ins Detail gehen, mus es aber an dieser Stelle nicht. 
Da gibt es wichtigere Dinge die Vorrang haben.

: Bearbeitet durch User
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.