Maker Pro
Maker Pro

MEMS gyro: offset drift

M

Marco Trapanese

Jan 1, 1970
0
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
 
T

Tim Wescott

Jan 1, 1970
0
dbvanhorn said:
Sounds like you are trying to use a rate gyro as an absolute gyro.
Probably a good idea to read thru here: http://www.tpub.com/content/neets/14187/css/14187_129.htm
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
 
V

Vladimir Vassilevsky

Jan 1, 1970
0
Marco Trapanese wrote:

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.
[...]


How to avoid this?

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

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.

So, the rotation with the constant speed will not be noticed at all.
What do you think?
I guess these rate-gyro are used into RC heli: how does they works there?

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



Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
 
T

Tim Wescott

Jan 1, 1970
0
Marco said:
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?

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.
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.

That would work. If you could work a magnetic compass into your design
that would work, too.
What do you think?
I guess these rate-gyro are used into RC heli: how does they works there?

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
 
M

Marco Trapanese

Jan 1, 1970
0
Tim said:
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.


Hi Tim,

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

Marco / iw2nzm
 
M

Marco Trapanese

Jan 1, 1970
0
Tim said:
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.

Ok, I understand.
That would work.

I'll give it a try.
If you could work a magnetic compass into your design
that would work, too.

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
 
M

Marco Trapanese

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

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

Fortunately, the target rarely rotates at constant speed. It's a
tradeoff, I know.
Perhaps they reset zero every time the heli is on the ground.

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
 
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

How about using matched gyros differentially?
 
B

Ben Jackson

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

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.
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.

Think about the latency of such a filter...
I guess these rate-gyro are used into RC heli: how does they works there?

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...
 
D

dbvanhorn

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

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.
 
C

colin

Jan 1, 1970
0
Marco Trapanese said:
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

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 =^.^=
 
H

HardySpicer

Jan 1, 1970
0
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

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
 
M

Marco Trapanese

Jan 1, 1970
0
HardySpicer said:
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!


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

Marco / iw2nzm
 
M

Marco Trapanese

Jan 1, 1970
0
Ben Jackson wrote:

[snip]
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.

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
 
M

Marco Trapanese

Jan 1, 1970
0
How about using matched gyros differentially?

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
 
C

colin

Jan 1, 1970
0
Marco Trapanese said:
Ben Jackson wrote:

[snip]
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.

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.

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 =^.^=
 
Top