Hallo. Ich habe einen fertig entwickelten Motion Controller für DC Motoren und möchte diesen in nächster Zeit um die Ansteuerung von bürstenlosen Motoren "erweitern". Ich habe immer HallSensoren auf der Motorwelle und Quadraturencoder mit Indexsignal auf der Achse zur Verfügung. Messung des Stroms durch die Motorphasen ist vorhanden. Ich habe ausschließlich Positionieraufgaben, wobei sich die Motoren nur wenige Umdrehungen (oder teilweise Grad) bewegen. Hab schon Diverses gelesen. Irgendwie habe ich aber das Gefühl, dass 95% aller Infos sich mit "sensorlos", Geschwindigkeitsregelung oder maximal noch mit Hallsensoren beschäftigen. Was Positionsregelung angeht bin ich noch nicht wirklich fündig geworden. Ich suche jetzt irgendwelche Beispielcodes oder Application Notes für meinen Anwendungsfall. Kann mir jemand weiter helfen? Links oder Beispielprojekte wären super. Danke, Pepe.
Pepe schrieb: > Was Positionsregelung angeht bin ich noch nicht wirklich fündig > geworden. Üblicherweise wird die Regelung mehrstufig aufgebaut: die innerste Schleife ist bei einem DC-Motor die Stromregelung. Der Sollwert für den Strom kommt von der Geschwindigkeitsregelung, diese bekommt ihren Sollwert von der Positionsregelung. Der Istwert der Geschwindigkeit kann mit dem Encoder gemessen werden, ebenso die Position durch einen Zähler am Encoder. Die Art der Positionsregelung hängt davon ab, ob es sich um eine Punkt-zu-Punkt-Steuerung handelt, also nur zum Anfahren einer Ziel-Position, oder um eine Bahnsteuerung. Wobei natürlich auch die Punkt-Steuerung Rampen zum Beschleunigen und punktgenauen Bremsen errechnen muss. Georg
@Georg: Vor dem Regler ist eine Bahnsteuerung mit entsprechenden Rampen integriert. Diese gibt bisher eine Soll-Position aus und der nachfolgende PID Regler zieht die Achse auf die Zielposition. Mit DC Motoren funktioniert dies soweit. Ich suche jetzt nach einer Lösung dieses Drehmomentsignal(=Strom-Sollwert) zu verwenden und damit einen BLDC anzusteuern. Bei mir ist der Groschen noch nicht gefallen wie ich die Kommutierung hinbekomme. Einfach die Hallsensoren für die "120° Ausrichtung" und den Quadraturencoder für die Synchronisierung mit den Werten aus einer sinus-förmigen LookUpTable für die PWM Anpassung der Motor-Phasen erscheint mir irgendwie zu einfach, wenn ich mir den Auswand ansehe, der bei anderen Verfahren gemacht wird. Vielleicht denke ich auch zu kompliziert?
Pepe schrieb: > den > Quadraturencoder für die Synchronisierung mit den Werten aus einer > sinus-förmigen LookUpTable für die PWM Anpassung der Motor-Phasen Damit habe ich noch nicht gearbeitet, aber meine Meinung dazu: der Betrieb des BDLC-Motors muss ohne den Quadraturencoder funktionieren, schon deshalb weil der Encoder bzw. der Zähler garkeinen Bezug zum Drehwinkel hat, solange er nicht mit dem Index-Ausgang genullt wurde, also bis er u.U. eine ganze Umdrehung gemacht hat. Danach ginge das, aber dann hast du eine Art Henne-Ei-Problem, du willst den Motor aufgrund der Drehwinkel-Information drehen, weisst aber garnicht wo er steht. Ich denke also, dein BDLC-Antrieb muss ohne den Encoder funktionieren (was ja auch alle BDLC-Antriebe tun), dieser kommt erst für die Positionsbestimmung ins Spiel, und du brauchst dafür ausserdem eine Initialisierung, z.B. dass der Motor langsam dreht bis zum Index-Impuls, dann kannst du dieser Position einen festen Wert zuordnen - vorher nicht. Anders formuliert, für mich ist der BDLC-Motor samt Ansteuerung, aber ohne Encoder eine Blackbox, die sich verhält wie ein anderer DC-Motor auch. Georg
Ich hatte genau so etwas überlegt. Beim Homen der Achse fahre ich mit Blockkommutierung und wenig Drehmoment bis der Index kommt. Dann kenne ich den Unterschied des Winkels zwischen Hallsensoren und dem Quad.Encoder und kann dann umschalten auf die Sinuskommutierung.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.