Hallo zusammen, kurze Einleitung, da ich den Bereich in drei Bereiche aufteile: 1. Kurze Zusammenfassung ohne viel Kontext, für die, die es eilig haben 2. Kontext 3. 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 ein Bild einer Aufzeichnung beigefügt. Die Farbe Grün bitte ignorieren, Gelb ist die gemessene Umdrehung. Gezeigt wird ein Rad. Die rote Linie soll nur den Zeitpunkt verdeutlichen 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. 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 Losberechmoment und Aufbau des Magnetfeldes schon einmal richtig? Oder habe ich essenzielles vergessen/übersehen?
Also es gibt Räder, die mit einem integrierten Motorregler ausgestattet sind und von einem externen PID-Regler gesteuert werden? Dann wird es immer auch eine Verzögerung durch Software im Motorregler geben. Die wird sicherlich auch bei Stillstand anders sein als beim fahren.
Probiers mal hiermit: https://rn-wissen.de/wiki/index.php/Regelungstechnik Speziel die Modellierung des Motors: https://www.roboternetz.de/community/threads/11477-Tr%C3%A4gheitsmoment
>Losbrechmoment? Zeit bis Magnetfeld aufgebaut ist?
Also ein schneller, drehzahlgeregelter Servomotor hat teilweise schon in
1..5ms die Enddrehzahl erreicht.
Da ist irgendwo ein eine absichtliche Verzögerung drin.
Was sind denn oben in dem Diagramm für Zeiteinheiten? Minuten?
Helge schrieb: > Also es gibt Räder, die mit einem integrierten Motorregler > ausgestattet > sind und von einem externen PID-Regler gesteuert werden? Aufgrund dieser Frage vermute ich, dass ich oben etwas ungeschickt bzw. falsch formuliert habe. In meinem Modell habe ich für jedes Rad einen PID-Regler, welcher Teil des simulierten Motors sein soll. Dieser bekommt die RPM als Zielgröße. Aufgrund der Fragestellung scheint dies aber in der Realität nicht so zu sein, verstehe ich das richtig? > Dann wird es immer auch eine Verzögerung durch Software im Motorregler > geben. Die wird sicherlich auch bei Stillstand anders sein als beim > fahren. Das vermute ich auch. Jedoch kommen mir die 50 ms da schon etwas sehr lang vor. kevin schrieb: > Probiers mal hiermit: > https://rn-wissen.de/wiki/index.php/Regelungstechnik Danke, schaue ich mir mal an. Ich habe die Seite nun eben kurz überflogen, werde sie gleich im Detail ansehen. Bis auf ein Totzeitglied habe ich aber keine Information gesehen, welche darauf hindeuten könnte, wieso die initiale Verzögerung von 50 ms entsteht. > Speziel die Modellierung des Motors: > https://www.roboternetz.de/community/threads/11477-Tr%C3%A4gheitsmoment Schaue ich mir auch mal an. Das Trägheitsmoment habe ich in der Simulation bereits bzgl. der Rotation um die Z-Achse. Das dies aber auch zwischen Ständer und Anker existiert, hatte ich gar nicht auf dem Schirm. Ich bin mir gerade aber unsicher, ob mir dies nun eine weitere Erkenntnis bringt - vermutlich verstehe ich es im Detail noch nicht. p*rn schrieb: >>Losbrechmoment? Zeit bis Magnetfeld aufgebaut ist? > Also ein schneller, drehzahlgeregelter Servomotor hat teilweise schon in > 1..5ms die Enddrehzahl erreicht. Ok, gut zu wissen. > Da ist irgendwo ein eine absichtliche Verzögerung drin. > Was sind denn oben in dem Diagramm für Zeiteinheiten? Minuten? Das sind Sekunden. Habe leider etwas dumm abgeschnitten. Füge einfach mal einen kompletten Ablauf als weitere Grafik bei. Dabei steht der Roboter erst 1 Sekunde, beschleunigt dann, bremst ab und steht dann wieder einige Zeit still bevor die Aufnahme beendet wird. PS: Nun habe ich Pfeife unten wieder die Einheit der Zeitleiste abgeschnitten, seufz. Sorry.
:
Bearbeitet durch User
Jim B. schrieb: > Simulation von fahrendem Roboter mit je einem > bürstenlosen Gleichstrommotor pro Rad, Ich möchte nicht nörgeln, aber das, was das Marketing als "bürstenlosen Gleichstrommotor" bezeichnet, das ist technisch ein elektronisch kommutierter Synchronmotor. Das mag für das Verständnis einen Unterschied machen, wenn man tiefer in das Betriebsverhalten des Antriebes einsteigen will.
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.