imat_fn/srs (+Signal)


Purpose

Compute shock response on the supplied input imat_fn.

Syntax

g=srs(f)
[g,outth]=srs(f,logspace(1,4,1000))
g=srs(f,[],[],imat_fn(1,'IDLine1','Template'))
g=srs(f,freq,damp,'pos','neg','maxi','silent','noprogbar')
g=srs('static')
g=srs('none')

Description

SRS computes shock response spectra from the supplied time histories in the imat_fn variable F. These time histories must be evenly spaced (AbscissaSpacing is Even). FREQ is an optional numeric vector specifying the frequencies at which to compute the response. If none is supplied, or FREQ is empty, logspace(1,4,1000) will be used. DAMP is an optional numeric vector containing a list of damping ratios to use. The damping ratios should be between 0.0 and 1.0. If none is supplied, or it is empty, a damping ratio of 0.05 is used. To specify DAMP and use the default for FREQ, pass in [] for FREQ.

The response spectra calculation assumes the absolute acceleration form. The optional string input arguments ('pos' is peak positive, 'neg' is peak negative, and'maxi' is peak absolute) define what kind of SRS will be computed. To specify these, you must also specify FREQ and DAMP, although you can pass in empty matrices to use the defaults. All SRS account for both the primary (during the input transient) and residual (after the end of the input transient) responses of the SDOF system ensemble.

The supplied acceleration time histories may begin with a non-zero value. By default, the SRS computation treats that loading as a step function from rest (zero initial condition) up to that initial value, which will incur transient effects in the simulated acceleration of the single-degree-of-freedom oscillator that peaks at twice the input acceleration value. If such a scenario is not desired, specify the string, 'static', as an optional input argument to statically offset the relative motion of the oscillator so that it begins with the same absolute acceleration as the input signal.

ROLLOFF is an optional string that controls how the SRS function accounts for rollof of the SRS at high frequencies when sampling requirements are not met. It is recommended that time histories be sampled at 10x the highest requested SRS frequency. If the time histories don't meet this recommendation, then by default they will be upsampled to an integer multiple of their sample rate at least 10x the highest requested SRS frequency. If the Signal Processing toolbox is available, the RESAMPLE function is used. Otherwise, the time history is upsampled by taking the FFT, adding zeros to the FFT, and taking the inverse FFT when resample is unavailable. Upsampling is the preferred method for handling SRS rolloff, but a prefilter method is also available. See the referenced technical paper for more details. Valid values for ROLLOFF are

'resample' Default when RESAMPLE function is available
'fft' Default when RESAMPLE function unavailable
'prefilter'

Apply prefilter to offset the rolloff [1]

'none' Do not upsample the input


The optional input string 'silent' suppresses output.

The optional input string 'noprogbar' suppresses the progress bar.

OUTFN is an imat_fn containing the output. It is dimensioned as MxNxP, where M is the number of SRS functions (positive, negative, maximax), N is the number of damping values, and P is the number of supplied time histories supplied to SRS. IDLine3 contains a description of the data type and damping value used for the function. UserValue3 contains the Q value used for the function (1/2*damping fraction).

The optional output OUTTH is a NxPxF IMAT_FN, where is F is the length of FREQ, containing the primary responses for the ensemble of SDOF systems. Because OUTTH does not include the residual responses, its extrema may be inconsistent with the SRS. If necessary, this discrepancy can be resolved by extending the input transient prior to the SRS calculation, e.g. by padding the input transients with zero before submitting them to this function.

The core of SRS uses routines provided by David Smallwood at Sandia National Laboratories. SRS is simply a wrapper around these routines to accommodate IMAT data types.

[1] Ahlin, Kjell, "Shock Response Spectrum Calculation - An Improvement of the Smallwood Algorithm", http://www.vibrationdata.com/tutorials/Ahlin_SRS.pdf

PORTIONS COPYRIGHT 1994-1998 SANDIA NATIONAL LABORATORIES

Examples

>> f=imat_fn(1,'AbscissaInc',1/100,'Ordinate',ones(1,100),'OrdNumDataType','Acceleration');
>> g=srs(f)
Portions of this code provided by Dave Smallwood and are (C) Sandia National Laboratories

g =

IMAT Function with the following attributes
Record Name                 FunctionType     AbscissaSpacing  NumberElements
--------------------------- ---------------- ---------------- ----------------
1_(1MAXI,1X+)               Shock Response S Uneven           1000

>> g=srs(f,[],.01:.01:.05,'pos','neg')
Portions of this code provided by Dave Smallwood and are (C) Sandia National Laboratories

g =

2x5 IMAT Function with the following attributes:
Row Col Record Name         FunctionType     AbscissaSpacing  NumberElements
--- --- ------------------- ---------------- ---------------- ----------------
1   1   1_(1CPOS,1X+)       Shock Response S Uneven           100
2   1   2_(1CNEG,1X+)       Shock Response S Uneven           100
1   2   3_(1CPOS,1X+)       Shock Response S Uneven           100
2   2   4_(1CNEG,1X+)       Shock Response S Uneven           100
1   3   5_(1CPOS,1X+)       Shock Response S Uneven           100
2   3   6_(1CNEG,1X+)       Shock Response S Uneven           100
1   4   7_(1CPOS,1X+)       Shock Response S Uneven           100
2   4   8_(1CNEG,1X+)       Shock Response S Uneven           100
1   5   9_(1CPOS,1X+)       Shock Response S Uneven           100
2   5   10_(1CNEG,1X+)      Shock Response S Uneven           100

>>

See Also

imat_fn/srs2trans, imat_fn/vrs