Why isn't there any integration drift in simulation of Inertial Navigation System(INS)?

7 views (last 30 days)
In INS, we obtain measurements from accelerometer and gyroscope; by integrating these the position and orientation of an UAV can be determined. I have simulated the dynamical equations for a point mass model of UAV. To simulate the noise, I added noise to the dynamical equations of velocity and angle rates. Since I want the UAV to track a particular trajectory, there are control laws in loop. When I integrate these equations, I only see noise on top of all the states, but not divergence in any of them. Why isnt the integrated error diverging?
I tried to add Kalman filter to this implementation, by assuming we can measure velocity, heading angle and the altitude of the UAV. Even this formulation is giving similar results with only extra noise in the integrated states.
My doubt is, since there are controllers in loop, at every time step, they are trying to ensure that the desired path is tracked and hence they are ensuring the UAV does not drift from the original path. This argument supports my simulation results. However, I am not sure about this logic. Can someone please explain?
Jianxin Sun
Jianxin Sun on 23 Nov 2021
Hi Shubham,
A typical control loop setup would look like:
Plant should be your ODE equations with no addtitive noise.
Then you can add noise to the ground truth output from the plant in the sensor model and use filter to create estimated states. To see the drift you expected, you need to implement the IMU model in the Sensor block. You can use the imuSensor object from Navigation toolbox to achieve this. imuSensor takes in ground truth acceleration and angular velocity and add noise to them.
Then in the filter block, you will compute the estimated x-y-z position based on the measured acceleration coming from imuSensor and this is where you should see drift between your estimated x-y-z position and true x-y-z position.
These estimated states then will be used to generate your control signal T_c, alpha_c and mu_c.

Sign in to comment.

Answers (0)

Community Treasure Hunt

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

Start Hunting!