How can I define the additive process noise for optimal tuning?

2 次查看(过去 30 天)
Hallo everyone,
I'm following this example(in link) in Matlab to make ego location. In extended Kalman Filter, if I use fucntion-helpTuneinsEKF of example, matlab always reminds me that the matrix is singular in the accuracy of the calculation. I try to redefine the initial value of additive process noise for optimal tuning, but I habe no idea how can I define these values like additive process noise for orientation and...
apnoise(stateinfo(filter, "Orientation")) = [0.02014531; 100; 7.0076611; 1.308652];
apnoise(stateinfo(filter, "AngularVelocity")) = [0.0007698; 100; 100];
thank you
Best regards

回答(1 个)

Abhas
Abhas 2024-10-2
I understand your concern as when dealing with EKFs, tuning the process noise covariance matrix is crucial for achieving accurate results. If MATLAB is indicating that a matrix is singular, it often means that the matrix is not invertible, which can occur if the process noise is not properly defined.
You may refer to the following MathWorks documentattion link to choose the initial process noise: https://www.mathworks.com/help/fusion/ug/tuning-kalman-filter-to-improve-state-estimation.html#:~:text=Choosing%20Process%20Noise
I hope this helps!
  2 个评论
Xinyu Yang
Xinyu Yang 2024-10-6
Hallo @Abhas,
thanks for your answer,after reading this documentation, I tried and still cant get the values like apnoise(stateinfo(filter, "Orientation")) = [0.02014531; 100; 7.0076611; 1.308652];
apnoise(stateinfo(filter, "AngularVelocity")) = [0.0007698; 100; 100].
Can you please tell me how these values calculated are?
Thank you again.
Abhas
Abhas 2024-10-7
  1. Start with initial estimates based on prior knowledge. For example, if you have a rough idea of the noise characteristics in your system, you can use those as initial values. Often, the process noise covariance matrix is tuned empirically. This involves adjusting the values and observing the filter’s performance. If the filter is too slow to respond to changes, the process noise might be too low. If the filter is too noisy, the process noise might be too high.
  2. Use simulations to validate your chosen values. Simulate the system with known inputs and compare the filter’s output to the true state. Adjust the process noise values to minimize the estimation error. Based on your requirements you can customise it.
For the specific values you mentioned:
  • Orientation: [0.02014531; 100; 7.0076611; 1.308652]
  • AngularVelocity: [0.0007698; 100; 100]
These values likely represent the variances of the process noise for each state variable. The large values (e.g., 100) might indicate high uncertainty in those states, while smaller values indicate more confidence.

请先登录,再进行评论。

产品


版本

R2024b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by