## General Mechanical

#### Displacement of high speed rotating shaft

• IMKT
Subscriber

Hello,

We designed the attached shaft with solid185 Elements. We have the goal to identify critical speeds of this shaft with a campbell diagram. This identification already works. The problem is the displacment. It is not plausible, because its scaled in meters and has an amount of more then 1 meter. I attached the visualisation as well.

Apart from that i plan to implement material and bearing damping. This doesnot work properly. By now its uncommented. Can you please check my concept. What value I should implement for the damping constants? I caclulated for the damoing keoficient a value of 1e-2. But it lowers the critical speed to 0rpms.

I would like to ask you, if you can try to help me identify the problem in my script. Perhabs it is a problem of unit setting or visualisation of result.

Best Regards,

• peteroznewman
Subscriber

Here is the script attached above for those who can't open attachments : )

• !** Startup

• FINISH

• /clear,nostart

• !** KOS

• cswpla,11,1,1,1, ! Zylinderkoordinaten eingeführt

• !** Simdaten

• P_NW                = 20       ! Diskretisierung des Lastvektors, Zahl der Simulationszyklen

• P_RSPEED_BEGIN      = 0    ! Startdrehzahl, prm

• P_RSPEED_END        = 100000   ! Enddrehzahl, rpm

• !** geometrische Parameter

• !Länge in Z-Richtung [m]

• L_A1 = 0.03 ! Länge Wellenabsatz 1 - Wellenvorsprung

• L_A2 = 0.067 ! Länge Wellenabsatz 2 - Lagersitz A

• L_A3 = 0.238         ! Länge Wellenabsatz 3 - Zwischenabsatz

• L_A4 = 0.066 ! Länge Wellenabsatz 4 - Lagersitz B

• L_RP = 0.160

• L_Lager= 0.016 ! Lagerring Breite

• L_DistA= 0.010 ! Lagerhülsen Abstand - Lager A

• L_DistB= 0.020 ! Lagerhülsen Abstand - Lager B

• L_A2WS = 0.025 ! Freie Wellenschulter - Lagersitz A

• L_A4WS = 0.014 ! Freie Wellenschulter - Lagersitz B

• L_Dist_A3_RP=(L_A3-L_RP)/2 !Abstand Rotorpaket - Lagersitze

• !Lagerposition

• pi=acos(-1) ! Definition der Zahl Pi

• Anstellwinkel=15 ! Anstellwinkel Spindellager [°]

• R_Lager=0.024 ! Abstand Kugelmittelpunkt zu Wellenmittelpunkt

• *afun,deg

• Anstellversatz=sin(Anstellwinkel)*R_Lager ! Wirklinienschnittpunkt der lager mit Wellenachse

• Pos_LA1=L_A1+L_A2WS+L_Lager/2-Anstellversatz !Position Lager A1

• Pos_LA2=L_A1+L_A2-L_Lager/2+Anstellversatz !Position Lager A2

• Pos_LB1=L_A1+L_A2+L_A3+L_Lager/2-Anstellversatz !Position Lager B1

• Pos_LB2=L_A1+L_A2+L_A3+L_Lager/2+L_DistB+L_Lager+Anstellversatz !Position Lager B2

• r_A1=0.012 ! Radius Absatz 1

• r_A2=0.015 ! Radius Absatz 2

• r_A3=0.0175 ! Radius Absatz 3

• r_A4=0.015 ! Radius Absatz 4

• !** Materialparameter

• ex_s=2.1e11 ! Elastizitätsmodul Welle [m^4]

• ex_rp=3e10 ! Elastizitätsmodul Rotorpakets [m^4]

• dens_s=7850 ! Dichte Welle [kg/m^3]

• dens_rp=7830 ! Dichte Rotorpaket [kg/m^3]

• bs_r=1.632e8/2      ! Lagersteifigkeit Lager [N/m]

• !Damping

• damp1=1e-3 ! shaft damping

• damp2=1e-3 ! rotorpackage damping

• damp3=1e-3 ! bearing damping

• /UNITS, SI ! Einführung von SI-Einheiten

• *STAT

• !** PREP7 Commands: https://www.sharcnet.ca/Software/Ansys/16.2.3/en-us/help/ans_cmd/Hlp_C_CH2_5.html

• ! Preprocessing - Aufbau der Simulation

• /prep7

• !** Dehzahlerzeugung mit Schleife in P-Spin der Dimension P_NW

• *DIM, P_SPIN, ARRAY, P_NW

• !** Lastenvektor P-SPIN Füllen

• P_SPEED_STEP_SIZE = (P_RSPEED_END-P_RSPEED_BEGIN)/(P_NW)

• *DO, I, 1, P_NW !

• P_SPIN(I) = P_RSPEED_BEGIN+(I-1)*P_SPEED_STEP_SIZE

• *ENDDO

• !Herstellung des Wellenkörper mich zylindrischen Volumenkörpern

• !Erzeugung sich durchdringender Körper

• !Schleife zur Teilung der Wellenabsätze in 4 Teile auf Unfang im 90° Winkel zur Erzeugung von Mittelknoten

• *DO, x, 1,4

• !1. Absatz

• Cylind,0,r_a1,0,L_A1+L_A2+L_A3+L_a4,0+(x-1)*90,90+(x-1)*90

• !2. Absatz

• Cylind,0,r_a2,L_A1,Pos_LA1,0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a2,Pos_LA1,(Pos_LA2+Pos_LA1)/2,0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a2,(Pos_LA2+Pos_LA1)/2,Pos_LA2,0+(x-1)*90,90+(x-1)*90

• !4. Absatz

• Cylind,0,r_a2,Pos_LA2,Pos_Lb1,0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a2,Pos_Lb1,(Pos_Lb1+Pos_LB2)/2,0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a2,(Pos_Lb1+Pos_LB2)/2,Pos_Lb2,0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a2,Pos_Lb2,L_A1+L_A2+L_a3+L_a4,0+(x-1)*90,90+(x-1)*90

• !3. Absatz

• Cylind,0,r_a3,L_A1+L_A2,L_A1+L_A2+L_Dist_A3_RP*(1/2),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP*(1/2),L_A1+L_A2+L_Dist_A3_RP,0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP,L_A1+L_A2+L_Dist_A3_RP+L_RP*(1/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(1/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(2/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(2/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(3/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(3/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(4/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(4/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(5/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(5/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(6/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(6/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(7/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(7/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(8/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(8/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(9/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(9/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(10/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(10/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(11/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(11/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(12/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(12/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(13/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(13/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(14/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(14/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(15/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(15/16),L_A1+L_A2+L_Dist_A3_RP+L_RP*(16/16),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+L_Dist_A3_RP+L_RP*(4/4),L_A1+L_A2+(3/2)*L_Dist_A3_RP+L_RP*(4/4),0+(x-1)*90,90+(x-1)*90

• Cylind,0,r_a3,L_A1+L_A2+(3/2)*L_Dist_A3_RP+L_RP*(4/4),L_A1+L_A2+2*L_Dist_A3_RP+L_RP*(4/4),0+(x-1)*90,90+(x-1)*90

• !Rotorpaket

• Cylind,0,r_arp,L_A1+L_A2+L_Dist_A3_RP,L_A1+L_A2+L_Dist_A3_RP+L_RP*(4/4),0+(x-1)*90,90+(x-1)*90

• *enddo

• vovlap,all ! Verbinden der Volumenkörper - Festlegung der Verschiebungen an den Kontaktflächen

• !Einführung der Elemente

• et,1,185 ! Elementtyp 185: SOLID185 https://www.sharcnet.ca/Software/Ansys/16.2.3/en-us/help/ans_elem/Hlp_E_SOLID185.html

• keyopt,1,2,3 ! Einführung des Solid 185 Volumenelements

• r,1

• type,1

• mat,1 ! Zuweisung Materialnummer der Welle

• real,1

• ! mp,alpd,1,damp1      ! Material damping

• ! mp,betd,1,damp1

• ex,1,ex_s ! Zuweisung des E-moduls für Welle

• nuxy,1,0.3 ! Zuweisung des Schermoduls für Welle

• dens,1,dens_s ! Zuweisung der Dichte der Welle

• et,2,185 ! Elementtyp 185: SOLID185 https://www.sharcnet.ca/Software/Ansys/16.2.3/en-us/help/ans_elem/Hlp_E_SOLID185.html

• keyopt,1,2,3 ! Einführung des Solid 185 Volumenelements

• r,2

• type,2

• mat,2 ! Zuweisung Materialnummer des Rotorpakets

• real,2

• ! mp,alpd,2,damp2      ! Material damping

• ! mp,betd,2,damp2

• ex,2,ex_rp ! Zuweisung des E-moduls des Rotorpakets

• nuxy,2,0.3 ! Zuweisung des Schermoduls des Rotorpakets

• dens,2,dens_rp ! Zuweisung der Dichte des Rotorpakets

• ! Mashing

• mshape,1,3 ! Einstellung von 3D Volumenelementen

• mshkey,0 ! Einstellung von freiem Meshing

• DESIZE,2,,2,2 !Einstellbarkeit der Dichte des Meshes

• Mopt,aorder,on ! Einstellung der Mashing priorität - kleine Flächen zuerst

• lplott

• ! Zuerst gezieltes Mashing des Rotorpakets mit Volumenelementen der Materialeigenschaften des Rotorpakets

• ! Anwählung der entprechenden Volumen - (mit vsweep,p - Befehl ermittelt)

• ! vsweep,p

• ! /eof

• type,2

• mat,2

• vsweep,427

• type,2

• mat,2

• vsweep,425

• type,2

• mat,2

• vsweep,428

• type,2

• mat,2

• vsweep,426

• type,1

• mat,1

• vsweep,all

• !** Steifigkeitsmodellierung der Lager

• ! mp,alpd,7,damp3

• ! mp,betd,7,damp3 !Bearing Damping

• et,7,14 ! Einführung des Combin 14 Elements - https://www.sharcnet.ca/Software/Ansys/16.2.3/en-us/help/ans_elem/Hlp_E_COMBIN14.html

• r,7,bs_r,damp3  ! Zuweisung der radialen Steifigkeit

• type,7

• real,7

• !Lager A1

• csys,11

• n,20000,R_Lager,0,Pos_LA1+Anstellversatz ! Erzeugung der Federfußpunkte

• n,20001,R_Lager,90,Pos_LA1+Anstellversatz

• !Anwählen der Federfußpunkte

• nsel,s,loc,x,0,R_Lager

• nsel,r,loc,z,Pos_LA1-anstellversatz,Pos_LA1+Anstellversatz

• !Erzeugung der Combin14 Elemente

• !Auswählen der Mittelknoten und Verbinden mit Federfußpunkten

• e,20000,node(0,0,Pos_LA1)

• e,20001,node(0,0,Pos_LA1)

• !Sperrung der translatorischen Freiheitsgrade der Federfußpunkte

• d,20000,ux,0

• d,20000,uy,0

• d,20000,uz,0

• d,20001,ux,0

• d,20001,uy,0

• d,20001,uz,0

• !Lager A2

• n,20010,R_Lager,0,Pos_LA2-Anstellversatz

• n,20011,R_Lager,90,Pos_LA2-Anstellversatz

• nsel,s,loc,x,0,R_Lager

• nsel,r,loc,z,Pos_LA2-Anstellversatz,Pos_LA2+Anstellversatz

• e,20010,node(0,0,Pos_LA2)

• e,20011,node(0,0,Pos_LA2)

• d,20010,ux,0

• d,20010,uy,0

• d,20010,uz,0

• d,20011,ux,0

• d,20011,uy,0

• d,20011,uz,0

• !Lager B1

• n,20020,R_Lager,0,Pos_LB1+Anstellversatz

• n,20021,R_Lager,90,Pos_LB1+Anstellversatz

• nsel,s,loc,x,0,R_Lager

• nsel,r,loc,z,Pos_LB1-anstellversatz,Pos_Lb1+Anstellversatz

• e,20020,node(0,0,Pos_LB1)

• e,20021,node(0,0,Pos_LB1)

• d,20020,ux,0

• d,20020,uy,0

• d,20020,uz,0

• d,20021,ux,0

• d,20021,uy,0

• d,20021,uz,0

• !Lager B2

• n,20030,R_Lager,0,Pos_LB2-Anstellversatz

• n,20031,R_Lager,90,Pos_LB2-Anstellversatz

• nsel,s,loc,x,0,R_Lager

• nsel,r,loc,z,Pos_LB2-Anstellversatz,Pos_LB2+Anstellversatz

• e,20030,node(0,0,Pos_LB2)

• e,20031,node(0,0,Pos_LB2)

• d,20030,ux,0

• d,20030,uy,0

• d,20030,uz,0

• d,20031,ux,0

• d,20031,uy,0

• d,20031,uz,0

• allsel

• /pnum,type,1

• /color,num,blue,1

• /color,num,red,2

• /color,num,gree,7

• !/eof

• !** Anpassung der Ansicht

• /VIEW,  1, -0.300232386613    , -0.767188078802    ,  0.566818282850

• /ANG,   1,  -67.4214496653

• /REPLO

• !Verarbeitung des Modells

• !** Komponenten

• esel,s,ename,,185 ! Auswählen Elemente

• esel,a,ename,,14

• cm,rotor,elem

• nsle,s,1

• esel,a,ename,,14

• cm,rotor_bear,elem

• allsel

• save,rotor_supp_full,db

• finish

• EPLOT

• !Lösen der Simulation

• /solu

• pi=acos(-1)

• !pi=3.141

• rpmtorps=2*pi/60 ! Umrechnung der Drehzahl in Winkelgeschwindigkeiten

• antype,modal

• modopt, qrdamp,6,1,0,1,on ! Berücksichtigung der Modalen Dämpfung

• mxpand,6, , ,1

• coriolis,on,,,on ! Einstellung der Kreiselwirkung

• beta,1e-6

• ! Einleitung der Lasten in einer Schleife

• *DO, I, 1, P_NW

• cmomega,rotor,P_SPIN(I)*rpmtorps,,,0,0,0,0,0,L_A1+L_a2+L_a3+L_a4 ! Specifies the rotational velocity of an element component about a user-defined rotational axis.

• solve

• *ENDDO

• save, rotor_use,db

• finish

• ! **********************

• !   Anzeige der Ergebnisse

• ! **********************

• /clear, nostart

• resume, rotor_use,db

• ! Postprocessing - Illustration der Ergebnisse

• ! Skalierung und Generierung des Campbell Diagramms

• /post1

• /gropt,divx,5

• /gropt,divy,5

• /yrange,0,2000,1

• /xrange,0,100000,1

• /show,jpeg

• ! Erzeugung der Daten für das Campbell Diagrams - Harmonische und Eigenfrequenzen werden berechnet

• plcamp,on,1,rpm,,rotor ! Campbelldiagramm 1. Ordnung

• ! Erzeugung von Front und Backwhirl

• ! Die Linie representiert die Anzahl der Erregungen pro Umdrehung des Rotors.

• prcamp,on,1,rpm,,rotor ! prints campbell diagram with 1st order excitation

• /show,close

• ! Eigenfrequenzen und kritischen Drehzaheln abspeichern

• *Get,camp_nMode,camp,,NBMO ! Auslesen der Anzahl der Moden

• *Get,camp_nStep,camp,,NBST ! Anzahl der Lastschritte

• ! Abspreichern der Eigenfrequenzen in einem

• *DIM,camp_freq1,array,camp_nMode,P_NW

• ! Füllen des zweidimensionalen

• *DO,E,1,camp_nMode

• *DO,O,1,P_NW

• *Get,camp_freq1(E,O),camp,E,freq,O

• *Enddo

• *Enddo

• ! Abspeichern der kritischen Drehzahen in einem

• *DIM,camp_vcri,array,camp_nMode

• *DO,A,1,camp_nMode

• *Get,camp_vcri(A),camp,A,vcri

• *ENDDO

• ! Erzeugung der Daten des Campbell diagrams in einer Textdatei

• ! Öffnen der Datei zur Dokumentation der Eigenfrequenzen - Benennung variabel

• *CFOPEN,'camp_dat_Solid_20V_MS4_okW_test','txt'

• *VWRITE,'Drehzahl',' ','1. Frequenz',' ','2. Frequenz',' ','3. Frequenz',' ','4. Frequenz',' ','5. Frequenz',' ','6. Frequenz'

• (A8,A5,A11,A5,A11,A5,A11,A5,A11,A5,A11,A5,A11,A5,A11)

• *DO,L,1,P_NW

• *VWRITE,P_SPIN(L),'',camp_freq1(1,L),'',camp_freq1(2,L),'',camp_freq1(3,L),'',camp_freq1(4,L),'',camp_freq1(5,L),'',camp_freq1(6,L)

• (F15.5,A5,F15.5,A5,F15.5,A5,F15.5,A5,F15.5,A5,F15.5,A5,F15.5,A5,F15.5,A5)

• *ENDDO

• *CFCLOS

• *CFOPEN,'camp_crit_Solid_20V_MS4_okW_test','txt'

• *VWrite,camp_vcri(1),'',camp_vcri(2),'',camp_vcri(3),'',camp_vcri(4),'',camp_vcri(5),'',camp_vcri(6)

• (F15.5,A5,F15.5,A5,F15.5,A5,F15.5,A5,F15.5,A5,F15.5)

• *CFCLOS

• !Erzeugung des Durchbiegungsschaubildes

• !/erase

• !fini

• !** combined results of foundation and rotor

• /clear, nostart

• /verify

• resume, rotor_use,db

• /post1

• ! /color,wbak,whit,1

• ! /color,pbak,0,-1,1

• /eshape,1

• cmsfile,clear

• !!!file, rotor_use,rst

• set,3,2

• /dscale,,1

• /show,jpeg

• plnsol,u,sum,0

• *get, umax,plnsol,0,max

• *stat,umax

• /show,close

• !/show,jpeg

• ! plnsol,u,sum,0

• ! *get, umax,plnsol,0,max

• ! *stat,umax

• ! /show,close

• finish