8.4. Example 4: Cyclic Spring-Mass System with Cubic Nonlinearity

This example shows the nonlinear harmonic analysis of the cyclic sector of a bladed disk modeled with springs and masses. Specifically, it illustrates the following key points of the HBM cyclic procedure:

  • CMS generation of single stage cyclic superelements

  • Postprocessing

  • Use of HBM cyclic macros.

The example problem is presented in the following sections:

8.4.1. Problem Description

A bladed disk consisting of N=24 sectors is modeled by a single cyclically symmetric sector made up of a set of linear springs, dampers, and masses as represented in the following figure. A cubic spring of stiffness 2x109N/m3 is linked to the blade tip mass to represent the geometrically nonlinear behavior of the blade. All other parameters of the geometry are provided in Table 8.1: Model Parameters.

Figure 8.13: Cyclic Spring-Mass Model

Cyclic Spring-Mass Model


Table 8.1: Model Parameters

Spring/damper locationStiffness value (106N/m)Damping value (N.s/m)
mass 1 – mass 22.01.3
mass 2 – mass 31.00.7
mass 3 – mass 440.026.7
mass 4 – mass 550.033.3
mass 1 – ground0.1 
mass 4 – ground0.60.4

The structure is excited by an engine order EO=3 harmonic force applied at the tip of the blade. The response on the frequency range [215, 230] Hz is studied using the HBM cyclic symmetry procedure with NH=11 time harmonics.

Single Stage Cyclic Superelements Generation

As part of the HBM cyclic procedure, the linear part of the cyclic sector is reduced to a set of single stage cyclic superelements by combining multistage cyclic symmetry and CMS procedures. Two master (M) nodes are defined, the blade tip node and cubic spring grounded node. Three modes are specified (NMODE = 3 on CMSOPT) for the primary stage superelement (six modes for higher harmonics).

A single stage cyclic superelement is generated for each of the unique spatial harmonic indices described in the following table as well as for the primary stage using the HBMCYCHIGET and HBMCYCSEGEN macros.

Table 8.2: Spatial/Time Harmonic Connection for N=24, EO=3 and NH=11

Time harmonic01234567891011
Spacial harmonic0369129630369


HBM Cyclic Use Pass Analysis

All necessary time harmonic superelements are imported in the use pass using the HBMCYCHIGET and HBMCYCSEIMPORT macros. The cubic spring (USER300 with KEYOPT(2) = 1) is defined between the primary stage master nodes. Note that there is no cubic spring defined on the other stage superelements.

Time harmonic 1 load is defined in one of the two alternate ways described in the HBM cyclic symmetry procedure. The boundary conditions are applied on the primary stage. They are internally duplicated on higher harmonic stages during solve.

8.4.2. Input for the Analysis

To download the .dat file used for this example, click the following link:

The contents of this file are 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, Cyclic spring-mass system with cubic nonlinearity

!!! PARAMETERS

pi = acos(-1)

! structural masses
m1 = 0.2
m2 = 0.3
m3 = 0.4
m4 = 1.2
m5 = 1.2

! linear springs stiffness
k1g = 0.1e6
k12 = 2e6
k23 = 1e6
k34 = 40e6
k45 = 50e6
k4g = 0.6e6

! linear dampers coefficient
c1g = 0
c12 = 1.3
c23 = 0.7
c34 = 26.7
c45 = 33.3
c4g = 0.4

! cubic stiffness
knl = 2e9

! excitation
EO   = 3    ! engine order
Fext = 25.0 ! amplitude

! cyclic parameters
Nsec   = 24
alpSec = 360/Nsec
HI     = EO

! HBM parameters
NH   = 11
fmin = 215 ! starting frequency
fmax = 230 ! ending   frequency
ds   = 15.0

parsav,all,hbm_cyclic,parm

!!! LINEAR MODEL

/prep7
csys,0

! element type
et,1,21
keyo,1,3,2
r,1,m1
r,2,m2
r,3,m3
r,4,m4
r,5,m5

et,10,combin14
keyo,10,2,3

r,10,k1g,c1g
r,40,k4g,c4g

r,12,k12,c12
r,23,k23,c23
r,34,k34,c34
r,45,k45,c45
r,90,k45*2,c45*2

! mesh
n,1 ,0                     ,4  ! mass 1
n,2 ,0                     ,3  ! mass 2
n,3 ,0                     ,2  ! mass 3
n,4 ,0                     ,1  ! mass 4
n,5 ,tan(alpSec/2*pi/180)/2,1  ! mass 5

n,10 , tan(alpSec/2*pi/180),1  ! low edge
n,11 ,-tan(alpSec/2*pi/180),1  ! high edge

n,21,0,4 ! BC node 1
n,24,0,1 ! BC node 2

type,1      ! masses
*do,ii,1,5
    real,ii
    e,ii
*enddo

type,10 ! spring dampers

real,10 ! mass-ground springs
e,1,21
real,40
e,4,24

real,12 ! mass-mass spring
e,1,2
real,23
e,2,3
real,34
e,3,4
real,45
e,4,5

real,90 ! low/high edge spring
e,10,5
e,4,11

! multistage components
nsel,all
esel,all
cm,_stage_base_nod,node
cm,_stage_base_elm,elem

! master nodes (base only, duplicate nodes will be automatically included 
! in the component upon duplication)
nsel,s,node,,1
nsel,a,node,,21
cm,nl_node,node
allsel

! boundary conditions
d,all,ux ! 1D
d,all,uy ! 1D

d,24,uz

! stage duplication
MSDUPL,'stage'

! multistage constraint equations definition
nsel,s,node,,10
cmsel,r,_stage_base_nod
cm,_stage_cyclow_nod,node
allsel

nsel,s,node,,11
cmsel,r,_stage_base_nod
cm,_stage_cychigh_nod,node
allsel

! create stage
msopt,new,stage,Nsec,0
cecycms

! create master nodes
cmsel,s,nl_node
m,all,uz
allsel

finish



!!! GENERATION PASS

Sname  = 'stage'              ! stage name
Nmode  = 3                    ! number of CMS modes for primary stage

HBMCYCHIGET,Nsec,EO,NH,'GEN'  ! compute necessary spatial harmonic index for HBM use pass
HBMCYCSEGEN,Sname,Nmode       ! generate the associated multistage superelements

 

!!! USE PASS

/clear,nostart
/filname,use
parres,change,hbm_cyclic,parm

Sname  = 'stage'              ! stage name

HBMCYCHIGET,Nsec,EO,NH,'USE'  ! compute the spatial harmonic index for each time harmonic
HBMCYCSEIMPORT,Sname,HIname   ! import the associate multistage superelements

/prep7

! create nonlinear elements connected to the primary stage
et,100,300
keyopt,100,1,2
type,100
usrelem,2,3,line,5,0,2,3
usrdof,define,uz
r,100,,knl,3

type,100
real,100
e,1,21

finish

/solu
antype,harmonic

hropt,hbm,NH
harfrq,fmin,fmax

! HBM cyclic options
keywd,beta,1
hbmopt,cyclic,1,EO,stage

! other HBM options
hbmopt,contset,,ds,ds/50,ds*5

uscal = 5e-3*3
fscal = 2*pi*fmin
hbmopt,scal,valu,uscal,fscal

! boundary conditions on primary stage nodes 
! (automatically duplicated for higher harmonic stages)
d,21,uz

!!! loading (harmonic 1) - two methods (comment out one of the two) 
hload  = 1 ! load time harmonic
ndload = 1 ! load node number
kbc,1 

! method 1 - loading on primary stage 
*dim,  Fz_eo,table,NH+1,,,NHINDEX 
*vfill,Fz_eo(1,0)      ,ramp,0,1 
*vfill,Fz_eo(hload+1,1),data,Fext 

f,ndload,fz,%Fz_eo%  

! ! method 2 - loading on stage of interest 
! HBMCYCMAPGET,ndload,NH                 ! get mapping of node 1 on all stages
! f,NODMAPARRAY(2*hload)  ,fz,Fext,0     ! Fbase = Fext
! f,NODMAPARRAY(2*hload+1),fz,0   ,-Fext ! Fdupl = -i*Fbase (for positive engine order)
		 
				   

solve
finish

!!! POST-PROCESSING


				   

*get,jobn,active,,jobnam

/post26
numvar,200

! compute node mapping
ndpost = 1
HBMCYCMAPGET,ndpost,NH

!!! time harmonic 1 results
hh=1
*get,jobn,active,,jobnam
file,%jobn%_%hh%hi0,rst
nsol, 10+hh,NODMAParray(2*hh),u,z,harmonic1

prcplx,1
/gmarker,,4
/xrange,Fmin,Fmax
/axlab,x,Frequency (Hz)
/axlab,y,Harmonic amplitude (m)
/gropt,divx,5
/gropt,divy,8
/plopts,logo,off
/show,png,rev,,,plot_harmonic1
    plvar,11
/show,close

!!! time harmonic 3 results
hh=3
*get,jobn,active,,jobnam
file,%jobn%_%hh%hi0,rst
nsol, 10+hh,NODMAParray(2*hh),u,z,harmonic3

/show,png,rev,,,plot_harmonic3
    plvar,13
/show,close

finish

!!! Sector 1 results
sector = 1
ndpost = 1
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
/show,png,rev,,,plot_amplitude_sec1
    *vplot,_hbm_freq(1),_hbm_ampl(1)
/show,close

/gmarker
/xrange
/yrange,-6e-3,6e-3
/gropt,divy,6
/show,png,rev,,,plot_timeresponse_sec1
    *vplot,_hbm_time(1,1),_hbm_time(1,2)
/show,close

!!! Sector 3 results
sector = 3
ndpost = 1
HBMCYCMAPGET,ndpost,NH
HBMCYCHIGET,Nsec,EO,NH,'expa'
HBMCYCEXPAND,jobn,'U','Z',Nsec,NH,sector,'minmax',12

/gmarker
/axlab,x,Time (s)
/axlab,y,Multiharmonic amplitude (m)
/gcolum,1,sector3
/show,png,rev,,,plot_timeresponse_sec3
    *vplot,_hbm_time(1,1),_hbm_time(1,2)
/show,close 

8.4.3. Results

The results can be postprocessed in two ways, as shown below.

Direct postprocessing of the results for each harmonic can be carried out separately by reading the proper result file (Jobname_0.rst for harmonic 0, Jobname_%h%HI0 for harmonic, h where Jobname is that from the use pass) in both /POST1 and /POST26. Special care is needed to select the nodes for which results are stored: to read results of harmonic h, select nodes belonging to Sname_NH_%h% superelement. This is done here using the HBMCYCMAPGET macro.

Figure 8.14: Direct postprocessing of time harmonics 1 (top) and 3 (bottom)

Direct postprocessing of time harmonics 1 (top) and 3 (bottom)
Direct postprocessing of time harmonics 1 (top) and 3 (bottom)

Postprocessing of the sum of the harmonics can be done manually or using the HBMCYCEXPAND macro to get the time response at a given frequency or the total amplitude or phase as a function of the frequency.

Figure 8.15: Multi harmonic response in frequency domain

Multi harmonic response in frequency domain

Figure 8.16: Multi harmonic response in time domain at f =225.615 Hz in sector 1 (top) and 3 (bottom)

Multi harmonic response in time domain at f =225.615 Hz in sector 1 (top) and 3 (bottom)
Multi harmonic response in time domain at f =225.615 Hz in sector 1 (top) and 3 (bottom)