Forum: Mikrocontroller und Digitale Elektronik Kalman Filter Q R Dimensionierung


von Stm M. (stmfresser)


Angehängte Dateien:

Lesenswert?

Hallo,

ich versuche grad einen Kalman Filter für einen Gleichstrom Getriebe 
Motor von meinem Roboter zu entwerfen. Encoderauflösung (112 pro 
Umdrehung)

Es ist mir sehr wichtig, dass der Kalman Filter den Winkel und 
Winkelgeschwindigkeit bei niedriger Geschwindigkeit gut schätzt.

In der Simulation wird ein Sinus = 1 Hz & Amplitude = 0.13 rad sowie 
Abtastzeit = 0.01 sek als wahrer Winkel verwendet. Die wird mit einer 
Stufe 2pi/112 diskretisiert und als Messwinkel zu dem Kalman Filter 
gegeben.

Nun die Frage:

Wie sollen Q und R dimensoniert werden.
R habe ich als (2pi/112)**2/12 gesetzt. (Varianz vom 
Diskretiserungsrauschen)

Bei Q wusste ich nicht, nach welchen Kriterien dimensioniert werden 
soll.
Jedenfalls wird Q durch ausprobieren auf
1
Qsigma = 50
2
Qa = np.matrix([0.5*dt**2, dt]).T
3
Q = Qa*Qa.T *Qsigma 
4
Q = matrix([[  1.25000000e-07,   2.50000000e-05],
5
            [  2.50000000e-05,   5.00000000e-03]])
gesetzt.

Mich beunruhigt ein bisschen das Diskretiserungsrauschen da das nicht 
nach Weissesrauschen schaut. Ich dachte dass der Kalman Filter für 
Systeme mit Weissenrauschen gedacht ist oder doch NICHT?


Ich würde mich freuen auf die Vorschläge und Antworten.

ps: ich bin kein Deutsch-Muttersprachler, bitte entschuldigt mich für 
die Grammatikfehler

von K. L. (Gast)


Lesenswert?

Bist Du sicher dass der Kalman für Deine Anwendung das Richtige ist?

von Stm M. (stmfresser)


Lesenswert?

Klaus L. schrieb:
> Bist Du sicher dass der Kalman für Deine Anwendung das Richtige ist?

jedenfalls bin ich mir sicher dass ich für die 
Winkelgeschwindigkeitsschätzung einen Beobachter brauche, ob Kalman 
Filter die bessere Wahl ist als die anderen Beobachter wie Luneberger 
oder High Gain weiss ich nicht. Aus dem Grund, dass das einfache 
Differenzieren den Fehler zu stark verstärkt (s[i] - s[i-1])/dt.

Derzeit wird die Geschwindigkeit mit seitlicher Differentation gebildet 
wie
1
(s[i+1] - s[i-1])/2dt
Nachteil ist dass ich immer einen Schritt hinterher bin.

von chris_ (Gast)


Lesenswert?

>Mich beunruhigt ein bisschen das Diskretiserungsrauschen da das nicht
>nach Weissesrauschen schaut.
Es ist kein weises Rauschen. In Deiner Simulation sieht die Amplitude 
ziemlich groß aus. Ich denke, das liegt in der niedrigen Abtastrate. 
Wenn die erhöht wird, wird die Rauschamplitude kleiner.

von aSma>> (Gast)


Lesenswert?

Servus,
deine Auflösung mit 112 ppr ist etwas wenig. Ich würde mal auf 1000 ppr 
gehen. Außer natürlich du hast ein Getriebe davor hängen. Auch wenn 
diese ein Spiel von ca. 1° hat...

Mit den Kalman kann ich dir nicht helfen aber mit den Luenberger.

Ich habe ein inverses Pendel schon mal gebaut. Den Regler mit Luenberger 
habe ich in zwei Tagen erstellt.

Hier ist ein altes Video von mir:
https://www.youtube.com/watch?v=BER8e6sp6eQ

Dort kann man sich das Motorsignal mit und ohne Luenberger anschauen. 
Wobei es zwei verschiedene Strecken sind.

Ich meine einen Tiefpass, bei den differenzierbaren Größen mit 1/50s 
zusätlich, brachte eine Verbesserung dar. Abtastzeit ist 1ms. Mit 10ms 
müsste das auch klappen.

mfg

von Stm M. (stmfresser)


Lesenswert?

aSma>> schrieb:
> Servus,

> Hier ist ein altes Video von mir:
> https://www.youtube.com/watch?v=BER8e6sp6eQ
>

Du hast exakt den selben Motor ^^ den ich derzeit auf meinem Roboter 
habe

: Bearbeitet durch User
von Hermann (Gast)


Lesenswert?

Du verwendest sicher ein EKF? Der Kalmanfilter ist nur optimal für 
weißes Rauschen. Evtl. wäre auch ein Partikelfilter gut, damit könntest 
du das Diskretisierungsrauschen besser simulieren.

von aSma>> (Gast)


Lesenswert?

> Du hast exakt den selben Motor ^^ den ich derzeit auf meinem Roboter
> habe

Ich habe bei ebay mal zugeschlagen. Habe davon drei stk hier rum liegen. 
Wenn man überlegt, dass so ein Motor 300 Tacken kostet. Bei diesen Motor 
brauchst du aufjeden Fall eine Stromregelung, da der Blockierstrom 30A 
beträgt.

Ich habe neulich bei Kleinanzeige bei einen Dachbodenfund 9 nagelneue 
Maxon Motoren mit Getriebe fürn 20er ergattert :).

von Stm M. (stmfresser)


Lesenswert?

Hermann schrieb:
> Du verwendest sicher ein EKF? Der Kalmanfilter ist nur optimal für
> weißes Rauschen. Evtl. wäre auch ein Partikelfilter gut, damit könntest
> du das Diskretisierungsrauschen besser simulieren.

Die Systemgleichungen sind sowieso linear, so dass ein einfacher Kalman 
Filter

von Stm M. (stmfresser)


Lesenswert?

aSma>> schrieb:
>> Du hast exakt den selben Motor ^^ den ich derzeit auf meinem Roboter
>> habe
>
> Ich habe bei ebay mal zugeschlagen. Habe davon drei stk hier rum liegen.
> Wenn man überlegt, dass so ein Motor 300 Tacken kostet. Bei diesen Motor
> brauchst du aufjeden Fall eine Stromregelung, da der Blockierstrom 30A
> beträgt.
>
> Ich habe neulich bei Kleinanzeige bei einen Dachbodenfund 9 nagelneue
> Maxon Motoren mit Getriebe fürn 20er ergattert :).

nice! Da muss ich dich um deine Motoren beneiden ^^

von Hartmut (Gast)


Lesenswert?

stm Mc (es wäre schöner, wenn Du einen richtigen Namen hättest),

vielleicht hilft Dir diese Arbeit weiter:

www.floba.info%2FFiles%2FKalman-Filter%2FLuenberger-Beobachter_und_Exten 
ded_Kalman-Filter_Ein_Vergleich.pdf

Offenbar ist in manchen Fällen der Luenberger-Beobachter stabiler als 
ein Kalman-Filter.

Ciao,
Hartmut

von Stm M. (stmfresser)


Lesenswert?

Hartmut schrieb:
> stm Mc (es wäre schöner, wenn Du einen richtigen Namen hättest),

Den will ich leider nicht preisgeben, Er könnte etwas exotisch klingen.

> vielleicht hilft Dir diese Arbeit weiter:
>
> www.floba.info%2FFiles%2FKalman-Filter%2FLuenberger-Beobachter_und_Exten 
ded_Kalman-Filter_Ein_Vergleich.pdf

Danke es ist echt gut.

> Offenbar ist in manchen Fällen der Luenberger-Beobachter stabiler als
> ein Kalman-Filter.

Luenberger probiere ich mal dann aus..

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.