Feeds:
Posts
Comments

Archive for the ‘Power Spectral Density’ Category

PowerPoint File:

Webinar_13_PSD_sdof_response.pptx

* * *

Matlab script: Vibrationdata Signal Analysis Package

* * *

See also: Vibrationdata Webinars

* * *

- Tom Irvine

Read Full Post »

PowerPoint File:

Webinar_12_PSD_data.pptx

Data:

Taurus_auto.dat – Time(sec) & Accel(G)

* * *

Matlab script: Vibrationdata Signal Analysis Package

* * *

See also: Vibrationdata Webinars

* * *

- Tom Irvine

Read Full Post »

PowerPoint File:

Webinar_11_PSD.ppt

The sample PSD specification is taken from:  NAVMAT-P9492

* * *

Reference Papers:

Integration of the Power Spectral Density Function

Statistical Degrees-of-Freedom

Power Spectral Density Units [ G^2 / Hz ]

* * *

Matlab script: Vibrationdata Signal Analysis Package

* * *

See also: Vibrationdata Webinars

* * *

- Tom Irvine

Read Full Post »

flight_data_ns

There is a need to derive a PSD envelope for nonstationary acceleration time histories, including launch vehicle data, which may be similar to that shown in the above figure.

A PSD can be derived using rainflow fatigue cycle counting along with a Miners-type relative fatigue damage index.  The enveloping is then justified using a comparison of fatigue damage spectra between the candidate PSD and the measured time history.

The derivation process can be performed in a trial-and-error manner in order to obtain the PSD with the least overall GRMS level which still envelops the flight data in terms of fatigue damage spectra.  The Dirlik method can be used to calculate the fatigue damage spectrum of each candidate PSD in the frequency domain, instead of using the longer, time domain synthesis approach.

Furthermore, this can be done for a number of Q and fatigue exponent permutations for the case where these values are unknown.  This adds conservatism to the final PSD envelope.

Again, the goal is to derive the minimum PSD which envelopes the measured data in terms of fatigue.  The PSD’s duration is selected by the user.  It may or may not be the same as that of the measured data.  The method will scale the PSD to compensate for either a shorter or longer duration.

Statistical uncertainty factors or safety margins can then be added as a separate, post-processing step.

* * *

Here is a C++ program for applying this acceleration PSD derivation method for a user-supplied base input time history.

envelope_fds.cpp

envelope_fds.exe

* * *

Here is a similar C++ program for deriving a force PSD for an applied force time history.

envelope_fds_force.cpp

envelope_fds_force.exe

* * *

Here is a similar C++ program for deriving an acoustic SPL for an acoustic pressure time history.  The  applied and derived pressure fields are assumed to be uniform and fully correlated.

envelope_fds_acoustic.cpp

envelope_fds_acoustic.exe

* * *

Here is a Matlab MEX script set for an acceleration PSD: envelope_fds_matlab_mex.zip

Instructions: Go to the Matlab Command Window.

Type:

>>mex -setup

The C++ source code is compiled with Matlab as:

>>mex rainflow_mex.cpp

Then run the script:

>>envelope_fds

* * *

Here is a corresponding paper:  optimize_psd_fds.pdf 

* * *

See also:

Rainflow Fatigue Cycle Counting

Fatigue Damage Spectrum, Time Domain

Dirlik Rainflow Counting Method from Response PSD

Here is a previous method which performs fatigue comparison calculations strictly in the time domain for a single PSD candidate.  It does not have automatic optimization capabilities, however.

Enveloping Nonstationary Random Vibration Data

* * *

- Tom Irvine

Read Full Post »

There is a need in certain structural dynamics finite element analysis problems to perform a response analysis in the time domain. This would be the case, for example, if the stiffness was non-linear. Loss-of-clearance or contact between two adjacent vibrating parts is another analysis example.

Consider the case of base excitation in the form of a PSD. A time history can be readily synthesized to satisfy the PSD. The corresponding number of time history samples may overwhelm the finite element program’s allowable array sizes or cause excessive processing time and memory usage, however.

Certain military and aerospace PSD specifications have an upper frequency of 2000 Hz. A synthesized time history should thus have a sample rate of at least 20 KHz, which is ten times the highest PSD frequency. The total number of time history points would be 1.2 million if the specified duration was 60 seconds.

Now consider that the peak response must be calculated and that fatigue is unimportant. This would be the case for evaluating the resulting response with respect to yielding, ultimate stress limit, or relative displacement.

A shorter duration time history can be synthesized to satisfy this need as presented in this paper: Abbreviated_FEA_Transient.pdf

The abbreviated time history is derived using response spectra. Its response spectrum must envelop that of the full-duration PSD as determined from Rayleigh distribution of the PSD response.

* * *

Matlab Scripts for this Method:

VRS.zip

srs_sine_syn.zip

* * *

See also:

SDOF Response to an acceleration PSD Base Input

Peak Response for Random Vibration

* * *

- Tom Irvine

Read Full Post »

Here is a Matlab GUI multi-function signal analysis package: vibrationdata.zip

The main script is: vibrationdata.m

The remaining scripts are supporting functions.

This is a work-in-progress. Some features are not yet installed but will be in a future revision.

Please check back for updates.

* * *

Currently installed features include:

autocorrelation & cross-correlation
Bessel, Butterworth & mean filters
Fourier transform, FFT, waterfall FFT, spectrogram
FFT for Machine Vibration ISO 10816
PSD, cross power spectral density & energy spectral density
PSD time history synthesis
SRS & SRS Tripartite
SRS time history synthesis
SDOF response to base input and applied force
SPL
cepstrum & auto-cepstrum
integration & differentiation
trend removal
rainflow cycle counting
ISO Generic Vibration Criteria
modal frequency response functions including H1, H2 & coherence
half-power bandwidth method for damping estimation
generate sine, white noise and other time history waveforms

Future revisions will have additional functions.

* * *

Please contact me if you have suggestions for added features or if you find bugs.

* * *

See also: Python Signal Analysis Package

* * *

Tom Irvine

Contact Form:

Read Full Post »

drop_d


Gnuplot
is a portable command-line driven graphing utility for Linux, OS/2, MS Windows, OSX, VMS, and many other platforms. The source code is copyrighted but freely distributed (i.e., you don’t have to pay for it). It was originally created to allow scientists and students to visualize mathematical functions and data interactively, but has grown to support many non-interactive uses such as web scripting

Gnuplot can be downloaded from previous link or from: softpedia gnuplot

* * *

Here is an example for plotting the time history shown above using the following files:

Gnuplot command file:  plot_drop.plt

Time history:  drop.txt

* * *

Here is an example for generating a graph with two subplots using the multiplot command.

Gnuplot command file:  plot_drop_multiplot.plt

Time histories:  drop.txt  &  drop_velox.txt

Here is an alternate example that plots the two curves in separate windows:  plot_drop_2.plt

* * *

The follow command is then entered into the gnuplot window:

gnuplot>load “plot_drop.plt”

* * *

The drop_plot.plt file also generates a corresponding png file as shown at the beginning of this post.

The  above plot was made using Gnuplot Version 4.6 patchlevel 3.

The png file can be accessed by other applications but may require the following command first depending on the application, operating system, etc.

gnuplot>clear

* * *

Here is an example for plotting a power spectral density in log-log format, with some manually added tics.

Data file: plate.psd

Gnuplot file: plot_psd.plt

gnuplot>load “plot_psd.plt”

* * *

Here is an example for plotting a shock response spectrum with two curves and a legend.

Data file:  half_sine_srs.txt

Gnuplot file:  plot_srs.plt

gnuplot> load “plot_srs.plt”

* * *

Here is an example for calling gnuplot from within a Fortran program running in Ubuntu:  fortran_gnuplot_demo.f

The key code line is:

CALL SYSTEM(‘gnuplot gnuplot_demo.plt -persist’)

* * *

See also:  Python & Gnuplot

* * *

- Tom Irvine

Read Full Post »

Some power spectral density test specifications are too high in amplitude for a given shaker system.  Bandsplitting can be cautiously used in these cases.

Here is a brief guideline paper:  bandsplit.pdf

Here is a Matlab script that implements bandsplitting per the guidelines: bandsplit.zip

The main script is bandsplit.m.  The remaining scripts are supporting functions

* * *

See also:

Random Vibration & Power Spectral Density Page

- Tom Irvine

Read Full Post »

These Matlab scripts determine an optimum envelope for an acceleration power spectral density: envelope_plateau.zip

The optimum envelope is the that which yields the lowest GRMS and Velocity RMS values.

The acceleration is assumed to be the base excitation for an array of independent, parallel single-degree-of-freedom systems. The vibration response spectrum method is used to justify the envelope.  This provides a rational method for peak-clipping.

The damping ratio is fixed at 0.05, equivalent to Q=10. The natural frequency is an independent variable.

The user must input a power spectral density file.

The file must be ASCII text with two columns:

Freq(Hz) PSD(G^2/Hz)

The main script is envelope_plateau.m

The remaining functions are supporting functions.

* * *

The above scripts generate an optimum PSD which has a series of ramps and plateaus.

Here are the original scripts which generate a more free-form PSD: envelope.zip

The main script is envelope.m

* * *

envelope.zip also contains a script:  envelope_srs_psd.m.

This script can be used to derive a PSD to envelop an SRS.  The script uses the Rayleigh distribution to determine the n-sigma peak for each natural frequency based on the the product of the the natural frequency and duration.

* * *

See also:

Optimized PSD Envelope for Nonstationary Vibration

* * *

- Tom Irvine

Read Full Post »

The scripts in:  cross_psd.zip calculate the cross power spectral density of two signals.

These scripts have an option to sub-divide the data into segments and then take an ensemble average.  This tends to smooth the resulting magnitude and phase curves, but the spectral frequency resolution is widened as a trade-off.

The scripts also calculate the coherence function.

This method is best-suited for stationary data.

* * *

Here is an alternate script set CPSD_from_fourier.zip that calculates the cross spectral density as a single record using the entire signal.

This method would be appropriate for the case of transient pulses.

* * *

See also:  Python Cross Power Spectral Density

* * *

Tom Irvine

Contact Form:

Read Full Post »

Single-degree-of-freedom System

______________________________________________________________________

Consider a single-degree-of-freedom system subjected to a broadband random vibration base input, where the input is stationary and has a normal distribution.

The system’s response will be narrowband random, with amplification at the system’s natural frequency.   The response will also have a normal distribution.

The typical assumption is that the peak response will be “3-sigma.”

Note that 1-sigma is equivalent to the GRMS value assuming a zero mean.

Higher sigma values can actually occur depending on the duration and natural frequency.

The highest expected response peak is estimated as:

sqrt [ 2 ln (fn T ) ] + 0.5772 / sqrt [ 2 ln (fn T ) ]

where

sqrt is the square root

ln is the natural log

fn is the natural frequency (Hz)

T is the duration(sec)

This formula is derived from the Rayleigh distribution as shown in:

Equivalent Static Loads for Random Vibration: eqstatic.pdf

A Matlab script for this calculation is given at:  peak_response_random.m

As an example, consider a system with a natural frequency of 200 Hz subjected to stationary random vibration over a duration of 60 seconds.  The maximum expected peak is 4.3-sigma for this case.

See also:  Rayleigh Distribution

- Tom Irvine

Read Full Post »

The Matlab scripts in PSD.zip calculate the power spectral density function for a time history.

The main script is:  PSD.m

The remaining scripts are supporting functions.

* * *

A Fortran power spectral density program is given at:  PSD.F

* * *

See also:

Matlab Random Vibration Page

Random Vibration & Power Spectral Density Page

Python Power Spectral Density

* * *

Please let me know if you have any questions.

Thank you,
Tom Irvine
Email: tom@vibrationdata.com

Read Full Post »

Older Posts »

Follow

Get every new post delivered to your Inbox.

Join 172 other followers

%d bloggers like this: