Displacement of high speed rotating shaft

  • 25 Views
  • Last Post 11 October 2018
IMKT posted this 11 October 2018

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,

Attached Files

peteroznewman posted this 11 October 2018

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
  • !Querschnittsradien Welle [m]
  • 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
  • r_arp=0.0353 ! Außenradius Rotorpaket
  • !** 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 Array 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
  • *afun,rad
  • 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 Array
  • *DIM,camp_freq1,array,camp_nMode,P_NW
  • ! Füllen des zweidimensionalen Array
  • *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 Array
  • *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

Close