Forum: Analoge Elektronik und Schaltungstechnik Spannungseinbrüche mit DC Motor


von Lukas S. (Firma: TU München) (lukas_07)


Lesenswert?

Hallo,

ich arbeite mit einem Atmega 164PA und habe einen 24VDC Motor 
angeschlossen. Nennstrom des Motors ist 2.1A.

Nun habe ich das Problem, dass bei laufendem Motor die Spannung am Board 
gelegentlich kurz zusammenbricht. Beim Aufbau der Platine habe ich mich 
jedoch an die in den jeweiligen Datenblättern empfohlenen Aufbaustrecken 
gehalten. Jetzt zu meiner Frage: gibt es einen "allgemeinen Weg" um 
meinem Problem entgegenzuwirken wie z.B. die Kapazität der Kondensatoren 
zu erhöhen?

Viele Grüße.

: Verschoben durch Moderator
von Peter II (Gast)


Lesenswert?

Lukas S. schrieb:
> Jetzt zu meiner Frage: gibt es einen "allgemeinen Weg" um
> meinem Problem entgegenzuwirken wie z.B. die Kapazität der Kondensatoren
> zu erhöhen?

viel wichtiger ist dafür zu sorgen, das der Kondensator nicht den Motor 
speist -> Diode

von Harald W. (wilhelms)


Lesenswert?

Lukas S. schrieb:

> gibt es einen "allgemeinen Weg"

Man schaltet typsch eine Reihendiode in die Versorgung der Steuer-
Elektronik zur Entkoplung. Die Größe des dahinterliegenden Puffer-
Elkos muss man ausprobieren.

von Lukas S. (Firma: TU München) (lukas_07)


Angehängte Dateien:

Lesenswert?

Anbei mal der aktuelle Schaltplan für den Motortreiber. Es wäre also 
empfehlenswert eine Diode zwischen Vs und den Elektrolytkondesator zu 
bauen?

Danke für eure Hilfe

von ●DesIntegrator ●. (Firma: FULL PALATINSK) (desinfector) Benutzerseite


Lesenswert?

Es kann auch nicht verkehrt sein,
dem Motor eine Freilaufdiode zu spendieren.

wenn der ohne Stromzufuhr nachläuft,
wer weiss, was der zurückbrezelt...

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Lukas S. schrieb:
> dass bei laufendem Motor die Spannung am Board gelegentlich kurz
> zusammenbricht
Welche Spannung an welchem Board?
Und was für ein Problem resultiert denn eigetnlich daraus?

Lukas S. schrieb:
> Anbei mal der aktuelle Schaltplan für den Motortreiber.
Interessant wäre der Schaltplan des gesamten Aufbaus.

> Beim Aufbau der Platine habe ich mich jedoch an die in den jeweiligen
> Datenblättern empfohlenen Aufbaustrecken gehalten.
Zeig doch mal...

von Lukas S. (Firma: TU München) (lukas_07)


Lesenswert?

> Welche Spannung an welchem Board?
Die 24V Versorgungsspannung auf meiner Platine (Eigenbau)

> Und was für ein Problem resultiert denn eigetnlich daraus?
Ein Ruckeln des Motors

> Interessant wäre der Schaltplan des gesamten Aufbaus.
Kann ich nicht hochladen, weil es sich um eine Arbeit an meiner 
Universität handelt

> Zeig doch mal...
Der hochgeladene Aufbau des Motortreibers entspricht dem des 
Datenblatts, was soll ich da zeigen?

von Harald W. (wilhelms)


Lesenswert?

Lukas S. schrieb:

>> Interessant wäre der Schaltplan des gesamten Aufbaus.

> Kann ich nicht hochladen, weil es sich um eine Arbeit an meiner
> Universität handelt

Ohne Arme keine Kekse.

von m.n. (Gast)


Lesenswert?

Lukas S. schrieb:
>> Und was für ein Problem resultiert denn eigetnlich daraus?
> Ein Ruckeln des Motors

Das Problem liegt vermutlich in Deiner Software.

Harald W. schrieb:
> Ohne Arme keine Kekse.

Hast Du keine Schweine? ;-)

von Lukas S. (Firma: TU München) (lukas_07)


Lesenswert?

m.n. schrieb:

> Das Problem liegt vermutlich in Deiner Software.

Das bezweifle ich. Ich teste mit einem einfachen PWM Programm wobei die 
Einbrüche unregelmäßig auftreten. Außerdem kann ich den Motor nicht mit 
voller Geschwindigkeit anfahren ohne dass die Spannungsversorgung 
zusammenbricht, was ja auch gegen die Software spricht.

Ich probiere das jetzt einfach mal mit den Dioden.

von Michael B. (laberkopp)


Lesenswert?

Lukas S. schrieb:
> Es wäre also empfehlenswert eine Diode zwischen Vs
> und den Elektrolytkondesator zu bauen?

Nein, tödlich, der Elko muss die Rückspeisung aus dem Motor aufnehmen 
ohne dass die Spannung über die Grenzspannung der Bauteile steigt.

Aus den 24V machst du offenbar die Spannung für deinen Atmega164PA
1
                               +----+
2
       +--|>|--------------+---|7805|--+
3
       |                   |   +----+  |
4
       |   +-------+       |      |    |
5
       |   |       |---+   |      |    |
6
+24V --+---|TLE5206|  (M)  |      | Atmega164PA 
7
       |   |       |---+   |      |    |
8
       |   +-------+       |      |    |
9
      Elko1    |          Elko2   |    |
10
       |       |           |      |    |
11
GND ---+-------+-----------+------+----+
Elko1 ist also nötig für den Motor, er muss so gross sein daß 
Rückspeisestrom beim Bremsen zu nicht zu grosser Spannungerhöhung führt 
(oder es muss ein Bremschopper dazu).

Elko2 ist zum Puffern die Ausfälle auf Grund Überlastung der 
Spannungsquelle durch den Motor im Anlaufmoment und er muss gross genug 
sein um den Anlaufmoment für den uC zu überbrücken.

Die richtige Lösung wäre aber eine ausreichende Spannungsversorgung, die 
nicht einbricht. Man darf bei Motoren eben nicht nur mit dem Dauerstrom 
rechnen, sondern muss den Anlaufstrom liefern können, der manchmal 10 
mal so gross ist. Kann das Netzteil den nicht liefern, muss man den 
Motor mit Strombegrenzung anlaufen lassen (dann langsamere 
Beschleunigung).

Aber Faulheit und Geiz, weder ein ausreichendes Netzteil noch eine 
Anlaufstrombgerenzung vorzusehen, führt eben zu Murks.

von Manfred (Gast)


Lesenswert?

Lukas S. schrieb:
>> Welche Spannung an welchem Board?
> Die 24V Versorgungsspannung auf meiner Platine (Eigenbau)
>
>> Und was für ein Problem resultiert denn eigetnlich daraus?
> Ein Ruckeln des Motors

Hotline: Was steht auf Ihrem Monitor?
Kunde: Eine Blumenvase.

Das ist etwa die Qualität Deiner Fragestellung bzw. Fehlerbeschreibung!

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Lukas S. schrieb:
> Ich probiere das jetzt einfach mal mit den Dioden.
Ja, probier mal einfach noch weiter herum.
Aber warum misst du nicht einfach mal die Spannungen mit dem Oszi und 
analysierst, warum die Spannung zusammenbricht.

> Außerdem kann ich den Motor nicht mit voller Geschwindigkeit anfahren
> ohne dass die Spannungsversorgung zusammenbricht
Dann lies nochmal meinen obigen Post und zeig mal dinen Aufbau, deine 
Versorgung und deinen Schaltplan. Sonst probier einfach noch, ungepolte 
Elkos am Eingang einzusetzen, oder einen Snubber an den Ausgang 
anzuschließen, oder die Hände aufzulegen oder sonstwas.

: Bearbeitet durch Moderator
von Harald W. (wilhelms)


Lesenswert?

Lothar M. schrieb:

> Dann lies nochmal meinen obigen Post und zeig mal dinen Aufbau,

Das ist alles so geheim, das er selbst nicht weiss, was er tut.

>> Kann ich nicht hochladen, weil es sich um eine Arbeit an meiner
>> Universität handelt

von m.n. (Gast)


Lesenswert?

Lukas S. schrieb:
>> Das Problem liegt vermutlich in Deiner Software.
>
> Das bezweifle ich. Ich teste mit einem einfachen PWM Programm wobei die
> Einbrüche unregelmäßig auftreten.

Das ist typisch für schlechte ISRs.


> Außerdem kann ich den Motor nicht mit
> voller Geschwindigkeit anfahren ohne dass die Spannungsversorgung
> zusammenbricht, was ja auch gegen die Software spricht.

Daß man mit PWM anfährt und ggf. auch bremst, ist doch 
selbstverständlich.

von Lukas S. (Firma: TU München) (lukas_07)


Lesenswert?

> Das ist typisch für schlechte ISRs.
Okay. Meine ISR besteht im Grunde genommen nur aus einem Counter der die 
Overflows eines Zählers mitzählt, sodass ich nach einer definierten Zeit 
die Pulsweite ändere.

So in etwa:

ISR(TIMER0_COMPA_vect)         /*Interrupt Compare Match*/
{
  counter_OVERFLOW++;
}


Kann sowas Probleme machen? Ich dachte die ISR sei so kurz wie möglich 
zu halten.

: Bearbeitet durch User
von Stefan F. (Gast)


Lesenswert?

Wann findet der Einbruch und das Ruckeln eigentlich statt? Beim Anlaufen 
oder danach, wenn der Motor seine Soll-Drehzahl längst erreicht hat?

Welche Ströme fließen in diesem Moment? Sind sie im Rahmen dessen, was 
die Bauteile (auch das Netzteil und die Kondensatoren) liefern können?

Welches Bauteil unterbricht denn den Stromfluss im Fehlerfall, so dass 
der Motor ruckelt? Warum tut es das?

von Stefan F. (Gast)


Lesenswert?

So in etwa:
1
ISR(TIMER0_COMPA_vect)         /*Interrupt Compare Match*/
2
{
3
  counter_OVERFLOW++;
4
}

Da kann schonmal gar icht wahr sein, denn dieser Code würde nicht 
funktionieren, da er nichts Sinnvolles tut.

> einem Counter der die Overflows eines Zählers mitzählt

Tut er aber nicht.

Wie wäre es, wenn du mal mit der Geheimniskrämerei aufhörst und die 
nötigen Infos lieferst, damit amn Dir helfen kann?

von Lukas S. (Firma: TU München) (lukas_07)


Lesenswert?

Ich versuche mal mich deutlicher auszudrücken:

Aufbau meiner Platine:

24V Kreis an dem der Motortreiber und dadurch auch der Motor hängen. Ein 
5V Kreis für µC, UART,..

Mein PWM Programm: bei 0% Motorleistung starten und gleichmäßig auf 100% 
erhöhen (Gesamtdauer ca. 2min)

Mein Problem und was ich mittlerweile dazu weiß:

Nutze ich den normalen 8Bit PWM Modus mit 8er prescale (also ~2kHz PWM 
Frequenz), so läuft der Motor langsam an wie er es soll. Ich habe die 
Spannung auf den OUT Pins des Motortreibers verfolgt und es ist so, dass 
der Motor bei 12V also 50% PWM kurz stoppt, dann bei etwas über 13V 
wieder anläuft aber ab da auch nicht mehr so läuft wie er soll, sprich 
er zuckt & bricht ab.

Nutze ich den 8Bit Fast PWM Modus mit den gleichen Einstellungen (also 
PWM Frequenz ~4kHz), so fährt der Motor den gesamten Spannungsbereich 
von 0 bis 24V genau so ab wie er es soll, also ohne Unterbrechungen.

Was ich daraus schließe ist, dass mein Problem zunächst abhängig ist von 
der PWM Frequenz. Höhere Frequenz heißt ja, dass die Zeiten, in denen 0V 
anliegen kürzer sind.

Woraus ich mir allerdings absolut keinen Reim machen kann ist die 
Tatsache, dass das Problem erst bei 50% PWM auftritt.

Den kompletten Schaltplan/ Code etc. darf ich schlicht und ergreifend 
nicht veröffentlichen, das hat nichts mit Geheimniskrämerei zu tun. 
Falls meine Angaben immer noch nicht ausreichen um das Problem 
angemessen einzuschränken muss ich wohl mit der Umgehung desselben, also 
der Nutzung des Fast PWM Modus leben.

von m.n. (Gast)


Lesenswert?

So langsam?
Weitere Möglichkeit: Treiber-IC wird nicht ausreichend gekühlt und hat 
Aussetzer durch thermische Überlastung.
Kann man aber Alles messen, auch mit dem Finger, aber nur, wenn man den 
Fehler auch finden will.

von Lukas S. (Firma: TU München) (lukas_07)


Lesenswert?

m.n. schrieb:
> So langsam?
https://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM#Wahl_der_PWM-Frequenz 
empfiehlt das

> Weitere Möglichkeit: Treiber-IC wird nicht ausreichend gekühlt und hat
> Aussetzer durch thermische Überlastung.
Der Motortreiber wird in beiden Betriebsfällen heiß

> Kann man aber Alles messen, auch mit dem Finger, aber nur, wenn man den
> Fehler auch finden will.

von Stefan F. (Gast)


Lesenswert?

Möglicherweise hat dein Spannunsgregler oder das (Schalt?)-Netzteil 
Probelme mit der PWM Freuqenz.

Ich bleibe immer noch dabei, dass du nachmessen solltest, welches 
bauteil den Stromfluss ungewollt unterbricht. Es könnte der µC selbst 
sein, was wiederum ein Softwarefehler sien könnte. Es könnte aber auch 
der Treiber sin, oder der Spannungsregler, oder das Netzteil.

Oder in ganz schrägen Fällen könnte gar der Motor selbst Schuld sein.

Das musst du erstmal herausfinden.

von Lukas S. (Firma: TU München) (lukas_07)


Lesenswert?

> Ich bleibe immer noch dabei, dass du nachmessen solltest, welches
> bauteil den Stromfluss ungewollt unterbricht. Es könnte der µC selbst
> sein, was wiederum ein Softwarefehler sien könnte. Es könnte aber auch
> der Treiber sin, oder der Spannungsregler, oder das Netzteil.
>
> Oder in ganz schrägen Fällen könnte gar der Motor selbst Schuld sein.
>
> Das musst du erstmal herausfinden.

Okay das werde ich dann mal machen. Danke erst mal

von Stefan F. (Gast)


Lesenswert?

Außerdem solltest du den Schaltplan zeigen, zumindest den relevanten 
Teil.

Wenn der so geheim ist, dass du nichtmal die 20 relevanten Bauteile 
zeigen darfst, dann können wir Dir nicht weiter helfen.

von m.n. (Gast)


Lesenswert?

Lukas S. schrieb:
>> So langsam?

2 Minuten von 0 auf 100% sind langsam.

> https://www.mikrocontroller.net/articles/Motoranst...
> empfiehlt das

Das muß ja nicht unbedingt stimmen.

Lukas S. schrieb:
>> Weitere Möglichkeit: Treiber-IC wird nicht ausreichend gekühlt und hat
>> Aussetzer durch thermische Überlastung.
> Der Motortreiber wird in beiden Betriebsfällen heiß

Test mit Kältespray durchführen.

von Jens G. (jensig)


Lesenswert?

>Nutze ich den normalen 8Bit PWM Modus mit 8er prescale (also ~2kHz PWM
...
>Nutze ich den 8Bit Fast PWM Modus mit den gleichen Einstellungen (also

Wenn zwei unterschedliche PWM-Generierungsvarianten zu unterschiedlichen 
Ergebnissen führen, dann ist die SW schuld.

>Frequenz), so läuft der Motor langsam an wie er es soll. Ich habe die
>Spannung auf den OUT Pins des Motortreibers verfolgt und es ist so, dass
>der Motor bei 12V also 50% PWM kurz stoppt, dann bei etwas über 13V
>wieder anläuft aber ab da auch nicht mehr so läuft wie er soll, sprich
>er zuckt & bricht ab.

Und was sagen die Output-Pins, wenn der Motor stoppt? Der Motor stoppt 
doch sicherlich nicht einfach so trotz weiterer Ansteuerung.
Wie stark bzw. lang brechen eigentlich die 24V zusammen? Korreliert das 
irgendwie mit dem Motorverhalten?

von Kolja L. (kolja82)


Lesenswert?

Stefan U. schrieb:
> Möglicherweise hat dein Spannunsgregler oder das (Schalt?)-Netzteil
> Probelme mit der PWM Freuqenz.

Jo, hatte ich auch.
Aufbau war: SNT -> KSQ (angesteuert über einen µC mittels PWM) -> LED 
mit 50W
Beim Dimmen gingen die LED bei bestimmten Pulsweiten aus.
Lösung: PWM Frequenz hochgesetzt

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.