7.7. Linear Perturbation Mode-superposition Harmonic Response Analysis of Two Stages

The previous example of a simplified gear teeth multistage system (Linear Perturbation Harmonic Response Analysis of Two Stages) is used here to show how to perform a linear perturbation mode superposition (MSUP) harmonic response analysis. Specifically, it demonstrates the following key points:

  • Performing a linear perturbation MSUP harmonic response analysis.

  • Applying loading to 2 stages.

  • Applying an engine order load using a table having MSHI as a variable to automatically copy loads to the duplicate sectors (see Harmonic Index-based Tabular Loads).

  • Postprocessing any sector results in /POST26.

7.7.1. Problem Description

The multistage system is comprised of two axially aligned cyclic stages representing gears with, respectively, 24 and 45 teeth around their circumference as depicted in Figure 7.30: Multistage Model with Two Gear Teeth Stages.

For the base step of the linear perturbation (LP) multistage analysis, both HI = 0 stages undergo a rotational velocity and a temperature load. Both stages are then subjected to an engine order 2 excitation modeled using a single harmonic index (HI = 2) in an LP modal analysis of the system. Two engine order load vectors (one for each stage) are created in a modal restart step. The load vectors are applied using the LVSCALE command during the MSUP harmonic step.

A standard MSUP expansion pass is performed to recover the harmonic results on base and duplicate sectors. Full 360° /POST1 results are obtained by multistage cyclic expansion (MSOPT,EXPA). Frequency response plots on any sector are obtained by manually combining results on base and duplicate sectors in /POST26.

7.7.2. Analysis Steps

The following table describes the key steps and related commands used for the example analysis. See Input for the Analysis for the detailed command listing.

Step Description Mechanical APDL commands
1.Read in stage meshes for base and duplicate sectors.CDREAD,…
2.Duplicate meshes.DUPLSTG.mac (macro provided)
3.Create stage components.CM,...
4.Create HI = 0 stages and apply cyclic constraints.

MSOPT,NEW,,,0

CECYCMS

5.Apply interstage constraints for all stage connections.CEIMS,…
6.Enter the solution processor./SOLU
7.Specify static analysis options.

ANTYPE,STATIC

8.Apply rotational load.OMEGA,…
9.Specify temperature load.TREF,…

BF,,TEMP

10.Apply boundary conditionsD,…
11.Solve the analysis.SOLVE
12.Exit and reenter the solution processor.

FINISH

/SOLU

13.Perform static LP restart and reform matrices for harmonic response

ANTYPE,STATIC,RESTART,,,PERTURB

PERTURB,MODAL

SOLVE,ELFORM

14.Specify modal analysis options.

MODOPT, …

MXPAND,…

15.Modify used stages and delete unused stage clones.

MSOPT,MODIFY

CECYCMS

16.Apply interstage constraints for desired stages and stage clones.CEIMS
17.Solve the analysis.SOLVE
18.Exit and reenter the solution processor.FINISH

/SOLU

19.Restart modal analysis to define load vectors to be used in the downstream harmonic analysis

ANTYPE,MODAL,RESTART

SF,…

SFE

20.Solve the analysis.SOLVE
21.Exit and reenter the solution processor.FINISH

/SOLU

22.Specify harmonic response options.

HROPT,MSUP

HARFRQ,…

NSUBST,…

23.Apply nodal loads and load vectors.F,…

LVSCALE,…

24.Solve the analysis.SOLVE
25.Exit and reenter the solution processor.FINISH

/SOLU

26.Specify expansion pass options and solve.EXPASS,ON

NUMEXP,…

SOLVE

27.Post process the multistage results for all harmonics.

/POST1

MSOPT,EXPA,ALL,…

SET,…

28.Generate contour plot.PLNSOL,…
29.Postprocess frequency results/POST26

NSOL,…

PRCPLX,…

PLVAR,…

7.7.3. Input for the Analysis

Download the zipped .cdb file and macro used for this example problem.

/com, ============================================
/com, ============================================
/com,        MSUP Harmonic Solve: MS Model
/com, ============================================
/com, ============================================

/filname,msMsupResp

/com, ============================================
/com,       MS Model Preparation
/com, ============================================

cdread,db,msHarmStage,cdb

/prep7
csys,1

! duplicate mesh using macro (provided in example package)
DUPLSTG,'stage1'
DUPLSTG,'stage2'

! create cyclic edge CEs
cmsel,s,_stage1_base_nod
nsel,r,loc,y,0
cm,_stage1_cyclow_nod,node
allsel

cmsel,s,_stage1_base_nod
nsel,r,loc,y,alpSec1
cm,_stage1_cychigh_nod,node
allsel

msopt,new,stage1,Nsec1,0
cecycms

cmsel,s,_stage2_base_nod
nsel,r,loc,y,0
cm,_stage2_cyclow_nod,node
allsel

cmsel,s,_stage2_base_nod
nsel,r,loc,y,alpSec2
cm,_stage2_cychigh_nod,node
allsel

msopt,new,stage2,Nsec2,0
cecycms

! create interstage CEs
cmsel,s,_stage1_base_nod
nsel,r,loc,z,0
cm,intf1_stage1_nod,node
allsel

cmsel,s,_stage2_base_nod
nsel,r,loc,z,0
cm,intf1_stage2_nod,node
allsel

ceims,,,stage1,stage2,,,,,,intf1_stage1_nod,intf1_stage2_nod

! components
cmsel,s,load_stage1
cmsel,r,_stage1_base_nod
nsel,r,loc,x,Ro_blad_stage1
nd0=ndnext(0)
allsel

cmsel,s,load_stage1
cmsel,r,_stage1_dupl_nod
nsel,r,loc,x,Ro_blad_stage1
nd0dupl=ndnext(0)
allsel

cmsel,s,load_stage2
cmsel,r,_stage2_base_nod
nsel,r,loc,x,Ro_blad_stage2
nd1=ndnext(0)
allsel

cmsel,s,load_stage2
cmsel,r,_stage2_dupl_nod
nsel,r,loc,x,Ro_blad_stage2
nd1dupl=ndnext(0)
allsel

! rotate nodes to postprocess in CSYS,1
csys,1
nsel,s,node,,nd0
nsel,a,node,,nd1
nsel,a,node,,nd0dupl
nsel,a,node,,nd1dupl
nrotat,all
allsel

finish

/com, ============================================
/com,        Static Base Step
/com, ============================================

/solu
antype,static
nlgeom,on

nsubst,2,2,2

! boundary conditions
cmsel,s,_stage1_base_nod
cmsel,a,_stage1_dupl_nod
nsel,r,loc,x,Ri_stage1
d,all,all
allsel

! loading
omega,,,600

tref,0

cmsel,s,_stage1_base_nod
cmsel,a,_stage1_dupl_nod
bf,all,temp,300
allsel

cmsel,s,_stage2_base_nod
cmsel,a,_stage2_dupl_nod
bf,all,temp,100
allsel

solve
finish

/com, ============================================
/com,        LP Modal Step
/com, ============================================

/SOLU
antype,static,restart,,,perturb
perturb,modal,,,dzerokeep
solve,elform

modopt,lanb,all,0,1000
mxpand,all,,,yes,,yes

! update harmonic index
HI1=2
HI2=2
msopt,modify,stage1,HI1
cecycms
msopt,modify,stage2,HI2
cecycms
ceims,,,stage1,stage2,,,,,,intf1_stage1_nod,intf1_stage2_nod

solve
finish

/com, ============================================
/com,     Modal Restart to Create Load Vectors
/com, ============================================

/solu
antype,modal,restart
modcont,on

! delete loads defined during static analysis
omega,
bfdele,all,all

! Apply tabular load to base sector only of stage 1.
! This will result in a engine order 2 excitation.
EO = 2
*dim,press1_tab_re,table,1,,,MSHI
press1_tab_re(1,0) = EO
press1_tab_re(1,1) = 1e6

*dim,press1_tab_im,table,1,,,MSHI
press1_tab_im(1,0) = EO
press1_tab_im(1,1) = 0.25e6

cmsel,s,load_stage1
cmsel,r,_stage1_base_nod
sf,all,pres,%press1_tab_re%,%press1_tab_im%
allsel

solve

! Apply tabular load to base sector only of stage 2.
! This will result in a engine order 2 excitation.
sfdele,all,all

EO = 2
*dim,press2_tab_re,table,1,,,MSHI
press2_tab_re(1,0) = EO
press2_tab_re(1,1) = 1000000

*dim,press2_tab_im,table,1,,,MSHI
press2_tab_im(1,0) = EO
press2_tab_im(1,1) = 0

cmsel,s,load_stage2
cmsel,r,_stage2_base_nod
sf,all,pres,%press2_tab_re%,%press2_tab_im%
allsel

solve
finish

/com, ============================================
/com,        LP MSUP Harmonic Response
/com, ============================================

/SOLU
antype,harmic
hropt,msup

Nfrq=40
Fmin=604
Fmax=605.5
harfrq,Fmin,Fmax
nsubst,Nfrq

! loading
sfdele,all,all
lvscale,1.0,1
lvscale,1.0,2
kbc,1

! damping
dmpstr,1e-3

solve
finish

/solu
expass,on
numexp,all
solve
finish

/post1
msopt,expa,all,all
set,1,20
rsys,1
/graphics,power
/view,,1,1,1
/edge,,1
/show,png,rev
plnsol,u,sum
*get,umax,plnsol,,max
plnsol,s,eqv
*get,seqvmax,plnsol,,max
*stat,umax
*stat,seqvmax    
finish

/POST26
numvar,50

nsol,2,nd0,u,x      ! base sector results - stage1
nsol,3,nd0,u,y
nsol,4,nd0,u,z

nsol,5,nd0dupl,u,x  ! duplicate sector results - stage1
nsol,6,nd0dupl,u,y
nsol,7,nd0dupl,u,z

nsol,12,nd1,u,x ! base sector results - stage2
nsol,13,nd1,u,y
nsol,14,nd1,u,z

*afun,deg
sector=4
prod,22, 2,,,,,, cos((sector-1)*HI1*alpSec1) ! results in sector 4
prod,25, 5,,,,,,-sin((sector-1)*HI1*alpSec1)
add,32,22,25,,UX_SEC4

prod,23, 3,,,,,, cos((sector-1)*HI1*alpSec1)
prod,26, 6,,,,,,-sin((sector-1)*HI1*alpSec1)
add,33,23,26,,UY_SEC4

prod,24, 4,,,,,, cos((sector-1)*HI1*alpSec1)
prod,27, 7,,,,,,-sin((sector-1)*HI1*alpSec1)
add,34,24,27,,UZ_SEC4

prcplx,1
/com
/com ------ TIP OF BLADE - STAGE 1 - SECTOR 1 ------
/com
plvar,2,3,4
/com
/com ------ TIP OF BLADE - STAGE 1 - SECTOR 4 ------
/com
plvar,32,33,34
/com
/com ------ TIP OF BLADE - STAGE 2 ------
/com
plvar,12,13,14
FINISH

7.7.4. Results

The analysis results are shown in the following figures. The analysis results of the multistage LP MSUP harmonic analysis match those of the multistage LP harmonic analysis. The similarity of these results to those from the reference full 360° harmonic analysis verifies the accuracy of the more efficient multistage cyclic symmetry approach.

Figure 7.35: Displacement for Multistage MSUP (A) and Reference Full 360° (B)

Displacement for Multistage MSUP (A) and Reference Full 360° (B)

Figure 7.36: Stress for Multistage MSUP (A) and Reference Full 360° (B)

Stress for Multistage MSUP (A) and Reference Full 360° (B)

Figure 7.37: Stage 1 Displacement Frequency Response – Sector 1 for Multistage MSUP (A) and Reference Full 360° (B)

Stage 1 Displacement Frequency Response – Sector 1 for Multistage MSUP (A) and Reference Full 360° (B)

Figure 7.38: Stage1 Displacement Frequency Response Multistage MSUP – Sector 4

Stage1 Displacement Frequency Response Multistage MSUP – Sector 4

Figure 7.39: Stage 2 Displacement Frequency Response – Sector 1 for Multistage (A) and Reference Full 360° (B)

Stage 2 Displacement Frequency Response – Sector 1 for Multistage (A) and Reference Full 360° (B)