PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gleichstrommotor: Weg bis zum stationären Zustand für Simulation modellieren



LogicGate
11.10.2021, 13:28
Transparenz: Dieser Beitrag ist fast 1:1 auch im Forum von mikrocontroller.net (https://www.mikrocontroller.net/topic/525792) erschienen. Da ich dort jedoch auf die Community hier aufmerksam (gemacht) wurde, erstelle ich diesen Post, da es thematisch meiner Meinung gut in das Board passt. Vielleicht findet sich ja der ein oder andere Interessierte.

Hallo zusammen,

kurze Einleitung, da ich den Bereich in drei Bereiche aufteile:


Kurze Zusammenfassung ohne viel Kontext, für die, die es eilig haben
Kontext
Ausführlichere Frage mit einigen Details



Wer also möchte, kann sich gerne Teil 2 und 3 durchlesen. Weil auf dem Sprung ist, schaut sich nur Teil 1 an.

Teil 1: tl;dr

Simulation von fahrendem Roboter mit je einem bürstenlosen Gleichstrommotor pro Rad, im Stillstand benötigt ein Motor ca. 50 ms bis er eine messbare Bewegung erzeugt, in Bewegung ca. 30 ms bis zur messbaren Veränderung, Messfehler nicht auszuschließen, Aufzeichnung mit 50 Hz. Ziel: Findung von allgemeiner Begründung für diese Verzögerungen, welche für möglichst viele Motoren gilt. Frage: Welche Faktoren können dies sein? Losbrechmoment? Zeit bis Magnetfeld aufgebaut ist? Hilfe und Ideen gerne willkommen. Bin neu auf dem Gebiet.

Teil 2: Kontext

Ich arbeite derzeit an einem Simulator für ein omnidirektionalen Roboter mit Mecanum-Rädern. Gedanke ist dabei einen ROS-Vektor aus (x, y, z) Komponenten möglichst realitätsnah im Simulator abzubilden. Der fahrende Roboter selbst verfügt über vier Mecanum-Räder, welche jeweils einen eigenen bürstenlosen Gleichstrommotor haben. Die Umrechnung des Vektors in einzelne RPM pro Rad übernimmt beim Roboter ein verbauter Controller, in meiner Simulation mache ich dies über die Kinematik. Der Roboter selbst ist als komplette Blackbox zu betrachten, wo nur wenige Informationen zu bekannt sind. Vor allem kann nichts nachgemessen werden (Spannungen etc.).

Grund dafür ist, dass die Simulation so allgemeingültig wie möglich sein soll. Natürlich entstehen dadurch Grenzen der Genauigkeit, dies ist bewusst. Unbekannte Parameter, wie z.B. Reibungskoeffizienten, Reglungsparameter, Höhe des Schwerpunktes etc. werden für eine Art von Roboter per Optimierung ermittelt. Dazu werden in Fahrten die Radumdrehungen pro Rad vom Controller abgefragt (Odometrie, 50 Hz). Die Bewegung im Raum wird durch eine externe Messeinrichtung aufgezeichnet. Es wird also für einen angelegten Vektor sowohl die Odometrie als die Positionsinformationen im Raum aufgezeichnet, was dann als Grundlage zur Optimierung der Parameter dienen.

Teil 3: Ausführlichere Frage mit einigen Details

Die Simulation arbeitet derzeit so, dass jeder Motor einen eigenen PID-Regler besitzt, welcher die Ziel-RPM erhält und entsprechend regelt. Die Ausgabe des PID-Reglers kann als Pseudo-Spannung angesehen werden und wird dann durch optimierte Parameter zu Drehmoment umgerechnet usw.

In den aufgezeichneten Daten des echten Roboters zeigt sich jedoch, dass zwischen Anlegen des Vektors im Controller und ersten messbaren Veränderungen am Rad eine gewisse Zeit vergeht. Steht der Roboter still, dann sind dies ca. 50 ms, bewegt er sich schon sind dies ca. 30 ms. Da die Daten nur mit max. 50 Hz ausgelesen werden können, sind hier gewisse Ungenauigkeiten unumgänglich.

Ich möchte nun verstehen was zu diesen Zeiten führen kann, neben der Berechungszeit im Controller selbst. Oft habe ich etwas zum Losbrechmoment gelesen, jedoch konnte ich nie eine genaue Definition davon finden. Daher ist für mich nun schwer zu beurteilen, wo hier "etwas losbrechen" soll. Geht es um die Bewegung zwischen Anker und Ständer im Gleichstrommotor oder um die Reibung zwischen Rad und Boden? Ich habe mich auch schon etwas in die Materie der Elektro-Technik eingelesen und wenn ich es richtig verstanden habe, dann muss über Spannung erst ein Magnetfeld im Motor ausgebaut werden, was natürlich auch Zeit kostet. Wenn eine gewisse RPM erreicht ist und dann beschleunigt werden soll, dann muss - nach meinem Verständnis - das Magnetfeld verstärkt werden, so dass der Anker sich schneller dreht.

Über den Motor kann ich nur sagen, dass dieser bürstenlos ist. Der Hersteller des Roboters gibt noch an, dass eine Feldorientierte Regelung (FOC) genutzt wird und u.a. ein Soft-Start-Schutz vorhanden ist.

Wie aber schon erwähnt bin ich aber nicht daran interessiert diesen einen Motor zu simulieren sondern auf einem höheren Level "einen allgemeinen bürstenlosen Gleichstrommotor", welcher mit gewissen Toleranzen mit Optimierung auf mehrere unterschiedliche Motoren trainierbar ist.

Ich habe mal Bilder von zwei Aufzeichnungen beigefügt. Die Farbe Grün bitte ignorieren, Gelb ist die gemessene Umdrehung. Gezeigt wird ein Rad. Bei einer Grafik verdeutlicht die rote Linie den Zeitpunkt an dem die Zielgröße, blaue Linie, angelegt wurde. Man sieht dann einen Moment keine Reaktion, dann einen "parabel-ähnlichen"-Anstieg der Drehzahl. Ab einem gewissen Zeitpunkt ist der Zuwachs an Umdrehungen dann praktisch linear. Die untere Achse steht für Sekunden.

35612

35611

Mit diesem Roman suche ich nun Leute, die bereit wären, mit mir diese Sache zu analysieren bzw. mir hilfreiche Anhaltspunkte zu geben, welche Faktoren diese Zeiten erklären könnten. Da ich in diesem Bereich nur Laie bin, kann mit Rückfragen von meiner Seite gerechnet werden ;-)

Danke für eure Zeit!

Um also mit einer konkreten Frage abzuschließen: Liege ich mit den Punkten Losbrechmoment und Aufbau des Magnetfeldes schon einmal richtig? Oder habe ich essenzielles vergessen/übersehen?

oberallgeier
11.10.2021, 17:20
.. Kurze Zusammenfassung .. (*gg* tl;dr) .. Simulation .. bürstenlosen Gleichstrommotor .. benötigt ein Motor ca. 50 ms .. Aufzeichnung mit 50 Hz ..Gut. Meines Erachtens läuft es darauf hinaus, dass Du Dir die Sprungantwort eines entsprechend angetriebenen Fahrzeugs ansehen und interpretieren sollst/willst.

Als erstes würde ich Dir mal raten diesen Abschnitt (https://rn-wissen.de/wiki/index.php?title=Regelungstechnik) im hiesingen RN-Wissen über Regelungtechnik durchzugehen (oder besuch mal ein Hochschulseminar über Kinetik) - eher/lieber erstmal überfliegen, Lesezeichen anlegen und immer wieder reingucken. Und - nur nebenbei: bei 50-Hz Abtastfrequenz werden die Zustände nur alle 20 ms festgestellt - kommt mir ziemlich lahm vor. Bürstenlosen Gleichstrommotoren sind doch recht dynamisch . . .

Ich hatte mir für ne ähnliche, deutlich einfachere Aufgabenstellung die Sprungfunktion(en) des (kompletten) Fahrzeugs (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=404730&viewfull=1#post404730) (meine rollende Coladose) angesehen. Das ist ein Zweiräder mit zwei völlig isoliert angetriebenen und geregelten (gebürsteten!) Gleichstrommotoren.

Diese ersten Messungen (s.o. (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=404730&viewfull=1#post404730)) liefen noch recht unrund. Nach einigen Fortschritten in Theorie und Messtechnik wurden die nächsten Ergebnisse ausführlicher (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=422091&viewfull=1#post422091) - aber nicht unbedingt besser (klarer, aussagekräftiger). Noch ein bißchen weiter wurden dann endlich die beiden Motoren besser beobachtet - gleichzeitiger (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=427784&viewfull=1#post427784). Liegt eben auch an der Gleichzeitigkeit der Bestromung (na ja, gleichzeitig ist da schon auch ein paar Mikrosekunden auseinander). Da denke ich gleich wieder an Deine Abtastfrequenz - und könnte jetzt etliche Bedenken vorbringen (aber ich halte mich an oben: tl-dr). Insgesamt war der Wissensgewinn gut - der Geradeauslauf (https://www.roboternetz.de/community/threads/36121-Autonom-in-kleinen-Dosen-R2_D03-Nachfolger-R3D01?p=495507&viewfull=1#post495507)der GETRENNT angesteuerten und ebenso geregelten Motoren - nur zwei Stück! - für meine Bedürfnisse gut genug.

Vielleicht ist das ne Anregung?