Loop Time und Reaktion auf Steuereingaben

Status
Nicht offen für weitere Antworten.

nichtgedacht

Erfahrener Benutzer
#1
Hi

die Flight Controller der Racecopter arbeiten heute ja schon mit Refreshraten im kHz Bereich was das Update der ESCs und der Regelung angeht.

Für zwei Dinge habe ich nicht wirklich eine Erklärung gefunden.

1. Wie werden die ESCs bei solchen Refreshraten angesteuert? Das normale Servosignal für normale ESCs und Servos hat ja an einem Ende 2ms Impulslänge. Die Wiederholfrequenz muss hier also deutlich unter 500Hz liegen.

2. Welcher Vorteil ergibt sich mit x kHz Refresh für die Regelung? Wenn die Sollwerte z.B. aus einem Jeti RSAT2 per S-Bus kommen haben diese eine Wiederholrate von 17ms. Das schnellste was ich kenne/habe ist das vorletzte Spektrum Protokoll mit 11ms. Was macht die Regelung die ganze Zeit ohne neue Informationen über die gewünschten Drehraten vom Piloten?
Windböen ausgleichen?

Immerhin werden noch 3D-Helis, Pylon Rennmodelle und Aircombat Modelle mit solch herkömmlicher (Servo)Technik bewegt.
Dafür scheint die ja noch ausreichend schnell zu sein.

Irgendwie bin ich nicht mehr auf dem Stand der Zeit.
Klärt mich mal auf!

Gruß
Dieter
 

Torch

Erfahrener Benutzer
#2
Naja... theoretisch wirds immer schneller was boris, kiss,... da fabrizieren. Ob man das ganze wirklich merkt, wage ich zu bezweifel. Ich wüsste gerene mal, wer nur anhand des Flugverhaltens sagen kann, ob OS42,OS125 oder normales PWM verwendet wird.

Letztlich haben die Cams auch eine Latenz von ca. 30-40ms so das es in meinen Augen eigtl. nix bringt wenn die FC/ESC schneller regeln. Noch langsamer wirds dann wenn wir unsere Verzögerung vom Hirn bis zu den Fingern betrachten :D
 

donvido

Erfahrener Benutzer
#3
Ein interessantes Thema, welches mich nun auch schon seit einer Weile beschäftigt.
Maßgeblich entscheidend für die maximal benötigte Regelgeschwindigkeit ist ja das Verhalten der Stellgröße.
Im unserem Fall sind also die Motoren das entscheidene Glied in der Kette. Diese haben eine gewisse Trägheit und können nicht unendlich schnell auf ein Steuersignal reagieren. Dabei gilt, je größer die Propeller, destso träger wirds. Es bringt also schonmal nichts, mehr Steuersignale zur Verfügung zu stellen, als die ESCs verarbeiten können. Und welchen Sinn macht es, 100 Signale zu senden, wenn der ESC die Drehzahl in dem Zeitraum auf Grund der Trägheit nur um wenige RPM zu ändern vermag?
Das Argument von Boris für die kurze Looptime ist die Datenerfassung, weil es zu Aliasingeffekten kommt, wenn diese zu lang ist, bzw. sie sind dann besonders ausgeprägt. Da die relevanten Frequenzen aber in Bereichen von unter 50Hz liegen (hier kommt die Trägheit des gesamten Copters zum Tragen) sollte man die Aliasingeffekte ohne Probleme mit einem passenen Tiefpass rausfiltern können.
Dass die FC jetzt deutlich schneller läuft, als die Funke Befehle senden kann, ist dagegen sogar vorteilhaft. Denn so ein Copter ist ein grenzstabiles System, welches permanent stabilisiert werden muss. Und so ganz ohne neue Information ist die Regelung dann ja nicht, denn das Gyroskop liefert entsprechend oft neue Werte. Die Sollwerte (vom Piloten gewünschte Drehraten) werden solange beibehalten, bis neue Informationen vorliegen.
Übrigens FrSky CPPM benötigt insgesamt 27ms.
 

iDaniel

Erfahrener Benutzer
#4
Der Vorteil ist, dass die Reglung auf Abweichungen besser bzw. schneller reagieren kann...auch wenn die Ausgabe über die ESC nich gleich erfolgt ist aber die Reaktion auf die Änderung zu dem Zeitpunkt der ESC Ausgabe genau passend, da der gyro eine höhere samplerate hat. Eine schnellere Regelung als die samplerate der gyros bringt glaube keine Verbesserung aber auch keinen Nachteil wenn die Regelparameter angepasst sind

Gesendet von meinem Aquaris X5 mit Tapatalk
 

donvido

Erfahrener Benutzer
#5
Eine schnellere Regelung als die samplerate der gyros bringt glaube keine Verbesserung aber auch keinen Nachteil wenn die Regelparameter angepasst sind
Schneller würde nichts bringen, da keine neuen Werte vorliegen würden. Wäre also eher sinnlos.
Ich meine mich zu erinnern, dass es zumindest anfangs Probleme mit heißen Motoren bei Oneshot gab und dass die Regler nicht mehr mit den klassischen Methoden zu tunen waren. Weiß nicht, wie es da aktuell aussieht.
 

nichtgedacht

Erfahrener Benutzer
#6
Ein interessantes Thema, welches mich nun auch schon seit einer Weile beschäftigt.
Maßgeblich entscheidend für die maximal benötigte Regelgeschwindigkeit ist ja das Verhalten der Stellgröße.
Im unserem Fall sind also die Motoren das entscheidene Glied in der Kette. Diese haben eine gewisse Trägheit und können nicht unendlich schnell auf ein Steuersignal reagieren....

Das Argument von Boris für die kurze Looptime ist die Datenerfassung, weil es zu Aliasingeffekten kommt, wenn diese zu lang ist, bzw. sie sind dann besonders ausgeprägt. Da die relevanten Frequenzen aber in Bereichen von unter 50Hz liegen (hier kommt die Trägheit des gesamten Copters zum Tragen) sollte man die Aliasingeffekte ohne Probleme mit einem passenen Tiefpass rausfiltern können...
Hi

Aliaseffekte https://de.wikipedia.org/wiki/Alias-Effekt enstehen also durch Unterabtastung. Wie Du sehr schön ausgeführt hast, kann man die Propeller nicht in einer Millisekunde nennenswert beschleunigen, auch nicht um ein paar RPM. Auf der anderen Seite produziert die schnelle Abtastung der Gyrowerte und damit die Differenzbildung zum aktuell gültigen Steuersignal das Rauschen im Walde. Man kann in den Gyrochips schon Tiefpassfilter einschalten. Für eine InvenSense MPU 9250 gehen (in Hz)
8800
3600
250
184
92
41
20
10
5

Wenn man da nicht nennenswert filtert, muss man das sowieso in Software machen. Je schneller die Abtastrate umso mehr Samples muss man während der Berechnung der Regler in die Vergangenheit schauen. Das ist nach meiner Meinung Verschwendung von Rechenpower.

Kennt sich hier jemand mit den ultimativen Algorithmen für digitale PID Regler aus?
Ich versuch gerade selber was zu implementieren.

Gruß
Dieter
 

Torch

Erfahrener Benutzer
#8
Wie finde ich denn die Auslastung des Mikrocontrollers heraus bei Cleanflight?
Gruß
Tippe im CLI "status" ein und dann steht am ende die Auslastung.

Laut Boris sollte man nicht mehr als 40% CPU auslastung haben. Meiner steht bei 8/8/32 bei 59%. Verringere ich die pid loops auf 4 bin ich bei 19%. passt also
 
Status
Nicht offen für weitere Antworten.
FPV1

Banggood

Oben Unten