Hi Junx!
Zu allererst: Herzlichen Dank an alle für eure Experimentierfreudigkeit und dass Ihr die EIER dazu habt! (Musste mal in dieser Deutlichkeit gesagt werden!)
Komme auch grad vom Testen, Geilomat, ich glaube das ist der richtige Weg!
@Helste: "Wir haben 13:0 gewonnen. Jetzt sind wir Meister." Schwere Gratulation von mir, das hört sich wie eine Hinrichtung für den SV Mattersburg an!
"Kaum schalte ich auf Baro um, zuckt er rum."
Dein ACC scheint besser zu sein als mein BMA! Die errechneten Werte werden einfach, willkürlich durch 40 geteilt (irgendwas musste ich doch machen), so dass 20 die Hälfte ist. Teile einfach durch 100 dann ist 50 die Hälfte und Du kannst feiner justieren. Also statt unter IMU "ACCZD -= (int32_t)conf.D8[PIDALT]*(abs(AccZHighest)+abs(AccZLowest))*(AccZHighest-abs(AccZLowest))/40;" , schreibst Du ACCZD -= (int32_t)conf.D8[PIDALT]*(abs(AccZHighest)+abs(AccZLowest))*(AccZHighest-abs(AccZLowest))/100;
"bezüglich Höhe halten hat sich nichts gravierendes verändert". Kann ich nicht ganz bestätigen, ich brauche z.B mehr "P" und ein stärkeres Eingreifen des "P". Da kommt gleich noch mehr, wenn ich meine Flugerfahrungen seziere.
@DeaconBlues: "falls du lust auf experimente hast, dann versuche doch mal den anhang einzubauen." Da C für mich neu ist, verstehe ich den Code noch nicht vollständig - ich ahne aber, was da abgeht
. Auf Platt: Und wat de Buur net kennt, fret he nich. (Was der Bauer nicht kennt, frisst er nicht) - egal ich probiers trotzdem. Ich Lade nur Änderungen hier hoch, die ich auch komplett verstehe. Du bist mir mit Deinen C Kenntnissen deutlich vorraus. Ich bin nur ein Pitbull der sich festgebissen hat. Mit meinem jetzigen Verständniss sieht es für mich so aus: Entweder zeitnah relativ verrückte Werte oder alle 0,8-1,5 Sek alte, weniger verrückte Werte und eine schöne Kurve. Doch was bringt die Kurvenkosmetik, wenn nur das Ergebnis zählt (wie im Fussball s.o, s.u)? Ich bin jetzt den Weg gegangen möglichst schnell, alle verrückten Werte umzusetzen in der Hoffnung, dass die Trägheit des Copters (ges. Gewicht, Motoranlaufgeschwindigkeit, Massenträgheit der Propeller usw.) quasi daraus einen "natürlichen", fliegbaren Mittelwert bildet.
@upapa: Meine Defaultwerte sind leider nicht erflogen oder ausgiebig getestet. Da müssen wir alle selbst ran. Deswegen ist Dein Feedback auch so wertvoll. "Schalte ich zum BARO den LEVEL-Mode hinzu, zuckelt der Kopter mit kurzen Gasstößen stetig" Auch Dein ACC scheint besser zu sein als meiner (mit was für nem ScheiX fliege ich eigentlich?) an Deiner Stelle, würde ich dass, was ich Helste geraten habe auch probieren.
Meine Testergebnisse:
Das neue "I" zu verändern bringt nicht wirklich was. Also I auf 0,100 (Ergebnis wie DeaconBlues). Mit "D" auf 0, also z.B Althold nur auf Gyromodus, hat es schon gut funktioniert, aber ich brauche noch mehr "P" (>255 also >"25,5", also mehr als Helste) und ein stärkeres Eingreifen der errechneten Werte. Der alte Code konnte +-210 "Gasklicks" ändern (PD+I), der neue nur +-150.
Also statt:
Code:
"BaroP = conf.P8[PIDALT]*(BaroP-BaroDiff)/50; // P of Baro a P of 5 in the GUI means 50"
werde ich nun:
Code:
BaroP = conf.P8[PIDALT]*(BaroP-BaroDiff)/25; // P of Baro a P of 2,5 in the GUI means 25"
probieren. Damit habe ich bei einem "P" von 2,5 jetzt 100% der errechneten Werte (vorher "P"=5,0).
Das Limit der Regelung werde ich auch auf 250 vergrössern. Also statt +-150 jetzt +-250.
Also statt:
Code:
BaroP = constrain(BaroP,-150,+150); // Limit Baro P to +/- 150
Jetzt:
Code:
BaroP = constrain(BaroP,-250,+250); // Limit Baro P to +/- 250
ACCZ werde ich wie Helste und upapa empfohlen auch auf "/100" setzen.
Code:
ACCZD -= (int32_t)conf.D8[PIDALT]*(abs(AccZHighest)+abs(AccZLowest))*(AccZHighest-abs(AccZLowest))/100; // conf.D8[PIDALT] Is scalefactor for ACCZ, if it is = 100 then this is 1:1 Passthrough
Dass ACCZ lasse ich weiterhin auf +-150 begrenzt, d.h. die errechnete ACCZ Korrektur kann die errechnete Altitude P Korrektur nicht ganz ausstechen (150 vs 250). Bin mal gespannt, was das gibt. Testet es selbst auch aus! Der Code ist im Fluss!
LG
ROB
Ps: 3 Enten (1xEnte,2xErpel) sind immer sehr interessiert an meinen Flugkünsten und watscheln immer zu mir hin, (die Ente ist immer am weitesten weg) sobald ich meinen Copter starte! Dass ich keine Brotkrumen dabei habe, sollten die langsam auch verstanden haben. Der dreisteste aus dem Trio dackelt (sorry, "ERPELT") noch nicht mal ab, wenn ich einen Sturzflug mit dem Quad auf Ihn mache. So ein Gaui 330 kann einen gestandenen Erpel in keiner Weise schocken. Mal sehen, ob ich aus dem Keycam 640X irgendwas Video ein Fahandungsfoto machen kann......
Hey, ihr Tierschützer - wer beschützt mich? Ich schaffe es einfach nicht den Erpel in Angst und Schrecken zu versetzen - im Gegenteil - ich muss ihn mir vom Hals halten!
Pp.s: Gomez hat endlich nach 72Min das gegnerische Tor gefunden - da wird der SV Mattersburg neidisch!
Mann, poste ich langsam das Spiel ist vorbei und Deutschland hat gewonnen.... gloreiche 1:0, dafür bekommen die Millionen.
Hier ist er:
http://www.youtube.com/watch?v=zoK3ZtiVk58