微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 微波和射频技术 > 电磁仿真讨论 > 3dm-gx1 kalman filter

3dm-gx1 kalman filter

时间:03-24 整理:3721RD 点击:
Hello,

I have a circuit that employs a 3-axis magnetometer. The board is very compact (4cm x 6.5cm), and also on the card is a gyroscope/accelerometer sensor assembly, a DSP, and stanliness bolts in each corner. The small size forces the steel bolts and gyro sensors upclose with the magnetic sensors.

When I sample the magnetometer axes, and just for observation square the x,y,z components then taking the root (calculating absolute value of the magnetic vector), I observe some variance on that absolute value when pointing the board around.

My thoughts are that the steel bolts and sensor assembly adds a so-called hard iron distortion, in other words adds a body-fixed magnetic vector to the measured (earth-fixed) vector. When this body fixed error vector aligns with the earth magnetism the absolute length is larger, and vice versa. This should be what's causing my variance if I assume the sensors have the same sensitivity on all axes, and they should have.

My question: I am looking for a way to identify the body fixed error source (the vector) so I can subtract it from the measured vector. I can think of one way to do this, and that is estimating it with a Kalman filter during an initialization process, but that kind of feels like overkill due to the effort required. Any thoughts?

If the bolts are actually stainless steel, they shouldn't have much influence. Before designing a compensation technique based on guesses, I would remove the said parts or replace them by nylon parts and check the effect empirically. I would suspect non-ideal sensor behaviour to cause the deviation, but that's only another guess.

It turns out the bolts are galvanized brass, but that shouldn't be too magnetic either.. What the sensor assembly (gyros and accelerometers, not Mag) is made of I don't know, it is micromachined of some metal and sits on an aluminum base fixed to the PCB by two small bolts of unknown origin.

I could replace all the bolts with synthetics, no problem (I'm probably gonna do it anyways since weight will be a consideration in the final prototype), but I'd really like to be able to mount the PCB onto metal assemblies, perform a calibration, and be good to go - rather than just avoiding magnetic metals alltogether.. As this is an autopilot module it's already enough of a challenge mounting it away from motor interference.

Non-ideal sensor behaviour is likely also a contributing factor as you say, and so is the power-carrying wiring - about 100mA is drawn through the main supply wires not far from the sensor. Perhaps screening this wire will help a bit too..

I think I'm going to go with your advice right now - try to remove all possible interference sources step by step and see how the sensors performs as I go. It's a first step anyways, there's no reason to make correction algorithms for errors I can nail. I can worry about developing a correction algorithm once I get the circuit magnetically optimized

Thanks for throwing in your thoughts mate :D

Check page 7 of this link:

http://www.microstrain.com/pdf/3DM-G...alibration.pdf

I know where you are coming from as I too have kludged together an inertial measurement unit with MEMs gyros and accelerometers. It sounds allot easier than it is. I never did get the Kalman filter working and I think that's the key to drift free sensing. I ended up buying a Microstrain 3DM-GX1 and it works pretty well.

Hmm.. That paper is very informative in the sense that it describes the steps required for calibration, but it makes no reference to the actual algorithms employed. I did however manage to dig up a paper describing just that:

http://www.magneticsensors.com/datasheets/sae.pdf

Now, this is only in one plane, but I suspect that Microstrain uses a similar approach for each of the three planes during their calibration algorithm.

Also, in my current Kalman filter, all I do is estimate pitch and roll of the system, so I all I really need is to make the correction in the earth plane as described in Honeywells paper referenced above.

I will take a timeout and sort my thoughts... Thanks for the feedback so far guys :)

The algorithms work well, but calibration process is a pain.

However, I've pinpointed a huge source of magnetic disturbance; my battery... This is a 9V non-rechargable alkaline battery (Duracell Ultra M3), and when in close proximity to the sensor it really blows readings out of range. Is this a matter of battery type or is it a matter of the metals used in the battery casing? (this battery is the metal cased type usually found in smoke alarms in Europe and possibly elsewhere)

I tested some alkaline batteries in reach by simply using a permanent magnet, and each of them behaves ferromagnetic, most likely due to a ferromagnetic case. Only some lithium batteries seem to be non-magnetic. So I guess, this is a basic design property of alkaline batteries, Also NiMh accus are ferromagnetic, which can be expected as a feature of the Ni metal without a specific case material.

上一篇:surface current in IE3D
下一篇:最后一页

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top