This example problem details the procedure to perform cyclic mode-superposition harmonic analysis with mistuning. The example presents a simplified bladed disc model.
A circular disc with attached blade is modeled and meshed with SOLID185 elements. A temperature-dependent material model is used for disc and blade elements. The blade and disc are connected by means of bonded contact using CONTA174 and TARGE170 elements. The disc is constrained along the inner radius. The model is prestressed with thermal load (BF) and rotational velocity (OMEGA). Mode-superposition harmonic analysis is then performed on this prestressed model using the linear perturbation procedure with out-of-plane force load acting as the harmonically varying load. The stiffness mistuning parameters are defined for each blade using CYCFREQ,BLADE. The cyclic mode-superposition harmonic analysis is restarted to perform the analysis with different mistuning parameters using CYCFREQ,RESTART,MIST.
If you remove the mistuning commands (steps 15, 16 and 17) from this example problem you are left with a standard mode-superposition harmonic cyclic symmetry analysis.
Use the input file given below to perform the example mode-superposition harmonic cyclic symmetry analysis.
/filnam,example
/prep7
et,1,solid185 ! SOLID185 elements
keyopt,1,2,3 ! simplified enhanced strain formulation
type,1
TREF, 75.00000
MPTEMP, 1, 75.00000, 200.00000, ! Temperature-dependent material model
MPDATA, EX, 1, 1,.3364959E+08, .3348502E+08
MPDATA,NUXY, 1, 1,.3000000E+00, .3000000E+00
MPDATA,ALPX, 1, 1,.7391837E-05, .7399809E-05
MPDATA,DENS, 1, 1,.8391600E+00, .8391600E+00
local,11,1 ! Defining local cylindrical coordinate system
csys,11
esys,11 ! Stress and strain are radial and tangential in solution CS
cylind,2,5,0,1,0,60 ! Disc
cylind,5,8,.25,.75,20,40 ! Blade
esize,1
type,1
mat,1
cyclic ! Create cyclic symmetry model (6 sectors)
vmesh,all
allsel,all
et,4,conta174 ! CONTA174
et,5,targe170 ! TARGE170
keyopt,4,12,5 ! Bonded
keyopt,4,5,1 ! Close the gap
keyopt,4,9,1 ! Exclude gap or offset
r,4
type,4
real,4
asel,s,area,,10
nsla,s,1
esurf ! Form contact elements
type,5
real,4
asel,s,area,,3
nsla,s,1
esurf ! Form target elements
allsel,all
vsel,s,volume,,2
eslv,s
esel,r,ename,,185
cm,bladeelem,elem ! Create components with blade elements
allsel,all
cmsel,s,bladeelem,elem
nsle,s
nsel,r,loc,x,5
cm,interface,node ! Create node component to define interface between blade and disc
cmsel,s,bladeelem,elem
nsle,s
nsel,r,loc,z,.75
cm,pressurenodes,node ! Create node component on pressure side
allsel,all
nsel,s,loc,x,2
d,all,all,0 ! Constrain inner radius
allsel,all
/show,png,rev
/view,1,1,1,1
eplot
/show,close
nsel,s,loc,x,8
nsel,r,loc,z,.75
cm,load1,node ! Defining node component for harmonic loading
allsel,all
nrotate,all
finish
/solu
antype,static
rescontrol,define,all,1 ! Write restart files for all load steps and substeps
nlgeom,on
autots,on
nsubs,10,100,1
time,1.0
*get,nnodes,node,0,count
nd=0
*do,i,1,nnodes ! Define a radially-varying temperature profile
nd=ndnext(nd) ! Next selected node having node number greater than 0
tt=100-(100-75)*(8-nx(nd))/(8-2)
bf,nd,temp,tt ! Apply thermal pre-stress load
*enddo
allsel,all
solve ! 1st load step
time,2.0
omega,0,0,3000*2*3.14159265/60 ! Rotational velocity (3000 RPM)
solve ! 2nd load step
finish
/post1
set,last
/cycexpand,,on
/show,png,rev
/view,1,1,1,1
plnsol,u,sum ! Plotting USUM from static solve
plnsol,s,eqv ! Plotting SEQV from static solve
/show,close
finish
/solu
antype,,restart,,,perturb ! Restart from last load step and last substep
perturb,modal,,,parkeep ! Perform LP modal solve, delete all loads except displacement constraints
solve,elform
omega,0,0,0
bfdele,all,all
modopt,lanb,1000,0,500 ! Extract modes from 0-500
mxpand,,,,yes
solve ! Perform LP modal solve
finish
/solu
antype,modal,restart ! Restarting the modal solve
f,load1,fz,-10e3 ! Harmonic force load
solve
finish
/post1
file,,rstp
set,list,,,,,,,order ! Modal frequencies
/show,png,rev
/yrange,0,200
plzz ! Plot cyclic modal frequencies vs Harmonic Indices
/show,close
/yrange,default
finish
/solu
antype,harmonic ! Perform harmonic analysis
hropt,msup,,,yes ! MSUP harmonic, write modal coordinates to MCF file
outres,all,all
harfrq,65,85 ! Excitation frequency range
nsubs,20
cycfreq,eo,1 ! Engine order of excitation = 1
fdele,load1,fz
lvscale,1.0,1.0 ! Scaling the load from modal solve
dmpstr,0.25 ! Structural damping
kbc,1
*dim,kmist,array,6,1
kmist(1,1)=0.02,-0.015,0.03,-0.022,0.013,0.01 ! Mistuning parameters for each blade
cycfreq,blade,interface,bladeelem,20 ! Defining blade element component and interface nodes
cycfreq,mist,k,kmist ! Stiffness mistunning
solve
finish
/post1
cycfiles,,rstp,,
rsys,solu
/show,png,rev
plmc,1,10 ! Plot modal coordinates from MSUP for SET,1,10 (real)
plmc,1,10,,1 ! Plot modal coordinates from MSUP for SET,1,10 (Imaginary)
plmc,1,10,,,1,1 ! Plot modal coordinates from MSUP for SET,1,10 (real) for HI=1
plmc,1,10,,1,1,1 ! Plot modal coordinates from MSUP for SET,1,10 (Imaginary) for HI=1
/show,close
esel,s,ename,,185
nsle,s,1
set,1,10,,0 ! Real set
avprin,,0.33
/cycexpand,,on
/show,png,rev
/view,1,1,1,1,
plnsol,u,x
*get,uxmaxr,plnsol,0,max
plnsol,u,y
*get,uymaxr,plnsol,0,max
plnsol,u,z
*get,uzmaxr,plnsol,0,max
plnsol,s,eqv
*get,seqvmaxr,plnsol,0,max
plnsol,epel,eqv
*get,epeleqvmaxr,plnsol,0,max
set,1,10,,1 ! Imaginary set
plnsol,u,x
*get,uxmaxi,plnsol,0,max
plnsol,u,y
*get,uymaxi,plnsol,0,max
plnsol,u,z
*get,uzmaxi,plnsol,0,max
plnsol,s,eqv
*get,seqvmaxi,plnsol,0,max
plnsol,epel,eqv
*get,epeleqvmaxi,plnsol,0,max
set,1,10
/cycexpand,,phaseang,360 ! Amplitude
plnsol,u,z
*get,uzmaxa,plnsol,0,max
plnsol,s,x
*get,sxmaxa,plnsol,0,max
plnsol,epel,x
*get,epelxmaxa,plnsol,0,max
/cycexpand,,phaseang,sweep ! Phase sweep solution
plnsol,s,eqv
*get,seqvmaxs,plnsol,0,max
plnsol,epel,eqv
*get,epeleqvmaxs,plnsol,0,max
allsel,all
/show,close
/out,
/com, *****************************
/com, Real Solution
/com, *****************************
*stat,uxmaxr
*stat,uzmaxr
*stat,seqvmaxr
*stat,epeleqvmaxr
/com, *****************************
/com, Imaginary Solution
/com, *****************************
*stat,uxmaxi
*stat,uymaxi
*stat,uzmaxi
*stat,seqvmaxi
*stat,epeleqvmaxi
/com, *****************************
/com, Amplitude Solution
/com, *****************************
*stat,uzmaxa
*stat,sxmaxa
*stat,epelxmaxa
/com, *****************************
/com, Phaseangle solution
/com, *****************************
*stat,seqvmaxs
*stat,epeleqvmaxs
/cycexpand,,default
finish
/out,scratch
/post26
file,,rstp
numvar,30
nsol,2,64,u,z,uz1 ! UZ at node 64
rcyc,5,2,1,uzsector1
rcyc,6,2,2,uzsector2
rcyc,7,2,3,uzsector3
rcyc,8,2,4,uzsector4
rcyc,9,2,5,uzsector5
rcyc,10,2,6,uzsector6
ansol,3,52,s,x,sx1 ! SX at node 52
rcyc,11,3,1,sxsector1
rcyc,12,3,2,sxsector2
rcyc,13,3,3,sxsector3
rcyc,14,3,4,sxsector4
rcyc,15,3,5,sxsector5
rcyc,16,3,6,sxsector6
ansol,4,64,epel,x,epelx1 ! EPELX at node 64
rcyc,17,4,1,epelxsector1
rcyc,18,4,2,epelxsector2
rcyc,19,4,3,epelxsector3
rcyc,20,4,4,epelxsector4
rcyc,21,4,5,epelxsector5
rcyc,22,4,6,epelxsector6
/show,png,rev
plvar,5,6,7,8,9,10
plvar,11,12,13,14,15,16
plvar,17,18,19,20,21,22
/show,close
finish
/post1
cycfiles,,rstp
set
cycspec,,64,u,z ! UZ at node 64
cycspec,,52,s,x ! SX at node 52
cycspec,,64,epel,3 ! EPEL3 at node 64
cycspec,,pressurenodes,s,1 ! max S1 in pressurenodes
cycspec,,64,epel,x ! EPELX at node 64
cycspec,,52,s,eqv ! SEQV at node 52
cycspec,,64,epel,eqv ! EPELEQV at node 64
cycspec,,64,u,sum ! USUM at node 64
cycspec,list
/out,
cyccalc ! Compute results from cyclic MSUP using the
! specifications defined by CYCSPEC command
/out,scratch
/com, Plot the frequeny response for the CYCSPEC specifications for all sectors
/show,png,rev
plcfreq,1
plcfreq,2
plcfreq,3
plcfreq,4
plcfreq,5
plcfreq,6
plcfreq,7
plcfreq,8
/com, Plot the histogram of frequency response for each sector for given CYCSPEC specification
plchist,1,10
plchist,2,10
plchist,3,10
plchist,4,10
plchist,5,10
plchist,6,10
plchist,7,10
plchist,8,10
/show,close
*get,uz_10,cyccalc,1,freq,10,sector,3 ! Retrieve UZ CYCCALC result at set,1,10 for sector 3
*get,sx_10,cyccalc,2,freq,10,secmax ! Retrieve SX maximum CYCCALC result at set,1,10
*get,epel3_10,cyccalc,3,freq,10,sector,1 ! Retrieve EPEL3 CYCCALC result at set,1,10 for sector 1
*get,s1_10,cyccalc,4,freq,10,secmax ! Retrieve S1 maximum CYCCALC result at set,1,10
*get,s1_node,cyccalc,4,freq,10,secnode ! Retrieve the node number at which maximum S1 CYCCALC result occur for set,1,10
*get,s1_sector,cyccalc,4,freq,10,secnum ! Retrieve the sector number at which maximum S3 CYCCALC result occur for set,1,10
*get,epelx_10,cyccalc,5,freq,10,secmax ! Retrieve EPELX maximum CYCCALC result at set,1,10
*get,seqv_10,cyccalc,6,freq,10,sector,4 ! Retrieve SEQV CYCCALC result at set,1,10 for sector 4
*get,epeleqv_10,cyccalc,7,freq,10,secmax ! Retrieve EPELEQV maximum CYCCALC result at set,1,10
/out,
*stat,uz_10
*stat,sx_10
*stat,epel3_10
*stat,s1_10
*stat,s1_node
*stat,s1_sector
*stat,epelx_10
*stat,seqv_10
*stat,epeleqv_10
finish
/com, --------------------------------------
/com, Restarting the cyclic MSUP harmonic
/com, analysis with different mistuning
/com, values
/com, --------------------------------------
/out,scratch
/solu
cycfreq,restart,mist
*dim,kmist,array,6,1
kmist(1,1)=0.025,-0.015,0.025,-0.022,0.014,0.02 ! Mistuning parameters for each blade
solve
save
finish
/post1
cycfiles,,rstp,,
rsys,solu
esel,s,ename,,185
nsle,s,1
set,1,10,,0 ! Real set
avprin,,0.33
/cycexpand,,on
/show,png,rev
/view,1,1,1,1,
plnsol,u,x
*get,uxmaxr,plnsol,0,max
plnsol,u,y
*get,uymaxr,plnsol,0,max
plnsol,u,z
*get,uzmaxr,plnsol,0,max
plnsol,s,eqv
*get,seqvmaxr,plnsol,0,max
plnsol,epel,eqv
*get,epeleqvmaxr,plnsol,0,max
set,1,10,,1 ! Imaginary set
plnsol,u,x
*get,uxmaxi,plnsol,0,max
plnsol,u,y
*get,uymaxi,plnsol,0,max
plnsol,u,z
*get,uzmaxi,plnsol,0,max
plnsol,s,eqv
*get,seqvmaxi,plnsol,0,max
plnsol,epel,eqv
*get,epeleqvmaxi,plnsol,0,max
set,1,10
/cycexpand,,phaseang,360 ! Amplitude
plnsol,u,z
*get,uzmaxa,plnsol,0,max
plnsol,s,x
*get,sxmaxa,plnsol,0,max
plnsol,epel,x
*get,epelxmaxa,plnsol,0,max
/cycexpand,,phaseang,sweep ! Phase sweep solution
plnsol,s,eqv
*get,seqvmaxs,plnsol,0,max
plnsol,epel,eqv
*get,epeleqvmaxs,plnsol,0,max
allsel,all
/show,close
/out,
/com, *****************************
/com, Real Solution
/com, *****************************
*stat,uxmaxr
*stat,uzmaxr
*stat,seqvmaxr
*stat,epeleqvmaxr
/com, *****************************
/com, Imaginary Solution
/com, *****************************
*stat,uxmaxi
*stat,uymaxi
*stat,uzmaxi
*stat,seqvmaxi
*stat,epeleqvmaxi
/com, *****************************
/com, Amplitude Solution
/com, *****************************
*stat,uzmaxa
*stat,sxmaxa
*stat,epelxmaxa
/com, *****************************
/com, Phaseangle solution
/com, *****************************
*stat,seqvmaxs
*stat,epeleqvmaxs
/cycexpand,,default
finish
/out,scratch
/post26
file,,rstp
numvar,30
nsol,2,64,u,z,uz1 ! UZ at node 64
rcyc,5,2,1,uzsector1
rcyc,6,2,2,uzsector2
rcyc,7,2,3,uzsector3
rcyc,8,2,4,uzsector4
rcyc,9,2,5,uzsector5
rcyc,10,2,6,uzsector6
ansol,3,52,s,x,sx1 ! SX at node 52
rcyc,11,3,1,sxsector1
rcyc,12,3,2,sxsector2
rcyc,13,3,3,sxsector3
rcyc,14,3,4,sxsector4
rcyc,15,3,5,sxsector5
rcyc,16,3,6,sxsector6
ansol,4,64,epel,x,epelx1 ! EPELX at node 64
rcyc,17,4,1,epelxsector1
rcyc,18,4,2,epelxsector2
rcyc,19,4,3,epelxsector3
rcyc,20,4,4,epelxsector4
rcyc,21,4,5,epelxsector5
rcyc,22,4,6,epelxsector6
/show,png,rev
plvar,5,6,7,8,9,10
plvar,11,12,13,14,15,16
plvar,17,18,19,20,21,22
/show,close
finish
/post1
cycfiles,,rstp
set
cycspec,,64,u,z ! UZ at node 64
cycspec,,52,s,x ! SX at node 52
cycspec,,64,epel,3 ! EPEL3 at node 64
cycspec,,pressurenodes,s,1 ! max S1 in pressurenodes
cycspec,,64,epel,x ! EPELX at node 64
cycspec,,52,s,eqv ! SEQV at node 52
cycspec,,64,epel,eqv ! EPELEQV at node 64
cycspec,,64,u,sum ! USUM at node 64
cycspec,list
/out,
cyccalc ! Compute results from cyclic MSUP using the
! specifications defined by CYCSPEC command
/out,scratch
/com, Plot the frequeny response for the CYCSPEC specifications for all sectors
/show,png,rev
plcfreq,1
plcfreq,2
plcfreq,3
plcfreq,4
plcfreq,5
plcfreq,6
plcfreq,7
plcfreq,8
/com, Plot the histogram of frequency response for each sector for given CYCSPEC specification
plchist,1,10
plchist,2,10
plchist,3,10
plchist,4,10
plchist,5,10
plchist,6,10
plchist,7,10
plchist,8,10
/show,close
*get,uz_10,cyccalc,1,freq,10,sector,3 ! Retrieve UZ CYCCALC result at set,1,10 for sector 3
*get,sx_10,cyccalc,2,freq,10,secmax ! Retrieve SX maximum CYCCALC result at set,1,10
*get,epel3_10,cyccalc,3,freq,10,sector,1 ! Retrieve EPEL3 CYCCALC result at set,1,10 for sector 1
*get,s1_10,cyccalc,4,freq,10,secmax ! Retrieve S1 maximum CYCCALC result at set,1,10
*get,s1_node,cyccalc,4,freq,10,secnode ! Retrieve the node number at which maximum S1 CYCCALC result occur for set,1,10
*get,s1_sector,cyccalc,4,freq,10,secnum ! Retrieve the sector number at which maximum S3 CYCCALC result occur for set,1,10
*get,epelx_10,cyccalc,5,freq,10,secmax ! Retrieve EPELX maximum CYCCALC result at set,1,10
*get,seqv_10,cyccalc,6,freq,10,sector,4 ! Retrieve SEQV CYCCALC result at set,1,10 for sector 4
*get,epeleqv_10,cyccalc,7,freq,10,secmax ! Retrieve EPELEQV maximum CYCCALC result at set,1,10
/out,
*stat,uz_10
*stat,sx_10
*stat,epel3_10
*stat,s1_10
*stat,s1_node
*stat,s1_sector
*stat,epelx_10
*stat,seqv_10
*stat,epeleqv_10
finish
The following table describes the input lines and the steps involved in the example mode-superposition harmonic cyclic symmetry analysis in detail.
| Step | Step Description | Description |
|---|---|---|
| 1. | Build cyclic symmetry disc-blade model with temperature dependent material properties assigned to both the disc and blade | |
| 2. | Mesh the volumes | VMESH |
| 3. | Define bonded contact between disc and blade using CONTA174 and TARGE170 elements | |
| 4. | Create components for blade elements and interface nodes between blade and disc | CM |
| 5. | Define boundary conditions to constrain the inner radius of the disc | D |
| 6. | Perform nonlinear static solve with thermal load and rotational velocity loading. Specify CYCOPT,MSUP,1 before the 1st static solve to generate files needed to perform downstream mode-superposition analysis | |
| 7. | Restart the nonlinear static analysis to perform linear perturbation modal analysis |
ANTYPE,,RESTART |
| 8. | Perform modal solve using Block-Lanczos eigensolver |
MODOPT,LANB |
| 9. | Restart modal analysis to define load vectors to be used in the downstream harmonic analysis |
ANTYPE,MODAL,RESTART |
| 10. | Postprocess modal frequencies and plot the cyclic modal frequencies versus harmonic indices |
SET,LIST |
| 11. | Perform mode-superposition harmonic analysis for an excitation frequency range of 65 Hz - 85 Hz; request 20 harmonic solutions be calculated |
ANTYPE,HARMONIC HROPT,MSUP |
| 12. | Specify the engine order of excitation | CYCFREQ,EO,1 |
| 13. | Scale the load vector from the modal solve | LVSCALE |
| 14. | Define structural damping | DMPSTR |
| 15. | Define the array to specify mistuning paramaters | *DIM |
| 16. | Define blade information required for mistuning analysis | CYCFREQ,BLADE |
| 17. | Define mistuning parameters | CYCFREQ,MIST |
| 18. | Perform mode-superposition harmonic solve | SOLVE |
| 19. | Specify the files to postprocess the cyclic symmetry mode-superposition harmonic analysis | CYCFILES |
| 20. | Postprocess real set, imaginary set, amplitude, and phase sweep solution | |
| 21. | Enter time history postprocessing to calculate cyclic mode-superposition harmonic result for a specified node/element and sectors. | |
| 22. | Enter general postprocessing to calculate sector results | |
| 23. | Plot the frequency response for the CYCSPEC specifications | |
| 24. | Repeat steps 17-23 with new mistuning values by restarting the cyclic mode-superposition harmonic analysis | CYCFREQ,RESTART,MIST |
The results of your analysis should match those shown below:
Figure 5.12: CYCSPEC Frequency Response for Displacement Sum at Node 64 After Restarting the Cyclic Mode-Superposition Harmonic Analysis with Different Mistuning Parameters

Figure 5.13: CYCSPEC Histogram Response for Displacement Sum at Node 64 at Frequency 75 Hz After Restarting the Cyclic Mode-Superposition Harmonic Analysis with Different Mistuning Parameters





