Fluid Slosh in a Basin or Tank

Sloshing can occur in swimming pools, trucks carrying liquids, rocket vehicle propellant tanks and in other situations.

Sloshing of propellants may adversely affect the stability of a space vehicle and the integrity of the tank structure. Sloshing describes the free-surface oscillations of fluid in a partially filled tank. The oscillations result from lateral and longitudinal displacements or angular motions of the vehicle.

I have added a function for calculating slosh natural frequencies to the Vibrationdata GUI package.

Matlab script: Vibrationdata Signal Analysis Package

The slosh function may be accessed via:
vibrationdata > Miscellaneous > Fluid Systems > Slosh


An Introduction to Fluid Slosh:  slosh_intro.pdf

NASA SP-106 The Dynamic Behavior of Liquids in Moving Containers
NASA SP-8009 Propellant Slosh Loads
NASA SP-8031 Slosh Suppresion

– Tom Irvine

Fatigue Damage including Mean Stress

Options for including mean stress have been added to the Vibrationdata GUI package’s Fatigue Toolbox, for both stress time histories and PSDs.

Four methods are available:


Matlab script: Vibrationdata Signal Analysis Package

Here are some charts from Iowa State University: Fatigue Mean Stress

– Tom Irvine

Satisfy a Shock Response Spectrum with a Classical Pulse

A typical SRS specification has a ramp and plateau.  The best way to meet this specification type is with a complex oscillating pulse.

In some cases, a classical shock pulse may be used, but this will cause an over-test at certain frequencies.  Also, classical pulses tend to have positive and negative SRS curves which diverge at some frequencies.  The classical pulse would thus need to be applied in each direction of each axis.

The terminal sawtooth pulse, however, has positive and negative curves which have smaller divergence relative to other classical pulse types.

A function to calculate a classical pulse to meet an SRS has been added to the Vibrationdata GUI package.

Matlab script: Vibrationdata Signal Analysis Package

vibrationdata > Shock Response Spectrum >  Satisfy SRS with Classical Pulse

* * *

See also:  SRS Synthesis

– Tom Irvine

Cubic Spline Curve-fit


In some cases, the sampling rate of measured data needs to be increased, particularly for time domain analysis.  One method is do a cubic spline curve-fit.  This is an “engineering judgment” process with some limitations.

The “Input Data” in the figure above is a 12 Hz sine function with unit amplitude which was sampled at 50 Hz, which yields 4.2 points per cycle.  The sample rate should be at least 10 times the highest frequency of interest in the measured data for time domain analysis.

The  curve-fit was performed at 300 Hz.  The resulting curve is very close to the expected signal.

This curve-fit option is given in the package at:

Matlab script: Vibrationdata Signal Analysis Package

vibrationdata > Signal Editing Utilities > Cubic Spline Curve-fit

The usual precautions should be taken when measuring data such as using an analog anti-aliasing filter with the proper lowpass frequency.  See Aliasing References

– Tom Irvine

Aircraft Auxiliary Power Unit (APU)



The APU is a small gas turbine engine which is normally located in the tail cone of the aircraft but, in some cases, is located in an engine nacelle or in the wheel well. The APU can be started utilizing only the aircraft batteries and, once running, will provide electrical power to aircraft systems as well as bleed air for air conditioning and for engine start. Aircraft APUs generally produce 115 V alternating current (AC) at 400 Hz (rather than 50/60 Hz in mains supply), to run the electrical systems of the aircrat.


The sound track from an engine test was extracted from: YouTube video

A Fourier transform was applied to the sound time history. The Y-axis is unscaled sound pressure. The steady-state portion yielded a spectral line near 700 Hz which corresponds to the rotor speed of 42,000 RPM, Harmonics are also present at 3X & 6X.

– Tom Irvine

Circuit Board Shock & Vibration Analysis


Here is series of course units that I have developed for circuit board analysis: Circuit_Board_Slides

(The zip file can be downloaded using the icon with the downward pointing arrow.)

The corresponding Matlab software allows for the creation of finite element models for rectangular boards. The software has options for both common boundary conditions and point supports. The total board mass is typically assumed to be uniformly distributed, but point masses may also be applied. The scripts calculate the natural frequencies, mode shapes, and response to base excitation. Fatigue is also covered.

Matlab script: Vibrationdata Signal Analysis Package

Eventually, I hope to develop this material into Webinar units.


– Tom Irvine

Pyrotechnic Shock Propagation across Material Distance

Here is letter that I recently send to some of my colleagues…

We have been discussing establishing a database of shock data both for characterizing source shock levels and attenuation through material distance and joints.   We have also discussed sharing attenuation curves if the actual data is proprietary.

Measured data from flight or ground tests is as precious as gold, and I fully support sharing data.

We have also discussed complex software modeling tools.

But sometimes, simple models can give us important insights which can then be used to guide our data compilation and interpretation.

I am enclosing some simple papers and Matlab scripts which I wrote some years ago on modeling shock propagation through uniform material.  The bottom line is that propagated shock levels are highly dependent on structural damping.   It has been said by Isam Yunis and Paul Blelloch in another context that damping is the largest uncertainty factor in structural dynamics.  I would claim that the material fatigue exponent is even less certain, but I otherwise agree with their sentiment.

So building a structual damping database should be a parallel effort, or at least the attenuation curves from measured data should have a damping reference.

Yes, I know that structures are continuous systems with potentially many modes in the frequency domain of interest and that damping varies by mode, can be nonlinear, etc.  So the task is challenging.

As an aside…. propagating shock waveforms may be longitudinal, bending, or complex cylindrical modes.

Longitundinal waves are governed by a second-order differential equation and are nondispersive. i.e. the wavespeed is the same for all frequencies.

Bending waves are governed by a fourth-order equation and are dispersive.  The wavespeed varies with frequency.

Cylinders have ring modes, as well as a high-density of structural modes near the ring frequency. Note that wave propagation in a cylinder is governed by the Donnell-Mushtari-Vlasov eighth-order partial differential equation (or by an equivalent pair of coupled lower-order equations.)   This equation covers both bending and membrane effects.  Some cylinder modes are “acoustically fast” and others “acoustically slow.”

So I need to model propagation in cylindrical shells, as I have done for the simple beam and rod examples in the enclosed papers.

Attenuation of Bending Shock Waves in a Beam
Beam Bending Matlab Script

Attenuation of Longitudinal Shock Waves in a Rod
Rod Longitudinal Matlab Script

See also:  shock propagation

– Tom Irvine

Rectangular Plate Bending Frequencies and Mode Shapes, Finite Element Method, GUI version


I have added a feature for rectangular plate bending modes to the Matlab GUI package.

Matlab script: Vibrationdata Signal Analysis Package

The script allows for the addition of point masses and point constraints.  This is a work-in-progress.  The next step will be to add base excitation options.

The new feature can be accessed via:

vibrationdata > Miscellaneous > Structural Dynamics > Plates, Rectangular & Circular > Rectangular Plate, Finite Element Method

* * *

Here is a reference paper: FEA_plate_bending.pdf

See also:  Dynamic Response to Enforced Motion

* * *

– Tom Irvine

Two-degree-of-freedom System Subjected to an Applied Force


I have added a feature for a two-degree-of-freedom system subjected to an applied force to the Matlab GUI package. The applied force options are steady-state sine, arbitrary time history and PSD.

Matlab script: Vibrationdata Signal Analysis Package

The new feature can be accessed via:

Vibrationdata > Miscellaneous > Structural Dynamics > Spring-Mass Systems > Two-DOF System Applied Force

* * *

Here are some related papers:

Calculating Transfer Functions from Normal Modes
An Introduction to Frequency Response Functions
Semidefinite System Force
General Coordinate Method
* * *

– Tom Irvine

Correcting Acceleration, Velocity & Displacement Time Histories

There is a need in certain analysis problems to correct an acceleration signal so that its integrated velocity and double integrated displacement each oscillates about its respective zero baseline.  This may require using high pass filtering, trend removal and tapering throughout the integration process.  Trial-and-error is required to select the optimum combination of steps.

The steps are needed in part because the initial velocity and displacement are undefined.  Also, the acceleration may have a spurious offset or trend for the case of measured data.

Furthermore, the resulting displacement should be such that it can be recovered if it is then double differentiated to acceleration and the acceleration is then double integrated back to displacement.  This requirement is for rigor.  It yields a consistent set of acceleration, velocity and displacement time histories where each oscillates about its respective zero baseline.

This feature is now included in:

Matlab script: Vibrationdata Signal Analysis Package

Time History > Integrate or Differentiate > Correct Acceleration, Velocity, Displacement

Sides: acceleration_correction.pptx

– Tom Irvine