LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

estimating resonant frequency by sweeping the frequency from 100 Hz to 500 Hz

Solved!
Go to solution

Hi

 

Actually, I need to do open loop system to vibrate the structure from 100 Hz to 500 Hz to find the resonant frequency. I have tried to build the code that can actuate ( excita) the structure and measure the signal fron the sensor ( capacitive sensor). Initially, I have tested my code by generating the signal from AI12 and connected that signal to the AO0 to evaluate the code. However, I have faced two problems. firstly, the stimulus signal in acquiring code (input) is delayed by around 20ms as can be shown in attached file. Secondly, generating signal is changing every 0.01 s where start from 100 Hz to 500 Hz. in other words, at the beginning i will have one cycle and the cycle will increase every 0.01s. My question, how i calculate the FFT for each 0.01 s and at the end showing the whole result in one graph to show the resonant frequency. Could you please help at this point.
I have attached the the Vi file.

 

Khalid 

Download All
0 Kudos
Message 1 of 12
(4,993 Views)

 I would really appreciate any helpSmiley Happy

0 Kudos
Message 2 of 12
(4,966 Views)

Any assistance

0 Kudos
Message 3 of 12
(4,949 Views)

Hi Khalid,

 

I am an Applications Engineer at National Instruments and am looking into your query. As I understand are generating a signal and you need to have an Analogue Input and an Analogue Output task synchronised to one another so that they can run off a common time base. You are interested in getting the frequency response function to find the resonant frequency. 

 

Attached is a simple program that illustrates a way of doing it. I hope this helps.

NabilahF
Applications Engineer
0 Kudos
Message 4 of 12
(4,920 Views)

Dear Nabilah,

 

Thank you so much for your reply . it is a good example to start with writing a code. However, I have a question about adding sweep frequency. how I include it with the code.

 

Khalid 

0 Kudos
Message 5 of 12
(4,903 Views)
Solution
Accepted by engkhalid

Hi Khalid,

 

I'm glad you found it useful. To add a frequency sweep simply replace the Uniform White noise vi with a chirp which can be found in Signal Processing >> Signal generation >> Chirp pattern.

 

I hope this helps. Have a nice day.

NabilahF
Applications Engineer
0 Kudos
Message 6 of 12
(4,884 Views)

Hi Nabilah, 

Thank you again fro the the help. However, I have done what you have mentioned but i noticed in the FFT graph that estimate the frequency does not give me the right values. I have tested the code by generating the signal from AI12 and connected that signal to the AO0 to evaluate the code as can be shown in the attached file.the result what I expected from the code is to have the same amplitude at each frequency where I have connected the signal that generated from Ao0 to Ai12(channel). For example, if i run the code with sweeping frequency from 50 Hz to 500 Hz and amplitude 1 V, the result in FFT has to be at each frequency has the 0.7 amplitude (RMS).
Also, I have tried to understand the main function of Trigger.vi. Is this for detecting the signal from the input channel and generate signal as fast as possible?

 

I have attached modified code.

 

Khalid  

Download All
0 Kudos
Message 7 of 12
(4,870 Views)

Hi Khalid,

 

The amplitude in the FFT plot isn't the same as the amplitude of the input signal in the time domain. The FFT is showing the "amount" or "quantity" if you like, of each frequency of sine wave that has made up the chirp pattern. 

 

I hope this helps. Have a nice day!

NabilahF
Applications Engineer
0 Kudos
Message 8 of 12
(4,833 Views)

@engkhalid wrote:

Hi Nabilah, 

Thank you again fro the the help. However, I have done what you have mentioned but i noticed in the FFT graph that estimate the frequency does not give me the right values. I have tested the code by generating the signal from AI12 and connected that signal to the AO0 to evaluate the code as can be shown in the attached file.the result what I expected from the code is to have the same amplitude at each frequency where I have connected the signal that generated from Ao0 to Ai12(channel). For example, if i run the code with sweeping frequency from 50 Hz to 500 Hz and amplitude 1 V, the result in FFT has to be at each frequency has the 0.7 amplitude (RMS).
Also, I have tried to understand the main function of Trigger.vi. Is this for detecting the signal from the input channel and generate signal as fast as possible?

 

I have attached modified code.

 

Khalid  



Homework: What is the rms value of a sine with 1V amplitude?

 

However, this would be irrelevant for finding resonaces....

Greetings from Germany
Henrik

LV since v3.1

“ground” is a convenient fantasy

'˙˙˙˙uıɐƃɐ lɐıp puɐ °06 ǝuoɥd ɹnoʎ uɹnʇ ǝsɐǝld 'ʎɹɐuıƃɐɯı sı pǝlɐıp ǝʌɐɥ noʎ ɹǝqɯnu ǝɥʇ'


0 Kudos
Message 9 of 12
(4,825 Views)

Hi NabilahFand Henrik

 

Thank you so much for the help. However, the rms value of the sinewave is equal to (peak*0.7). Am I right?

 

Khalid

0 Kudos
Message 10 of 12
(4,809 Views)