Forum: Mikrocontroller und Digitale Elektronik Drehzahl Konstantregelung DC-Motor?


von Thomas O. (Gast)


Lesenswert?

Hallo,

kann mir jemand erklären was dafür nötig ist, es handelt sich um einen
Scheibenweischermotor(4,5A abgesichert) mit einem festen
Untersetzungsgertiebe. Also Geschwindigkeitsmessung ist nicht so
einfach möglich da es sehr langsam läuft und ich so sehr viele Impulse
benötigen würde, die drehende Rolle ist aber sehr klein so das man da
nicht viele Anbringen kann.

Muss ich den Spannungabfall messen um auf den Stromverbrauch zu
schließen und dann den Spannungsabfall konstant halten damit der Strom
gleich bleibt? Oder was wird hier als Messgröße verwendet?
Bei Conrad habe ich nen 10A Gleichstromsteller gesehen mit einem riesen
Kühlkörper. Wird bei solchen Regelungen der Transistor linear
angesteuert?

Wäre sehr dankbar wenn mir jemand sagen könnte welche Messgrößen ich
verwenden kann. Oder gibts es hier evtl. fertige IC für diesen
Einsatzzweck?

von Marc M. (bytewood) Benutzerseite


Lesenswert?

So auf die Schelle fällt mir folgendes ein:
Eingangsspannung auf einen ADC, und Spannungsdifferenz (nach dem Motor)
in einen weiteren ADC.
Ein Ausgangspin PWMen der einen Transistor durchsteuert.
Rest ist Programmierung.

Wenn ein Stück Achse herausschaut oder so, wäre eine Optische Abtastung
interessant oder der Einsatz eines Magnetischen Systems denkbar.

Gibt bestimmt noch viel mehr möglichkeiten....

Grüße

von Marko B. (Gast)


Lesenswert?

Hier ist ein sehr schönes Projekt:

http://frontrangerobotics.org/PIDbackEMF/DavesBEMFmotorArticle.htm

Eine PID Motorregelung, die die Back EMF zur Drehzahlmessung benutzt.

von Axel R. (Gast)


Lesenswert?

mitm OPV, in der Gegenkopplung liegt ein Teil des Motorstroms.
Hatte ich (ganz) früher bei den Motorsteuerungen fürn Zahnarzt
(PROBADUL, kennt nch einer?). Lief bei 30Volt, war mit einem (TD)A2030
, einem Tschechischen KU oder KD, einem Schalenkern und einer
Freilaufdiode, wenn ich mich recht entsinne.
Leider habe ich da keine konkreten Unterlagen mehr, aber ich entsinne
mich, das für die LEiterplattenbohrmaschine (dieses rote PIKO-Ding) mal
was mit einem LM165/B165 gemacht wurde, was ja dem 2030 entspricht. Das
war dann allerdings analog und rein linear.
Im prinzip brauchst Du einen dreieckgenerator (555 am Pin 2
abgreifen),
einen Komparator, der Rechteck draus macht und eine Fehlerspannung, die
Du aus dem Stromfluss des Motors generierst.
Wenn ich hier fertig bin, such ich mal nach der Schaltung. War nicht
schwer:
Der Dreieckgenrator und der Komparator wurde allein mit einem OPV(hier
der 2030) gemacht.

Bis denn
AxelR.

PS.
auch ich bewundere dein Durchhaltevermögen und deine Verbissenheit bei
diesem Projekt. Schön zu shen, wie Du immer mehr vorankommst. RESPEKT!

von Axel R. (Gast)


Lesenswert?

Die von Marco angesprochene "BACKEMF-Regleung" ist natürlich um Längen
zeitgemäßer!(Hatte ich mir jetzt erst ansgesehen)

von Thomas O. (Gast)


Lesenswert?

diese Back-EMF-Möglichkeit ist mir momentan zu aufwändig, außerdem habe
ich um einen kompletten Port zu Debugzwecken freizuhalten 4
ADC-Eingänge für Digitale-Signale geopfert. Habe im Moment nur einen
AD-Kanal frei. Will das jetzt erstmal schnell und einfach
fertigstellen. Und später bau ich ne komplett neue Platine auf. Wo ich
dann auch etwas mehr Zeit in die Software hänge und es entweder mit der
Back-EMF Methode oder evtl. mit Markirungen an der Drehwalze und einer
Photodiode die Drehzahl einlese.

Hab mal nen kleinen Versuch mit einem Kleinmmotor gemacht, wenn ich den
Strom durch den Motor messe und den Motor dann abbremse steigt der Strom
an. Über einen Shunt kann ich dann auch einen Spannungsabfall messen,
daraus könnte ich in Verbindung mit der Versorgungspannung eine
Differenz bilden um die ich den PWM Wert erhöhen kann um das ganze
auszugleichen. Leider bekomme ich es in ASm nicht auf die Reihe, ich
messe die beiden Spannungnen bilde die Differenz und möchte das dann
mit einem eingestelltem Grenzwert vergleichen wenn die Differenz höher
ist springe ich in eine Routine die mir den PWM-Wert erhöht. Im
Simulator funktioniert prächtig in der Anwendung allerdings nicht. Das
Rauschen(Störungen des Motors) hab ich durch LC-Filter in den Griff
bekommen.

lds temp, Versorgungsspannung
lds temp2, Spannungmotor
sub temp, temp2          ;Differenz bilden
out portc, temp          ;Anzeige der Differenz am Port C
ldi temp3,28             ;Grenzwert
cp temp, temp3           ;Vergleiche ob Differenz  höher als Grenzwert
brge hochsetzen          ;Wenn ja gehe zu hochsetzen und erhöhe den
PWM-Wert

von AxelR. (Gast)


Lesenswert?

Frag mal bei ..HanneS.. (waren's zwei oder drei Punkte?)
Er misst die Differenz die Betriebsspannung in Relation zur
Referenzspannung bzw. umgekehrt und belegt keinen AD-Kanal.

Aber gut, einen AD Kanal hast Du ja frei, und verwendest ihn ja auch -
wie man sieht.

Ich würde nicht mit einem Grenzwert vergleichen, sondern einfach den
aktuellen Registerstand im PWM-Register auslesen und um den
Fehlerbetrag in temp erhöhen. Bin aber kein Reglerexperte.
Wenn deine Motorspannung größer wird, als die Betriebsspannung, hast Du
ein Problem. Und die wird größer! Spätestens, wenn der Motor vom Fet
abgeschaltet wird, läuft dieser ohne Last als "Dynamo" vor sich hin
und erzeugt eine hohe Spannung.
Du darfts also nur ADCieren, wenn der Fet angesteuert wird.

"Mein" (ist ja nicht meins) Gokart hat mich ebenso Nerven gekostet.
Meine Überstrombegrenzung - hier keine Regleung, sondern nur eine Art
Sicherung - hat immer dann abgeschaltet, wenn man die PWM ein Stück
zurück genommen hatte. Klar: der Strom floss über die Freilaufdiode.
Und der Fliesst eben nur, wenn die Spannung am Motor höher ist, als die
Betriebsspannung, weil die Freilaufdiode ja anderenfalls sperrt. Da
weiter keine Last am Motor hing (vom Gokart mal abgesehen). war diese
Überspannung recht heftig: von wegen 0.7Volt bei einer Diode, war schon
etwas mehr!
Ich habe dann den dort verwendeten Komparatorausgang vom IBGT
Steuereingang freigegeben.
Kannst Du ja mit dem ADC in SW mit OC0, 1A, 1B oder OC2 - je nachdem,
welchen Du nimmst, koppeln. Einfach ADEN setzen oder löschen...

Ich habe das mit dem OPV nochmal aufgemalt.
Allerdings auch nur aus dem Kopf und ungetestet.
Der 2030 hat KEINE Rail-to-Rail inputs!


                                       24V
          .-------------o-----------------
          |             |
          |10K          |TD(A)2030
         .-.          |\|
         | |<---------|+'     _
         | |          |  >---|___|---o----.
         '-'       .--|-.     1R0    |    |
          |        |  |/|            |    |
          |        |    |     _    |    |
          |     .--o----)----|___|---'    |
          |     |       |      1K         |
          |     |       |                .-.
          |    .-.      |               ( X )
          |    | |      |                '-'
          |    | |1K    |                 |
          |    '-'      |                 |
          |     |       |                 |
          '-----o-------o-----------------'
(created by AACircuit v1.28.5 beta 02/06/05 www.tech-chat.de)

Einen Motor habe ich nicht gefunden, die Lampe soll diesen darstellen.
Prinzip ist einfach:
der Spannungsabfall am 1R Widerstand hebt die Verstärkung des OPV an
und soll den Drehzahlabfall des Motors "auffangen".
Muss man sicher mit den Werten spielen.
Leider finde ich die Originalschaltung nicht mehr - habe schon
gesucht.
Aber ich glaube, so war das- sich bein ich mir nicht mehrwirklich.

Viel Spass noch

AxelR.

von Rahul (Gast)


Lesenswert?

Der Motorstrom ist ja auch eher ein Maß für das aufzubringende /
aufgebrachte Drehmoment.
Eine Drehzahlregelung bekommt man eigentlich nur über die Messung der
Drehzahl hin.

von Thomas O. (Gast)


Lesenswert?

Hallo,

diese Schaltung mit dem OP funktioniert doch linear aber das will ich
ja vermeiden oder misst du das ganze dann nochmal um die PWM mit den µC
zu  verändern. Hast du beim Abschalten auch so nen kleinen Sprung des
Motors beobachten können?

@Rahul: Die Drehzahl muss nicht 100% konstant bleiben denke das da 5%
garnicht auffallen werden. Sie soll aber nicht zu arg abweichen wenn
das ganze belastet wird.

von AxelR. (Gast)


Lesenswert?

die OPV Scaltung ist rein analog/linear. Wenn das nicht geht, dann gehts
nicht, war ja nur ein Vorschlag.
Beim Gokart gibt es keinen Sprung der Motore. Nur wenn man gegen eine
Wand fährt. Aber dann springt der Fahrer, nicht der Motor.
Ich denke eher, das bei Dir die Betriebsspannung hochläuft oder der Fet
wegen was weiss ich vor dem Abschalten einfach durchgesteuert wird.
Du kannst ja mal den Code posten. (Hattest Du schon?)

von Thomas O. (Gast)


Lesenswert?

werde denn Code noch etwas kommentieren und dann bereitstellen

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.