8.5. Example 5: Cyclic Model with Solid Elements and Frictional Contact

This example shows the nonlinear harmonic analysis of a cyclic sector of a bladed disk with shrouded tip frictional contact. Specifically, it illustrates the following key points:

  • CMS generation of prestressed single stage cyclic superelements for an HBM cyclic analysis.

  • HBM cyclic analysis with an initial solution vector from a static analysis and frictional contact.

  • Postprocessing of an HBM cyclic analysis.

  • HBM cyclic macros usage.

The example problem is presented in the following sections:

8.5.1. Problem Description

A simplified geometry of a single sector of a shrouded bladed disk made up of N=24 sectors is modeled as shown in Figure 8.17: Sector model with solid elements and frictional contact. A frictional contact with friction coefficient μ =0.05 is defined inside the sector on the shroud part. The whole structure is prestressed with a rotational velocity of 50 rad/s and a body load temperature of 800°C. An artificial static pressure is applied on each side of the contact surface to account for the normal load. On a more realistic model, the normal pressure would come from prestress loads. A negative engine order EO = -2 harmonic pressure is applied on the blades.

The response of the structure over a frequency range [30, 40] Hz is studied using the HBM cyclic procedure with three time harmonics.

Figure 8.17: Sector model with solid elements and frictional contact

Sector model with solid elements and frictional contact


Prestressed single stage cyclic superelements generation

A prestressed single stage cyclic superelement is created from the cyclic sector using the linear perturbation procedure (see General Procedure for Linear Perturbation Analysis in the Structural Analysis Guide). The prestress loads are applied in a static analysis using harmonic index 0 cyclic constraints. This step is followed by a perturbed substructuring restart in which the cyclic constraints are modified, depending on the desired harmonic index (MSOPT,MODIFY). For the substructuring analysis, the master nodes are defined at the frictional contact interface and at the center of the blade. Three modes are specified for the primary stage superelement (six modes for higher harmonics). The frictional contact elements are unselected before the solve to keep only linear elements inside the substructures.

A single stage cyclic superelement is generated for each of the unique spatial harmonic indices listed in Table 8.3: Spatial/time harmonic relationship for N = 24, EO = 2, and NH = 3. and computed using the HBMCYCHIGET macro. The template for generating each single stage superelement is based on the HBMCYCSEGEN macro (which is not directly used here to allow multiple load vectors generation).

Superelement load vectors (Applying Loads and Creating the Superelement Matrices in the Substructuring Analysis Guide) are generated for harmonic index 0 and harmonic index 2 stages to enable application of the static pressure and the harmonic 1 blade pressure (see Table 8.3: Spatial/time harmonic relationship for N = 24, EO = 2, and NH = 3.).

Table 8.3: Spatial/time harmonic relationship for N = 24, EO = 2, and NH = 3.

Time harmonic (NH)0123
Spatial harmonic0246

All necessary time harmonic superelements are imported in the use pass using the HBMCYCHIGET and HBMCYCSEIMPORT macros. The nonlinear contact elements (CONTA178) are imported as well using EWRITE / EREAD commands.

A static analysis is carried out to apply the static pressure. The static solution is then used as an initial solution vector in the initial substep of the HBM analysis. Load vectors defined in the generation pass are applied to the corresponding stage superelements following the procedure described in HBM cyclic symmetry procedure.

Only backward or forward traveling wave excitations are considered in HBM cyclic analyses. The traveling direction depends on the fundamental engine order (engine order EO as applied with HBMOPT,CYCLIC,,EO command) and the time harmonic of the excitation. The sign can be determined using HBMCYCHIGET,,,,’EXPA’ macro (see Input for the Analysis). The load must be applied accordingly using the following principle (see Engine Order Loading in the Multistage Cyclic Symmetry Analysis Guide):

  • For a positive engine order and a base sector force Fbase = Freal + i*Fimag, apply a duplicate sector force Fdupl = -i*Fbase = Fimag – i*Freal

  • For a negative engine order and a base sector force Fbase = Freal + i*Fimag, apply a duplicate sector force Fdupl = +i*Fbase = -Fimag + i*Freal

A synthesis of the loading process for this example is provided in the folllowing table. For more information on engine order loading in a single stage cyclic model, see 4.3.2.2: Harmonic Traveling Wave LoadHarmonic Traveling Wave Load in the Multistage Cyclic Symmetry Analysis Guide.

Table 8.4: Synthesis of Superlement Load Vector (LV) Application


8.5.2. Input for the Analysis

To download the files used for this example problem, click the links below.

The content of the input file is listed below. The command listing shows in detail how to specify and run the HBM cyclic analysis. You can use it as a template and modify it to create a custom HBM analysis.

/title, HBM cyclic model with solid elements and frictional contact

cdread,db,hbm_example5,cdb

/PREP7
csys,1

!!! multistage components
nsel,all
esel,all
cm,_stage1_base_nod,node
cm,_stage1_base_elm,elem

!!! boundary conditions
cmsel,s,bc_fixed
d,all,all
nsel,all

!!! stage duplication
MSDUPL,'stage1'

!!! node rotation
csys,1
nrotat,all

!!! update frictional contact node coordinate system
esel,s,type,,10
nsle
csys,21
nrotat,all
allsel

!!! write contact elements (base sector only)
cmsel,s,_stage1_base_elm
esel,r,type,,10
ewrite,contact,elem
allsel

!!! multistage cyclic constraint equations
csys,1
cmsel,s,_stage1_base_nod
nsel,r,loc,y,thlow
cm,_stage1_cyclow_nod,node
allsel

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

msopt,new,stage1,Nsec,0
cecycms

!!! master nodes = blade shroud + center of blade
cmsel,s,blade_shroud
cmsel,a,blade_center
m,all,all
allsel

!!! component for generation
cmsel,s,_stage1_base_elm
cmsel,a,_stage1_dupl_elm
esel,u,type,,10
cm,generation_elem,elem
allsel

/vup,,z
/view,,-1,-1,1
/plopts,logo,off
/pbc,u,,1
/pbc,mast,,1
esel,s,enam,,185
esel,a,enam,,170
esel,a,enam,,174
/trlcy,elem,1.0
allsel
/an3d,text,4.2,0.9,-0.2,'Frictional contact'
/an3d,text,2.4,-0.25,0.1,'Node for response plot'
/show,png,rev,,,plot_mesh
    eplot
/show,close
/anno,dele

FINISH

/com ------------------------------------------------------
/com ---            PRESTRESS STATIC SOLVE              ---
/com ------------------------------------------------------

/filname,stage1

/solu
antype,static

nlgeom,on
rescontrol,define,last,last
nsubst,2,2,2

! load step 1 - body load temperature
tref,0
bf,all,temp,800
solve

! load step 2 - rotational velocity
omega,,,50
solve
finish

/post1
msopt,expa,all,all
set,last
/view,,1,1,1
/show,png,rev,,,plot_static
    plnsol,u,sum
/show,close
finish

save

/com ------------------------------------------------------
/com ---      PRESTRESSED SUBSTRUCTURE GENERATION       ---
/com ------------------------------------------------------

/filname,stage1

Sname    = 'stage1'          ! stage name
Nmode    = 3                 ! number of CMS modes for primary stage (x2 for higher harmonics)

HBMCYCHIGET,Nsec,EO,NH,'GEN'

parsav,all,gen,parm

/com ------------------------------------------------------
/com --- Primary stage generation (HI=0 - no duplicate) ---
/com ------------------------------------------------------

/clear,nostart
/filname,stage1
resume

/solu
antype,static,restart,,,perturb
perturb,substructure,,,dzerokeep
solve,elform

parres,change,gen,parm

HI=0

! CMS parameters
seopt,stage1_HI%HI%,3,,,,,,ON ! use SE name for files
cmsopt,fix,Nmode              ! Nmode for primary stage

! Update MS HI
msopt,modify,stage1,HI
cecycms

!!! Static load vector
cmsel,s,friction_node_low
cmsel,r,_stage1_base_nod
sf,all,pres,-1e8
allsel

cmsel,s,friction_node_high
cmsel,r,_stage1_base_nod
sf,all,pres,-1e8
allsel

cmsel,s,_stage1_base_nod            
cmsel,s,generation_elem
cmsel,r,_stage1_base_elm      
solve
allsel
finish

save,stage1_HI%HI%,db


/com ------------------------------------------------------
/com ---     Higher harmonic stage generation (HI=2)    ---
/com ------------------------------------------------------

/clear,nostart
/filname,stage1
resume

/solu
antype,static,restart,,,perturb
perturb,substructure,,,dzerokeep
solve,elform

parres,change,gen,parm

HI=2

! CMS parameters
seopt,stage1_HI%HI%,3,,,,,,ON ! use SE name for files
cmsopt,fix,2*Nmode            ! 2*Nmode for non-primary stage

! Update MS HI
msopt,modify,stage1,HI
cecycms

! LV 1 - harmonic loading (base sector)
cmsel,s,blade_pressure
cmsel,r,_stage1_base_nod
sf,all,pres,1.0
allsel
       
cmsel,s,generation_elem
solve
allsel

! LV 2 - harmonic loading (duplicate sector)
sfdele,all,all
cmsel,s,blade_pressure
cmsel,r,_stage1_dupl_nod
sf,all,pres,1.0
allsel

cmsel,s,generation_elem       
solve
allsel
finish

save,stage1_HI%HI%,db

/com ------------------------------------------------------
/com ---     Higher harmonic stage generation (HI=4)    ---
/com ------------------------------------------------------

/clear,nostart
/filname,stage1
resume

/solu
antype,static,restart,,,perturb
perturb,substructure,,,dzerokeep
solve,elform

parres,change,gen,parm

HI=4

! CMS parameters
seopt,stage1_HI%HI%,3,,,,,,ON ! use SE name for files
cmsopt,fix,2*Nmode            ! 2*Nmode for non-primary stage

! Update MS HI
msopt,modify,stage1,HI
cecycms
      
cmsel,s,generation_elem
solve
allsel
finish

save,stage1_HI%HI%,db

/com ------------------------------------------------------
/com ---     Higher harmonic stage generation (HI=6)    ---
/com ------------------------------------------------------

/clear,nostart
/filname,stage1
resume

/solu
antype,static,restart,,,perturb
perturb,substructure,,,dzerokeep
solve,elform

parres,change,gen,parm

HI=6

! CMS parameters
seopt,stage1_HI%HI%,3,,,,,,ON ! use SE name for files
cmsopt,fix,2*Nmode            ! 2*Nmode for non-primary stage

! Update MS HI
msopt,modify,stage1,HI
cecycms
      
cmsel,s,generation_elem
solve
allsel
finish

save,stage1_HI%HI%,db

/com ------------------------------------------------------
/com ---       STATIC USE PASS (INITIAL SOLUTION)       ---
/com ------------------------------------------------------
/clear,nostart
/filname,use_static

parres,change,hbm_example5,parm

Sname  = 'stage1'        ! stage name

HBMCYCHIGET,Nsec,EO,NH,'USE'
HBMCYCSEIMPORT,Sname

/prep7

csys,1

! create NL contact
et,10,178
keyopt,10,1 ,0  ! unidirectional
keyopt,10,2 ,1  ! penalty-based method
keyopt,10,4 ,1  ! ignore node location
keyopt,10,5 ,4  ! X-direction of element cs
keyopt,10,10,0  ! standard contact

r,10,-KN,,,-KT

mp,mu,10,mu

type,10
real,10
mat ,10

eread,contact,elem

! update element coordinate system
local,12,0 ,0,0,0 ,90+alpSec/2
csys,1

esel,s,enam,,178
emodif,all,esys,12
emodif,all,real,10
allsel

finish

/SOLU
antype,static

!!! loading
kbc,1

hload = 0 ! load time harmonic
hlv   = 1 ! load vector number
sfe,hload+1,hlv,selv,0,1.0

solve
FINISH

save

/post1
set,last
presol,cont
finish

/com ------------------------------------------------------
/com ---       HBM USE PASS WITH INITIAL SOLUTION       ---
/com ------------------------------------------------------

/clear,nostart
/filname,use
resume,use_static,db

!!! read initial solution vector

! read harmonic 0 solution (real)
jobn='use_static'
*VEC,u0,D,IMPORT,RST,%jobn%.rst,1,,NSL
uDim   = u0_Dim          ! size of the single harmonic solution vector
umhDim = uDim*(1+2*NH)   ! size of the multiharmonic solution vector

! fill multiharmonic vector with harmonic 0 solution
*DIM,umh,ARRAY,umhDim
*DO,i,1,uDim
   umh(i) = u0(i)
*ENDDO 

! read the mapping
*xpl,open,%jobn%.rst
*xpl,read,nod,BackVecI
*xpl,close
*vec,BackVecD,D,copy,BackVecI
*export,BackVecD,apdl,UserBack

/SOLU
antype,harmic

hropt,hbm,NH
harfrq,Fmin,Fmax

!!! HBM cyclic options
hbmopt,cyclic,on,EO,stage1

!!! other HBM options
hbmopt,contset,,ds
hbmopt,contterm,200
hbmopt,scal,valu,60*1e-4,2*pi*(Fmin+Fmax)/2
hbmopt,uinit,APDL,umh,INT,UserBack
hbmopt,aft,2

!!! loading
kbc,1

! static load
h_load1  = 0 ! time harmonic
lv_load1 = 1 ! load vector number
sfe,h_load1+1,lv_load1,selv,0,1.0

! harmonic load - base sector loading - Fbase = FT1real + i*FT1imag
h_load2  = 1 ! load time harmonic
lv_load2 = 1 ! load vector number
sfe,h_load2+1,lv_load2,selv,0, FT1real
sfe,h_load2+1,lv_load2,selv,2, FT1imag

! harmonic load - duplicate sector loading
HBMCYCHIGET,Nsec,EO,NH,'expa' 
h_load3  = 1                        ! load time harmonic
lv_load3 = 2                        ! load vector number
EOalias = HBMCYCHIARRAY(h_load3+1)  ! aliased EO value for h_load3 time harmonic
*if,EOalias,lt,0,then
    sfe,h_load3+1,lv_load3,selv,0,-FT1imag ! for EOalias<0:  Fdupl =  i*Fbase
    sfe,h_load3+1,lv_load3,selv,2, FT1real
*else
    sfe,h_load3+1,lv_load3,selv,0, FT1imag ! for EOalias>=0: Fdupl = -i*Fbase
    sfe,h_load3+1,lv_load3,selv,2,-FT1real
*endif

!!! global damping
betad,1e-5

solve
FINISH

/com ------------------------------------------------------
/com ---                 POST-PROCESSING                ---
/com ------------------------------------------------------

! primary stage node for post-processing
esel,s,type,,1
nsle
nd_cent = node(0.995*Rext+Lb/2,0,0)
allsel

! post-process the transient amplitude (sum of time harmonics)
sector = 1 
ndpost = nd_cent
*get,jobn,active,,jobnam

HBMCYCMAPGET,ndpost,NH 
HBMCYCHIGET,Nsec,EO,NH,'expa' 
HBMCYCEXPAND,jobn,'U','Z',Nsec,NH,sector,'minmax',12 

/axlab,x,Frequency (Hz) 
/axlab,y,Multiharmonic amplitude (m) 
/gcolum,1,sector1 
/gmarker,,4
/xrange,Fmin,Fmax
/show,png,rev,,,plot_amplitude_sec1 
    *vplot,_hbm_freq(1),_hbm_ampl(1) 
/show,close

*vwrite,_hbm_freq(1),_hbm_ampl(1) 
(F8.2,2X,E16.8)

*get,Nss,parm,_hbm_freq,dim,x
*dim,hbm_harm_ampl,table,Nss,NH+1
*do,ii,1,Nss
    hbm_harm_ampl(ii,1) = _hbm_coeff(ii,1)
    hbm_harm_ampl(ii,2) = sqrt(_hbm_coeff(ii,2)**2+_hbm_coeff(ii,3)**2)
    hbm_harm_ampl(ii,3) = sqrt(_hbm_coeff(ii,4)**2+_hbm_coeff(ii,5)**2)
    hbm_harm_ampl(ii,4) = sqrt(_hbm_coeff(ii,6)**2+_hbm_coeff(ii,7)**2)
*enddo

/axlab,x,Frequency (Hz) 
/axlab,y,Time harmonics amplitude (m) 
/gcolum,1,h0
/gcolum,2,h1
/gcolum,3,h2
/gcolum,4,h3
/gmarker,1,4
/gmarker,2,4
/gmarker,3,4
/gmarker,4,4
/xrange,Fmin,Fmax
/show,png,rev,,,plot_harm_sec1 
    *vplot,_hbm_freq(1),hbm_harm_ampl(1,1),2,3,4
/show,close

/exit,nosave

8.5.3. Results

The displacement in the whole structure at the end of the prestress step are displayed in the following figure.

Figure 8.18: Deformed shape after static prestress

Deformed shape after static prestress


Post-processing of the HBM cyclic symmetry analysis is performed using the HBMCYCEXPAND macro. The amplitude of each time harmonic is plotted on figure Figure 8.19: Amplitude of time harmonics at the center of the blade. The amplitude of the sum of all harmonics is displayed on figure Figure 8.20: Multi-harmonic response amplitude at the center of the blade along with the linear reference cases (bonded and open contact). It illustrates the damping due to the frictional effect (lower peak amplitude) as well as the softening effect (shift of the peak toward a lower frequency).

Figure 8.19: Amplitude of time harmonics at the center of the blade

Amplitude of time harmonics at the center of the blade


Figure 8.20: Multi-harmonic response amplitude at the center of the blade

Multi-harmonic response amplitude at the center of the blade