I am new to this forum... long time reader, first time poster. I hope to contribute to the community.
My question is regarding the DCM algorithm:
I have simulated Bill's DCM algorithm in MatLAB/Simulink, and it seems, that direct integration always meets or exceeds the DCM integration/multiplication. See results below:
It seems while simply integrating the said non-linear differentials, I find the results to be of better accuracy and MUCH LESS processing power!! So why even use the DCM orientation integration? What are the advantages?
Please note: In this simulation, I have intentionally not yet taken into account the PI drift correction (because, no matter what pre-algorithm you use, in the long run, post PI correction will always give you the correct orientation).
Thanks
-Hassan
You need to be a member of diydrones to add comments!
Replies
http://hotfile.com/dl/68887555/5c0b5a7/DCM_Integration.mdl
This was created in Matlab r2009b.
I will plan to do more indept post for you guy within a few months, so in the meantime if you have any questions post back here.
Best Regards
DCM_Integration.mdl
Welcome aboard!!
If you push direct integration, you will eventually discover what the problem is with it.
At the heart of it, the problem with direct integration is that finite rotations are not commutative. That is just a fancy way of saying that the order of rotations is important. That is what Jozsef was saying.
For example, lets consider the combination of a 90 degree pitch upward, and a 90 degree roll to the right, as seen by the gyros, which are measuring the rotation rates in the plane frame of reference.
Suppose the pitch is first done first, followed by the roll. In that case, the plane will be pointing straight up.
Then, suppose that the roll is done first, followed by the pitch upward in the plane frame of reference. In that case, the plane will be pointing level, with one wing up, and one wing down.
Those are two entirely different situations.
The bottom line is that for finite rotations, the direct integration method gradually accumulates large errors in attitude estimation.
Best regards,
Bill
http://i26.tinypic.com/2h3dhs7.png
Consider the following gyro input:
90 times (dx:1 degree, dy:0, dz:0) (I mean it turns 90 degree on the x axis in 90 steps)
90 times (dx:0, dy:1,dz:0)
90 times (dx:-1, dy:0,dz:0)
90 times (dx:0,dy:-1,dz:0)
What is the final orientation? :-)
regards, Jozsef