Forum: Mikrocontroller und Digitale Elektronik Gleichstrommotor: Weg bis zum stationären Zustand modellieren


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Jim B. (logicgate)


Angehängte Dateien:

Lesenswert?

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?

von Helge (Gast)


Lesenswert?

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.

von kevin (Gast)


Lesenswert?


von p*rn (Gast)


Lesenswert?

>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?

von Jim B. (logicgate)


Angehängte Dateien:

Lesenswert?

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
von Egon D. (Gast)


Lesenswert?

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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.