LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Decaying Sine Wave Frequency Measurement

Greetings all. I am developing Labview code that will be used to measure Gyroscopic Wheel characteristics. Everything works except for the last test. I need to measure the Frequency of the wheel as it is running down after having its' excitation removed. The wheel runs at a Frequency of 2400 Hz and takes approximately 12 seconds to run down to a stop. During rundown, the Frequency being measured will be decaying obviously ( becoming lower with time ). I am trying to figure out a way that I can measure the Frequency at any point in time, from the moment excitation is removed to the time it actually stops. Measuring specific time-to-frequency points gives a measurement of wheel performance. Can anyone help? Is it at all possible to
measure a changing frequency at any point in its' sweep? I am using LV 6.1 Professional. The data is being acquired with a NI 6052 at a rate of 20,000 pts/sec for 300,000 seconds. Data is therefore acquired for 15 seconds. I can plot it and save it no problem. HELP!!!!! lol Thanks all.
0 Kudos
Message 1 of 9
(4,979 Views)
The best technique to use to measure your time-frequency characteristic may depend on your tacho signal. What kind of tacho signal do you measure? Is it a pulse train with a known number of pulse per retation? Is it a sine wave and if so how clean is it and how stable is the amplitude (as function of the frequency and how noisy is it)?
0 Kudos
Message 2 of 9
(4,979 Views)
How exactly kind of sensor are you using to measure the spin of the gyro? If you have some way of measuring the actual rotational time of the wheel for each rotation, taking the inverse of the times gives you the speed of rotation in revolutions per second for each rotation (and obviously dividing that number by 60 gives RPM).

This project sounds very do-able, but I need a little more information to give an exact answer.

Mike...

PS: Please don't be insulted by this question, but is this homework for a class you're taking?

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 3 of 9
(4,979 Views)
No problem. No, this is not for homework. I work in Aerospace and the Gyro in question will eventually be used in a Trident Missile. We design Test Systems for Navy missile programs. The output signal is a pure sinewave. The motor is a 2 phase, 3-pole motor excited at 22 volts @ 2400Hz. There is a very extensive algorithm written in C++ that will do the actual final determination of the wheel rundown characteristics. There is no Tach as such. The output Frequency is simply a matter of the wheel running down after loss of excitation. At that time it acts like a generator and I am monitoring the Phase 'A' to neutral output. I hoped that the Single Tone vi would work but I can't seem to get it to. Perhaps measuring the time between succesive peaks might work? B
ut I would need to be able to pick the point in time to do that. At the sample rate of 20k/sec I am getting a data point every 50uSec. The plot is a perfect example of a decaying frequency/voltage over time. Any other info that might be needed, please just ask and I will provide.
0 Kudos
Message 4 of 9
(4,979 Views)
The problem with most analysis technique (like the Single Tone.vi) is that they look at frequency over time--which in your application is changing.

If the output from your gyro is one cycle per rotation (which it sounds like is the case) to determine the speed at any point in time just requires a little basic math.

For example, assuming you want to know the speed 2 seconds into the rundown. Assuming a sample rate of 20khz, that's 40,000 samples into your dataset. Starting at that point look for the next two peak values, or zero crossings, and count the number of samples between them. Multiply this number by the reciprocal of the sample rate and you have your cycle time.

Alternately, you could find the time for each cycle in the entire
dataset an generate a complete plot of the gyro rundown.

The math in my last post would then give the instantaneous RPM at that time.

Could you post a typical dataset? I could show you what I mean.

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 5 of 9
(4,979 Views)
Hi Mike, thanks for your help. I tried doing what you said but the numbers didn't jive. I am sure I am doing something wrong. Labview is fairly new to me but I am learning. Anyway, here is a full dataset of a Phase 'A' to neutral rundown. Approximately 2.4 Mb in size. you can view it, plot it or load it up. It is a text type file. Hope you can help me out on this. Thanks.
0 Kudos
Message 6 of 9
(4,979 Views)
NI offers a couple of different solutions to perform time-frequency analysis. These include the sound and vibration toolset, the signal processing toolset, and the order analysis toolset. As mentioned by Alain, if you have access to an ecoder/tachometer to track down the speed, then the best tool is most likely order analysis. If it is not the case, as I am assuming based on your dataset, then you can use the short-time Fourier transform from the sound and vibration toolset. I have attached a screen capture (jpg) of a quick analysis of your data. You will see the frequency of interest as well as other constant frequencies and some aliases due to the lack of anti-aliasing filters. Feel free to email me directly (thierry.debelle@ni.com) if you want to discuss
this in more details.
0 Kudos
Message 7 of 9
(4,979 Views)
Attached is a library containing the VI I came up with. Double-clicking the library opens the top-level VI.

When you run the VI, it first asks for a datafile to open. It then processes the file and displays the entire rundown.

Complications were that the signal is noisy and the data gets very jittery at low rotational speed (approximately 150 rot/sec and below). Unfortunately, software can't fix what's not in the data to begin with.

I put some notes in the diagram that should give you helpful information on how the bug-ger works. The only bell or whistle I can think of to add right off hand is to make the X-axis of the freq plot scaled in time from start of rundown. To implement this, change the graph to an XY p
lot and for the x-axis data use the ending threshold location multiplied by the reciprocal of the sample rate.

If you have any specific questions feel free to give a hollar...

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 8 of 9
(4,979 Views)
OH yes one more thing...

As I was putting the exmple together, I realized I messed up in my earlier post and in my haste left out a couple steps. The process should be:

1) multiply number of samples by reciprocal of sample rate.

2) take reciprocal of result to turn the total cycle time into frequency.

3) multiple freq. by 60 to give RPM...

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
0 Kudos
Message 9 of 9
(4,979 Views)