Whether to Do a Response Spectrum Analysis – Part II

In a previous blog I tried to answer the question, “Should I do a response spectrum?” My answer was basically “No.” That answer was based, in part, on the assumption that the caller didn’t have a response spectrum and would be unlikely to want to create one. A response spectrum is step two of a two-step process in which step one is a transient analysis. Typically, a dynamics specialist creates the response spectrum for the analysts.

Someone called my answer over-simplified and pointed out that creating a response spectrum for a shock loading such as a 20g half sine pulse would be relatively simple to do. Interesting point. Let’s take a deeper dive into this.

As opposed to a seismic response spectrum, which requires a long time-history to be solved, a “shock response spectrum” could be based on a handbook of dynamic load factors for the shape of the shock loading.   Damping isn’t too significant in shock response, so it could be conservatively ignored.

If you don’t have a handbook solution, the usual method for computing a response spectrum isn’t  difficult for a shock load. In the input below the POST26 RESP command is used to compute the shock response spectrum for a 20g triangular acceleration of 10 milli-sec duration. The time-history includes time after the shock load for the lower frequencies to reach their peak displacement value. The input assumes that a modal analysis has been done and expanded.

! After a modal analysis…
pi=acos(-1)
amplitude=20                   ! pulse amplitude (20 g)
width=0.01                     ! pulse width (10 milli-secs)
 
*dim,acel,table,4,1
acel(1,0)=0.0, 0.5*width, width, 5.0*width
acel(1,1)=0.0, amplitude, 0.0, 0.0
 
/axlab,x,TIME             
/axlab,y,ACEL (g)
*vplot,acel(1,0),acel(1,1)     ! verify acceleration input
 Response Spectrum Analysis
The table array, acel, can now be used as input to the RESP command in the time-history post-processor.

/post26 
store,alloc,10         ! allocate the number of frequencies to be solved for
vput,acel(1,0),1,0     ! variable 1 is time values
vput,acel(1,1),2,0     ! variable 2 is acceleration values
data,5,1,10,1,Frequncy ! variable 5 is frequency list (I love this old command!) 
(10F5.1)
10.0 20.0 30.0 40.0 50.0 60.0 70.0 80.0 90.0 100.0

 ! Use parameters for RESP command input to make more readable
Spec=6             ! variable to contain spectrum output
Freq=5             ! variable with frequencies to be solved for
Inp_Acel=2         ! variable with acceleration input
Out_Type=3         ! create acceleration spectrum
Damp=0.05          ! damping (ratio to critical) to be used
Tinc=0.0005        ! integration time step, 20 pts per cycle at 100 hz
Inp_Type=1         ! acceleration input, new at 14.0
 
resp,Spec,Freq,Inp_Acel,Out_Type,Damp,Tinc,,,Inp_Type  
 
/title,Response Spectrum for %amplitude%g, %width*1000% m-sec shock load (5% Damping)
/axlab,x,Frequency (Hz)
/axlab,y,Peak Acceleration (g)
xvar,Freq          ! x axis is frequency
plvar,Spec         ! plot acceleration spectrum
Response Spectrum Analysis  
So with 15 or 20 lines of APDL input you can create your own shock response spectrum based on any arbitrary shape, peak value or duration of loading.  To provide a complete overview of the spectrum process, the commands below retrieve the spectrum values into an array named SRS and input the values in a sample spectrum analysis.
 
*dim,SRS,,10
vget,SRS,Spec         ! retrieve variable 6 (Spec) into array parameter SRS
*stat,SRS(1)
 
/solu
antype,spectrum
spopt,sprs
sed,1                           ! x direction
svtype,2,386.4                  ! accel spectrum, factor to convert g values to in/s^2
freq,10,20,30,40,50,60,70,80,90 ! limit of 9 frequencies per line
freq,100
sv,Damp,SRS(1),SRS(2),SRS(3),SRS(4),SRS(5),SRS(6),SRS(7),SRS(8),SRS(9),
sv,Damp,SRS(10)
svplot,,Damp                    ! plot spectrum to verify input
Response Spectrum Analysis
The spectrum commands below were new at 13.0.  The Rosenbluth method (ROSE command) is the same as the double sum method (DSUM command) except that the sign of cross terms is preserved.  The td value input with the parameter “width” is the duration of the excitation.  In conjunction with damping, shorter excitation duration increases the coupling between closely spaced modes.

rose,,,width             ! Rosenbluth mode combination with td = duration of excitation
rigresp,1,GUPTA,50,100   ! activate rigid response for 50 to 100 hz
mmass,1,20               ! activate missing mass, ZPA=20g 
solve
 
/post1
sumtype,prin             ! use this command for accurate derived quantities like SEQV
/input,file,mcom         ! mode combination input created in the spectrum
plnsol,s,eqv             ! combined equivalent stress, SEQV

Possible advantages of doing a shock response spectrum over doing a transient analysis are the ease of identifying maximum result values, no large results file and a shorter solution.   Also, a response spectrum can be performed at a lower license level than a full transient.  Procedurally though, a full transient is much simpler (see below.)  This input uses a time step short enough to obtain accurate results for response frequencies up to 100 hz.  It will require 100 solutions and might require a few hours to run.  Then the 100 sets of results will need to be sifted through to find the maximum results.

/solution
antype,trans
deltime,0.0005
acel,%acel%
outres,all,1
time,0.05
betad,0.05/(50*pi)    ! to obtain .05 damping ratio at 50 hz
solve
 
/post26
nsol,2,2,u,x
deriv,3,2,1
deriv,4,3,1
/axlab,y,Acceleration (g)
/title,Acceleration of a 1 dof mass-spring-damper due to 20g pulse
plvar,4
 Response Spectrum Analysis

A second alternative is a mode-superposition transient.

This option provides a fast solution (expansion pass can be time-consuming) and requires a similar license level to spectrum, but still has the other disadvantages of a full transient and isn’t as simple a procedure.

So going with a response spectrum is starting to look pretty good, even if you have to create it yourself!   There are a couple disadvantages to be aware of though.  After the response spectrum mode combination, the quantities on the results file are all positive.  That makes it possibly incorrect to sum nodal forces, average element results at a node, transform results into a coordinate system or compute derived quantities such as equivalent stress, SEQV.  In the input above, SUMTYPE,PRIN was used to address this last issue and at  13.0, coding was done to make FSUM account for the sign of nodal forces so that their sum is correct.

At any rate, the individual results are considered reliably conservative.  Enhancement of the combination methods at 13.0 allow for high frequency modes to be summed more directly to be more conservative and in accordance with NRC Regulatory Guide 1.92, Rev 2.  July 2006.  High frequency modes tend to be more in phase so a more direct summation is appropriate.  The high frequency range is referred to as the “rigid response” and is specified with the RIGRESP command.  The mass not represented by the extracted modes (“missing mass”) is accounted for with the MMASS command.

Despite the advantages of response spectrum, I think it will continue to be mainly used in the Nuclear Industry where it is well-established for seismic analysis and supported by the NRC.  A user with response spectrum experience might prefer to run a shock response spectrum instead of a transient, but I’ll continue to be reluctant to recommend it to someone who doesn’t have previous experience with it.