Geometric parameter identification and automated modeling method for metal UE sealing flange
The ABAQUS scripting language Python is used to automatically identify the geometric parameters of the metal UE sealing flange and establish an automated finite element analysis model, which solves the problems of repetitive work and human errors in the existing technology and realizes efficient and accurate sealing, strength and stiffness analysis.
Patent Information
- Application Number
- CN202210869692.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-07-22
- Publication Date
- 2025-09-12
- Estimated Expiration
- 2042-07-22
AI Technical Summary
The existing technology has problems in the design of metal UE sealing flange structures, such as sealing leakage, insufficient connection stiffness, local stress concentration, and insufficient bolt strength. In addition, there are repetitive tasks and human errors in the analysis process, and there is a lack of unified simplified analysis specifications and automated tools.
The ABAQUS scripting language Python is used to automatically identify the geometric parameters of the metal UE sealing flange and establish an automated finite element analysis model, including identifying components, specifying material properties, applying boundaries and loads, establishing contact properties and periodic constraints, and gradually dividing the mesh to form a standardized analysis model.
It improves analysis efficiency and model accuracy, reduces human errors, and can quickly respond to design solutions and provide sealing, strength, and stiffness analysis results.
Smart Images

Figure CN115374553B_ABST
Abstract
Description
Technical Field
[0001] The invention relates to a method for identifying and automatically modeling geometric parameters of a metal UE sealing flange. Background Art
[0002] Metal UE sealing flange connections typically consist of upper and lower flanges, UE sealing rings, and fasteners. During assembly, they are subjected to compression from bolt preloads, and during operation, they are subjected to high temperatures, medium pressure, and additional cross-sectional loads from pipelines. Common failure modes for metal sealing flanges include seal leakage, insufficient joint stiffness, crack initiation caused by local stress concentration, and insufficient bolt strength. The structural optimization design process is often accompanied by numerous iterations. Each proposed modification requires detailed analysis results for sealing, strength, and stiffness under the design conditions. This requires the development of finite element analysis models for each structural design, a process that involves significant repetitive work. Furthermore, different simulation analysts may employ inconsistent simplification strategies, meshing methods, and element sizes, introducing artifacts into the analysis results. Therefore, establishing unified simplification analysis specifications, a consistent evaluation system, and efficient automated analysis tools can significantly improve efficiency and rapidly respond to each designer's proposed solution. Furthermore, using standardized analysis tools for modeling and post-processing significantly reduces reliance on the analyst's experience and avoids human error. Summary of the Invention
[0003] The technical problem solved by the present invention is: to overcome the deficiencies of the prior art and propose a method for identifying structural geometric parameters and automatically establishing a finite element analysis model, which can be directly used to develop an automated analysis tool for the structural connection performance of metal UE sealing flanges.
[0004] The technical solution of the present invention is: a method for geometric parameter identification and automatic modeling of a metal UE sealing flange, comprising:
[0005] Obtain basic geometric model parameters and preset auxiliary parameters;
[0006] Establish a geometric model within a symmetrical period of the metal UE sealing flange structure; read in the five components of the metal UE sealing flange in sequence, identify each component and modify the component name;
[0007] Establish material and section properties and specify section properties for each component;
[0008] Create a copy of the assembly for each part;
[0009] Identify the master and slave surfaces of the cyclic symmetry boundary, identify the medium pressure action surface of the sealing ring; identify the medium pressure action surface of the upper and lower flanges;
[0010] Cut the bolts to create a preload surface;
[0011] Identify the master and slave surfaces of the contact pair between the bolt and the gasket; identify the master and slave surfaces of the contact pair between the sealing ring and the sealing channel; identify the master and slave surfaces of the contact pair between the upper and lower flanges; identify the master and slave surfaces of the binding constraint between the bolt and the threaded hole of the lower flange;
[0012] Establish two implicit static analysis steps and apply boundaries and loads;
[0013] Establish contact properties and create 5 contact pairs, namely, bolt and gasket, gasket and upper flange, upper flange and lower flange, upper flange and sealing ring, and lower flange and sealing ring;
[0014] Establish periodic symmetry constraints;
[0015] Establish a binding constraint relationship between the bolts and the threaded holes of the lower flange;
[0016] Divide the grid for the upper and lower flanges, sealing rings, bolts, and gaskets one by one;
[0017] Create an analysis job, submit the calculation and save the CAE model.
[0018] The geometric model parameters include: the number of bolts N bolt , bolt diameter r, sealing ring height h1, sealing ring limiter height h2; program auxiliary parameters include: tolerance δ, structural axial coordinate reference H max and H min .
[0019] The establishment of a geometric model within a symmetrical period of the metal UE sealing flange structure includes:
[0020] A periodically symmetrical sector containing a bolt is cut out of the metal UE sealing flange. The periodically symmetrical sector contains five components: the upper and lower flanges, the sealing ring, the bolt, and the gasket. The five components belong to the same geometric model according to the assembly relationship.
[0021] The geometric model uses a cylindrical coordinate system, where the y-axis passes through the flange axis and is positive upward, the x-axis passes through the symmetry plane of the sector along the flange radial direction and is positive outward, and the positive direction of the z-axis is determined by the right-hand rule; the origin of the coordinate system is axially located at the butt joint surface of the upper and lower flanges containing the bolt holes. If there is a gap between the butt joint surfaces, it is located at the butt joint surface of the lower flange.
[0022] The process of sequentially reading in the five components of the metal UE sealing flange, identifying each component and modifying the component name includes:
[0023] Traverse all the faces in the geometric model and use the pointOn() member function of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face with the minimum y-coordinate among the coordinates of the returned points. The component to which this face belongs is the lower flange, which is named "LowerFlange";
[0024] Traverse the faces of the remaining four components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face with the minimum x-coordinate among the coordinates of the returned points. The component to which this face belongs is the upper flange, which is named "UpperFlange";
[0025] Traverse the faces of the remaining three components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face with the maximum y-coordinate. The component to which this face belongs is the bolt, which is named "Bolt".
[0026] Traverse the faces of the remaining two components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face to which the point with the maximum y-coordinate belongs. The component to which this face belongs is the gasket, which is named "Gasket".
[0027] The remaining component is the sealing ring, which is named "SealUE".
[0028] The process of establishing material and cross-section properties and specifying cross-section properties for each component includes:
[0029] Use the Material() constructor in the ABAQUS scripting language Python to create material properties, and use the Elastic() and Plastic() constructors in the ABAQUS scripting language Python to create the elastic and plastic properties of the material;
[0030] The constructor HomogeneousSolidSection() in the ABAQUS scripting language Python is used to create isotropic solid section properties;
[0031] The constructor SectionAssignment() in the ABAQUS scripting language Python is used to assign section properties to each component.
[0032] Creating an assembly copy for each component includes:
[0033] Use the Instance() constructor in the ABAQUS scripting language Python to create an assembly copy for the parts['LowerFlange'] component and name it "LowerFlange-1";
[0034] Use the Instance() constructor in the ABAQUS scripting language Python to create an assembly copy for the parts['UpperFlange'] component and name it "UpperFlange-1";
[0035] Use the Instance() constructor in the ABAQUS scripting language Python to create an assembly copy for the parts['Bolt'] component and name it "Bolt-1";
[0036] Use the Instance() constructor in the ABAQUS scripting language Python to create an assembly copy for the parts['Gasket'] component and name it "Gasket-1";
[0037] Use the constructor Instance() in the ABAQUS scripting language Python to create an assembly copy for the parts['SealUE'] component and name it "SealUE-1".
[0038] The step of identifying the master and slave surfaces of the cyclically symmetric boundary includes:
[0039] Calculate the cosine value of the angle between the cyclic symmetry boundary application surface and the model symmetry surface l=cos(π / N bolt );
[0040] Traverse all the faces in the sealing ring copy instances['SealUE-1'], use the face object method function getNormal() in the ABAQUS scripting language Python to read the normal vector n1 of each face, calculate the direction cosine l1 between the vector n1 and the symmetry face normal vector (0,0,1), if l1=l, define the face to which n1 belongs as the main face of the sealing ring cyclic symmetry boundary, if l1=-l, define the face to which n1 belongs as the slave face of the sealing ring cyclic symmetry boundary;
[0041] Traverse all faces in instances['LowerFlange-1'] of the lower flange copy, use the getNormal() method of the face object in the ABAQUS scripting language Python to read the normal vector n2 of each face, calculate the direction cosine l2 between the vector n2 and the normal vector (0,0,1) of the symmetry face, if l2=l, define the face to which n2 belongs as the master face of the lower flange cyclic symmetry boundary, if l2=-l, define the face to which n2 belongs as the slave face of the lower flange cyclic symmetry boundary;
[0042] Traverse all faces in the upper flange copy instances['UpperFlange-1'], use the face object method function getNormal() in the ABAQUS scripting language Python to read the normal vector n3 of each face, calculate the direction cosine l3 between the vector n3 and the symmetry face normal vector (0,0,1), if l3=l, define the face to which n3 belongs as the master face of the upper flange cyclic symmetry boundary, if l3=-l, define the face to which n3 belongs as the slave face of the upper flange cyclic symmetry boundary.
[0043] The identifying the medium pressure acting surface of the sealing ring includes:
[0044] Traverse all the faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the minimum y-axis coordinate as P1, and record the face to which P1 belongs as face1; eliminate face1, traverse all the remaining faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the minimum y-axis coordinate as P2, and record the face to which P2 belongs as face2; compare the x-axis coordinates of P1 and P2, and the face where the point with the smaller coordinate value is located is defined as the lower main sealing lip surface, and the face where the point with the larger coordinate value is located is defined as the lower secondary sealing lip surface;
[0045] Traverse all the faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the maximum y-coordinate as P3, and record the face to which P3 belongs as face3; eliminate face3, traverse all the remaining faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the maximum y-coordinate as P4, and record the face to which P4 belongs as face4; compare the x-coordinates of P3 and P4, the face where the point with the smaller coordinate value is located is defined as the upper main sealing lip surface, and the face where the point with the larger coordinate value is located is defined as the upper secondary sealing lip surface;
[0046] The getSize() method function of the edge object in the ABAQUS scripting language Python is used to find the two shorter edges of the lower main sealing lip surface, and the midpoints of the two short edges, namely points A and B, are used to divide the lower main sealing lip surface into two surfaces; the getSize() method function of the edge object in the ABAQUS scripting language Python is used to find the two shorter edges of the lower auxiliary sealing lip surface, and the midpoints of the two short edges, namely points C and D, are used to divide the lower auxiliary sealing lip surface into two surfaces;
[0047] The getSize() method function of the edge object in the ABAQUS scripting language Python is used to find the two shorter edges of the upper main sealing lip surface, and the midpoints of the two short edges, namely points A' and B', are used to divide the upper main sealing lip surface into two surfaces; the getSize() method function of the edge object in the ABAQUS scripting language Python is used to find the two shorter edges of the upper auxiliary sealing lip surface, and the midpoints of the two short edges, namely points C' and D', are used to divide the upper auxiliary sealing lip surface into two surfaces;
[0048] The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in the seal ring copy instances['SealUE-1'], and the center of the circle is 1(0,y A -δ,0), center 2(0,(y A +y A' ) / 2,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ, select two faces, named face a and face b; where x A 、y A 、zA are the x, y, and z coordinates of point A, respectively. A' is the y-coordinate of point A';
[0049] Find the face with the lower axial position among faces a and b, record it as face a, and the face with the higher axial position as face b; use the getAdjacentFaces() method of the face collection object in the ABAQUS scripting language Python to find the four faces adjacent to face b, remove face a and two periodic symmetry faces from these four faces, and record the remaining face as face c;
[0050] Use the getFacesByFaceAngle() method of the face set object in the ABAQUS scripting language Python to select a group of faces, which is recorded as the c' face set. The starting face is the c face, and the selection angle is 20°.
[0051] The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in instances['SealUE-1'] of the sealing ring copy. The center of the circle 1 is (0, y A' +δ,0), the center of circle 2 is (0,(y A +y A' ) / 2,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ, select two faces, record them as face d and face e; where x A 、y A 、z A are the x, y, and z coordinates of point A, respectively. A' is the y-coordinate of point A';
[0052] The selected surfaces a, b, c', d, and e are defined as the medium pressure action surfaces of the sealing ring.
[0053] The identifying of the medium pressure action surfaces of the upper and lower flanges includes:
[0054] The getClosest() method of the face collection object in the ABAQUS scripting language Python is used to find the face closest to point A among all the faces of the lower flange copy instances['LowerFlange-1'], which is recorded as face5; face5 is split using the projection of the newly generated edge after the lower main sealing lip surface is split on face5;
[0055] Step 1: Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['LowerFlange-1'] of the lower flange copy. The center of the circle is 1(0,H max ,0), center 2(0,H min ,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ; remove the faces whose normal vector y-component is -1 and whose x-component is greater than 0 from the selected faces, and the remaining faces are defined as the medium pressure action surface of the lower flange; where x A 、z A are the x and z coordinates of point A respectively;
[0056] The getClosest() method of the face collection object in the ABAQUS scripting language Python is used to find the face closest to point A' among all the faces of the upper flange copy instances['UpperFlange-1'], which is recorded as face6; face6 is split using the projection of the newly generated edge after the upper main sealing lip surface is split on face6;
[0057] Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['UpperFlange-1'] of the upper flange copy, and the center of the circle 1 (0, H max ,0), center 2(0,H min ,0), the radius is (x A' 2 +z A' 2 ) 1 / 2 +δ; remove the faces whose normal vector y-component is 1 and x-component is greater than 0 from the selected faces, and the remaining faces are defined as the medium pressure action surface of the upper flange; where x A' 、z A' are the x and z coordinates of point A' respectively.
[0058] The step of dividing the bolt and creating a preload surface includes:
[0059] Traverse all the faces in instances['Gasket-1'] of the gasket copy and select the upper and lower end faces of the gasket according to the direction of the external normal. Use the getCentroid() method of the surface object in the ABAQUS scripting language Python to read the coordinates of the center point of the upper end face, which is recorded as E, and read the coordinates of the center point of the lower end face, which is recorded as F.
[0060] The constructor DatumAxisByTwoPoint() in the ABAQUS scripting language Python is used to establish the bolt axis through two points. The coordinates of the two points are G(x E ,0,0) and H(x E ,y F / 2,0); where x E is the x-coordinate of point E, y F is the y-coordinate of point F;
[0061] The method function PartitionCellByPlanePointNormal() of the feature object in the ABAQUS scripting language Python is used to partition the bolt copy instances['Bolt-1'], with the partition reference point being point G and the reference vector being the bolt axis.
[0062] After the division, two bodies are obtained. The method function PartitionCellByPlanePointNormal() of the feature object in the ABAQUS scripting language Python is used to continue to divide the body closest to point F. The reference point is point H and the reference vector is the bolt axis.
[0063] The newly generated surface passing through point H after segmentation is defined as the preload surface.
[0064] The step of identifying the primary and secondary surfaces of the contact pair between the bolt and the gasket includes:
[0065] Step 901: traverse all faces of the gasket copy instances['Gasket-1'] and select faces whose outer normal vector y-component is greater than 0 according to the outer normal direction. These faces are the contact faces between the bolt and the gasket and are named 's_Int-2'.
[0066] Step 902: traverse all faces of the bolt copy instances['Bolt-1'] and select faces in the gasket whose outer normal vector y coordinate is less than 0 according to the outer normal direction. Remove the lower end face of the bolt, which is the main contact face between the bolt and the gasket and is named 'm_int-2'.
[0067] The step of identifying the primary and secondary surfaces of the contact pair between the sealing ring and the sealing channel includes:
[0068] The getClosest() method function of the face set object in the ABAQUS scripting language Python is used to find the face closest to point A among all the faces of the lower flange copy instances['LowerFlange-1'], which is recorded as face f1. The getFacesByFaceAngle() method function of the face set object in the ABAQUS scripting language Python is used to select a face set in the lower flange copy instances['LowerFlange-1'], named 'm_Int-3', the starting face selected is face f1, and the selected angle is 0°; 'm_Int-3' is defined as the main contact face between the lower flange and the sealing ring.
[0069] The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in instances['SealUE-1'] of the sealing ring copy. The center of the circle is 1(0,H min ,0), the center of the circle is 2(0,y A +(h1-h2) / 2+δ,0), with a radius of H max ; The selected face set is named 's_Int-3', which is defined as the contact face between the lower flange and the sealing ring; where y A is the y-coordinate of point A;
[0070] The getClosest() method function of the face collection object in the ABAQUS scripting language Python is used to find the face closest to point A' among all the faces of the upper flange copy instances['UpperFlange-1'], which is recorded as face f2. The getFacesByFaceAngle() method function of the face collection object in the ABAQUS scripting language Python is used to select a face collection in the upper flange copy instances['UpperFlange-1'], named 'm_Int-4', the starting face selected is face f2, and the selected angle is 0 degrees. 'm_Int-4' is defined as the main contact face between the upper flange and the sealing ring.
[0071] The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in instances['SealUE-1'] of the sealing ring copy. The center of the circle is 1(0,H max ,0), the center of the circle is 2(0,y A' -(h1-h2) / 2-δ,0), with a radius of H max; The selected face set is named 's_Int-4', which is defined as the contact face between the upper flange and the sealing ring; where y A' is the y-coordinate of point A';
[0072] The step of identifying the master and slave surfaces of the contact pair between the upper and lower flanges includes:
[0073] Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['UpperFlange-1'] of the upper flange copy, and the center of the circle 1 (0, H min ,0), the center of the circle is 2(0,y F -δ,0), with a radius of H max ; Remove the faces whose normal x-component is greater than 0 and y-component is greater than 0 from the selected faces, and name the remaining faces as a face set 's_Int-5', which is defined as the main contact surface between the upper flange and the lower flange; F is the y-coordinate of point F;
[0074] The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in instances['LowerFlange-1'] of the lower flange copy. The center of the circle is (0, δ, 0) and the center of the circle is (0, y I ,0), with a radius of H max , where y I is the y-coordinate of the center point I of the lower end face of the bolt; among the selected faces, those whose normal x-component is greater than 0 and whose y-component is less than 0 are removed, and the face set consisting of the remaining faces is named 'm_Int-5', which is defined as the contact face between the upper flange and the lower flange.
[0075] The identifying of the master and slave surfaces of the binding constraint between the bolt and the threaded hole of the lower flange includes:
[0076] Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['Bolt-1'] of the bolt copy. The center of the circle 1(x E ,δ,0), center 2(x E ,H min ,0), with a radius of r+δ; among the selected faces, the faces with a normal y component equal to -1 are removed, and the remaining faces are named 'm_Int-6', which is defined as the main binding surface between the bolt and the threaded hole of the lower flange; where xE is the x-coordinate of point E;
[0077] Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['LowerFlange-1'] of the lower flange copy. The center of the circle 1 (x E ,δ,0), center 2(x E ,H min ,0), with a radius of r+δ; among the selected faces, the faces with a normal y-component equal to 1 are removed, and the remaining faces are named 's_Int-6', which is defined as the binding face between the bolt and the threaded hole of the lower flange; where x E is the x-coordinate of point E.
[0078] Set up two implicit static analysis steps and apply boundaries and loads, including:
[0079] Use the StaticStep() constructor in the ABAQUS scripting language Python to create a static analysis step steps['Step-1']; use the DisplacementBC() constructor in the ABAQUS scripting language Python to apply the axial constraint; use the BoltLoad() constructor in the ABAQUS scripting language Python to apply the bolt preload;
[0080] Use the StaticStep() constructor in the ABAQUS scripting language Python to create a static analysis step steps['Step-2']; use the Pressure() constructor in the ABAQUS scripting language Python to apply medium pressure.
[0081] Establish contact properties and create 5 groups of contact pairs, including:
[0082] The constructor ContactProperty() in ABAQUS scripting language Python is used to create contact properties; the constructor TangentialBehavior() in ABAQUS scripting language Python is used to create tangential contact behavior properties; the constructor NormalBehavior() in ABAQUS scripting language Python is used to create normal contact behavior properties;
[0083] The constructor SurfaceToSurfaceContactStd() in the ABAQUS scripting language Python is used to create five face-to-face contact pairs, namely, bolt and gasket, gasket and upper flange, upper flange and lower flange, upper flange and sealing ring, and lower flange and sealing ring.
[0084] Establishing cyclic symmetry constraints, including: using the constructor CyclicSymmetry() in the ABAQUS scripting language Python to create cyclic symmetry constraints.
[0085] A binding constraint relationship between the bolt and the threaded hole of the lower flange is established, including: using the constructor Tie() in the ABAQUS scripting language Python to create a binding constraint relationship between the bolt and the threaded hole of the lower flange.
[0086] Grid the upper and lower flanges, sealing rings, bolts, and gaskets one by one, including:
[0087] The seedPartInstance() method of the assembly object in the ABAQUS scripting language Python is used to set the mesh size for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets;
[0088] The method function setMeshControls() of the assembly object in the ABAQUS scripting language Python is used to set the meshing algorithm for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets;
[0089] The method function setElementType() of the assembly object in the ABAQUS scripting language Python is used to set the mesh type for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets;
[0090] The generateMesh() method function of the assembly object in the ABAQUS scripting language Python is used to divide the mesh for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets.
[0091] Create analysis jobs and save CAE models, including:
[0092] Use the constructor Job() in the ABAQUS scripting language Python to create an analysis job;
[0093] The CAE model is saved using the saveAs() method function of the model object in the ABAQUS scripting language Python.
[0094] The beneficial effects of the present invention are as follows: the present invention only needs to provide preload force, medium pressure, operating temperature, a geometric model with an assembly relationship, and four basic geometric parameters. The program can automatically identify each component and assign material properties to it, screen out the boundaries and load application areas, identify the contact relationship between the components, calculate the balanced load of the pipeline end face, create the required reference points, surfaces, and axes, establish a standardized analysis model as required, and analyze the sealing, strength, and stiffness of the metal sealing flange structure under given working conditions, thereby greatly improving the analysis efficiency and model accuracy. BRIEF DESCRIPTION OF THE DRAWINGS
[0095] Figure 1 Illustration of the three-dimensional periodic symmetric geometric model of seal-flange-fastener;
[0096] Figure 2 It is a diagram of the master and slave surfaces of the cyclic symmetry boundary;
[0097] Figure 3 The diagram shows the sealing lip surface and the midpoint of its short side;
[0098] Figure 4 This is a diagram of the medium pressure action surface of the sealing ring;
[0099] Figure 5 This is a diagram of the medium pressure action surface of the lower flange;
[0100] Figure 6 This is a diagram of the medium pressure action surface of the upper flange;
[0101] Figure 7 The diagram shows the contact surfaces of the upper and lower flanges and the sealing ring;
[0102] Figure 8 The figure shows the contact surface of the upper and lower flanges and the sealing ring;
[0103] Figure 9 It is a diagram showing the binding constraint surface between the bolt and the lower flange;
[0104] Figure 10 Figure 2 is a diagram showing the application of loads. DETAILED DESCRIPTION
[0105] The geometric parameter identification and automatic modeling method of the metal UE sealing flange of the present invention comprises the following steps:
[0106] 1. Input geometric model parameters: number of bolts N bolt , bolt diameter r, sealing ring height h1, sealing ring limit platform height h2.
[0107] 2. Preset tolerance δ (smaller than the sealing ring size, recommended value is 0.001) and structural axial coordinate reference H max and Hmin (H max Much larger than the maximum axial coordinate of the structure, the recommended value is 9999; H max Much smaller than the minimum axial coordinate of the structure, the recommended value is -9999).
[0108] 3. Establish the geometric model of the metal UE sealing flange structure within a symmetrical cycle, as shown in the attached figure. Figure 1 As shown, it includes steps 301 to 302:
[0109] Step 301: Cut out a periodically symmetrical sector containing a bolt on the metal UE sealing flange. The periodically symmetrical sector includes five components: the upper and lower flanges, the sealing ring, the bolt, and the gasket. The five components belong to the same geometric model according to the assembly relationship.
[0110] In step 302, the geometric model adopts a cylindrical coordinate system, where the y-axis passes through the flange axis and is positive upward, the x-axis passes through the symmetry plane of the sector along the flange radial direction and is positive outward, and the positive direction of the z-axis is determined by the right-hand rule; the origin of the coordinate system is located axially at the butt joint surface of the upper and lower flanges containing the bolt holes, and if there is a gap between the butt joint surfaces, it is located at the butt joint surface of the lower flange.
[0111] 4. Read in five parts in sequence, identify each part, and modify the part name, including steps 401 to 405:
[0112] Step 401: traverse all faces in the geometric model and use the pointOn() member function of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face. The face with the minimum y-coordinate among the coordinates of the returned points is recorded. The component to which this face belongs is the lower flange, which is named "LowerFlange".
[0113] Step 402: Iterate over the faces of the remaining four components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face with the minimum x-coordinate among the coordinates of the returned points. The component to which this face belongs is the upper flange, which is named "UpperFlange".
[0114] Step 403: Iterate over the faces of the remaining three components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face to which the point with the maximum y-coordinate belongs. The component to which this face belongs is the bolt, which is named "Bolt".
[0115] Step 404: traverse the faces of the remaining two components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face to which the point with the maximum y-coordinate belongs. The component to which this face belongs is the gasket, which is named "Gasket".
[0116] In step 405, the remaining component is a sealing ring, which is named "SealUE".
[0117] 5. Create material and cross-section properties and assign cross-section properties to each component, including steps 501 to 503:
[0118] Step 501, using the constructor Material() in the ABAQUS scripting language Python to create material properties, and using the constructors Elastic() and Plastic() in the ABAQUS scripting language Python to create elastic and plastic properties of the material;
[0119] Step 502, using the constructor HomogeneousSolidSection() in the ABAQUS scripting language Python to create isotropic solid section properties;
[0120] Step 503: Use the constructor SectionAssignment() in the ABAQUS scripting language Python to assign section properties to each component.
[0121] 6. Create an assembly copy (Instance) for each Part, including steps 601 to 605:
[0122] Step 601, using the constructor Instance() in the ABAQUS scripting language Python, create an assembly copy for the parts['LowerFlange'] component and name it "LowerFlange-1";
[0123] Step 602: Use the constructor Instance() in the ABAQUS scripting language Python to create an assembly copy for the parts['UpperFlange'] component and name it "UpperFlange-1".
[0124] Step 603, using the constructor Instance() in the ABAQUS scripting language Python, create an assembly copy for the parts['Bolt'] component and name it "Bolt-1";
[0125] Step 604: Use the constructor Instance() in the ABAQUS scripting language Python to create an assembly copy for the parts['Gasket'] component and name it "Gasket-1";
[0126] Step 605: Use the constructor Instance() in the ABAQUS scripting language Python to create an assembly copy for the parts['SealUE'] component and name it "SealUE-1".
[0127] 7. Identify the master and slave faces of the cyclic symmetry boundary, as shown in the following figure. Figure 2 As shown, it includes steps 701 to 704:
[0128] Step 701: Calculate the cosine value of the angle between the cyclic symmetry boundary application surface and the model symmetry surface l = cos(π / N bolt );
[0129] Step 702: traverse all faces in the seal ring copy instances['SealUE-1'], use the face object method function getNormal() in the ABAQUS scripting language Python to read the normal vector n1 of each face, calculate the direction cosine l1 between the vector n1 and the symmetry face normal vector (0,0,1), if l1=l, define the face to which n1 belongs as the main face of the seal ring cyclic symmetry boundary, if l1=-l, define the face to which n1 belongs as the secondary face of the seal ring cyclic symmetry boundary;
[0130] Step 703: traverse all faces in instances['LowerFlange-1'] of the lower flange copy, use the getNormal() method of the face object in the ABAQUS scripting language Python to read the normal vector n2 of each face, calculate the direction cosine l2 between vector n2 and the normal vector (0,0,1) of the symmetry face, and if l2 = l, define the face to which n2 belongs as the master face of the lower flange cyclic symmetry boundary. If l2 = -l, define the face to which n2 belongs as the slave face of the lower flange cyclic symmetry boundary.
[0131] Step 704: traverse all faces in instances['UpperFlange-1'] of the upper flange copy, use the getNormal() method of the face object in the ABAQUS scripting language Python to read the normal vector n3 of each face, calculate the direction cosine l3 between the vector n3 and the normal vector (0,0,1) of the symmetry face, and if l3 = l, define the face to which n3 belongs as the master face of the upper flange cyclic symmetry boundary. If l3 = -l, define the face to which n3 belongs as the slave face of the upper flange cyclic symmetry boundary.
[0132] 8. Identify the medium pressure acting surface of the sealing ring, including steps 801 to 809:
[0133] Step 801, traverse all the faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the minimum y-axis coordinate as P1, and record the face to which P1 belongs as face1; eliminate face1, traverse all the remaining faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the minimum y-axis coordinate as P2, and record the face to which P2 belongs as face2; compare the x-axis coordinates of P1 and P2, and the face with the smaller coordinate value is defined as the lower main sealing lip surface, and the face with the larger coordinate value is defined as the lower auxiliary sealing lip surface; as shown in the attached figure Figure 3 As shown;
[0134] Step 802, traverse all the faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the maximum y-axis coordinate as P3, and record the face to which P3 belongs as face3; eliminate face3, traverse all the remaining faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the maximum y-axis coordinate as P4, and record the face to which P4 belongs as face4; compare the x-axis coordinates of P3 and P4, and the face where the point with the smaller coordinate value is located is defined as the upper main sealing lip surface, and the face where the point with the larger coordinate value is located is defined as the upper secondary sealing lip surface; as shown in the attached figure Figure 3 As shown;
[0135] Step 803: Use the getSize() method of the edge object in the ABAQUS scripting language Python to find the two shorter edges of the lower main sealing lip surface, and use the midpoints of the two short edges, namely, points A and B, to divide the lower main sealing lip surface into two surfaces; use the getSize() method of the edge object in the ABAQUS scripting language Python to find the two shorter edges of the lower auxiliary sealing lip surface, and use the midpoints of the two short edges, namely, points C and D, to divide the lower auxiliary sealing lip surface into two surfaces; as shown in the attached figure. Figure 3 As shown;
[0136] Step 804: Use the getSize() method of the edge object in the ABAQUS scripting language Python to find the two shorter edges of the upper main sealing lip surface, and use the midpoints of the two short edges, namely, points A' and B', to divide the upper main sealing lip surface into two surfaces; use the getSize() method of the edge object in the ABAQUS scripting language Python to find the two shorter edges of the upper auxiliary sealing lip surface, and use the midpoints of the two short edges, namely, points C' and D', to divide the upper auxiliary sealing lip surface into two surfaces; as shown in the attached figure. Figure 3 As shown;
[0137] Step 805: Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['SealUE-1'] of the sealing ring copy. The center of the circle is 1 (0, y A -δ,0), center 2(0,(y A +y A' ) / 2,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ, select two faces, named face a and face b; where x A 、y A 、z A are the x, y, and z coordinates of point A, respectively. A' is the y-coordinate of point A';
[0138] Step 806: Find the face with the lower axial position between face a and face b, and record it as face a. The face with the higher axial position is recorded as face b. Use the getAdjacentFaces() method of the face collection object in the ABAQUS scripting language Python to find the four faces adjacent to face b. Remove face a and two periodic symmetric faces from these four faces, and the remaining face is recorded as face c.
[0139] Step 807: Use the getFacesByFaceAngle() method of the face set object in the ABAQUS scripting language Python to select a set of faces, which is recorded as the c' face set. The starting face is the c face, and the angle is 20 degrees.
[0140] Step 808: Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['SealUE-1'] of the sealing ring copy. The center of the circle 1 is (0, y A' +δ,0), the center of circle 2 is (0,(yA +y A' ) / 2,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ, select two faces, record them as face d and face e; where x A 、y A 、z A are the x, y, and z coordinates of point A, respectively. A' is the y-coordinate of point A';
[0141] Step 809: The selected surfaces a, b, c', d, and e are defined as the medium pressure action surfaces of the sealing ring, as shown in the attached figure. Figure 4 shown.
[0142] 9. Identify the medium pressure action surface of the upper and lower flanges, as shown in the attached Figure 5 and 6 As shown, it includes steps 901 to 904:
[0143] Step 901: Use the getClosest() method of the face collection object in the ABAQUS scripting language Python to find the face closest to point A among all faces of the lower flange copy instances['LowerFlange-1'], which is recorded as face5; and use the projection of the newly generated edge after the lower main sealing lip surface is split in step 503 on face5 to split face5;
[0144] Step 902, use the method function getByBoundingCylinder() of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['LowerFlange-1'] of the lower flange copy, and select the center of the circle 1 (0, H max ,0), center 2(0,H min ,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ; remove the faces whose normal vector y-component is -1 and whose x-component is greater than 0 from the selected faces, and the remaining faces are defined as the medium pressure action surface of the lower flange; where x A 、z A are the x and z coordinates of point A respectively;
[0145] In step 903, the getClosest() method of the face collection object in the ABAQUS scripting language Python is used to find the face closest to point A' among all faces of the upper flange copy instances['UpperFlange-1'], which is recorded as face6. Face6 is segmented using the projection of the edge newly generated after the upper main sealing lip surface is segmented in step 504.
[0146] Step 904, use the method function getByBoundingCylinder() of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['UpperFlange-1'] of the upper flange copy, and select the center of the circle 1 (0, H max ,0), center 2(0,H min ,0), the radius is (x A' 2 +z A' 2 ) 1 / 2 +δ; remove the faces whose normal vector y-component is 1 and x-component is greater than 0 from the selected faces, and the remaining faces are defined as the medium pressure action surface of the upper flange; where x A' 、z A' are the x and z coordinates of point A' respectively;
[0147] 10. Cut the bolts and create the preload surface, including steps 1001 to 1005:
[0148] Step 1001: traverse all faces in instances['Gasket-1'] of the gasket copy, select the upper and lower end faces of the gasket according to the direction of the external normal, and use the getCentroid() method of the surface object in the ABAQUS scripting language Python to read the coordinates of the center point of the upper end face, which is recorded as E, and read the coordinates of the center point of the lower end face, which is recorded as F;
[0149] Step 1002: Use the constructor DatumAxisByTwoPoint() in the ABAQUS scripting language Python to establish the bolt axis through two points. The coordinates of the two points are G(x E ,0,0) and H(x E ,y F / 2,0); where x E is the x-coordinate of point E, y F is the y-coordinate of point F;
[0150] Step 1003, using the method function PartitionCellByPlanePointNormal() of the feature object in the ABAQUS scripting language Python to partition the bolt copy instances['Bolt-1'], with the partition reference point being point G and the reference vector being the bolt axis;
[0151] Step 1004: After the division, two bodies are obtained. The method function PartitionCellByPlanePointNormal() of the feature object in the ABAQUS scripting language Python is used to continue to divide the body closest to point F, with the reference point being point H and the reference vector being the bolt axis.
[0152] Step 1005: The newly generated surface passing through point H after segmentation is defined as the preload force loading surface.
[0153] 11. Identify the master and slave surfaces of the contact pair between the bolt and the gasket, including steps 1101 to 1102:
[0154] Step 1101: traverse all faces of the gasket copy instances['Gasket-1'] and select faces whose outer normal vector y-component is greater than 0 according to the outer normal direction. These faces are the contact faces between the bolt and the gasket and are named 's_Int-2'.
[0155] Step 1102 traverses all faces of the bolt copy instances['Bolt-1'] and selects faces in the gasket whose outer normal vector y coordinate is less than 0 according to the outer normal direction. The lower end face of the bolt is removed, which is the main contact face between the bolt and the gasket and is named 'm_int-2'.
[0156] 12. Identify the main and secondary contact surfaces between the sealing ring and the sealing channel, as shown in the attached figure. Figure 7 and 8 The process shown includes steps 1201 to 1203:
[0157] Step 1201: Use the getClosest() method of the face collection object in the ABAQUS scripting language Python to find the face closest to point A among all faces of the lower flange copy instances['LowerFlange-1'], and record it as face f1; use the getFacesByFaceAngle() method of the face collection object in the ABAQUS scripting language Python to select a face collection in the lower flange copy instances['LowerFlange-1'], name it 'm_Int-3', select the f1 face as the starting face, and select the angle as 0 degrees; 'm_Int-3' is defined as the main contact face between the lower flange and the sealing ring;
[0158] Step 1202, use the method function getByBoundingCylinder() of the surface collection object in the ABAQUS scripting language Python to select the surface in the seal ring copy instances['SealUE-1'], and the center of the circle 1 (0, H min ,0), the center of the circle is 2(0,y A +(h1-h2) / 2+δ,0), with a radius of H max ; The selected face set is named 's_Int-3', which is defined as the contact face between the lower flange and the sealing ring; where y A is the y-coordinate of point A;
[0159] In step 1203, the getClosest() method function of the face set object in the ABAQUS scripting language Python is used to find the face closest to point A' among all faces of the upper flange copy instances['UpperFlange-1'], which is recorded as face f2. The getFacesByFaceAngle() method function of the face set object in the ABAQUS scripting language Python is used to select a face set in the upper flange copy instances['UpperFlange-1'], named 'm_Int-4', with face f2 as the starting face and an angle of 0 degrees. 'm_Int-4' is defined as the main contact face between the upper flange and the sealing ring.
[0160] Step 1204, use the method function getByBoundingCylinder() of the surface collection object in the ABAQUS scripting language Python to select the surface in the seal ring copy instances['SealUE-1'], and the center of the circle 1 (0, H max ,0), the center of the circle is 2(0,y A' -(h1-h2) / 2-δ,0), with a radius of H max ; The selected face set is named 's_Int-4', which is defined as the contact face between the upper flange and the sealing ring; where y A' is the y-coordinate of point A'.
[0161] 13. Identify the master and slave surfaces of the contact pair between the upper and lower flanges, including steps 1301 to 1302:
[0162] Step 1301, use the method function getByBoundingCylinder() of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['UpperFlange-1'] of the upper flange copy, and select the center of the circle 1 (0, Hmin ,0), the center of the circle is 2(0,y F -δ,0), with a radius of H max ; Remove the faces whose normal x-component is greater than 0 and y-component is greater than 0 from the selected faces, and name the remaining faces as a face set 's_Int-5', which is defined as the main contact surface between the upper flange and the lower flange; F is the y-coordinate of point F;
[0163] Step 1302, use the method function getByBoundingCylinder() of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['LowerFlange-1'] of the lower flange copy, and select the center of circle 1 (0, δ, 0) and the center of circle 2 (0, y I ,0), with a radius of H max , where y I is the y-coordinate of the center point I of the lower end face of the bolt; among the selected faces, those whose normal x-component is greater than 0 and whose y-component is less than 0 are removed, and the face set consisting of the remaining faces is named 'm_Int-5', which is defined as the contact face between the upper flange and the lower flange.
[0164] 14. Identify the master and slave faces of the binding constraint between the bolt and the threaded hole of the lower flange, including steps 1401 to 1402:
[0165] Step 1401, use the method function getByBoundingCylinder() of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['Bolt-1'] of the bolt copy, and the center 1 (x E ,δ,0), center 2(x E ,H min ,0), with a radius of r+δ; among the selected faces, the faces with a normal y component equal to -1 are removed, and the remaining faces are named 'm_Int-6', which is defined as the main binding surface between the bolt and the threaded hole of the lower flange; where x E is the x-coordinate of point E;
[0166] Step 1402, use the method function getByBoundingCylinder() of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['LowerFlange-1'] of the lower flange copy, and the center of the circle 1 (x E ,δ,0), center 2(x E ,H min,0), with a radius of r+δ; among the selected faces, the faces with a normal y-component equal to 1 are removed, and the remaining faces are named 's_Int-6', which is defined as the binding face between the bolt and the threaded hole of the lower flange; where x E is the x-coordinate of point E, as shown in the attached Figure 9 shown.
[0167] 15. Create two implicit static analysis steps and apply boundaries and loads, as shown in the attached Figure 10 As shown, it includes steps 1501 to 1502:
[0168] In step 1501, a static analysis step steps['Step-1'] is created using the StaticStep() constructor in the ABAQUS scripting language Python; an axial constraint is applied using the DisplacementBC() constructor in the ABAQUS scripting language Python; and a bolt preload is applied using the BoltLoad() constructor in the ABAQUS scripting language Python.
[0169] In step 1502, a static analysis step steps['Step-2'] is created using the StaticStep() constructor in the ABAQUS scripting language Python; and a medium pressure is applied using the Pressure() constructor in the ABAQUS scripting language Python.
[0170] 16. Create contact properties and create 5 contact pairs, including steps 1601 to 1602:
[0171] Step 1601, using the constructor ContactProperty() in the ABAQUS scripting language Python to create contact properties; using the constructor TangentialBehavior() in the ABAQUS scripting language Python to create tangential contact behavior properties; using the constructor NormalBehavior() in the ABAQUS scripting language Python to create normal contact behavior properties;
[0172] In step 1602, the constructor SurfaceToSurfaceContactStd() in the ABAQUS scripting language Python is used to create five face-to-face contact pairs, namely, the bolt and the gasket, the gasket and the upper flange, the upper flange and the lower flange, the upper flange and the sealing ring, and the lower flange and the sealing ring.
[0173] 17. Use the CyclicSymmetry() constructor in the ABAQUS scripting language Python to create cyclic symmetry constraints.
[0174] 18. Use the Tie() constructor in the ABAQUS scripting language Python to create a binding constraint relationship between the bolt and the threaded hole of the lower flange.
[0175] 19. Divide the meshes of the upper and lower flanges, sealing rings, bolts, and gaskets one by one, including steps 1901 to 1904:
[0176] Step 1901, using the assembly object method function seedPartInstance() in the ABAQUS scripting language Python, set the mesh size for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets;
[0177] Step 1902 , using the method function setMeshControls() of the assembly object in the ABAQUS scripting language Python, set the meshing algorithm for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets;
[0178] Step 1903, using the assembly object method function setElementType() in the ABAQUS scripting language Python, set the mesh type for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets;
[0179] In step 1904, the method function generateMesh() of the assembly object in the ABAQUS scripting language Python is used to generate a mesh for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets.
[0180] 20. Create an analysis job and save the CAE model, including steps 2001 to 2002:
[0181] Step 2001, using the constructor Job() in the ABAQUS scripting language Python to create an analysis job;
[0182] Step 2002: Use the saveAs() method function of the model object in the ABAQUS scripting language Python to save the CAE model.
Claims
1. Metal UE sealing flange geometric parameter identification and automatic modeling method, characterized by include: Obtain basic geometric model parameters and preset auxiliary parameters; Establish a geometric model within a symmetrical period of the metal UE sealing flange structure; Read the five components of the metal UE sealing flange in sequence, identify each component and modify the component name; Establish material and section properties and specify section properties for each component; Create a copy of the assembly for each part; Identify the master and slave surfaces of the cyclic symmetry boundary, identify the medium pressure action surface of the sealing ring; identify the medium pressure action surface of the upper and lower flanges; Cut the bolts to create a preload surface; Identify the master and slave surfaces of the contact pair between the bolt and the gasket; identify the master and slave surfaces of the contact pair between the sealing ring and the sealing channel; identify the master and slave surfaces of the contact pair between the upper and lower flanges; identify the master and slave surfaces of the binding constraint between the bolt and the threaded hole of the lower flange; Establish two implicit static analysis steps and apply boundaries and loads; Establish contact properties and create 5 contact pairs, namely, bolt and gasket, gasket and upper flange, upper flange and lower flange, upper flange and sealing ring, and lower flange and sealing ring; Establish periodic symmetry constraints; Establish a binding constraint relationship between the bolts and the threaded holes of the lower flange; Divide the grid for the upper and lower flanges, sealing rings, bolts, and gaskets one by one; Create analysis jobs, submit calculations and save CAE models; The geometric model parameters include: the number of bolts N bolt , bolt diameter r, sealing ring height h1, sealing ring limiter height h2; program auxiliary parameters include: tolerance δ, structural axial coordinate reference H max and H min ; The establishment of a geometric model within a symmetrical period of the metal UE sealing flange structure includes: A periodically symmetrical sector containing a bolt is cut out of the metal UE sealing flange. The periodically symmetrical sector contains five components: the upper and lower flanges, the sealing ring, the bolt, and the gasket. The five components belong to the same geometric model according to the assembly relationship. The geometric model uses a cylindrical coordinate system, where the y-axis passes through the flange axis and is positive upward, the x-axis passes through the symmetry plane of the sector along the flange radial direction and is positive outward, and the positive direction of the z-axis is determined by the right-hand rule; the origin of the coordinate system is axially located at the butt joint surface of the upper and lower flanges containing the bolt holes. If there is a gap between the butt joint surfaces, it is located at the butt joint surface of the lower flange.
2. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 1, characterized in that: The process of sequentially reading in the five components of the metal UE sealing flange, identifying each component and modifying the component name includes: Traverse all the faces in the geometric model and use the pointOn() member function of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face with the minimum y-coordinate among the coordinates of the returned points. The component to which this face belongs is the lower flange, which is named "LowerFlange"; Traverse the faces of the remaining four components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face with the minimum x-coordinate among the coordinates of the returned points. The component to which this face belongs is the upper flange, which is named "UpperFlange". Traverse the faces of the remaining three components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face to which the point with the maximum y-coordinate belongs. The component to which this face belongs is the bolt, which is named "Bolt". Traverse the faces of the remaining two components and use the pointOn() member function of the surface object in the ABAQUS scripting language Python to return the coordinates of any point on each face. Record the face to which the point with the maximum y-coordinate belongs. The component to which this face belongs is the gasket, which is named "Gasket". The remaining component is the sealing ring, which is named "SealUE".
3. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 2, characterized in that: The process of establishing material and cross-section properties and specifying cross-section properties for each component includes: Use the Material() constructor in the ABAQUS scripting language Python to create material properties, and use the Elastic() and Plastic() constructors in the ABAQUS scripting language Python to create the elastic and plastic properties of the material; The constructor HomogeneousSolidSection() in the ABAQUS scripting language Python is used to create isotropic solid section properties; The constructor SectionAssignment() in the ABAQUS scripting language Python is used to assign section properties to each component.
4. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 3 is characterized in that: Creating an assembly copy for each component includes: Use the Instance() constructor in the ABAQUS scripting language Python to create an assembly copy for the parts['LowerFlange'] component and name it "LowerFlange-1"; Use the constructor Instance() in the ABAQUS scripting language Python to create an assembly copy for the parts['UpperFlange'] component and name it "UpperFlange-1"; Use the constructor Instance() in the ABAQUS scripting language Python to create an assembly copy for the parts['Bolt'] component and name it "Bolt-1"; Use the Instance() constructor in the ABAQUS scripting language Python to create an assembly copy for the parts['Gasket'] component and name it "Gasket-1"; Use the constructor Instance() in the ABAQUS scripting language Python to create an assembly copy for the parts['SealUE'] component and name it "SealUE-1".
5. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 4 is characterized in that: The step of identifying the master and slave surfaces of the cyclically symmetric boundary includes: Calculate the cosine value of the angle between the cyclic symmetry boundary application surface and the model symmetry surface l=cos(π / N bolt ); Traverse all the faces in the sealing ring copy instances['SealUE-1'], use the face object method function getNormal() in the ABAQUS scripting language Python to read the normal vector n1 of each face, calculate the direction cosine l1 between the vector n1 and the symmetry face normal vector (0,0,1), if l1=l, define the face to which n1 belongs as the main face of the sealing ring cyclic symmetry boundary, if l1=-l, define the face to which n1 belongs as the slave face of the sealing ring cyclic symmetry boundary; Traverse all faces in instances['LowerFlange-1'] of the lower flange copy, use the getNormal() method of the face object in the ABAQUS scripting language Python to read the normal vector n2 of each face, calculate the direction cosine l2 between the vector n2 and the normal vector (0,0,1) of the symmetry face, if l2=l, define the face to which n2 belongs as the master face of the lower flange cyclic symmetry boundary, if l2=-l, define the face to which n2 belongs as the slave face of the lower flange cyclic symmetry boundary; Traverse all faces in the upper flange copy instances['UpperFlange-1'], use the face object method function getNormal() in the ABAQUS scripting language Python to read the normal vector n3 of each face, calculate the direction cosine l3 between the vector n3 and the symmetry face normal vector (0,0,1), if l3=l, define the face to which n3 belongs as the master face of the upper flange cyclic symmetry boundary, if l3=-l, define the face to which n3 belongs as the slave face of the upper flange cyclic symmetry boundary.
6. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 5, characterized in that: The identifying the medium pressure acting surface of the sealing ring includes: Traverse all the faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the minimum y-axis coordinate as P1, and record the face to which P1 belongs as face1; eliminate face1, traverse all the remaining faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the minimum y-axis coordinate as P2, and record the face to which P2 belongs as face2; compare the x-axis coordinates of P1 and P2, and the face where the point with the smaller coordinate value is located is defined as the lower main sealing lip surface, and the face where the point with the larger coordinate value is located is defined as the lower secondary sealing lip surface; Traverse all the faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the maximum y-coordinate as P3, and record the face to which P3 belongs as face3; eliminate face3, traverse all the remaining faces in the sealing ring copy instances['SealUE-1'], use the member function pointOn() of the face object in the ABAQUS scripting language Python to return the coordinates of any point on each face, record the point with the maximum y-coordinate as P4, and record the face to which P4 belongs as face4; compare the x-coordinates of P3 and P4, the face where the point with the smaller coordinate value is located is defined as the upper main sealing lip surface, and the face where the point with the larger coordinate value is located is defined as the upper secondary sealing lip surface; The getSize() method function of the edge object in the ABAQUS scripting language Python is used to find the two shorter edges of the lower main sealing lip surface, and the midpoints of the two short edges, namely points A and B, are used to divide the lower main sealing lip surface into two surfaces; the getSize() method function of the edge object in the ABAQUS scripting language Python is used to find the two shorter edges of the lower auxiliary sealing lip surface, and the midpoints of the two short edges, namely points C and D, are used to divide the lower auxiliary sealing lip surface into two surfaces; The getSize() method function of the edge object in the ABAQUS scripting language Python is used to find the two shorter edges of the upper main sealing lip surface, and the midpoints of the two short edges, namely points A' and B', are used to divide the upper main sealing lip surface into two surfaces; the getSize() method function of the edge object in the ABAQUS scripting language Python is used to find the two shorter edges of the upper auxiliary sealing lip surface, and the midpoints of the two short edges, namely points C' and D', are used to divide the upper auxiliary sealing lip surface into two surfaces; The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in the seal ring copy instances['SealUE-1'], and the center of the circle is 1(0,y A -δ,0), center 2(0,(y A +y A' ) / 2,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ, select two faces, named face a and face b; where x A 、y A 、z A are the x, y, and z coordinates of point A, respectively. A' is the y-coordinate of point A'; Find the face with the lower axial position among faces a and b, record it as face a, and the face with the higher axial position as face b; use the getAdjacentFaces() method of the face collection object in the ABAQUS scripting language Python to find the four faces adjacent to face b, remove face a and two periodic symmetry faces from these four faces, and record the remaining face as face c; Use the getFacesByFaceAngle() method of the face set object in the ABAQUS scripting language Python to select a group of faces, which is recorded as the c' face set. The starting face is the c face, and the selection angle is 20°. The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in instances['SealUE-1'] of the sealing ring copy. The center of the circle 1 is (0, y A' +δ,0), the center of circle 2 is (0,(y A +y A' ) / 2,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ, select two faces, record them as face d and face e; where x A 、y A 、z A are the x, y, and z coordinates of point A, respectively. A' is the y-coordinate of point A'; The selected surfaces a, b, c', d, and e are defined as the medium pressure action surfaces of the sealing ring.
7. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 6, characterized in that: The identifying of the medium pressure action surfaces of the upper and lower flanges includes: The getClosest() method of the face collection object in the ABAQUS scripting language Python is used to find the face closest to point A among all the faces of the lower flange copy instances['LowerFlange-1'], which is recorded as face5; face5 is split using the projection of the newly generated edge after the lower main sealing lip surface is split on face5; Step 1: Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['LowerFlange-1'] of the lower flange copy. The center of the circle is 1(0,H max ,0), center 2(0,H min ,0), the radius is (x A 2 +z A 2 ) 1 / 2 +δ; remove the faces whose normal vector y-component is -1 and whose x-component is greater than 0 from the selected faces, and the remaining faces are defined as the medium pressure action surface of the lower flange; where x A 、z A are the x and z coordinates of point A respectively; The getClosest() method of the face collection object in the ABAQUS scripting language Python is used to find the face closest to point A' among all the faces of the upper flange copy instances['UpperFlange-1'], which is recorded as face6; face6 is split using the projection of the newly generated edge after the upper main sealing lip surface is split on face6; Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['UpperFlange-1'] of the upper flange copy, and the center of the circle 1 (0, H max ,0), center 2(0,H min ,0), the radius is (x A' 2 +z A' 2 ) 1 / 2 +δ; remove the faces whose normal vector y-component is 1 and x-component is greater than 0 from the selected faces, and the remaining faces are defined as the medium pressure action surface of the upper flange; where x A' 、z A' are the x and z coordinates of point A' respectively.
8. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 7, characterized in that: The step of dividing the bolt and creating a preload surface includes: Traverse all the faces in instances['Gasket-1'] of the gasket copy and select the upper and lower end faces of the gasket according to the direction of the external normal. Use the getCentroid() method of the surface object in the ABAQUS scripting language Python to read the coordinates of the center point of the upper end face, which is recorded as E, and read the coordinates of the center point of the lower end face, which is recorded as F. The constructor DatumAxisByTwoPoint() in the ABAQUS scripting language Python is used to establish the bolt axis through two points. The coordinates of the two points are G(x E ,0,0) and H(x E ,y F / 2,0); where x E is the x-coordinate of point E, y F is the y-coordinate of point F; The method function PartitionCellByPlanePointNormal() of the feature object in the ABAQUS scripting language Python is used to partition the bolt copy instances['Bolt-1'], with the partition reference point being point G and the reference vector being the bolt axis. After the division, two bodies are obtained. The method function PartitionCellByPlanePointNormal() of the feature object in the ABAQUS scripting language Python is used to continue to divide the body closest to point F. The reference point is point H and the reference vector is the bolt axis. The newly generated surface passing through point H after segmentation is defined as the preload surface.
9. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 8, characterized in that: The step of identifying the primary and secondary surfaces of the contact pair between the bolt and the gasket includes: Step 901: traverse all faces of the gasket copy instances['Gasket-1'] and select faces whose outer normal vector y-component is greater than 0 according to the outer normal direction. These faces are the contact faces between the bolt and the gasket and are named 's_Int-2'. Step 902: traverse all faces of the bolt copy instances['Bolt-1'] and select faces in the gasket whose outer normal vector y coordinate is less than 0 according to the outer normal direction. Remove the lower end face of the bolt, which is the main contact face between the bolt and the gasket and is named 'm_int-2'.
10. The method for geometric parameter identification and automatic modeling of a metal UE sealing flange according to claim 9, characterized in that: The step of identifying the primary and secondary surfaces of the contact pair between the sealing ring and the sealing channel includes: The getClosest() method function of the face set object in the ABAQUS scripting language Python is used to find the face closest to point A among all the faces of the lower flange copy instances['LowerFlange-1'], which is recorded as face f1. The getFacesByFaceAngle() method function of the face set object in the ABAQUS scripting language Python is used to select a face set in the lower flange copy instances['LowerFlange-1'], named 'm_Int-3', the starting face selected is face f1, and the selected angle is 0°; 'm_Int-3' is defined as the main contact face between the lower flange and the sealing ring. The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in instances['SealUE-1'] of the sealing ring copy. The center of the circle is 1(0,H min ,0), the center of the circle is 2(0,y A +(h1-h2) / 2+δ,0), with a radius of H max ; The selected face set is named 's_Int-3', which is defined as the contact face between the lower flange and the sealing ring; where y A is the y-coordinate of point A; The getClosest() method function of the face collection object in the ABAQUS scripting language Python is used to find the face closest to point A' among all the faces of the upper flange copy instances['UpperFlange-1'], which is recorded as face f2. The getFacesByFaceAngle() method function of the face collection object in the ABAQUS scripting language Python is used to select a face collection in the upper flange copy instances['UpperFlange-1'], named 'm_Int-4', the starting face selected is face f2, and the selected angle is 0 degrees. 'm_Int-4' is defined as the main contact face between the upper flange and the sealing ring. The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in instances['SealUE-1'] of the sealing ring copy. The center of the circle is 1(0,H max ,0), the center of the circle is 2(0,y A' -(h1-h2) / 2-δ,0), with a radius of H max ; The selected face set is named 's_Int-4', which is defined as the contact face between the upper flange and the sealing ring; where y A' is the y-coordinate of point A'.
11. The method for geometric parameter identification and automatic modeling of a metal UE sealing flange according to claim 10, characterized in that: The step of identifying the master and slave surfaces of the contact pair between the upper and lower flanges includes: Use the method function getByBoundingCyl inder() of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['UpperFlange-1'] of the upper flange copy, and the center of the circle 1 (0, H min ,0), the center of the circle is 2(0,y F -δ,0), with a radius of H max ; Remove the faces whose normal x-component is greater than 0 and y-component is greater than 0 from the selected faces, and name the remaining faces as a face set 's_Int-5', which is defined as the main contact surface between the upper flange and the lower flange; F is the y-coordinate of point F; The getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python is used to select the surface in instances['LowerFlange-1'] of the lower flange copy. The center of the circle is (0, δ, 0) and the center of the circle is (0, y I ,0), with a radius of H max , where y I is the y-coordinate of the center point I of the lower end face of the bolt; among the selected faces, those whose normal x-component is greater than 0 and whose y-component is less than 0 are removed, and the face set consisting of the remaining faces is named 'm_Int-5', which is defined as the contact face between the upper flange and the lower flange.
12. The method for geometric parameter identification and automated modeling of a metal UE sealing flange according to claim 1, characterized in that: The identifying of the master and slave surfaces of the binding constraint between the bolt and the threaded hole of the lower flange includes: Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['Bolt-1'] of the bolt copy. The center of the circle 1(x E ,δ,0), center 2(x E ,H min ,0), with a radius of r+δ; among the selected faces, the faces with a normal y component equal to -1 are removed, and the remaining faces are named 'm_Int-6', which is defined as the main binding surface between the bolt and the threaded hole of the lower flange; where x E is the x-coordinate of point E; Use the getByBoundingCylinder() method of the surface collection object in the ABAQUS scripting language Python to select the surface in instances['LowerFlange-1'] of the lower flange copy. The center of the circle 1 (x E ,δ,0), center 2(x E ,H min ,0), with a radius of r+δ; among the selected faces, the faces with a normal y-component equal to 1 are removed, and the remaining faces are named 's_Int-6', which is defined as the binding face between the bolt and the threaded hole of the lower flange; where x E is the x-coordinate of point E.
13. The method for geometric parameter identification and automatic modeling of a metal UE sealing flange according to claim 12, characterized in that: Set up two implicit static analysis steps and apply boundaries and loads, including: Use the StaticStep() constructor in the ABAQUS scripting language Python to create a static analysis step steps['Step-1']; use the DisplacementBC() constructor in the ABAQUS scripting language Python to apply the axial constraint; use the BoltLoad() constructor in the ABAQUS scripting language Python to apply the bolt preload; Use the StaticStep() constructor in the ABAQUS scripting language Python to create a static analysis step steps['Step-2']; use the Pressure() constructor in the ABAQUS scripting language Python to apply medium pressure.
14. The method for geometric parameter identification and automatic modeling of a metal UE sealing flange according to claim 13, characterized in that: Establish contact properties and create 5 groups of contact pairs, including: The constructor ContactProperty() in ABAQUS scripting language Python is used to create contact properties; the constructor TangentialBehavior() in ABAQUS scripting language Python is used to create tangential contact behavior properties; the constructor NormalBehavior() in ABAQUS scripting language Python is used to create normal contact behavior properties; The constructor SurfaceToSurfaceContactStd() in the ABAQUS scripting language Python is used to create five face-to-face contact pairs, namely, bolt and gasket, gasket and upper flange, upper flange and lower flange, upper flange and sealing ring, and lower flange and sealing ring.
15. The method for geometric parameter identification and automatic modeling of a metal UE sealing flange according to claim 14, characterized in that: Establishing cyclic symmetry constraints, including: using the constructor CyclicSymmetry() in the ABAQUS scripting language Python to create cyclic symmetry constraints.
16. The method for geometric parameter identification and automatic modeling of a metal UE sealing flange according to claim 15, characterized in that: A binding constraint relationship between the bolt and the threaded hole of the lower flange is established, including: using the constructor Tie() in the ABAQUS scripting language Python to create a binding constraint relationship between the bolt and the threaded hole of the lower flange.
17. The method for geometric parameter identification and automatic modeling of a metal UE sealing flange according to claim 16, characterized in that: Grid the upper and lower flanges, sealing rings, bolts, and gaskets one by one, including: The seedPartInstance() method of the assembly object in the ABAQUS scripting language Python is used to set the mesh size for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets; The method function setMeshControls() of the assembly object in the ABAQUS scripting language Python is used to set the meshing algorithm for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets; The method function setElementType() of the assembly object in the ABAQUS scripting language Python is used to set the mesh type for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets; The generateMesh() method function of the assembly object in the ABAQUS scripting language Python is used to divide the mesh for each assembly copy, including the upper and lower flanges, sealing rings, bolts, and gaskets.
18. The method for geometric parameter identification and automatic modeling of a metal UE sealing flange according to claim 17, characterized in that: Create analysis jobs and save CAE models, including: Use the constructor Job() in the ABAQUS scripting language Python to create an analysis job; The CAE model is saved using the saveAs() method function of the model object in the ABAQUS scripting language Python.
Citation Information
Patent Citations
Automobile body attachment point IPI response analysis CAE automatic modeling method
CN113297673A
Adjustable template jig and related methods
US20120179427A1