MEMS gyro: offset drift

Hello,

I have an O-Navi GyroPak 3: a small module based on the Analog Devices MEMS gyroscope (ADXR150).

When the angular rate is 0°/s the sensor output is about 2.5V. This value changes by temperature and it's different from one sensor and another.

My design use the gyroscope as feedback of a motor control system. The goal is to compensate external disturbances. For example if the target rotates due to external noise (e.g. wind or something else) the control system compensates this rotation using the motor.

I know my explanation isn't very clear... I hope you understand what I want to say :)

The system works fine, indeed!

The problem is the zero drift of the gyro: when it changes a bit the microcontroller thinks the target is moving and turns on the motor. But the target doesn't actually move. The zero offset does.

How to avoid this?

I'm thinking about a nasty idea: an high-pass filter with a cutoff frequency lower than 1/100 Hz... so I can catch up everything but the long-term drift.

What do you think? I guess these rate-gyro are used into RC heli: how does they works there?

Bye Marco / iw2nzm

Reply to
Marco Trapanese
Loading thread data ...

Sounds like you are trying to use a rate gyro as an absolute gyro. Probably a good idea to read thru here:

formatting link

Reply to
dbvanhorn

formatting link

There's no such thing as an "absolute" gyro -- all gyros have drift, it's just that better gyros have less drift.

"Rate" gyros are, however, the worst, with silicon MEMS gyros being some of the worst of those.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" gives you just what it says.
See details at http://www.wescottdesign.com/actfes/actfes.html
Reply to
Tim Wescott

[...]

[...]

Yes, the MEMS accuracy is limited by the zero drift. You can pick the=20 best parts from a pile and run those parts through the temperature=20 offset calibration. This can improve the accuracy by several times,=20 however nobody knows for how long this calibration will stay valid.=20 Also, the MEMS calibration is invalidated by a mechanical or thermal=20 stress.

So, the rotation with the constant speed will not be noticed at all.

e?

Perhaps they reset zero every time the heli is on the ground.

Vladimir Vassilevsky DSP and Mixed Signal Design Consultant

formatting link

Reply to
Vladimir Vassilevsky

You can't, entirely. The best you can do at the sensor level is to characterize the drift over temperature, and use that to continually correct your gyro rate -- then live with the rate you have left over.

That would work. If you could work a magnetic compass into your design that would work, too.

An RC heli can stand some rate drift -- it really just needs to be stabilized to the point where the pilot can handle it well.

AFAIK the gyros used in RC helicopters are much smaller and cheaper than the ADI part -- that's a $30 gyro, I'm sure the heli gyros use a cheaper sensor.

--

Tim Wescott
Wescott Design Services
http://www.wescottdesign.com

Do you need to implement control loops in software?
"Applied Control Theory for Embedded Systems" gives you just what it says.
See details at http://www.wescottdesign.com/actfes/actfes.html
Reply to
Tim Wescott

Hi Tim,

so you think I should change the gyro? Might I try to give it a chance?

Marco / iw2nzm

Reply to
Marco Trapanese

Ok, I understand.

I'll give it a try.

I already have a magnetic compass into my design (a flux-gate). I use it to maintain the heading over the time. But the compass is slow and in some circumstances it couldn't work.

My system has two PID regulators: the inner one is the fastest and has the gyro on feedback. The outer one is slower and uses the compass. The output is a mix of both signals: in fact if the gyro's zero changes the whole system output will be affected.

In which manner do you would use the compass?

Bye Marco / iw2nzm

Reply to
Marco Trapanese

Ok.

Fortunately, the target rarely rotates at constant speed. It's a tradeoff, I know.

And how do they know the heli is on the ground? Better, how do they know the "ground" doesn't rotate? Imagine you are on a rotating platform: if they do such a reset the heli won't fly straight!

Marco / iw2nzm

Reply to
Marco Trapanese

er.

How about using matched gyros differentially?

Reply to
a7yvm109gf5d1

[snip]

These guys are doing some RC helicopter autopilot work. Might be something useful:

formatting link

--
Joe Chisolm
Marble Falls, TX
Reply to
Joe Chisolm

Here are some things I remember about that gyro:

You can characterize it pretty well over temperature with about 3 calibration points, using its own internal temp sensor. I used room temp, fridge, freezer when I was testing.

HOWEVER, from a cold powerup it experiences enough self-heating that the gradient across the chip (between the business end of the gyro and the temp sensor, I presume) is enough that your steady-state cal will not work well until the chip stabilizes thermally and the temp output is correct.

The 2.5V Vref pin is very high impedance. If you connect it to a typical ADC directly (for a software center reference) you'll inject so much noise the results will be worse.

Even given all that, you'll need some absolute input to keep the system zeroed. If that input is good enough that you can "mix" it in at a high rate, temperature compensation will be irrelevant.

Think about the latency of such a filter...

The gyro keeps the heli pointed on the scale of seconds, the human pilot keeps it pointed on the scale of 10s of seconds to infinity...

--
Ben Jackson AD7GD

http://www.ben.com/
Reply to
Ben Jackson

And gyros for rate applications have mechanical features that optimize them to that task. All gyros have drift, but rate gyros are likely to have more drift.

Reply to
dbvanhorn

can you use two and turn one or the other over every so often so its drift is in the oposite direction and use that to cancel it out ?

a bit like the way a chopper stabilised op amp cancels its own input offset.

Colin =^.^=

Reply to
colin

Sounds like your control system is all to pot. You need a Kalman filter and state feedback as any 12 year old nowadays will tell you!

Hardy

Reply to
HardySpicer

The fact is I don't have 12 years old, indeed. That's the problem :)

Marco / iw2nzm

Reply to
Marco Trapanese

Thanks, I'm reading through.

Marco / iw2nzm

Reply to
Marco Trapanese
[snip]

That's correct.

So I'm gonna characterize some gyros over temperature and see what happens.

Another problem is I can't do another calibration before one or more years...

What's about the long-term drift (excluding temperature of course) ?

I may stick a resistor on the chip to maintain it at (about) constant temperature. Perhaps I don't need the temp calibration at all.

Marco / iw2nzm

Reply to
Marco Trapanese

I guess it will work if both have the same drift over temperature and the same long-term drift. It's interesting.

Thanks Marco / iw2nzm

Reply to
Marco Trapanese

see also

formatting link

"Marco Trapanese" a écrit dans le message de news: FWATi.150259$% snipped-for-privacy@twister2.libero.it...

Reply to
RESO / Claude GUTH

you can do that, it can be used to good effect in crystal oscillators, its best to use temp feedback control, I think you mentioned it had a temperature output, you can use a mosfet instead of the resistor to heat the device driven by a op amp with current control to keep the temp at a set level.

you need to make sure the control temp is always going to be above what it would otherwise be without heating.

Colin =^.^=

Reply to
colin

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.