!------------------------------------------------------------------------------- ! skript_magnet_linear_magMoment.inp ! ANSYS-Skript zur Bestimmung des resultierenden magnetischen Moments eines ! Permanentmagneten ! ! 26.01.2010 J. Laborenz !------------------------------------------------------------------------------- ! Beenden aller laufenden Rechnungen und einrichten der aktuellen Datei finish /clear,start /title,permanentmagnet_2D_magnMoment ! Parameter !------------ ! Geometrieparameter L_mag = 10e-3 R_mag = 7.5e-3 R_air = 12.5e-3 L_air = 20e-3 R_bc1 = 20e-3 R_bc2 = 40e-3 ! Materialparameter pi = 4*atan(1) mu_0 = 4*pi*1e-7 mue_air = 1.00 mue_mag = 1.05 H_CB = 8.41880e+005 ! Meshingparameter elementSizeMag = 5e-4 elementSizeAir = 1e-3 elementSizeBc = 4e-2 !------------------------------------------------------------------------------- ! PREPROCESSOR-PHASE !------------------------------------------------------------------------------- /prep7 ! preprocessor aktivieren emunit,mks ! Einheitensystem auf MKS (ist auch default) ! damit ist auf mu_0=4pi*1e-7 fix ! Elementtypen ! et,localElementNum,elementName !et,1,53 ! plane53, vect Quad 8nod53: 2D, magnetic, vektorPotential et,1,13 et,2,110 ! Infin110, models an open boundary of a 2D unbounded field ! problem ! Keyoptions definieren ! zusätzliche Elementparameter definieren ! keyopt,localElementnum,keyoptnum,value keyopt,1,3,1 ! localElementNum=plane53,Keyopt(3)=Element behaviour, ! 1=Axisymmetric keyopt,1,5,2 ! localElementNum=plane53,Keyopt(5)=Extra element output ! 2=nodal magnetic field output keyopt,2,2,1 ! localElementNum=infin110,Keyopt(2)=Element definition ! 1=8-node quadrilateral keyopt,2,3,1 ! localElementNum=infin110,Keyopt(3)=Element behaviour ! 1=axisymmetric ! Materialdaten definierten ! mp,label(Eigenschaft),materialRefNum,koeff. mp,murx,1,mue_mag ! murx=magnetic relative permeability (mury, murz ! für anisotrop),1=materialRefNum,mue_mag=koeff. mp,mgyy,1,H_CB ! mgyy=Magnetic coercie forces (mgxx,mgzz für ! andere Richtung),1=materialRefNum,h_c =koeff ! Koerzitivfeldstärke mp,murx,2,mue_air ! Permeabilität der Luft zuweisen ! Geometrie erzeugen /pnum,area,1 ! Flächen Nummerierung anzeigen /pnum,line,0 ! Linien Nummerierung anzeigen rectng,0,R_mag,0,L_mag/2 ! rectng,x1,x2,y1,y2 creates a rectangular in rectng,0,R_mag,-L_mag/2,0 ! the working plane ! Rechteck für Magneten rectng,0,R_air,0,L_air/2 ! Rechteck für Luft rectng,0,R_air,-L_air/2,0 pcirc,0,R_bc1,-90,0 ! pcirc,rad1=innerRadius,rad2=outerRadius, ! theta1=startingAngle,theta2=endingAngle ! Halbkreis für Boundary condition pcirc,0,R_bc1,0,90 pcirc,0,R_bc2,-90,0 pcirc,0,R_bc2,0,90 aovlap,all ! Überlappung der Flächen ! Vernetzen des Magneten type,1 ! type,localElementNum (wählt den entsprechenden ! Elementtypen zum Meshen aus) mat,1 ! mat,materialRefNum (wählt das entsprechende Material ! zum Meshen aus) mshape,0,2d ! mshape,key,dimension ! 0=mesh with quadrilateral-shaped elements when ! dimension=2d, ! dimension=2d (specifies dimension of elements) mshkey,1 ! meshkey,key=1 (use mapped meshing) esize,elementSizeMag ! esize,size=defaultElementEdgeLength, ! nDiv=numOfElementDivions along boundary lines amesh,1,9,1 ! amesh,nA1,nA2,nInc (meshes from nA1:nInc:nA2) ! Verbinden der L-förmigen Berandungslinien zu einer Linie für quadrilateral mesh lccat,2,3 ! lccat,nL1,nL2 lccat,10,11 lccat,13,38 lccat,5,30 ! Vernetzen der Luft (Rechteck) type,1 mat,2 mshape,0,2d meshkey,2 amesh,14,15,1 ! Vernetzen der Luft (Halbkreis) type,1 mat,2 mshape,0,2d meshkey,2 ! use mapped mesh if possible, else free meshing ! without smart sizing esize,elementSizeAir lsel,s,line,,25,26 ! Zusammenfassen der geraden Teilstücke des Luft-Raums zu lsel,a,line,,29 ! Set lesize,all,,,1 ! lesize,nL1,size,angsiz,nDiv ! weist den geraden Teilstücken des BC-Raums jeweils nur ! ein Element zu amesh,12,13,1 ! Vernetzen der Luft (Halbkreis der Boundary Elemente) type,2 mat,2 mshape,0,2d meshkey,2 ! use mapped mesh if possible, else free meshing ! without smart sizing esize,elementSizeBc lsel,s,line,,30,31 ! Zusammenfassen der geraden Teilstücke des BC-Raums zu lsel,a,line,,34 ! Set lesize,all,,,1 ! lesize,nL1,size,angsiz,nDiv ! weist den geraden Teilstücken des BC-Raums jeweils nur ! ein Element zu amesh,10,11,1 ! Randbedingungen setzen (Symmetrie und unendlich) lsel,s,line,,23 ! Auswählen der beiden Rundbögen lsel,a,line,,35 sfl,all,inf ! sfl,nL1=all (alle ausgwählten),label=inf (valid ! surface load label, Elementabhängig) lsel,s,line,,31 ! Selektieren der Linien für Symmetrielinie lsel,a,line,,39 lsel,a,line,,42 lsel,a,line,,29 lsel,a,line,,4 lsel,a,line,,41 !lsel,a,line,,37 !lsel,a,line,,34 dl,all,,asym ! dl,nL1,areaContainingLine,lab ! Beenden der Preprocessor-Phase allsel ! Wieder alle Komponenten anwählen finish !------------------------------------------------------------------------------- ! SOLUTION-PHASE !------------------------------------------------------------------------------- /solu ! Solution-Umgebung aufrufen solve ! Lösung starten finish !------------------------------------------------------------------------------- ! POSTPROCESSING-PHASE !------------------------------------------------------------------------------- /post1 ! Post-processing-Umgebung aufrufen ! graphische Darstellung einstellen /SHOW,WIN32C ! Graphical device einstellen /CONT,1,25,AUTO ! Einstellen der anz. der Farben für Contour-Plot PLESOL, B,Y, 0 ! Darstellen der radialen magnetischen Flussdichte als ! ElementLsg ! PLESOL,Item=B,Comp=X,KUND=undisplacedShapeKey, ! Fact=scaleFact ! Berechnung des magnetischen Moments ! M=B/mu_0-H (Magnetisierung) ! m = int M dV !-------------------------------- ESEL,S,MAT,,1 ! Elemente nach Magnetmaterial auswählen ETABLE,B_Y_T,B,Y ! B-Feld und H-Feld des Magneten in Table einlesen ETABLE,H_Y_T,H,Y ETABLE,M_T ! Leeren Table für Magnetisierung anlegen ETABLE,X_T ETABLE,A_T ETABLE,DM_T ETABLE,DDM_T ! Arrays initiieren *get,ELEM_MAX,elem,0,num,max ! Anzahl ausgewählter Elemente bestimmen *dim,B_Y_A,ARRAY,ELEM_MAX,1 ! Array für B dimensionieren Elem_Max X 1 *dim,H_Y_A,ARRAY,ELEM_MAX,1 ! Array für H dimensionieren *dim,M_A,ARRAY,ELEM_MAX,1 *DIM,X_A,ARRAY,ELEM_MAX,1 *VGET,B_Y_A(1),ELEM,,ETAB,B_Y_T,,3 ! B in Array aus Table importieren *VGET,H_Y_A(1),ELEM,,ETAB,H_Y_T,,3 ! H in Array aus Table importieren *VGET,X_A,ELEM, ,CENT,X, , ,2 ! X-Koordinate des Elementschwerpunktes *VGET,A_A,ELEM, ,GEOM, , ,2 ! Fläche des Elementes ! Berechnung der Magnetisierung M *VFACT,1,1/mu_0,1 ! FACTR*((FACT1*Par1) o (FACT2*Par2)) ! Setzt die Skalierungsfaktoren für alle folgenden ! Operationen wobei o für die entsprechende Operation steht ! Werden nach ausgefürter Operation resettet -> 1 *VOPER,M_A,B_Y_A,SUB,H_Y_A ! Berechnung des magnetischen Moments MM *VFACT,1,1,1 ! MM=INT M dV ~> MM=2*PI*SUMME(A_i*X_i*M_i) *VOPER,DDM,M_A,MULT,X_A ! Magnetisierung mit X-Koordinate multiplizieren *VOPER,DM,DDM,MULT,A_A ! Ergebnis mit Fläche multiplizieren *VFACT,2*PI *VSCFUN,MM,SUM,DM *VPUT,M_A,ELEM,all,ETAB,M_T, , ,2 PLETAB,M_T