08-28-2013 07:27 PM
Eric,
I think part of the problem is semantics. I am not sure the words you are using mean what we think they mean and I am fairly sure that you are using some words in ways which show your lack of familiarity with some of the types of measurements and analyses you are trying to do.
And if that sentence did not confuse anyone reading this thread, I will just have to try harder.
Let me start with some of your points:
"We usually look at the 1/2x, 1x, 2x, 3x and 4x fundamentals."
In frequency analysis the word fundamental usually refers to the lowest frequency in a periodic signal. So there is no such thing as a 1/2 "fundamental." The signals at integer multiples of the fundamental (2x, 3x, 4x, ...) are called harmonics.
"The variable gain across the frequency range isn't dependent on the machine frequency, it is dependent on the frequency you are looking at across the chart (x axis frequency, y axis magnitude). Is this correct?"
The variation in gain is due to the filters in the signal conditioning electronics and is (most likely) fixed in the frequency domain. It has nothing to do with your machine frequency. By "machine frequency" you mean the frequency of the sinusoidal excitation of your shaker, right? Also the gain variation has nothing to do with the chart axes. Those are dependent on the data you present to the chart.
"...is it the same thing to take the FFT of an unscaled signal and scale the different portions of the waveform after the FFT?"
You cannot get an unscaled signal from your hardware system with the 25-1650 Hz bandwidth. The scaling is built in to the board. In rpinciple you could measure the response of that system and design a filter with a reciprocal response to generate an "unscaled" signal. In practice the attenuation gets down into the noise floor over too much of the frequency range for that to work and it is alomost impossible to "match" the filters well enough to get meaningful results.
I looked again at what you reported about the bandwidth of your signals conditioning system. You have a one pole high pass which is defined by components which have other purposes than to specify filter parameters. As a result you will only approximately know what the cutoff frequency is. The low pass filter is a two pole filter which means it has a sharper rolloff than the high pass filter. It sounds like the low pass fitler is specifically designed for filtering. However without knowing the filter type (Butterworth, Chebyshev, elliptical, ...) you still do not know exactly how the amplitude (gain) and phase varies with frequency.
###&&&&###&&&&###
Let's step back and start over.
Do you need to measure the response of your system to frequencies outside the signal conditioner bandwidth?
In the images of your signals you posted on 22 August was the excitation sinusoidal? If so, is the mechanical motion of the shaker a claen sinusiodal motion or is some of the non-linearity in the shaker itself?
Do you have a good analytical model of the behavior of your mechanical systems?
What is the end goal of these measurements? What do you do with the data and the analysis after you get them?
Lynn
08-29-2013 09:41 AM
Lynn, I'm not really for sure how to take that last post, but I apologize for the miscommunication of semantics. I am speaking in terms of rotating equipment monitoring. When I said fundamental frequency earlier I am talking in terms of the rotational rpm of the rotating machine under analysis, which can be defined in this case as the fundamental frequency of the machine, the forcing frequency of the shaft or the 1st order harmonic. I will refer to the multiples of the machine rpm as orders from here on out.
So, let me take a step back and define what I am doing, and what the end goal is. I make a living analyzing and troubleshooting rotating machinery. Normally I rely on vibration signatures produced by commercial analyzers. The company I work for is investigating putting long term vibration trending on a few critical machines to assist in the overall health monitoring. The things that are important for me to trend long term are the magnitudes of the half (0.48 for journal bearings to be specific), 1x, 2x, 3x and 4x orders of the rotating machine. If a problem is indicated by one or a combinations of these orders I can then investigate deeper. My issue and lack of understanding is the nuts and bolts of taking the high speed voltage signals and turning that into a meaningful vibration trace as I normally rely on commercial analyzers to do that part for me.
So, with that hopefully cleared up here is a complete description of how I am acquiring signals with this Rio setup. I have a signal conditioning board that provides the supply current to an accelerometer, as well as providing the physical filters as discussed earlier, and lastly amplifies the signal by a factor of 25 to increase the useable resolution of the A to D of the Rio. From there my FPGA is sampling the signal at 25,000hz to satisfy the Nyquist Theorem. I am bringing 8192 points into the real time controller unscaled at this point. What I mean by that is I am keeping them as a pure voltage not worrying about the 100mv/g accelerometer sensitivity or the amplifying signal of 25 yet. I pass these "unscaled" values into the fft. Once it comes out of the fft I am taking the magnitude values (which at this point are still in engineering units of volts) and then processing the signal scaling on the three separate frequency ranges (if I would graph it at this point the x axis is frequency, the y axis magnitude).
I developed the calibration curve or scaling factors by generating a 1grms signal at frequency ranges from 10hz up to 10,000hz by a portable vibration shaker. It does physically generate a very clean near sign wave. So, I would adjust a scale factor until I could make the magnitude of my output at the same frequency as the shaker was generating match what is was putting out. The curve I generated doing that is attached in the excel spreadsheet. To make the calibration match up the best I broke the calibration curve into three sections, one equation for 10-50 hz, one equation for 51-150 hz, and one equation for 151-10,000 hz. This seems to work well, and hopefully should be the final solution to acquiring a calibrated signal based of this specific hardware. If anyone sees anything wrong with what I am doing please let me know.
Thanks again, and I hope I did not come across snippy, that was not my intent.
08-31-2013 11:11 AM
Eric,
I did not mean to offend. Sometimes the communications gets tangled and we lose sight of the intent to solve a problem.
You description of what you are trying to do is very helpful. I thought you were talking about rotating machinery but the use of the shaker confused me. Now I see that you are using the shaker as a calibration source.
While I have not worked much with rotating machinery monitors (since LabVIEW became available) I understand the need for measurements at frequencies which are fractions of the rotation speed.
What you are trying to do with the calibration makes some sense. I still have a few questions.
Your spreadsheet calibraton factor chart only appears to go to 1000 Hz although you mention 10 kHz several times. Do you have data between 1 and 10 kHz? I ask this for several reasons. 1. The signal conditioner cutoff at 1650 Hz will cause things to change very rapidly in that frequency range. 2. Polynomial fits to data may work well inside the range covered by the data but they extrapolate beyond that range very poorly. So the fit from 151 to 1000 Hz will likely be very poor in the 2 - 10 kHz range. 3. The highest order coefficients on all three fit segments are much smaller than the next coefficients. I wonder if a quadratic polynomial would be good enough.
What is your actual range of speeds (and corresponding frequencies) for the rotating machinery? I am still concerned that the signal conditioner bandwidth may create a problem for you. You can calibrate around some of it, but you will reach a point where you are analyzing more noise than signal.
Once we verify that the frequency ranges are OK, then we can work through the conversion of acceleration, voltage, gain, and filter to get you data in a meaningful format.
Lynn
08-31-2013 05:19 PM
09-01-2013 02:21 PM - edited 09-01-2013 02:22 PM
To see where your data will be a 4 kHz I calculated the response of a 2-pole Butterworth low pass filter wth a cutoff frequency of 1650 Hz. For a peak response of 2115 (as you have around 200 Hz) the response at 4 kHz will be about 355. We do not know that the filter in your signal conditioner is a Butterworth type, but that type is common and easy to calculate.
Once I had calculated the transfer function of the filters, it was straghtforward to use the Nonlinear Curve Fit.vi to fit the data to a model which is probably fairly accurate for your signal conditioner. You may need to verify that the reference to the Filter Fit Model.vi actually connect to the VI on your computer.
The two graphs contain the same data. The lower graph uses logarithmic scales which are commonly used to display filter responses.
If you want to extrapolate to higher frequencies, enter the frequencies (in ascending order) in the first column of the Measured Data array and run the VI. Then enter the values from the f(X,a) array in the Butterworth Filter Model box as amplitude response values in the second column of the Measured Data array. Run the VI again and look at the graphs and the fit. As you observed a single polynomial is not a good fit.
Lynn
09-03-2013 10:49 AM - edited 09-03-2013 10:57 AM
Lynn, I emailed the company that built the board over the weekend about what type of filter was used and here was the response:
The filter is not designed to one of the classic alignments. It's designed to have no overshoot with a step input. The closest of the classic filter alignments would be a Bessel filter.
Unfortunately that doesn't mean much to me. I looked at the vi's you posted and the fit to filter data vi is just about the coolest thing I have seen yet. Labview has the power to do so many things it takes years to learn of some of the cool things and tricks it can do...... I do believe this will be a useful vi down the road on some other generic data curves...... Anyway, I digress......
I have attached the output of running the fit to filter vi. The filter model doesn't tail off quite as quick as the actual data, but that is probably due to the Bessel filter versus Butterworth. In doing a bit of research the measured curve does tend to look like a Bessel curve a bit more than a Butterworth.
So, I'm assuming I could take the data curve after plugging in the higher frequency filter model data and then interpolate for the amplitude across the frequency range? Is that the best way to use the output of the nonlinear fit data? The transfer function of the Bessel filter looks a little complicated but using that in place of the Butterworth model should make this a little more accurate.
09-03-2013 04:42 PM
I think you are on the right track.
I do not have my filter books at hand but since a Butterworth filter has the slowest roll off of all filter types, the Bessel filter will roll off more quickly. You probably need several more datapoints to get a good confirmation of the filter shape.
Lynn
09-04-2013 10:40 AM
For anyone following this thread, here is a very good article talking about filter design and the math behind it:
http://www.ti.com/lit/an/sloa049b/sloa049b.pdf
Lynn, I follow everything and even see the same basic form of the equation (X,a) = (1/sqrt(1 + (w/wL)^4)) * (w/wH)/sqrt(1 + (w/wH)^2) * G, but they have K as the gain.
They are also using s=j*2*pi*f (appears to be the same as the 2*pi*f you use, they just leave the j term in the transfer function). For the butterworth filter, Q is square root of 2 and FSF is 1. For the Bessel, Q is 0.5773 and FSF is 1.2736. Somewhere I'm missing a small link to exactly how you are doing the equation form in the butterworth vi you posted earlier.
I have realized several things in the reading I have been doing.
1) I easily get dragged down in trying to understand details that I maybe don't need to understand or my ME degree didn't prepare me to understand.
2) The best filtering should be active and actually move around depending on the frequency's you are interested in looking at .
3) The cut off frequency's and type of filtering most likely explain the reason two different types of analyzers can show slightly different signals.
4) There is a reason (a little bit) that commercial analyzers are expensive.
Our existing NI SCXI vibration chassis has vastly different filter frequency's (I did not write the original code, and I'm not for sure if that is hardware or digital based) and probably a different filter type so I feel better now that I have scientific reason behind the difference.
This also brought a question to mind, Labview has lots of different digital filter vi's, is there a fundamental difference in those versus hardware filters, or at least a reason for one over the other?
Also, am I on the right track on the transfer function math above?
Lynn, I can't thank you enough for your expertise with this subject. Is it against rules to ask if you our your company does paid consulting and/or programming? I'm basically doing some proof of concept 1st stage hardware trials and as we move into further stages of refinement there would be great value to consulting with an expert in what we are trying to do. Thanks again.
09-04-2013 02:41 PM
Eric,
The image just shows up as a ? in a box. Use the Tree icon in the toolbar above the text box while composing a message to Insert an Image into your post.
Equations about filters expressed as functions of s are usually Laplace Transform functions. They are very similar to Fourier transforms and are widely used in control systems for transfer functions. Sometimes even MEs use them.
I think my original code for the filter response had the upper and lower frequencies interchanged and the final result may have documentation errors.
1. Everybody sometimes has trouble seeing the forest for the trees.
2. Tracking filters can be nice but they are also complicated. More terminology: An Active filter is one made using an "active" device such as an amplifier to provide gain and isolation between the filter's reactive components (capacitors and inductors). A tracking filter is one which can change its cutoff frequency in response to the frequency of an external signal. An adaptive filter changes its type or characteristics (and possibly the cutoff frequency) in response to the signal being filtered. I think a tracking filter might be of some value to you. An adpative filter is probably not necessary. If you will be doing the filtering in software, an active filter is irrelevant.
3. Yes.
4. Yes. They try to do many types of analyses and make it easy for the user to get meaningful results without needing to know all the details of what goes on inside. For your monitoring purpose a commercial analyzer may be overkill, but whether that is the case depends on a lot of details.
Software versus hardware filters: Some things such as anti-aliasing must be done with hardware filters before the signal is digitized. This has to do with the
sampling process and the underlying theory (which is a different textbook or six) and not the filter type. Software and digital filters are inherently sampled data processes and so they are subject to the Nyquist theorem and all the related issues (which MEs often get to ignore until they are tasked with vibration issues). Software filters have limitation due to finite data representation in the computer and various calculation issues such as roundoff. Hardware filters are subject to component tolerances, drift, noise, and other electronics issues. Choosing the right filter in complicated situations can be a significant engineering task.
I think you are on the right path with the transfer functions.
As for your last question about the rules, click on the link at the bottom of the page on Terms of Use. Under prohibited Conduct: "Advertising or offering to sell or buy any goods or services." I will send you a PM with contact information.
Lynn
09-04-2013 03:47 PM
Sorry about the picture. Here it is try #2.