Jump to content

Verzögerungszeit Servo Brick


ufechner

Recommended Posts

Hallo,

wir arbeiten an einer Flugdrachen-Steuerung (siehe www.kitepower.eu) und benötigen dafür drei Servo Ausgänge. Als Steuer- Computer verwenden wir einen Electrum 100 (400 Mhz ARM Linux) Rechner, auf dem ein QT/C++ basierter Autopilot ausgeführt wird. Leider haben wir keine drei PWM Ausgänge mehr zur Verfügung und überlegen, ob wir einen Servo-Brick via USB anschließen könnten.

 

Wichtigste Anforderung:

Die Verzögerungszeit zwischen dem Absetzen eines Steuerbefehls vom C++ Programm im Steuercomputer und dem Ende des PWM Pulses (mit der neuen Pulslänge) darf nicht größer als 10 ms sein. Andernfalls kann die "control loop" instabil werden.

Wie groß ist diese Verzögerung (worst case) bei der momentanen Implementierung?

 

Mit besten Grüßen:

 

Uwe Fechner

PhD researcher Kite Control

TU Delft, Niederlande

Link zu diesem Kommentar
Share on other sites

Wir sind da natürlich Abhängig vom Scheduling auf dem Linux Board. An und für sich sieht der USB Standard vor, dass einmal pro ms der Brick gepollt wird. Dadurch wäre eine maximale Verzögerungszeit von 1ms + 1µs (Bearbeitszeit auf dem Servo Brick) gegeben.

 

Was der Linux Kernel jetzt aber macht wenn nicht genug Rechenpower da ist das ganze durchzuführen, kann ich nicht sagen :).

Link zu diesem Kommentar
Share on other sites

Das klingt ja erstmal vielversprechend. Unser Linux-Kernel hat eine maximale Latency of 200 µs, und wir achten darauf, das die Systemlast unter 50% liegt, so das die Verzögerung durch das Hauptprogramm gering bleiben sollte.

 

Frage:

Arbeitet die PWM Puls- Erzeugung synchron oder asynchron?

Bei 50 Hz Pulsfrequenz und einem freilaufenden Puls-Generator würde sich schon allein aufgrund der Betriebsart eine worst-case Verzögerung von 20 ms ergeben (genau dann wenn gerade ein Impuls gesendet wurde und in dem Moment ein neuer Steuerbefehl eintrifft).

 

Wir benötigen eine Implementierung bei der spätestens 7 ms nach dem Eintreffen eines neuen Steuerbefehls ein neuer Impuls abgegeben wird, ggf. unter Beachtung einer Mindestzeit zwischen zwei Impulsen.

 

Wir haben eine mittlere update Frequenz der Steuerbefehle von 40 Hz und können eine Zeitspanne von 20 bis 30 ms zwischen zwei Steuerbefehlen garantieren.

 

Mfg:

 

Uwe

Link zu diesem Kommentar
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Gast
Reply to this topic...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Clear editor

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...