Gan Uesli Starling Posted August 14, 2012 Report Share Posted August 14, 2012 Am wanting to know if it is possible to acquire peak & valley readings for voltage (amplified signal from accelerometer) over long durations but with non-huge data files. So not a time history file representing waveforms. Rather a collection of max peaks and min valleys (or even just envelope span as an absolute magnitude) at regular intervals. That is to say the greatest one which occured during said interval. Say my vibration table is running a 10-hour dwell at 1250 Hz, what I'm wanting to do is splice into the acclerometer feedback signal (post amplification) and keep a running log of the max peak and min valley (or said span's greatest magnitude) sampled only at much longer intervals (say once a minute). I am needing the readings sampled to be only that, the max peak & min valley (or greatest magnitude) that transpired during that 1-minute interval (even if it happened only once but without couthing how many). What I don't want is the instantaneous value at the time of sampling which would be useless. Hope that's clear. I've had that feature on other instruments (peak/valley sample & hold, reset at intervals) but am unsure how to accomplish it in LabVIEW. Not even sure if it's a feature of the hardware. Can I do it in voltage using a cDAQ and 9205, for instance? If so how? If not, any suggestions? Quote Link to comment
Jordan Kuehn Posted August 14, 2012 Report Share Posted August 14, 2012 Unless I'm missing something, this is as simple as containing the max and min values from each iteration of the DAQ loop in a shift register. For as many iterations as it takes to get you to 1 minute or whatever resolution you want to log at you would then compare the existing values in the shift register with what the current measured max/min were from that sample. You can use the loop index in conjunction with your sample rate to select how many iterations to continue updating the max/min values. Whenever you reach your target period (1 minute?) you can log (or whatever you want) and then reset the values in the shift register to whatever the current max/min values are. This is assuming you are doing continuous sampling in a loop. Divide the loop counter by however many iterations you want using the "Quotient & Remainder" function and test for the Remainder to == 0 as your logic for when to reset and log. Quote Link to comment
Gan Uesli Starling Posted August 15, 2012 Author Report Share Posted August 15, 2012 (edited) Iteration loop speed is much, much too slow to capture a spurius event happening at, say 1250 Hz. The probability of the spurious event happening right at the time of an iterated reading is very remote. It just wouldn't work. Reaching back into my electronics days, the way to do this in hardware would be to charge a zero-loss capaciter through a shockty diode. Two pair of such circuitry, one for peaks the other for valleys. Said charge(s) would be tapped without loss by an amplifier of near infinite input impedance. The max pean and min valleys would be stored between iteration loops for reading. Once read, the charges on the caps would be shorted to ground. Like so, over and over. Always the max peak and min valley gets stored on those caps for reading, even though they happen BETWEEN iteration loops. So I guess what I'm asking is whether any of the NI modules (preferably one for cDAQ) is useful in this kind of mode. Edited August 15, 2012 by Gan Uesli Starling Quote Link to comment
Jordan Kuehn Posted August 15, 2012 Report Share Posted August 15, 2012 If you sample that feedback signal at a rate high enough to capture whatever event you want, you can implement the max and min in software. You don't need to keep the data between iterations. As far as doing it in hardware, I do not know of any NI hardware that would do this for you. Quote Link to comment
Tim_S Posted August 15, 2012 Report Share Posted August 15, 2012 I've done this with ~10kHz sample rate. I read in 1/10 of a second of data, pull the min and max values, perform a max/min on shift registered values and then update the shift register. The loop can't run at 10 kHz, but it can process blocks of data to keep up with 10 kHz+ sampling rate. Quote Link to comment
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.