Forum: Mikrocontroller und Digitale Elektronik Genauigkeit von Elektromotoren messen


von Kolja L. (kolja82)


Lesenswert?

Hallo

Wir haben folgenden Systemaufbau:

Mit einem kleinen Elektromotor (3V) wird über ein Getriebe
ein Stellventil zugedrückt bzw. geöffnet.
Von ganz offen bis ganz geschlossen dauert es ca. 20 Sekunden.
An Strom gibt es nur 20mA.
Nun wollen wir sehr genau den Durchfluss durch das Ventil einstellen.

Als Messgerät haben wir ein sehr genaues MID.

Im ersten Versuch wurden sehr gut reproduzierbare Durchflüsse erreicht.
Z.B. ergab eine Zeit von 15,34 Sekunden einen Durchfluss zwischen 150 
und 151 Litern pro Stunden.
Das liegt sehr nahe an der Genauigkeit des Messgerätes und ist für uns 
ausreichend genau.

Jetzt bleiben uns zwei Fragen:
Verhalten sich alle Motoren aus der selben Serie identisch?
OK, das könnten wir durchtesten, es sind aber ca. 30 Stück.

Deshalb die zweite Frage:
Können wir irgendwie die Postion des Ventils,
also die Anzahl der Umdrehungen des Motors messen?
Ja, dafür gibt es Servos, Schrittmotoren oder Stellmotoren.
Die können wir bauartbedingt leider nicht einsetzen.
Wir müssen diese Motoren nutzen.

Angesteuert werden sie direkt (also ohne Verstärker oder Transistor)
von einem ATMega328.
Wir können also Spannung bzw. Spannungsabfall und über einen Shunt 
eigentlich auch den Stromfluss messen.

Jemand ne kluge Idee dazu?

Danke und Gruß Kolja

von Karl H. (kbuchegg)


Lesenswert?

Kolja L. schrieb:

> Jemand ne kluge Idee dazu?

Kleb mit Klebeband eine Markierung an die Welle, Reflexlichtschranke 
dazu und lass den Mega die Umdrehungen zählen.

von Frank (Gast)


Lesenswert?

Magnet auf das 2. Wellenende und über Hallsensoren/switches die 
Umdrehungen zählen.

Evtl könnte man mal bei einer konstanten Drehzahl die Stromänderung 
messen? Müsste beim Übergang des Kommutators doch eigentlich ein piekser 
geben !?

von Tcf K. (tcfkao)


Lesenswert?

Genau, wenn das 3-T-Anker Motoren sind könnte man die Kommutierung 
messen und darüber die Anzahl Umdrehungen... dürfte aber etwas aufwändig 
sein.

von Klaus (Gast)


Lesenswert?

Kolja L. schrieb:
> Verhalten sich alle Motoren aus der selben Serie identisch?

Nein. Erfahrungen mit kleinen selbstfahrenden Robotern mit zwei 
identischen Motoren: sie fahren nie geradeaus, die Motore laufen immer 
etwas unterschiedlich.

MfG Klaus

von Jojo S. (Gast)


Lesenswert?

Kolja L. schrieb:
> An Strom gibt es nur 20mA.

Und wodurch wird der Strom begrenzt? Hast du mal den Strom gemessen wenn 
der Motor blockiert? Bei Bürstenmotoren hängt der Strom sehr stark von 
der Belastung ab, den Fall einer mechanischen Blockierung einfach 
auszuschliessen halte ich für keine gute Idee. Dauerhaft genau wird das 
nur mit Rückmeldung über Encoder.

von Uli (Gast)


Lesenswert?

Ohne die Umdrehung zu zählen, um damit die Stellung des Ventils zu 
ermitteln, kommst Du nicht weiter. Selbst wenn die Motoren absolut 
gleich laufen würden, hast Du andere Systemzustände, wie z.B. 
Umgebungtemperatur, welche die Viskosität des Öls/Fett im Getriebe 
beeinflusst, Verschleiß im Getriebe usw. , welche dafür sorgen, dass 
sich nach der festgelegten Zeit immer ein anderer Öffnungswinkel 
einstellen wird.

Btw: Der Durchfluss durch das Ventils der Flüssigkeit ist auch 
Temperaturabhängig...

Gruß
Uli

von Kolja L. (kolja82)


Lesenswert?

Hey Leute ihr seid super!
Schnell und zahlreich :-)

Also,an den Motor bzw. die Welle kommen wir nicht dran.
Aber vielleicht an eins der Zahnräder im Getriebe -> und dann mit 
Encoder...

An das zweite Wellenende, also "hinten" kommen wir dran.
Ist aber alles sehr klein.
Aber n winzigen Neodym mit Loctite befestigen könnte gehen.

Das sich nicht alle Motoren gleich verhalten habe ich befürchtet.
Danke für die Bestätigung.

Die Stromaufnahme wird durch den µC begrenzt.
Am Ende des Fahrweges steigt die Aufnahme auf 30mA.
(Glaube ich, müsste ich noch mal messen)
Dann schalten wir einfach ab.

Aber am Spannensten:

Kommutierung <-- gleich mal googlen :-)
Wenn das klappt wäre super!

Kann ich hier Textdateien anhängen?
Wir haben mal ne Fahrt mitgeschnitten

von Frank (Gast)


Lesenswert?

Jojo S. schrieb:
> Dauerhaft genau wird das nur mit Rückmeldung über Encoder.

Ja, das hab ich mir auch schon überlegt.
Das Problem wäre da nur, das man entweder einen Absolutwertgeber 
bräuchte oder die  Möglichkeit einer Referenzierung und dann halt 
relativ die Umdrehungen zählen.

Da fallen mir 2 Möglichkeiten dazu ein: Entweder Endschalter oder unter 
der Annahme das der Motor nicht blockieren kann gegen den Poller fahren 
und das durch den Blockierstrom detektieren.

von Kolja L. (kolja82)


Angehängte Dateien:

Lesenswert?

So, hier mal die Ventilfahrt

X-Achse: Messungen (10 pro Sekunde)
Y-Achse: Spannung, als Wert aus dem µC.
Also 1023 entspricht 3,3V

Erster Teil ist Leerlauf, bis das Stößel des Getriebes auf den Motor 
trifft.

Gruß und Dank

Kolja

von Tcf K. (tcfkao)


Lesenswert?

Was misst der µC, die (gemittelte) Stromaufnahme?
Um die Kommutierung zu messen ist mehr Aufwand nötig, zuerst mal ein 
Scope an einen Shunt hängen. Das Signal wird man differenzieren und 
aufbereiten müssen.
Wieviel Umdrehungen macht der Motor zirka für den kompletten Ventilweg? 
Zig Tausende, ein paar hundert? Kannst Du Bilder der Motoren einstellen, 
und wie deren Innenleben beschaffen ist?
Abgriff über Encoder ist auf jeden Fall einfacher und zuverlässiger.

von Harald W. (wilhelms)


Lesenswert?

Klaus schrieb:

>> Verhalten sich alle Motoren aus der selben Serie identisch?
>
> Nein. Erfahrungen mit kleinen selbstfahrenden Robotern mit zwei
> identischen Motoren: sie fahren nie geradeaus, die Motore laufen immer
> etwas unterschiedlich.

Ein Mensch läuft ja auch nie geradeaus, wenn er keine Rückkopplung
mit der Umgebung hat. Die Beine laufen immer etwas unterschiedlich.

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.