FeResPost Web Site                     FeResPost Online User Manual

I.6.9 Random or PSD integration methods

Method “calcRandomResponse” is used to calculate a PSD and/or integrate a PSD and/or a transfer function. The theoretical background extracted from [Sof10] that is necessary to understand what the method does is summarized here. The reader is referred to [Sof10] for more information.

The purpose of a random calculation is to assess structural response as power spectral density assuming that structure behavior to a given type of excitation is known by its transfer function, and that the excitation is specified as an input power spectral density (PSD).

More precisely, a unique excitation a is assumed to be present, and the response at output location j is calculated as:

Sja = |Hja| 2S a.

In previous expression:

Note that the input and output PSD have always positive real values for all components.

Once a PSD is calculated, an equivalent RMS output can be calculated as follows:

u¯j = ∫ 0∞Sja(f)df.

In practice, FeResPost calculates the integral on a finite range of frequencies:

u¯j = ∫ f minfmaxSja(f)df.

Practically, the transfer function is known by its values at different frequencies fi, i = 1...N. Then the integrations above are replaced by integrations on smaller frequency ranges:

∫ 0∞S ja(f)df ≈∑ i=1N-1 ∫ fifi+1 Sja(f)df.

Assuming a log-log dependence of Sja(f) between fi and fi+1, one has

Sja(f) = Sja(fi) fiα fα with f i < f < fi+1,

in which

α = log ⁡ (Sja(fi+1)∕Sja(fi)) log ⁡ (fi+1∕fi) .

The integral in range [fi,fi+1] is then calculated by:

If it is assumed that function Sja(f) varies linearly between fi and fi+1, then the integral in range [fi,fi+1] becomes simply:

∫ fifi+1 Sja(f)df = (Sja(fi) + Sja(fi + 1)) (fi+1 - fi) 2 .

Note that in Nastran, the assumption of log-log or linear interpolation on each frequency interval is managed by the option RMSINT. In FeResPost , the “integTyp” parameter of method “calcRandomResponse” allows choosing the type of integration. (See below.)

“calcRandomResponse” method in “Post” Module can be used to calculate output PSD from a transfer function, to integrate the PSD, and/or calculate the RMS value. The method is called as follows:

        ...
        arr=Post.calcRandomResponse(bOutputPsd,bOutputIntPsd,
            inputResults,freqs,psdIn,integType,addRes)
        psdOut=arr[0]
        intPsdOut=arr[1]
        rms=arr[2]
        ...

The method has 6 or 7 arguments:

1.

“bOutputPsd” is a logical parameter that specifies whether the output PSD must be returned by the method.

2.

“bOutputIntPsd” is a logical parameter that specifies whether the integration of the output PSD at each frequency must be returned by the method. (If one does not require the value at each frequency, only the last value is returned.)

3.

“inputResults” is an Array of Result objects containing the transfer function Hja (complex Result) or only its magnitude |Hja| (Real result).

4.

“freqs” is an Array of real values corresponding to the frequencies at which the transfer function and input PSD have been discretized. The size of this array must correspond to the size of the “inputResults” Array.

5.

“psdIn” is an Array of real values corresponding to the input PSD level (excitation) at discretization frequencies. The number of elements in this Array must match the number of elements in “inputResults” and “freqs” Arrays.

6.

“integType” is a String that specifies the interpolation and integration rule on frequency intervals. Possible values are “LogLog” or “LinLin”. If another value is provided, “calcRandomResponse” raises an exception.

7.

“addRes” is a Real Result that must be considered as the initial value from which the integration of output PSD starts. (This parameter can be very useful when integration is “sliced” on sub-ranges of the entire frequency range.) If no starting value is required, the parameter can be omitted. A “nil” value is also treated as no starting value specified.

Note that the different Result arguments must have the same size and keys. The method returns an Array of 3 elements:

1.

The first element corresponds to the output PSD. It is an Array of Result objects that is filled if “bOutputPsd” argument is true. Otherwise, “nil” is returned.

2.

The second element corresponding to the integrated output PSD:

Note that the optional “addRes” parameter defines the start for the integration.

3.

The third output corresponds to the RMS value of the output PSD. This is a Result object. In practice, the components of the output RMS are calculated as the square root of the corresponding component of the integrated output PSD. (Or the last value of the integrated output PSD, if “bOutputIntPsd” is set to “true”.)