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