Probleme mit 3-Achs-Stabilisierung

Hallo,

Erstmal zur Vorgeschichte: Ich baue, sozusagen als Feiertagsprojekt, ein Silverlit X-Ufo um. Die Original-Elektronik mit dem Mechanik-Gyro sowie die Antriebsmot=F6rchen flogen raus.

Wers nicht kennt, hier ist ein Bild es Original-Ufos:

formatting link
Die schlechte Haltbarkeit der B=FCrstenmotoren sowie die miese Qualit=E4t des Gyros, der zudem nur zwei Achsen stabilisieren kann, haben mich dazu bewogen, das Ufo umzubauen. Ich habe also das Ufo mit 4 AXI 2204 Brushless Motoren nebst Regler ausger=FCstet. Eine von mir entworfene Elektronik steuert die 4 Motoren so an, dass die gew=FCnschte Steuer- richtung (=E4hnlich wie beim Heli: Roll, Nick, Gier) entsteht. Soweit funktioniert auch alles gut. Es gibt dann noch 3 Piezo-Gyros (ACT Micro), deren Kontrollsignale ebenfalls in die Motoren-Drehzahl miteinflie=DFt.

Nun das Problem: Sobald das Ufo abhebt, ger=E4t es in eine Taumelbewegung, die immer st=E4rker wird. Nehme ich die Empfindlichkeit der Gyros zur=FCck, wird zwar auch die Taumelbewegung schw=E4cher, jedoch ist die Wirkung dann zu gering, um das Ufo stabil in der Luft zu halten. Man merkt den Effekt sogar, wenn man das Ufo in der Hand h=E4lt und Gas gibt. Das Modell f=E4ngt sofort an zu taumeln.

Hat von Euch jemand schonmal so eine 3-Achs-Stabilisierung gemacht und kann Tipps geben, woran das liegen k=F6nnte, bzw. wie man dem abhelfen k=F6nnte?

Vielen Dank und nachfeiert=E4gliche Gr=FC=DFe, Wolfgang

--=20 From-address is Spam trap Use: wolfgang (dot) mahringer (at) sbg (dot) at

Reply to
Wolfgang Mahringer
Loading thread data ...

Servus Wolfgang! ;-)

Wolfgang Mahringer schrieb:

Die ACT-Mikros möchten gerne ein flottes Heckservo und keine trägen Motoren ansteuern.

Gut könnte ich mir vorstellen, dass billige Piezo- kreisel besser für diese Anwendung funktionieren.

Kommst Du leihweise an einen GY401 ran? Der hat eine Delayeinstellung für lahme Servos, dazu gehören die Motoren ja vom Prinzip her.

hth,

Rüdiger

Reply to
Ruediger Zoll

Hallo R=FCdiger,

Ruediger Zoll schrieb:

Hmm, das stimmt wohl.

Naja, ich habe diese da:

formatting link
billig, und "Piezo" sind die ja auch.

Eines davon hab ich am T-Rex 450. F=FCr einen vern=FCnftigen Test br=E4uchte ich wenigstens 2 davon. Das wird mir dann doch *etwas* zu teuer :-)

Evtl. hast Du ja ne Idee wie ich das in meiner Software zusammenrechnen mu=DF. Bisher passiert das einfach linear:

Signale vom Empf=E4nger: K1 =3D Gas K2 =3D Roll K3 =3D Nick K4 =3D Gier

Zusammenmischen (Nick, Roll, Gier sind die *Ausgangssignale* der entsprechenden Gyros): M_Vorne =3D K1 + Nick + Gier M_Links =3D K1 + Roll - Gier M_Rechts =3D K1 - Roll - Gier M_Hinten =3D K1 - Nick + Gier

M_Vorne und M_Hinten sind linksdrehend, M_Links und M_Rechts sind rechtsdrehend.

Sonst noch wer ne Idee?

lg Wolfgang

--=20 From-address is Spam trap Use: wolfgang (dot) mahringer (at) sbg (dot) at

Reply to
Wolfgang Mahringer

Servus Wolfgang! ;-)

Wolfgang Mahringer schrieb:

Hmm, stimmt, solche meinte ich. Nö, mehr fällt mir dazu auch nicht ein. Irgendwie müsste man die Stell- geschwindigkeit der Motoren erhöhen. Kleinere Propeller, schnellere BL-Steller vielleicht. Die YGE-Steller sind imho die, die am schnellsten stellen.

cu/2,

Rüdiger

Reply to
Ruediger Zoll

Tja, das ist das Thema Regelungstechnik. Ohne PID-Regler kommst Du da nicht hin. Zumindest hast Du schon mal den P-Teil. :-)

P: Proportional I: Integral D: Differential

Wie Rüdy schon meinte, ist der Gyro weitaus schneller als der BL-Regler (nebst Motor + Propeller).

Aus dem Bauch raus (das ist alles schon zu lange her) brauchst Du mindestens noch einen Integralteil um es besser hinzubekommen. D.h.: Die Signale vom Gyro in ein Array ablegen, gewichtet addieren und davon den Mittelwert bilden. In etwa so:

(Pseudocode)

float Gyro1Array[10]; float Mittelwert; float Wichtung;

Mittelwert = 0; Wichtung = 1; for (i = 0; i < 10; i++) { Mittelwert = Mittelwert + Gyro1Array[i] * Wichtung; Wichtung = Wichtung * 0.7; } Mittelwert = Mittelwert / eineZuErmittelndeKonstante;

Entscheidend dabei der Wichtungsfaktor (einfach mal 0.7 angenommen), die Länge des Arrays und wie oft die Mittelwertbildung pro Sekunde gemacht wird.

Nicht so ganz trivial das ganze, durch Probieren kommt man so aber einigermassen hin. Als Stichworte zum Googeln fällt mir PID-Regler und Bode-Diagramm ein. Das ganze ist aber so theoretisch (insbesondere das Bode-Diagramm), dass man es _gerne_ und _schnell_ bleiben lässt. Ich denke, dass man aber mit PID-Regler was finden kann, das zumindest zeigt bei welchen Fehlern/Problemen man wo eingreifen muss.

Um das gleich vorwegzunehmen: Ich hab das inzwischen _reichlich_ vergessen und hab nicht vor mich wieder einzulesen. :-)

HTH, Gruß, Nick

Reply to
Nick Müller

Hi Nick,

Nick M=FCller schrieb:

So isses :-) Is halt scho lang her....

Stimmt.

Ich danke Dir f=FCr Deine Anregung. So auf die mathematische wirds nicht gehen, zuwenig Programm-Bytes (wegen der dann notwendigen float-Library) und zuwenig RAM im Singlechip. Aber es muss ja auch nicht sooo genau sein. Ich probier mal weiter in der Richtung und werde berichten.

Der erste Ufoflug war schon mal 10 Sekunden lang ohne Aufschaukeln. Ist ja schon mal was f=FCrn Anfang.

Danke an alle, Wolfgang

--=20 From-address is Spam trap Use: wolfgang (dot) mahringer (at) sbg (dot) at

Reply to
Wolfgang Mahringer

Das muss natürlich nicht mit floats gemacht werden. Int geht genauso, wenn man sich über die Skalierung _vorher_ Gedanken macht. :-)

16 Bit sollte genügen.

Ui! Und, was hast Du gemacht? So ungefähr, musst jetzt keinen Assembler code posten.

Gruß, Nick

Reply to
Nick Müller

Hi Nick,

Nick M=FCller schrieb:

Tja mit hei=DFen 40 Bytes frei im RAM... Da geht nur was mit 8 bit Bytes. Oder auf n=E4chstgr=F6=DFeren PIC umstei= gen.

Is eh in C :-)

Noch die reine P-Regelung, jedoch nur die H=E4lfte der Gyro-Outputs in die Reglerausg=E4nge gemischt. Parallel dazu mit 50% Empfindlichkeit auf den Gyros gings so einigerma=DFen. Mehr Empfindlichkeit: Aufschaukeln, weniger: kaum noch Wirkung. Von stabilem Flug ist aber noch keine Rede. Eigentlich brauch ich nur eine wirksame Ma=DFnahme gegen dieses schnelle Taumeln. Werde morgen mal ein paar Versuche machen mit I-Anteil.

Werde weiter berichten.

Bis dann, Wolfgang

--=20 From-address is Spam trap Use: wolfgang (dot) mahringer (at) sbg (dot) at

Reply to
Wolfgang Mahringer

Nicht wirklich üppig! :-)

Pfff. PIC und C.

Naja, das ist irnkwie konsequent:

0 Empfindlichkeit: kein Aufschaukeln. SCNR

Gerne.

Gruß, Nick

Reply to
Nick Müller

Hi Nick,

Nick M=FCller schrieb:

Aus dem Grund bin ich jetzt mal auf die n=E4chste Gr=F6=DFe umgestiegen. Da gibts dann 224 bytes :-)

CC5X. Kein Problem soweit.

St=FCmmt.

Ich hab nochmal nachgedacht und nachgemessen. Das Ausgangssignal der Gyros ist in etwa proportional zur Beschleunigung um die jeweils empfindliche Achse. Das ist also reiner D-Anteil. Somit ist meine Software kein P-Regler sondern ein D-Regler.

Kein Wunder dass das oszilliert :-(

Irgendwelche Ideen? Soll ma per PM weitermachen?

Viele Gr=FC=DFe, Wolfgang, der seine Vorlesungsunterlagen zur Regelungstechnik aus dem Jahre Schnee nimmer findet.

--=20 From-address is Spam trap Use: wolfgang (dot) mahringer (at) sbg (dot) at

Reply to
Wolfgang Mahringer

Ein, macht mal hier weiter, ich lese mit:-)

Ich habe 4 2505er Motoren und will die mit Koaxialheliblaettern

4xBLMC-Reglern und einen "Zentralrechner" verwenden. nur war ich bisher der Meinung das das fuer einen Hubiflieger ohne Kreisel beherrschbar sein muesste. Es haengt aber gerade an den Statortraegern. Ich habe wegen der Lieferbarkeit anstelle der 7x3x3er Lager 6x3x2,5er genommen und scheitere immer wieder an den Lagersitzen:-( Die Motoren haengen dann an einem Kreuz aus 7er Kohlerohr.

Da ich aber die naechste nwochen noch eine paar freie Tage haben wirds wohl werden.

Gruss Sven

Reply to
Sven Stoecker

PolyTech Forum website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.