A Shock Response Spectrum can be created with the APDL command, RESP, using the transient time-history. A blog on this topic is pasted below.
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
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
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