Cleanflight PID Controller

brm

Erfahrener Benutzer
#41
da ist genug platz zum probieren.
werde testhalber mal einen time discrete pid controler einsetzen bei dem der d-term gefiltert wird.
mal schauen - die sonne scheint und zeit zum testen :)

die mittelwert berechnung müsste man beim alex durch ein pt1 glied erstzen...
 
Zuletzt bearbeitet:
#42
@brm,

da ich bisher nur am 8-bit code für multiwii mit Arduino rumgespielt habe, muss ich mir erstmal ein funktionierendes Setup für eine Entwicklungsumgebung zusammenbauen, um den baseflight/cleanflight Code compilieren zu können....

Was nimmt man da sinnvollerweise? Eclipse scheint eine Möglichkeit zu sein...

Gruß
Mario
 

brm

Erfahrener Benutzer
#43
easy,
http://www.atollic.com und lade die free variante runter.
dann kannst du debuggen bis 32kb - den code immer schön in mundgerechte portionen aufteilen :)
es ist ein eclipse verschnitt.

mit:
PROJECT=quanton

# System configuration
#CC = arm-atollic-eabi-gcc
CC = arm-none-eabi-gcc
OBJCOPY = arm-none-eabi-objcopy

im makefile kannst du den compiler subito ändern.
den normalen gcc holst du von:
https://launchpad.net/gcc-arm-embedded

dann viel spass ;-)
 
#45
EmBlocks http://www.emblocks.org wäre auch eine Möglichkeit.
Ohne Größenbeschränkung, mit Debugger per Nucleo-SWD auf Flip32 oder CC3D oder per StLink auf die Naze oder wie bei mir auf ein DevBoard von TC mit angeschlossener IMU.
Einziger Nachteil ist der Compiler 4.7 aber die SG2.5 gehen damit.
 

brm

Erfahrener Benutzer
#46
EmBlocks http://www.emblocks.org wäre auch eine Möglichkeit.
Ohne Größenbeschränkung, mit Debugger per Nucleo-SWD auf Flip32 oder CC3D oder per StLink auf die Naze oder wie bei mir auf ein DevBoard von TC mit angeschlossener IMU.
Einziger Nachteil ist der Compiler 4.7 aber die SG2.5 gehen damit.
der compiler ist nicht allzu schlecht.
werde es mal versuchen.
eclipse auf einem schlepptop ist nicht optimal...
danke!
 

brm

Erfahrener Benutzer
#48
wenn ich mir die Literatur so ansehe, schrumft der ja dann auf wenige Zeilen Quellcode....
jo, dem isch so.
es sind immer noch ein paar multiplikationen - aber keine division.
schaun mir mal - heute war super wetter - und die erkenntnis ist wieder einmal - sieht in der simulation gut aus
und fliegt grottenschlecht wegen dem delay.
und morgen ist ein anderer tag ...
 

brm

Erfahrener Benutzer
#51
Hallo,
womit simulierst du? Hast du eine funktionierende Modellierung für einen Copter (Xcos oder gar MatLab)?

Gruß
Mario
schön wär's - klassische step-response technik.
habe im moment abs. zuwenig zeit (arbeitslast welches mir mein einkommen generiert).
will aber laaangsam an die simulation ran (SITL).
habe aber zuerst noch ein paar knacknüsse zu lösen.

was ich im moment mache ist postprocessing der daten.
einfach c# und die parameter der filter ändern.

es erklärt manches was ich beim testen mit dem auge gesehen habe ...

gruss
robert
 

Anhänge

Warudo

​
#52
z.Z. wird darüber diskutiert, den Yaw Jump Filter der Cleanflight PID-Regler zu entfernen.
Erklärung hier.
Wer Probleme damit hat, dass sich Yaw wegdreht oder der Kopter lange braucht um beim Knüppel loslassen zum stehen zu kommen (und ESCs mit Active Breaking) hat, sollte diese Änderung mal probieren. Bei mir hat es sehr viel gebracht. Binaries sind hier.
 

brm

Erfahrener Benutzer
#54
falscher ansatz.
muss mal ein video machen.
dann werden die low-pass filter heinis vielleicht wach ...

yaw ist die achse, wo sich die probleme - sprich falsche ansätze - zuerst zeigen.
 

Micha1979

Erfahrener Benutzer
#55
Ja, scheint es zu geben:

1. Board disarmen
2. THROTTLE unten / YAW links
Dann gilt folgendes:

ROLL links = Profil 1
PITCH hoch = Profil 2
ROLL rechts = Profil 3

Habe ich aber selbst noch nicht probiert und die Angaben beziehen sich auf Baseflight - weiss nicht, ob es auch für Cleanflight gilt
Das ist super gibt es diese stick kombi auch irgendwo zu finden ? von controler 1-5 ?

ist es eigentlich möglich sich die pid controler auf einen schalter zu legen ?
 

Goetz_Cologne

Erfahrener Benutzer
#57
Die Profilwahl gibt es schon sehr lange bei MW und wohl seit dem ersten Port in Baseflight und Cleanflight. In CF gibt es zusätzlich noch Rate-Profile, die ebenfalls umgeschaltet werden können....
Die Profilwahl fand ich schon lange sehr hilfreich, z.B. wenn man einen Copter mal mit und mal ohne CAM fliegt und daher andere Gewichtsverhältnisse hat..... ....kommt bei Racern sicher auch mal vor:)
 

Warudo

​
#58
dann werden die low-pass filter heinis vielleicht wach ...
Sie sind wach geworden - Es gibt jetzt noch mehr Filter, gleich 3 Stück. :D

Einen für d (dterm_cut_hz), einen für p (pterm_cut_hz) und für die Daten vom Gyro (gyro_cut_hz).

Das Ziel soll sein, den Hardware-Filter im Gyro abzuschalten (gyro_lpf=256), da dieser Filter mehr Latenz verursacht als die Software-Filter. Diskussion des Ganzen samt Beispielwerten verschiedener Nutzer zum Testen, wenn man sich traut, findet sich hier.
 

brm

Erfahrener Benutzer
#59
Sie sind wach geworden - Es gibt jetzt noch mehr Filter, gleich 3 Stück. :D

Einen für d (dterm_cut_hz), einen für p (pterm_cut_hz) und für die Daten vom Gyro (gyro_cut_hz).

Das Ziel soll sein, den Hardware-Filter im Gyro abzuschalten (gyro_lpf=256), da dieser Filter mehr Latenz verursacht als die Software-Filter. Diskussion des Ganzen samt Beispielwerten verschiedener Nutzer zum Testen, wenn man sich traut, findet sich hier.
habe selber damit begonnen:
https://github.com/cleanflight/cleanflight/pull/950

boris b hat mich gefragt - dann hat er alles bekommen.
 
RCLogger

FPV1

Banggood

Oben