This example demonstrates the static analysis of a compressor multistage system. Specifically, it demonstrates the following key points:
Static analysis of a multistage system
Use of only base sectors for static, HI = 0 cases
Axial multistage modeling with more than 2 stages
Mismatched interstage boundaries requiring mapping
Offset cyclic edge starting points
Expansion
The example problem is presented in the following sections:
The multistage system consists of 4 axially aligned cyclic stages merged at 3 interstage boundaries. There are 3 blade rows and a rim modeled using SOLID186 and SOLID187 elements as shown in Figure 7.1: Compressor Model with 4 Axial Stages . The model is fixed along the hoop of the upstream hub. The stages have the following sector counts:
| Stage | Sector Count |
|---|---|
| 1 | 43 |
| 2 | 48 |
| 3 | 54 |
| 4 | 30 |
The finite element models of the four stages in axial alignment are shown below.
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. | Create base sector for each stage. | CDREAD,... |
| 2. | Create stage components for each stage. | CM,... |
| 3. | Create sector low/high edge components for each stage. | CM,... |
| 4. | Create stages and apply cyclic constraints for harmonic index 0. |
MSOPT,NEW,... CECYCMS,... |
| 5. | Set analysis type (static). | ANTYPE,STATIC |
| 6. | Apply multistage constraints. | CEIMS,... |
| 7. | Apply other boundary conditions. | D,.... |
| 8. | Apply external loading in the form of rotational velocity. | OMEGA,... |
| 9. | Solve the analysis. | SOLVE,... |
| 10. | Enter POST1 postprocessor. | /POST1 |
| 11. | Set expansion parameters to expand all stages and sectors. | MSOPT,EXPA,ALL,ALL |
| 12. | Read results, expand database and expand results. | SET,... |
| 13. | Plot expanded displacements. | PLNSOL |
| 14. | Define cutting plane. | /CPLANE,... |
| 15. | Plot same expanded displacements with different cut view. | PLNSOL |
Download the zipped .cdb files used for this example problem.
/batch,
/com ===============================================================
/com Multistage static analysis - compressor
/com ===============================================================
! define stage information
!--------------------------
NumStages = 4 ! Number of stages
NS1 = 43 ! Stage1 number of sectors
NS2 = 48 ! Stage2 number of sectors
NS3 = 54 ! Stage3 number of sectors
NS4 = 30 ! Stage4 number of sectors
HI1 = 0 ! Stage 1 harmonic index
HI2 = 0 ! Stage 2 harmonic index
HI3 = 0 ! Stage 3 harmonic index
HI4 = 0 ! Stage 4 harmonic index
! create multistage components
!-----------------------------
*do,iter,1,NumStages
! Read in stages in reverse order
filenum=NumStages-Iter+1
cdread,db,Stage%filenum%,cdb
! Create stage components
cm,_Stage%filenum%_base_elm,elem
nsle
cm,_Stage%filenum%_base_nod,node
cmsel,s,Stage%filenum%_Low
cm,_Stage%filenum%_cyclow_nod,node
cmsel,s,Stage%filenum%_High
cm,_Stage%filenum%_cychigh_nod,node
cmsel,u,_Stage%filenum%_base_elm
*enddo
alls
/prep7
! rotate nodes into cylindrical system
!-------------------------------------
alls
csys,1
nrot,all
! setup selection parameters for later use
!-----------------------------------------
cmsel,s,stage1
nsle
*get,_RBC,NODE,0,MNLOC,X ! BC radius
allsel
*do,iter,1,NumIntfs
cmsel,s,INT%iter%_LARGE
*get,_Int%iter%Ax,NODE,0,MXLOC,z ! MS interface axial location
*get,_Int%iter%RadMax,Node,0,MXLOC,x !Max Radial Location
*get,_Int%iter%RadMin,Node,0,MNLOC,x !Min Radial Location
allsel
*enddo
! create multistage settings for each stage
!------------------------------------------
*do,iter,1,NumStages
msopt,new,Stage%iter%,NS%iter%,HI%iter%
cecycms
*enddo
allsel
msopt,list,all
finish
seltol
/solu
antype,static
outres,erase
outres,all,none
outres,nsol,all
outres,etmp,all
outres,strs,all
! apply interstage constraints between 1-2
!------------------------------------------
cmsel,s,int1_large
cm,Int1_intf_nod,node
cmsel,s,int1_small
esln
cm,Int1_intf_elm,elem
allsel
cmsel,,Int1_intf_nod
cmsel,,Int1_intf_elm
ceims,,,stage1,stage2
allsel
! apply interstage constraints between 2-3
!------------------------------------------
cmsel,s,int2_large
cm,Int2_intf_nod,node
cmsel,s,int2_small
esln
cm,Int2_intf_elm,elem
allsel
cmsel,,Int2_intf_nod
cmsel,,Int2_intf_elm
ceims,,,stage2,stage3
allsel
! apply interstage constraints between 3-4
!------------------------------------------
cmsel,s,int3_large
cm,Int3_intf_nod,node
cmsel,s,int3_small
esln
cm,Int3_intf_elm,elem
allsel
cmsel,,Int3_intf_nod
cmsel,,Int3_intf_elm
ceims,,,stage4,stage3
allsel
! apply fixed support boundary conditions
!-----------------------------------------
cmsel,s,_Stage1_base_elm
nsle
seltol,0.001
nsel,r,loc,x,_RBC
d,all,uy
d,all,uz
allsel
seltol
! apply rotational load
!-----------------------
omega,,,1000
solve
finish
/post1
! expand all stages and sectors
!-------------------------------
msopt,expa,all,all
set,first
rsys,1
/show,png,rev
/view,1,1,1,1
! show all stages and sectors
!-----------------------------
plns,u,sum
*get,usummax,plnsol,0,max
plns,s,x
*get,sxmax,plnsol,0,max
! show cut of all stages and sectors
!------------------------------------
wprot,0,-90,0
/type,1,5
/cplane,1
/shade,1,1
/hbc,1,0
plns,u,sum
plns,s,x
/show,close




