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




  • !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 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

  • *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