PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : zwei Probleme mit Elektromotor und PWM



alter Mann
23.06.2008, 13:02
Hallo zusammen,

ich habe hier ein Problem mit einem störenden Elektromotor:
und zwar habe ich einem Aktor, den ich aus einem 24V Scheibenwischermotor gebaut habe, 2 Endschalter angebracht. Der Motor wird von dem Controller über einen MOSFET IRF540 angesteuert. und zieht im Durchschnitt etwa 2-2,5A im Anlauf entsprechend mehr)
Leider kann ich nur eine Leitung von der Steuerung (Mega8) zu dem Motor verwenden. Dazu habe ich eine 7 Adrige geschirmte Leitung mit 0,25mm² Querschnitt verwendet (Was anderes hatte ich leider nicht). 2mal2 Adern für den Motor, 1 Ader +5V und je eine Ader für die beiden Endschalter. Den Schirm habe ich auf Masse gelegt.
Nun habe ich das Problem, das die Signale der Endschalter nicht erkannt werden. Ich habe versuchsweise mal die Signale der Endschalter im Mikrocontroller direkt auf zwei Ausgänge weitergeleitet und daran Leuchtdioden gehängt.
Jetzt habe ich folgendes Phänomen: Wenn ich den Motor mit PWM ansteuere, dann bekomme ich ein sehr unsauberes Signal auf den Enschalterleitungen. Mit dem Oszi nachgemessen hat das Signal ungefähr meine PWM-Frequenz.
Wenn ich den Motor jedoch ohne PWM ansteuere (also der MOSFET dauernd durchgesteuert ist, habe ich ein sauberes Signal).
Ich habe den Motor schon mit den üblichen drei Kondensatoren und einer Diode entstört und die Pull Down Widerstände an den Endschaltern auf 1KOhm reduziert und an den Endschaltern selbst noch mal Pull Down Widerstände von 1,8KOhm angebracht, also insgesamt ~640 Ohm, was einem Strom von etwa 8mA im offnenen geschlossenen Zustand entspricht. Ausserdem hab ich von den Schalterleitungen noch Kondensatoren mit je 33nF jeweils nach Mase und nach +5V geschaltet.
Aber das Problem tritt immer noch auf und ich bekomme keine saubere Erkennung der Endschalter hin. Wenn ich sie mit einer entsprechend langen Zeitkonstante (aktuell 20mS) entprelle, dann funktioniert zwar die Erkennung der Endschalter, aber die Reaktionszeit auf einen geschalteten Endschalter ist so lang, das mein Aktor schon längst den Bereich des Schalters wieder verlassen hat, wenn die Software endlich mal erkannt hat, das die Position erreicht ist.

Gibt es eine Möglichkeit, trotzdem beides (Motor und Endschalter) über eine Leitung zu führen?


Mein zweites Problem betrifft den MOSFET selbst. Der sollte laut Datenblatt einen Strom von 22A schalten können und einen on-widerstand von 0,077Ohm aufweisen. Allerdings wird er im PWM-Betrieb mit 8 KhZ trotz Kühlkörper ziemlich heiss.
Ich steuere den MOSFET direkt aus dem Controller über einen 300Ohm Widerstand an und habe einen 1KOhm Widerstand als Entladewiderstand für das Gate angeschlossen.

Würde es vielleicht helfen, den Widerstand am PortPin zu vergrössern, so das weniger Strom ins Gate fliesst, oder sollte ich ihn noch verkleinern, um ihn schneller zum Durschschalten zu bringen? Da der Mega8 maximal 40mA treiben kann, könnte ich den Widerstand auf minimal 125Ohm verkleinern.
Bisher hatte ich solche Probleme noch nicht, da ich mit dem IRF540 nur kleinere Ströme bis maximal 500mA geschaltet habe.
(ich weiss, das der dazu maßlos überdimensioniert ist, aber ich hatte noch eine grössere Anzahl davon im Regal liegen ;-) )
Ich habe aber auch keine Lust, eine Treiberschaltung mit einem Transistor
aufzubauen, da ich dann noch eine zusätzliche Spannung für den MOSFET brauchen würde. Mein Motor läuft mit 24Volt und mein Controller mit 5Volt. Der IRF540 hat aber eine maximale Vgs von 20+/-Volt.

Florian

tobiastob
23.06.2008, 13:46
Hallo alter Mann,
möglicherweise hilft dir auch ein LC-Glied um die Störfrequenzen zu filtern. Bin auch gerade dran -> https://www.roboternetz.de/phpBB2/zeigebeitrag.php?t=39386&postdays=0&postorder=asc&start=22
Vielleicht (hoffentlich) hilft es.
Gruß tobias

Besserwessi
23.06.2008, 19:00
Bei dem Endschaltern sollte ein Filter helfen. Das kann auch ein RC filter sein. Sonst würde eher eine kleinerer Widerstand helfen um weniger störungen zu kriegen.

Beim MOSFET müßte man eventuell mehr Spannung zum treiben haben. Das ist kein Logic Level Fet. Bei 5 V am Gate schaft der keine 20 A mehr sondern nur noch irgendwas zwischen 1-15 A je nach Exemplar. Um ihn direkt vom Controller mit PWM zu schalten ist die Gate Kapatzität auch etwas hoch. Wenn schon sollte man den Gate Widerstand kleiner machen. da man nur pulsweise Last hat kann er auch etwa kleiner als 125 Ohm werden (z.B. 100 Ohm). Helfen wird das aber vermutlich wenig. Eventuell würde es helfen den Mega8 mit 5,5 laufen zu lassen.

Am besten wird man aber einen LogicLevel Fet nehmen: eher so was wie ein IRLZ24 oder IRLZ34.

alter Mann
23.06.2008, 21:43
die Widerstände an den Endschaltern hab ich schon reichlich auf die genannten 640 Ohm verkleinert. Meinst Du, ich sollte noch weiter runter gehen?
Auf jeden Fall werd ich mal LC Filter einbauen und sehen, ob sich was bessert.

Der IRF540 hat laut Datenblatt eine Vgsth von 3-4V. sollte also auch mit 5 Volt sauber durchschalten, oder seh ich da was falsch?
Aber ich werd mal versuchen, nen Treiber zu basteln, dann muss halt noch ein 12V Spannungsregler für den FET mit drauf.
Ansonsten werd ich mal wieder ne Bestellung bei Reichelt machen müssen ;-)

Danke für die Antworten.

Florian

avion23
23.06.2008, 22:07
Hallo alter Mann,
schau im Datenblatt nach welcher Strom bei V_GS_th = 3-4V fließen kann.
Es könnte mit einem logic level funktionieren, wenn du den Gatewiderstand verkleinerst auf z.B. 100Ω (oder vielleicht 10Ω?).

Du wirst wohl eine Treiberschaltung brauchen :(

scrolli
24.06.2008, 06:52
moin alter Mann,
ich würde die beiden Motorleitungen 2x durch einen Ferritring ziehen..das hatte mir geholfen

alter Mann
24.06.2008, 12:39
@Avion23
Ich hab mir mal das Datenblatt genauer angesehen. Bei 5V können ungefähr 8A fliessen. Das sollte eigentlich für den Motor volkommen ausreichen, da der Motor (im Leerlauf, in dem er eigentlich überwiegend betrieben wird) etwa 3-4 A zieht. Aber ich habe den Verdacht, das der im PWM Betrieb einen höheren Strom zieht als im ungepulsten Betrieb. Da werd ich wohl auf einen anderen Typen ausweichen müssen.

@scrolli
das werd ich auch mal versuchen. nur leider bin ich die nächsten 2-3 Tage nicht da um es zu testen.
Aber sowie ich alles ausprobiert habe, melde ich mich wieder.

Florian

Besserwessi
24.06.2008, 16:35
Die Fets haben immer einiges an variationen in der Schwellspannung. Im mittel könnten bei 5 V 8 A möglich sein, aber es ist möglich, dass einzelne exemplare auch nur 2-3 A können, dann sieht es schelcht aus. Im PWM Betrieb solle nicht mehr strom fließen als im normalen Daerbetrieb. Für den Anlaufstrom solle man den aber auslegen. Ein anderes Problem könnte eine fehlende oder zu langsamen (z.B. 1N540x) Freilaufdiode sein. Dann wird der FET auch warm. Sonst kann es auch helfen die PWM Frequenz kleiner zu wählen, testweise auch ruhig mal nur 1 kHz.

alter Mann
26.06.2008, 23:10
Also als Freilaufdiode hab ich eine ganz normale 4001 genommen. Was anderes hab ich leider nicht da.

Das mit der Frequenz passt. wenn ich weit genug mit runter gehe, das sie im hörbaren bereich ist, dann wird der FET weniger warm.

Florian

mausi_mick
27.06.2008, 08:21
Hallo alter Mann,

die 4001 kann man vergessen, da zu langsam und zu schwach,
meistens braucht man bei FETs keine Freilaufdioden, da immer inverse
Dioden bei MOSFETs zwischen DRAIN und SOURCE integriert sind,
die recht schnell und an die Ströme des Fet angepasst sind .

Zur Reduzierung der Störprobleme würde ich die Leitungen zwischen FET
und Motor so kurz wie möglich machen (am besten kleine Platine mit FET und ELKO (über Versorgungsspannung) in direkter Nähe des Motors .

alter Mann
27.06.2008, 10:17
@Mausi_mick,
die leitung ist etwa 5 Meter lang. und das Auslagern des FET an den Motor würde das Problem wohl nicht lösen, da ich dann die Impulse der PWM auf der Versorgungsspannung habe.
Und die Diode im FET ist, wenn dieser sperrt nur in so fern wirksam, das die Störimpulse dann auf die Versorgungsspannung gezogen werden.
Ich werde, wenn ich nachher Zeit habe, alle Tipps, die ich bekommen habe mal ausprobieren und eine andere Diode suchen. Dann werd ich mal eine Rückmeldung geben, was inwieweit geholfen hat. Da ich mittlerweile ein anderes Oszi habe ( https://www.roboternetz.de/phpBB2/viewtopic.php?t=13500&postdays=0&postorder=asc&start=682 ), kann ich mir die Spannungen mal genauer ansehen.

Florian

Florian

mausi_mick
27.06.2008, 12:23
@ alter Mann,

Die Versorgungsspannung kann man aber vermutlich eher sauber "kriegen" mit einem dicken Elko ( mit niedrigem ESR) und parallel dazu schnelle keramische C und eventuell noch 'ne kleine Induktivität in der pos. Zuleitung.

Gruß
mausi_mick

Besserwessi
27.06.2008, 15:21
Die Didenen in den Fets sind nur bei einer Brückenschaltung als Freilaufdiode wirksam. Bei der einfachen Schaltung für nur eine Richtung ist die Diode an der falschen Stelle.
Wenn man schon den Leistungsteil direkt an den Motor baut, dann gehört ein low ESR Elko und die Freilaufdiode mit dazu. Elko(Kondensator), Fet und Diode gehören dicht zusammen, sonst kriegt man zusätzliche Induktionsspannungen aus parasitäten induktivitäten.

Die Freilaufdiode sollte für etwa 3-5 A ausgelegt sein. Entweder eine Shotteydiode (z.B. SB540) oder schnelle Dioden (z.B. UF5403,...). Wenn man gerade nichts anders hat, kann man auch einen MOSFET misbrauchen.

PICture
27.06.2008, 16:08
Hallo!

@ alter Mann

Das ist für mich aus deinen Beiträgen nicht ersichtlich, aber durch die Abschirmung des Kabels kein Strom fließen darf. Die Abschirmung sollte nur an einem Ende des Kabels mit Masse verbunden sein.

Wenn durch die Abschirmung PWM Strom fließt, dann ist das die Störungsquelle für alle innere Leitungen. Der Strom soll nur durch Adern fließen.

MfG

FriLu
27.06.2008, 17:11
Hallo,
versuch mal die Endschalter nach Masse zu schalten, die pull-up-Rs nach +5V (im Programm die auswertung invertieren).
MfG Lutz

alter Mann
27.06.2008, 21:34
@PICture
Durch den Schirm fliesst kein Strom. Für den Motor hab ich je zwei adern parallel geschaltet. Das einzige, was ich da angeschlossen habe sind die entstörkondensatoren, die ich an den Endschaltern nachträglich angeschlossen habe.

Florian

mausi_mick
28.06.2008, 04:51
Hi alter Mann,

Vielleicht kann man auch die 24V Versorgung des Motors an den Endschaltern nutzen:
Auch wenn sie nicht stabil ist - die 0,5mm*mm machen auch fast 0,2 Ohm bei 5m und bei 5 A ( Anlauf eher mehr) bereits 1 V Abfall - kann man aus den 24V in der Nähe der Endschalter mit wenig Aufwand (z.B. Vorwiderstand, 5,1V Zenerdiode , Elko( z.B.100µF/16V )/keramischer Kondensator) eine stabile, nur gering belastbare Spannung von 5V ( kann auch grösser sein (z.B. 10V) ) erzeugen, die mit kleinem Vorwiderstand relativ niederohmig auf die Signalleitung gegeben werden kann. Mit den Endschaltern wird dieses High-Signal nach Masse gezogen. Bei höheren Spannungen (z.B. 10V wird der Störabstand grösser, man muss dann aber an den Controllereingängen Schutzmassnahmen ( z. B. R/Zenerdiode ) vornehmen.

Man kann sich dann die 5V Leitung sparen und z.B. die Masseleitung oder die PWM Leitung vom Fet verstärken, oder separate Masseleitung/ Schirmung.
Ein Elko an der 24V Motorleitung mit niedrigem ESR dürfte sich - wie bereits vorher beschrieben - auch positiv bemerkbar machen.

PS: Die Schirmung würde ich eher beidseitig verlöten (d.h. als normale Leitung verwenden), da der "Dreck" ja nicht von aussen kommt, sondern innen (auf der PWM-Leitung) liegt. Wenn man sie als Schirmung verwendet, geht zwar die Abstrahlung nach aussen runter , für die innenliegenden Signalleitungen ist das aber wohl irrelevant.

Vielleicht funktioniert das

Gruß mausi_mick

mausi_mick
28.06.2008, 08:45
Hi alter Mann,

zur Sache mit dem Durchsteuern des Mosfet:

falls kein LL-Fet vorhanden, würde ich das Signal vom Controller
2 mal invertieren (z.B. mit 2 npn-Transistoren (z.B. BC548) ) und gleichzeitig die Pegel erhöhen: aus den 24V z.B. 12V (z.B. 78L12 oder Stabilisierung mit Zenerdiode) erzeugen und damit dann das Gate des PowerMos niederohmig ansteuern .

Damit dürfte der Fet dann schnell und voll durchschalten.

Gruss mausi_mick

alter Mann
29.06.2008, 20:20
Hallo zusammen und danke für die vielen Tips, die ich bekommen habe,

ich habe jetzt den Aufbau etwas verändert und die Störungen auf den Endschalterleitungen sind behoben.
Ausserdem wird der MOSFET jetzt nicht mehr so heiss, wie vorher.

Was ich getan habe ist folgendes:
die gesamte Leistungsstufe habe ich komplett überarbeitet und direkt am Motor untergebracht. Den FET steuere ich nun über einen Optokoppler an, so das ich die Ansteuerung nicht invertiren musste. Der Collectoranschluss des Optokopplers liegt über einen Spannungsteiler auf 12V, der Emitter schaltet das Gate des FET, der über einen 470Ohm Widerstand auf Masse gezogen wird.
Ferner habe ich die Versorgungsspannungsleitungen durch einen Ringkern gezogen und am Motor noch mal 2 dicke Elkos mit je 2000µF und zwei normale Kondensatoren mit je 100nF gepuffert.
Die Diode über den Motor habe ich durch eine 1N4948 ersetzt (1A 100-500µS 1000V).
Dadurch habe ich die Störspitzen in der Leitung nahezu eliminieren können.
Die Endschalter habe ich jetzt gegen Masse geschaltet und mit PullUp Widerständen versehen anstatt wie vorher gegen +5V und PullDown Widerständen. Um meine Software im Controller nicht ändern zu müssen habe ich sie jetzt als Öffner angeschlossen.

Alles in allem haben diese Änderungen eine Menge gebracht, ohne den Aufwand einer zusätzlichen Entstörung ins Unermessliche zu treiben.

Bei Bedarf zeichne ich gerne mal die Schaltung so wie sie jetzt ist.

Noch mal vielen dank an alle die ihren Teil dazu beigetragen haben.

Florian

mausi_mick
30.06.2008, 20:26
Hallo alter Mann,

sieht nach 'ner sehr guten Lösung aus, das mit dem Optokoppler gefällt mir,
kannst den Controller besser vom Leistungsteil entkoppeln und gleichzeitig die Pegelwandlung vornehmen, um den Fet voll durchzusteuern.

Gruß
und viel Erfolg

mausi_mick

Besserwessi
30.06.2008, 20:45
Die Diode ist mit 1 A immer noch reichlich klein und je nach PWM-Frequenz noch relativ langsam. Die Diode solle wenigstens den maximalen Motorstrom aushalten, also hier wohl 3-5 A.

alter Mann
01.07.2008, 18:59
Das mit der Diode ist mir eigentlich schon klar gewesen, aber leider hatte ich keine andere zur Hand ;-)
Im Moment geht es, aber sobald mal wieder eine Bestellung bei Reichelt ansteht, werde ich mir andere mit bestellen.

Florian