Displacement of high speed rotating shaft

  • 20 Views
  • Last Post 5 days ago
IMKT posted this 5 days ago

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 5 days ago

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