NanoWii - Ein Motor verzögert

#1
Hallo Leute,

ich lese nun schon seit geraumer Zeit hier mit und bin vom Forum echt begeistert.
Habe mich jetzt registriert weil ich ein Problem habe, nicht weiter komme und hoffe, dass mir hier jemand
helfen kann.
Ich habe mir mit den Teilen von Flyduino einen Quadrocoptr gebaut: NanoWii mit Software 2.2, ansonsten, also
Regler Motoren usw. das übliche aus dem Shop da. Alles aufgebaut, funktioniert auch vordergründig.
Im Leerlauf zeigen mir alle 4 Motoren 1150 Umdrehungen. Gebe ich dann Gas erhöhen die beiden vorderen
uind der hintere rechte auch korrekt (annähernd gleich) ihre Drehzahl. Der hintere Linke erhöht die Drehzahl aber
erst ab Halbgas und hängt immer 400 oder 500 Umdrehungen zurück. Merkt man auch, wenn man den Quad
mit der Hand festhält und Gas gibt. Was kann das sein?
Habe mittlerweile alles 1000 mal kontrolliert und komme nicht weiter. Hilfe bitte!!

Viele verzweifelte Grüße

Michael
 
#3
Hallo,

ja, alles gleichzeitig. Was mich stutzig macht: ohne Akku, also nur am USB sieht man das seltsame Verhalten auch im GUI.
Die Regler haben ja dann quasi gar keine Betriebsspannung. Und verhält sich im Gui genau wie in echt. Nach meiner Logik
müsste das Problem doch dann vor den Reglern liegen, oder?
 

konus123

Erfahrener Benutzer
#4
resete die fc mal und spiel die Software nochmal auf. versuch evtl mal die 2.1.
habt ihr den acc calibriert ? evtl mag und baro aktiviert ? wenn ja macht mal alles aus ausser den acc. ( angel mode)

alex
 
#5
im standgas arbeiten die sensoren nicht, da sind unterschiedliche drehzahlen normal und nicht ungewöhnlich.
wenn esc eingelernt/prop richtung und motorlaufrichung und die motoren an den Korrekten steckplätzen stecken. und der frame nicht total weich oder krumm und schief ist , fliegt die nanowii !:)
 
#6
Danke erstmal für die Tipps.
Kann leider erst am Sonntag weiter schauen...
Habe aber jetzt die 2.1 drauf und der Effekt ist der gleiche.
Ich befürchte schon fast, dass das Nanowii einen weg hat.
Melde mich wieder!

Michael
 

UserX

Erfahrener Benutzer
#7
Hallo Michael,

sollte es bei den ersten Flugversuchen immer noch nicht besser sein, dann probier mal das hier:


Ich würde eher von falsch eingelernten ESCs ausgehen. Mach mal das Einlernen über MultiWii selbst - ESC_CALIB_CANNOT_FLY ist die Option in der config.h, einfach mal kurz googlen wie man die nutzt.
Olex hat mir den Tipp gegeben, als ich mal das Problem hatte, dass ein Motor immer verspätet gestartet ist.

So nutzt man die Funktion im Sketch: http://code.google.com/p/multiwii/wiki/ESCsCalibration
Den ersten Punkt bei "How To" besonders beherzigen :)

Gruß
David
 
Zuletzt bearbeitet:

Spacefish

Erfahrener Benutzer
#8
Liegt definitiv nicht an den ESCs! Das ist ein normales Verhalten von MultiWii, mach dir keine Sorgen. Leg den Copter einfach mal hin wenn er nur am USB hängt und spiel mit dem Yaw, dann kannst du die Anzeigen auch auf den selben Wert bringen. Das ist aber nicht wirklich nötig!

Der Effekt kommt durch den Intergralen Term des PID-Controllers Zustande! Wenn da für ein paar Sekunden der Fehler so ist, dass der Copter gerade nach vorne rechts kippt, summiert sich das halt und der Motor hinten links wird runtergeregelt. Da der Copter ja gerade nicht fliegt, bewegt er sich halt nicht und der die Aussteuerung bleibt bestehen! Was ja korrekt ist, wenn man sich das überlegt.
Hängst du jetzt 500g an eine Ecke des Copters, muss dieser Motor eine höhere Aussteuerung haben und zwar permanent, damit der Copter seine Roll/Nick Position beibehält, dafür ist eben das "I" da in PID!
Wäre das nicht so, würde der Copter immer wieder in diese Richtung kippen in der er schwerer ist, dadurch tritt dann wieder ein Fehler auf und es wird wieder gegengelenkt. Sobald der Copter wieder in der wagerechten ist, fängt das Spiel von neuem an. Das nennt man auch oszillieren und das ist unerwünscht :)

Anderes Beispiel:
Du fährst neben einem Auto mit deinem eigenen Auto, die Drehzahl deines Motor wird durch einen PID-Controller bestimmt. Der Fehler ist der Abstand zwischen dem anderen Auto und dir. Ist der Fehler 0 fahrt ihr genau nebeinander, ist er negativ fällst du zurück, ist er positiv fährst du dem anderen Auto davon.
Wäre das jetzt ein reiner P-Controller würdest du andauernd zurückfallen, da der Fehler immer 0 wird, wenn du neben dem anderen Auto fährst und damit auch deine Motordrehzahl 0 wird (stehenbleiben). Sobald du zurückfällst wird der Fehler aber negativ und die Motordrehzahl steigt schnell wieder an, du holst dann wieder auf überholst evtl. weil du deutlich schneller bist wie benötigt, der Fehler wird dann positiv und du fällst wieder extrem zurück u.s.w. (oszilieren).

Der I-Term kommt dir zur Hilfe, solange du zurückliegst integriert er sich langsam auf, sprich es wird später auch ein positives Drehzahlsignal ausgegeben wenn der P-Term 0 ist und du direkt neben dem anderen Auto fährst. Über kurz oder lang pendelt sich der I-Term dann so ein, dass die Drehzahl genau gleich ist wie die des anderen Autos und du neben diesem fährst ohne zurück zu fallen / vorraus zu eilen.

Wenn wir schon dabei sind: Der D-Term ist dafür da, schnelle Veränderungen abzufangen. Wenn der I-Term gerade extrem steigt (du stehst und das andere Auto rast davon) schaut der D-Term darauf indem er bei schnellen Änderungen gegensteuert. Der I-Term alleine würde zu viel Fehler generieren über die Zeit, so dass du am anderen Auto vorbeirast, durch den D-Term wird diese etwas abgeschwächt da er entgegenwirkt. Er stellt ja auch im Endeffekt die Steigung der Fehlerkurve dar! D = Differentiation.


Edit: ein gutes Video darüber (ab 9:00 etwa):
http://www.youtube.com/watch?v=XfAt6hNV8XM
 
Zuletzt bearbeitet:

MarcoKalmar

Erfahrener Benutzer
#9
ich hatte das selbe Problem. Ich glaube das es an der Qualität des FC liegt. Ich hab ihn dann auf 4 Büchern platziert und dann dann auf der Seite auf der der Motor langsamer dreht einfach ein paar Seiten vom Buch aufgeschlagen damit die Motorenseite weiter unten liegt. Dann wieder versucht mit dem Kopter zu fliegen. Den Prozess so lange wiederholt bis alle Motoren gleich gedreht haben.
 

Spacefish

Erfahrener Benutzer
#10
ich hatte das selbe Problem. Ich glaube das es an der Qualität des FC liegt. Ich hab ihn dann auf 4 Büchern platziert und dann dann auf der Seite auf der der Motor langsamer dreht einfach ein paar Seiten vom Buch aufgeschlagen damit die Motorenseite weiter unten liegt. Dann wieder versucht mit dem Kopter zu fliegen. Den Prozess so lange wiederholt bis alle Motoren gleich gedreht haben.
Das ist nicht nötig! ca. 200ms nachdem der Copter in der Luft ist stabilisiert der sich ganz von alleine! siehe meinen vorherigen Post. Das ganze hat auch relativ wenig mit der Qualität der FC zu tuen!
 
#11
Hallo Leute,

tut mir leid, dass ich jetzt für meine Rückmeldung so lange gebraucht habe, aber ging leider nicht früher.
Besten Dank für die Tipps. Das Ding fliegt mittlerweile einwandfrei. Ich habe den ersten Flug in einer Turnhalle gestartet,
also komplett ohne Wind. Mit minimalem Trimmen (also wirklich ganz wenig) steht das Teil super in der Luft.
Ich hatte vorher schon den mqx und den Ladybird. Dürften die meisten wohl kennen, oder?
Ich finde, dass der große jetzt erheblich einfacher zu fliegen ist. Allerdings ist das entspannte Unfall-Bauen jetzt erledigt.
Der mqx hat mindestens 50 mal Bekanntschaft mit der Hallenwand gemacht, war kein Problem, das sieht beim NanoWii
natürlich anders aus!

Was noch kalibriert werden muss, ist der Stable-Mode. Bis jetzt merke ich keinen großen Unterschied zwischen Acro und
Stable. Kann aber sein, dass bei den bisherigen Starts das Ding immer noch ein klein wenig zu schief stand.
Ich kann mit Stick-Kommando kalibrieren aber dafür muss Throttle mindestens 1900 schaffen. Ich komme nur bis 1860.
Keine Ahnung wieso....
Vielleich gibt´s ja hier Leute mit denen man sich mal treffen kann? Komme, wie der Name schon vermuten lässt, aus Witzhelden.
Gehört zu Leichlingen , zwischen Solingen und Leverkusen.
Danke nochmal an alle Tippgeber!

Grüße

Michael
 
Zuletzt bearbeitet:

Spacefish

Erfahrener Benutzer
#12
Wie ich dachte. Kein Problem also.
Du kannst einfach die 1900 im source auf 1850 oder so veringern. Evtl. Geht's auch über die config.h mit MAXTHROTTLE
 
FPV1

Banggood

Oben Unten