Forum: Mikrocontroller und Digitale Elektronik Digitale Drehzahlregelung für Gleichstrommotor - Hallsensor/Abtastrate


von Daniel (Gast)


Lesenswert?

Hallo,

ich habe schon gegoogelt, aber auf dieses Problem wird nirgends, sofern 
es denn tatsächlich eins darstellt, näher eingegangen.

Wenn man die Drehzahl mittels Hallsensor messen will, ist es doch so, 
dass man diese durch die Umlaufzeit des Rotors berechnet.

Aus den Grundlagen der Regelungstechnik ist mir bekannt, dass ein 
digitaler Regler einem analogen Regler möglichst durch eine hohe 
Abtastrate angenähert werden kann. (praktischerweise sollte die 
Abtastrate in etwa 10x größer sein, als die höchste im Regelkreis 
vorkommende Frequenz - also anhand der Übertragungsfunktion des offenen 
Regelkreises betrachtet)

Ein Beispiel:

Annahme: Motor dreht mit 10 Ups (also 600 Upm)
- ergibt eine Umlaufzeit von 100 ms

Würde ich meinen digitalen Regler z.B. mit einer Abtastrate von 1kHz 
implementieren, so würde ich 10x (jede Millisekunde wird der alte 
Drehzahlwert verwendet, aber erst nach 10 Millisekunden würde ein 
tatsächlicher neuer Wert gemessen werden - der dem gemittelten Wert der 
letzten 10 ms entsprechen würde) den alten Wert verwenden müssen.

Fragen:
Ist das ein Problem?
Wie setzt man in so einem Fall die Abtastzeit? (theoretisch/praktisch)
Theoretisch betrachtet müsste es sich hier um ein Totzeit-Glied mit 
veränderlicher Totzeit handeln (als Funktion der Drehzahl), insofern 
bestünde ja die Gefahr des Schwingens/Instabilität.

mfg, Daniel

von Daniel (Gast)


Lesenswert?

Sorry, Faktor 10 Fehler - meinte natürlich 100x messen bis nach 100 ms 
neuer Wert verfügbar

von test (Gast)


Lesenswert?

push

von Alex S. (thor368)


Lesenswert?

Tach Daniel,

das muss man in der Tat beachten. Bei Schrittmotoren hat man ein 
ähnliches Problem. Meiner Erfahrung nach ist es am besten den Regler 
zwei gliedrig aufzubauen.

Ein Teil läuft mit einer festen Zeitbasis. Wenn die eingestellte Zeit 
abgelaufen ist wird der eigentliche Regler angestoßen. Der macht also 
nichts weiter als watchdog zu spielen, falls der Rotor stehen bleibt.

Ansonsten wird der Regler nur mit jedem Encodertakt angestoßen. Wie 
stark der Regler pro Takt seinen Ausgangswert verändern kann ist dann 
eine Sache der Dimensionierung.

Auf diese Weise ist der Regler auf die variable Totzeit des Sensors 
synchronisiert.

Thor

von Thorsten O. (Firma: mechapro GmbH) (ostermann) Benutzerseite


Lesenswert?

Den Regler über den Encoder zu triggern halte ich für gewagt. Was macht 
man dann bei Drehzahlen nahe Null?

In der Praxis ist die Geberauflösung tatsächlich ein kritischer Punkt. 
Niedrigpolige Motoren lassen sich nur auf Hallbasis bei niedrigen 
Drehzahlen nur sehr schlecht regeln, d.h. das Geräuschverhalten und der 
Gleichlauf sind nicht gut. Und das, obwohl man selten mit Motoren zu tun 
hat, die nur ein Polpaar haben. Um so höher die Polpaarzahl, um so mehr 
Hallgeber Impulse hat man pro mechanischer Umdrehung.  Es kann helfen, 
den Reglertakt zu reduzieren. Für Drehzahlregler sind je nach Anwendung 
1-16kHz üblich, man kann aber auch darunter gehen. Aber dann wird eben 
auch das Gesamtsystem träger.

Für eine Drehzahlregelung bis Drehzahl Null oder eine präzise 
Positionierung benötigt man in den meisten Fällen aber einen Encoder mit 
typisch 1000-2000 Strichen/U (also 4000-8000 Pulsen/U).

Mit freundlichen Grüßen
Thorsten Ostermann

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.