From: RogerN on

"Tim Wescott" <tim(a)seemywebsite.now> wrote in message
news:OdOdnQIYH-OtfhLWnZ2dnUVZ_vqdnZ2d(a)web-ster.com...
> RogerN wrote:
>> "Roy" <brewer.roy(a)gmail.com> wrote in message
>> news:2d624d07-24e6-4a04-b178-b57dad27e322(a)15g2000yqi.googlegroups.com...
>>> All,
>>>
>>> I am designing a control system for a hovering quadrotor. The MEMS
>>> gyroscope (angular rate) sensors have a slowly drifting zero-rate
>>> point. To me, the bias seems fairly constant for several seconds, then
>>> jumps to a new value, and this pattern repeats. Both the time and the
>>> magnitude of the jump seem random. I know the "best" way to compensate
>>> for this would be to use a sensor fusion algorithm with another sensor
>>> type, but I was wondering if there were a signal processing technique
>>> that could be used.
>>>
>>> I have tried using a low-pass filter and a simple "deadzone", and both
>>> worked somewhat, but not as well as I'd like. I'm going to use the
>>> signal directly for rate feedback and integrate it to come up with
>>> attitude feedback, if that helps.
>>>
>>> Any ideas?
>>>
>>> Thanks in advance
>>> Roy
>>
>> I fly R/C helicopters and when the "heading hold" gyroscopes first came
>> out there was a drift problem with temperature. I have no idea if this
>> is related to what you're experiencing but I wondered if 2 sensors were
>> used, one flipped, and then take the differential signal. That would
>> double your signal to motion and hopefully cancel out drift due to
>> temperature. Since then they have either came up with better sensors
>> and/or better sensor drift compensation, it's not the problem it used to
>> be.
>>
>> RogerN
>>
>>
> That would only work if the sensor drift due to temperature were fairly
> constant by design. Any drift that varies from unit to unit wouldn't get
> canceled out, or at least would only be reduced by sqrt(number of
> sensors).
>
> Linear drift with temperature is pretty darn easy to cancel out if you
> have a microprocessor in the system somewhere, and microprocessors are
> pretty darn small these days (the 8-pin SO-8 package ones are no longer
> the smallest around).
>
> What you're left with are all the _other_ factors affecting gyro bias
> drift -- you can't eliminate it entirely.
>
> --
> Tim Wescott
> Control system and signal processing consulting
> www.wescottdesign.com

You know Tim, you could be among the first to use a gyro on a control line
model plane :-) (maybe it's already been done, not sure) I believe they did
temperature compensation with a thermistor but I don't know of other causes
of drift. On one of my early heading hold gyros I had to re-trim a few
times during a flight.

RogerN


From: Michael Plante on
Tim wrote:
>RogerN wrote:
>> I fly R/C helicopters and when the "heading hold" gyroscopes first came
out
>> there was a drift problem with temperature. I have no idea if this is
>> related to what you're experiencing but I wondered if 2 sensors were
used,
>> one flipped, and then take the differential signal. That would double
your
>> signal to motion and hopefully cancel out drift due to temperature.
Since
>> then they have either came up with better sensors and/or better sensor
drift
>> compensation, it's not the problem it used to be.
>>
>> RogerN
>>
>>
>That would only work if the sensor drift due to temperature were fairly
>constant by design. Any drift that varies from unit to unit wouldn't
>get canceled out, or at least would only be reduced by sqrt(number of
>sensors).


And uncorrelated noise would be amplified. And I don't think you could do
that with 2 prepackaged 3-axis units (which might otherwise be desirable if
the manufacturer can ensure orthogonality better than a hobbyist), since no
rotation of the unit in 3D will induce a point reflection through the
origin...



>Linear drift with temperature is pretty darn easy to cancel out if you
>have a microprocessor in the system somewhere, and microprocessors are
>pretty darn small these days (the 8-pin SO-8 package ones are no longer
>the smallest around).


But can you do that without a calibration oven? I suppose you might be
able to, but I've run into the problem where I want to calibrate a bunch of
scale factors and cross-axis sensitivities (etc, for essentially 24
parameters, plus a roll/pitch correction per static test), but it seems
difficult to get the temperature into the fit at the same time if all I
have is a z-gyro temperature log and a heat gun. :-) I wonder whether
each parameter needs its own (1-e(-k*t)) temperature curve, possibly with
different k's, or if I can get away with fitting the temperature first
before doing a time-invariant nonlinear fit...this is complicated by the
fact that there already IS an unknown/closed-source temperature
compensation going on of unknown quality...

I heard an approach one MEMS IMU company uses (wish we had gone with them
when we had the choice) was to enclose the whole thing and hold a steady
elevated temperature.



>What you're left with are all the _other_ factors affecting gyro bias
>drift -- you can't eliminate it entirely.


From: Vladimir Vassilevsky on


Michael Plante wrote:
> Tim wrote:

>>Linear drift with temperature is pretty darn easy to cancel out if you
>>have a microprocessor in the system somewhere, and microprocessors are
>>pretty darn small these days (the 8-pin SO-8 package ones are no longer
>>the smallest around).
>
> But can you do that without a calibration oven? I suppose you might be
> able to, but I've run into the problem where I want to calibrate a bunch of
> scale factors and cross-axis sensitivities (etc, for essentially 24
> parameters, plus a roll/pitch correction per static test), but it seems
> difficult to get the temperature into the fit at the same time if all I
> have is a z-gyro temperature log and a heat gun. :-) I wonder whether
> each parameter needs its own (1-e(-k*t)) temperature curve, possibly with
> different k's, or if I can get away with fitting the temperature first
> before doing a time-invariant nonlinear fit...this is complicated by the
> fact that there already IS an unknown/closed-source temperature
> compensation going on of unknown quality...
>
> I heard an approach one MEMS IMU company uses (wish we had gone with them
> when we had the choice) was to enclose the whole thing and hold a steady
> elevated temperature.
>
>>What you're left with are all the _other_ factors affecting gyro bias
>>drift -- you can't eliminate it entirely.
>

I've been involved with MEMS accelerometer calibration wrt temperature.
Ovens, slow temperature cycling and such. Result: There is only so much
that you can do. To begin with, the sensors are already factory
compensated for the 1-st order effects; some sensors have the EEPROM
built in. So, what you do is the compensation of the factory
compensation. Your compensation curve is going to be rather random and
different from unit to unit. Then, there is a question for how long your
compensation will last. If the sensor underwent a thermal or a
mechanical shock, your compensation is no longer valid immediately. The
aging effect on compensation is a question; nobody could say anything
for sure about it. Then, there are the mechanical effects of the MEMS
cell: hysteresis, stiction, nonlinearity in the presence of vibration
(mechanical rectification). So, the resultant accuracy is going to be at
the order of 1cm/c^2 or so at best.

Vladimir Vassilevsky
DSP and Mixed Signal Design Consultant
http://www.abvolt.com
From: Tim Wescott on
Vladimir Vassilevsky wrote:
>
>
> Michael Plante wrote:
>> Tim wrote:
>
>>> Linear drift with temperature is pretty darn easy to cancel out if
>>> you have a microprocessor in the system somewhere, and
>>> microprocessors are pretty darn small these days (the 8-pin SO-8
>>> package ones are no longer the smallest around).
>>
>> But can you do that without a calibration oven? I suppose you might be
>> able to, but I've run into the problem where I want to calibrate a
>> bunch of
>> scale factors and cross-axis sensitivities (etc, for essentially 24
>> parameters, plus a roll/pitch correction per static test), but it seems
>> difficult to get the temperature into the fit at the same time if all I
>> have is a z-gyro temperature log and a heat gun. :-) I wonder whether
>> each parameter needs its own (1-e(-k*t)) temperature curve, possibly with
>> different k's, or if I can get away with fitting the temperature first
>> before doing a time-invariant nonlinear fit...this is complicated by the
>> fact that there already IS an unknown/closed-source temperature
>> compensation going on of unknown quality...
>>
>> I heard an approach one MEMS IMU company uses (wish we had gone with them
>> when we had the choice) was to enclose the whole thing and hold a steady
>> elevated temperature.
>>
>>> What you're left with are all the _other_ factors affecting gyro bias
>>> drift -- you can't eliminate it entirely.
>>
>
> I've been involved with MEMS accelerometer calibration wrt temperature.
> Ovens, slow temperature cycling and such. Result: There is only so much
> that you can do. To begin with, the sensors are already factory
> compensated for the 1-st order effects; some sensors have the EEPROM
> built in. So, what you do is the compensation of the factory
> compensation. Your compensation curve is going to be rather random and
> different from unit to unit. Then, there is a question for how long your
> compensation will last. If the sensor underwent a thermal or a
> mechanical shock, your compensation is no longer valid immediately. The
> aging effect on compensation is a question; nobody could say anything
> for sure about it. Then, there are the mechanical effects of the MEMS
> cell: hysteresis, stiction, nonlinearity in the presence of vibration
> (mechanical rectification). So, the resultant accuracy is going to be at
> the order of 1cm/c^2 or so at best.

Add to that the fact that when you start trying to temperature
compensate that tightly you're going to run into effects of error vs.
temperature ramp, temperature gradients within the device, and/or
temperature differences between the temperature sensor and the device
you're calibrating.

There _is_ value in calibrating to temperature. But it's easy to reach
the point of diminishing returns without realizing it; work hard on this
without paying attention and you'll just be engaging in pointless thrashing.

--
Tim Wescott
Control system and signal processing consulting
www.wescottdesign.com