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
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...
@ 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
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?
@ 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 ;-)
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.
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...
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?
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).
Und was zum Teufel ist Pin 3? "(PCINT17/TXD) PD1" wirds ja wohl garantiert nicht sein.
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.
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?
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.
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
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.
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.
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?
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
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?
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?
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
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.
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
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
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.
@ 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.
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
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
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.
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
@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.
@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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.