Chief Delphi

Chief Delphi (http://www.chiefdelphi.com/forums/index.php)
-   Electrical (http://www.chiefdelphi.com/forums/forumdisplay.php?f=53)
-   -   How to measure low velocity (http://www.chiefdelphi.com/forums/showthread.php?t=37026)

Chris Hibner 08-04-2005 08:43

Re: How to measure low velocity
 
Quote:

Originally Posted by nobtiba
In the datasheet of ADXRS, it says that we can setting bandwidth by changing the external capacitors: f(out)=1/(2*pi*R(out)*C(out)). Do you think it can effect gyro's capacity of detecting low rate? If not, what is the function of setting the bandwidth?

This capacitor should not change the ability of the sensor to detect a low rate.

The purpose of this capacitor is to change the corner frequency of the low-pass filter on the sensor. You want to have a low enough corner frequency to avoid aliasing of your signal when you digitize the signal. Too much filtering and there will be a problem with a phase lag in the signal.

If you're not sure how to select the capacitor, search the internet on "nyquist frequency".

Al Skierkiewicz 09-04-2005 11:17

Re: How to measure low velocity
 
I believe if you look through the data sheet carefully, you will find that the capacitor and bandwidth is an attempt to quiet down some noisey data. By bandwidth limiting the high frequency energy, you should get a more accurate output.
It seems that I remember someone (a thread perhaps) that discussed rapidly taking samples and averaging over 10 or fifteen ( or more) samples to look for trends. By knowing where you were before you may be able to find out where you are now.

Joe Ross 09-04-2005 11:30

Re: How to measure low velocity
 
Quote:

Originally Posted by Al Skierkiewicz
It seems that I remember someone (a thread perhaps) that discussed rapidly taking samples and averaging over 10 or fifteen ( or more) samples to look for trends. By knowing where you were before you may be able to find out where you are now.

This is the whitepaper you are thinking of: http://www.chiefdelphi.com/forums/pa...le&paperid=234

nobtiba 12-04-2005 05:09

Re: How to measure low velocity
 
Thank you very much for your very useful information. In this pdf file it says that: "if your're integrating, you don't need to filter-the effect of improved resolution will be taken care of by the integration". Now I need integrate to change angular rate to angular, so I needn't average the samples?
In Kevin's code (gyro.h, gyro.c) the time lapse between samples decided by programmer with a timer. If this interval (time) shorter, is the angular get more exactly?

Chris Hibner 12-04-2005 10:08

Re: How to measure low velocity
 
Quote:

Originally Posted by nobtiba
Thank you very much for your very useful information. In this pdf file it says that: "if your're integrating, you don't need to filter-the effect of improved resolution will be taken care of by the integration". Now I need integrate to change angular rate to angular, so I needn't average the samples?
In Kevin's code (gyro.h, gyro.c) the time lapse between samples decided by programmer with a timer. If this interval (time) shorter, is the angular get more exactly?

You won't need to average before the integral because the integral acts like a very large average.

If the sample period (interval between samples) is shorter, the integral will be more exact. However, the sample period must be consistent from one sample to another.

Al Skierkiewicz 12-04-2005 13:28

Re: How to measure low velocity
 
What I meant was another routine looking to see if there was movement and check to see if it was valid data before the integration process.

nobtiba 13-04-2005 23:45

Re: How to measure low velocity
 
So I think all I have to do now are the following steps:
1. Programming the ADC in uC to get samples in free running mode
2. Since the ADC is 10 bits but a data frame to transmit to pc is 8 bits, then I have to devide it to a frame of 3 bits and another of 7bits, then send them to pc
3.In pc, my program written in turbo C receive these bytes through COM1, merge them to get 10 bits value (as origin value after ADC).Then change them to voltage and then to corresponding angular rate.(we call rate value)
4.Also in this program (in pc) I use the timer of uC in PC to count the interval between two samples.
5.Calculate: angular=angular +[(rate value i)+(rate value (i+1))]*(time interval), and loop this routine
<in the beginning angular =0>
I'm sorry if some of these steps seem to suit in programming forum, but I think if I say all things in detail, it may help you to see where is my problems.
Especialy, I don't know how to do in step 4

Dave Garnett 14-04-2005 07:49

Re: How to measure low velocity
 
The first thing you need to do is establish wether the sensor will actually give a valid reading at these low levels - the specs do not give any values for 'hysteresis' which might be an issue.

So, set up an op amp with some gain (eg x 20) and look at the amplified readings - don't worry about the reduced range at this point. This should show you if the sensor actually registers the motion. [Watch out for noise and drift - alternate readings for stationary, clockwise and counterclock] You could do all this with a quality voltage meter instead, of course.

If the sensor actually works at these levels, then you could implement a dual channel readback - in parallel with your normal +- 150 deg channel, add a channel with some gain centered about the null position. In operation this channel will saturate at high turn rates, but you have the readings from the other channel. Of course you will need a strategy to select which reading to use, as well as thinking about compensating for zero offset and drift.

good luck !

nobtiba 15-04-2005 07:00

Re: How to measure low velocity
 
Some body tell me to change the ADC with higher resolution e.g 12 bits or 14 bits...This may help me to know if having a small change in input voltage from zero point voltage which means having a very slow rotation.
But I wonder if anybody use 10 bit ADC and still measure angular exactly.My purpose is that if the system (with ADXRS on it) rotate, I have to control it to turn back to the starting point exactly.
Is changing ADC is a good idea, because it's expensive to have high resolution ADC and waste time to re write program for another one.

Chris Hibner 15-04-2005 08:59

Re: How to measure low velocity
 
I don't think you should have a problem with the 10-bit A/D.

How do you define "exactly" to the starting position? What is your measurement tool to determine how close to the starting position you came? What is the resolution of this tool? You will not need to be more precise than you can measure with an independent tool.

nobtiba 16-04-2005 06:03

Re: How to measure low velocity
 
Let take an imagine experiment: if you have a laser pointer mounted on a rotation board. At starting point, the laser pointer lights a point on the wall (or any target). Mark this point on the wall. Now turn an alpha angle. All I have to do is turn the table back so that the pointer lights exactly in the marked point on the wall.
In fact, robot or airplane also have the same mission when they need to keep straight direction. So how they to do that with this ADXRS150 gyro ?

Chris Hibner 16-04-2005 10:13

Re: How to measure low velocity
 
Quote:

Originally Posted by nobtiba
Let take an imagine experiment: if you have a laser pointer mounted on a rotation board. At starting point, the laser pointer lights a point on the wall (or any target). Mark this point on the wall. Now turn an alpha angle. All I have to do is turn the table back so that the pointer lights exactly in the marked point on the wall.
In fact, robot or airplane also have the same mission when they need to keep straight direction. So how they to do that with this ADXRS150 gyro ?

First, about the laser: You should have no trouble getting the laser pointer back to your point using the ADXR150, a 10-bit A/D, and a PID control loop. We have been able to have great accuracy with the ADXR300 with a 10-bit A/D. The key is to have a fast-enough sample rate (< 1 ms).


2nd, about the airplane:

Airplanes do not use solid-state angular rate sensors - they use mechanical gyroscopes with sensors to measure the angle of the gymbals. These gyros have anti-precession mechanisms built in, but in the case of precession, there is a pilot "trim" knob in which the pilot can remove the precession of the gyro.

Also, airplanes will not use a gyro when precision navigation is required. They use a navigation system to provide the heading input (and therefore the bank input) to the autopilot. The navigation system tells the auto-pilot if it needs to turn right or left and how much to turn. The auto-pilot then banks accordingly. For enroute navigation, the autopilot can use GPS (if the airplane is equipped) or VOR inputs. For approaches, the autopilot can switch over to an ILS localizer or it can stick with the GPS if the GPS is approach certified.

So, to answer the airplane question: if the airplane needs to hit a precise point from far away, it will use ground or satellite navigation, not a gyro. (However, before the days of GPS, you could use inertial navigation systems (gyros and accelerometers) to get across the ocean until you could pick up ground-based navigation systems.)

nobtiba 17-04-2005 10:57

Re: How to measure low velocity
 
Quote:

Originally Posted by Chris Hibner
First, about the laser: You should have no trouble getting the laser pointer back to your point using the ADXR150, a 10-bit A/D, and a PID control loop. We have been able to have great accuracy with the ADXR300 with a 10-bit A/D. The key is to have a fast-enough sample rate (< 1 ms).

To have fast enough sample rate, what I have to change ? And how to get the pointer back to the point? Is this using angular value? If this is, so how to take the integration ?
Can you tell me more detail, please !

nobtiba 22-04-2005 05:37

Re: How to measure low velocity
 
Now I'm using an op amp integrator (integration circuit using LM324) to integrate angular rate. The output of the integrator (angular, in theory) is fed into ADC0 channel.
When I fed square wave into input, the out put is triangular. That's seems good. But when I fed the rate out (the output of gyro) into input, the out put observed in oscilloscope is zero when gyro not moved. When gyro move, the out put observed in oscilloscope sometime increase suddenly.
The capacitor and resistor is 0.001uF and 100kOhm (reference: http://www.physics.ucdavis.edu/Class.../Lab02_rev.pdf)
Will this integration circuit is suit for my purpose?


All times are GMT -5. The time now is 16:01.

Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Copyright © Chief Delphi