Forum: Mikrocontroller und Digitale Elektronik balancing robot mit schrittmotoren


von Reiner D. (dollreiner)


Lesenswert?

ein mini-segway wieder mal ;-)
mit einem arduino, aber in c++ programmiert, soll der mit 2 
nema17-steppern fahren (dazu 2 x L298).

die frage lautet : ist der stellwert für die stepper die geschwindigkeit 
(drehzahl) oder die schrittzahl ?

man könnte ja sogar rechnen, welcher neigungswinkel wievielen steps 
entspräche ...

von RP6conrad (Gast)


Lesenswert?

Kein von beide. Bei einen DC-motor wird PWM geregelt, das entspricht dan 
Moment. Bei ein Stepper soll men dan Beschleunigung / Verzogerung 
regelen. Das ist nicht so einfach wie bei ein DC-motor.

von aSma>> (Gast)


Lesenswert?

Reiner D. schrieb:
> die frage lautet : ist der stellwert für die stepper die geschwindigkeit
> (drehzahl) oder die schrittzahl ?

Hängt von deiner DGL ab.

von Reiner D. (dollreiner)


Lesenswert?

der aufbau kippt nach vorne, in einem gewissen winkel mit ner gewissen 
winkelgeschwindigkeit (..und beschleunigung). dgl, schon klar.

aber : kann ich das nicht annähern ?

der aktuelle kippwinkel entspricht einer stepzahl, dann wäre er wieder 
gerade. p-teil aus winkelmessung.

die aktuelle winkelgeschwindigkeit ist die ableitung vom winkel, bei mir
direkt der gyro. d-teil.

ganz falsch ??

von Patrick J. (ho-bit-hun-ter)


Lesenswert?

Hi

Warum bekam der TO bereits zwei Negative?
Ok, fehlende große Buchstaben
Ok, kein MfG am Ende
Rechtschreibung geht auch

Am Thema vorbei kann ja nicht sein, da Er selber das Thema vor gibt.

Die Annahme, daß der Neigungswinkel proportional zur Motoransteuerung 
ist, klingt auch schlüssig.

Die erste Antwort lässt allerdings vermissen, daß die rot 
unterkrickelten Worte (zumindest im FireFox) einer 2.ten Sichtung 
bedürfen - Genosse Duden lässt grüßen - zumindest noch keine 
'Minuspunkte'.

@aSma
Was ist DGL? Finde dazu nur Links wie 'DGL-Group' und irgend was mit 
Russisch.

MfG

von Reiner D. (dollreiner)


Lesenswert?

eigentlich wollte ich bloß über regelungstechnik plaudern, aber das 
scheint ja gar nicht so einfach. die form scheint wichtiger ?

trotzdem :

DGL (ha, ich hab auch großbuchstaben ;-) meint sicher 
differentialgleichung, was eben das vorhandensein von werten und deren 
ableitungen beschreibt.

aber : ich will das mathematische vermeiden. deshalb der anschauliche 
ansatz. wenn man einwendet, daß die anordnung ausgehend vom 
beobachtungszeitpunkt ja weiter beschleunigt kippt, könnte man 
anschaulich das als i-teil ansehen (?)

.. fachliche einwände ?

(ach so : mfg ! ganz unabhängig von der sprachlichen qualität dieses 
kürzels ;-)

: Bearbeitet durch User
von Stm M. (stmfresser)


Lesenswert?

Hallo Reiner,

ich habe mir vor 2 Jahren einen balancierenden Roboter gebaut.

Siehe: https://www.youtube.com/watch?v=jPH4uLOQLpM

Ich kann dir folgende Schritte empfehlen

1. Bewegungsgleichungen herleiten: 3D (Rotationsmatrizen etc)
2. Jakobi Linearisieren oder exakte Linearisierung, am Besten Ein und 
Ausgangslinearisierung
3. Parameter identifizieren
4. Reglerentwurf mittels LQR oder Polplatzierung

Achja, die Systemzustände müssen ja richtig gut gefiltert und beobachtet 
werden.

von Reiner D. (dollreiner)


Lesenswert?

chapeau, der stm32 liegt bei mir im keller (als leiche). ich will das 
ding bare-metal, also ohne große lib-unterstützung programmieren, und 
das zeigt mir (wieder mal) meine grenzen (trotzdem *grins). auch 
mechanisch schaut das dein wägelchen im viedo wirklich sehr gut aus !

zum thema : ich möchte daraus ein schulprojekt machen, und dazu kann ich 
nichts über der normalen differenzial/integral-rechnung einsetzen. also 
regler mit d- und i-teil geht noch, drüber ist die luft zu dünn.

auf diesem niveau haben wir schon einen copter hingekriegt 
(https://www.youtube.com/watch?v=QGgmUf9xNQ8&t=9s).

kalman ist auch nicht machbar, wir setzen fusionsfilter, z.b. den von 
s.colton ein, das genügt für die acc/gyro-auswertung.

mit den steppern geht das schon mechanisch, die frage ist eben nur, ob 
ich das nicht nutzen kann, daß ich (ohne inkrementgeber und so) wirklich 
die schrittzahl und damit exakt den korrekturwinkel vorgeben kann.

: Bearbeitet durch User
von Md M. (Firma: Potilatormanufaktur) (mdma)



Lesenswert?

Patrick J. schrieb:
> Was ist DGL? Finde dazu nur Links wie 'DGL-Group' und irgend was mit
> Russisch.

Dann kannst du Google nicht richtig bedienen. Vielleicht mal was an den 
Spracheinstellungen ändern?

: Bearbeitet durch User
von Stm M. (stmfresser)


Lesenswert?

Reiner D. schrieb:

> zum thema : ich möchte daraus ein schulprojekt machen, und dazu kann ich
> nichts über der normalen differenzial/integral-rechnung einsetzen. also
> regler mit d- und i-teil geht noch, drüber ist die luft zu dünn.

Der Regler ist meistens in PD Form, ist auch bei so. Der Motorregler ist 
natürlich PI.

> kalman ist auch nicht machbar, wir setzen fusionsfilter, z.b. den von
> s.colton ein, das genügt für die acc/gyro-auswertung

Winkel Auswertung wird sicherlich mit anderen Filtern gehen, mich würde 
interessieren ob es besser funktioniert als Kalman Filter.

> mit den steppern geht das schon mechanisch, die frage ist eben nur, ob
> ich das nicht nutzen kann, daß ich (ohne inkrementgeber und so) wirklich
> die schrittzahl und damit exakt den korrekturwinkel vorgeben kann.
Schrittverlust ist meiner Meinung nach bei der Anwendung nicht so 
schlimm.

Du misst den Neigungswinkel, Winkelgeschwindigkeit und Rad Winkel sowie 
Radwinkelgeschwindigkeit, du lässt deinen PD Regler mit diesen 
gemessenen Zuständen füttern und dabei was raus kommt ist das 
Beschleunigungsmuster für die Schrittmotoren

von Reiner D. (dollreiner)


Lesenswert?

beschleunigungsmuster ?

ich kann (hab heute zum ersten mal überhaupt mit schrittmotoren 
gespielt) eine schrittzahl vorgeben und eine schrittgeschwindigkeit. das 
mach ich mit einem timer-interrupt, die isr macht je einen schritt.

vorher hatte ich das mit gleichstromgetriebemotoren probiert, allerdings 
mit schrottmotoren für rund 3€, die sind erst bei 60% leistung (nicht 
reproduzierbar) richtig losgelaufen. die pwm-basierte pd-regelung hat 
auch bei vorspannung usw. damit nicht befriedigend funktioniert.

ich spiele jetzt mal so : mit z.b. 200hz regelfrequenz rechne ich über 
den radumfang aus, wieviel schritte es braucht, um den gegebenen 
neigungswinkel (fusion acc/gyro) auszugleichen. diese schrittzahl gebe 
ich vor und versuche sie mit maximalgeschwindigkeit anzufahren. während 
der fahrt wird die neigung (mit abnehmender winkelgeschwindigkeit, wenn 
meine fahrt schneller ist als der kippvorgang) zunächst noch zunehmen, 
was ständig in die sollschrittzahl einfließt. wenn ich mit den rädern 
genau unter dem massenschwerpunkt bin, ist die sollschrittzahl = 0. 
überschwingen kommt wegen dem schrittmotor nicht vor.

im balance-mittelpunkt wird jede kleine neigung jeweils sofort mit dem 
entsprechenden schrittweg ausgeglichen.

ob das funktioniert ??

: Bearbeitet durch User
von aSma>> (Gast)


Lesenswert?

Reiner D. schrieb:
> mit den steppern geht das schon mechanisch, die frage ist eben nur, ob
> ich das nicht nutzen kann, daß ich (ohne inkrementgeber und so) wirklich
> die schrittzahl und damit exakt den korrekturwinkel vorgeben kann.

Ohne eine Simulation brauchst du Ewig und Dreitage.

Wenn du einen Schrittmotor nimmst, dann musst du zusehen, dass so 
ungefähr >0.5 m/s Verfahrgeschwindigkeit tangential möglich ist. Nur 
dann kann der Regler schnell reagieren und solche Fahrten, wie im Video 
zuvor, sind möglich.

Reiner D. schrieb:
> im balance-mittelpunkt wird jede kleine neigung jeweils sofort mit dem
> entsprechenden schrittweg ausgeglichen.
>
> ob das funktioniert ??

Natürlich kann man durch ausprobieren ans Ziel gelangen. Dann musst du 
aber selber da durch. Dies hat mit der konventionellen Regelungstechnik 
nichts zu tun.

von Stm M. (stmfresser)


Lesenswert?

Reiner D. schrieb:
> beschleunigungsmuster ?

Die Stellgröße aus dem PD Regler ist entweder die Beschleunigung oder 
Drehmoment.

> ich kann (hab heute zum ersten mal überhaupt mit schrittmotoren
> gespielt) eine schrittzahl vorgeben und eine schrittgeschwindigkeit. das
> mach ich mit einem timer-interrupt, die isr macht je einen schritt.
>
> vorher hatte ich das mit gleichstromgetriebemotoren probiert, allerdings
> mit schrottmotoren für rund 3€, die sind erst bei 60% leistung (nicht
> reproduzierbar) richtig losgelaufen. die pwm-basierte pd-regelung hat
> auch bei vorspannung usw. damit nicht befriedigend funktioniert.
>
> ich spiele jetzt mal so : mit z.b. 200hz regelfrequenz rechne ich über
> den radumfang aus, wieviel schritte es braucht, um den gegebenen
> neigungswinkel (fusion acc/gyro) auszugleichen. diese schrittzahl gebe
> ich vor und versuche sie mit maximalgeschwindigkeit anzufahren. während
> der fahrt wird die neigung (mit abnehmender winkelgeschwindigkeit, wenn
> meine fahrt schneller ist als der kippvorgang) zunächst noch zunehmen,
> was ständig in die sollschrittzahl einfließt. wenn ich mit den rädern
> genau unter dem massenschwerpunkt bin, ist die sollschrittzahl = 0.
> überschwingen kommt wegen dem schrittmotor nicht vor.
>
> im balance-mittelpunkt wird jede kleine neigung jeweils sofort mit dem
> entsprechenden schrittweg ausgeglichen.
>
> ob das funktioniert ??

Ohne die Modellbildung und Simulation isses wirklich schwierig.

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.