A system and implementation method for S3D high-energy pipeline damage impact analysis
Through the S3D high-energy pipeline damage impact analysis system, the impact space is automatically identified and generated, and the problem of inefficient analysis after high-energy pipeline breakage is solved, and efficient and accurate safety analysis and result export are achieved.
Patent Information
- Application Number
- CN202111315419.2
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2021-11-08
- Publication Date
- 2025-08-08
- Estimated Expiration
- 2041-11-08
AI Technical Summary
After the high-energy pipeline breaks, it is difficult for the prior art to quickly and accurately analyze its impact range and identify affected objects, resulting in inefficient safety analysis.
It provides an S3D high-energy pipeline damage impact analysis system, including a high-energy pipeline input module, a path analysis module, an impact space generation module and an impact analysis module, which automatically identifies and generates an impact space, and recognizes the affected objects through collision inspection and records them in the database, and finally generates a report.
It realizes automation of high-energy pipeline fracture impact analysis, improves analysis efficiency and accuracy, reduces human interference, supports single and multiple pipeline analysis, and the results can be automatically exported, improving user experience.
Smart Images

Figure CN113946926B_ABST
Abstract
Description
Technical Field
[0001] The present invention relates to the field related to high-energy pipeline damage impact analysis, and specifically to an S3D high-energy pipeline damage impact analysis system and implementation method. Background Art
[0002] S3D (Smart 3D) is a widely used 3D design software. As an integrated, multi-disciplinary 3D plant modeling software, S3D can quickly assist designers from various disciplines in 3D modeling and design verification, significantly improving work efficiency and design quality. S3D has been widely used in the chemical and energy industries and has achieved numerous success cases.
[0003] High-energy pipeline rupture is a critical operating condition that must be considered during the design process. Due to the high energy of the whiplash after a high-energy pipeline rupture, the potential for significant damage can even impact nuclear safety. Previously, numerous components and structures were incorporated into the design process to mitigate the hazards of high-energy pipeline rupture. With the application of leak-before-break technology, the possibility of a complete rupture of high-energy pipelines no longer needs to be considered, eliminating the need for whiplash-preventing components and structures. Therefore, analyzing the impact of a high-energy pipeline rupture is crucial to project safety. To address this issue, a system and implementation method for S3D high-energy pipeline rupture impact analysis are proposed. Summary of the Invention
[0004] The purpose of the present invention is to provide a system and implementation method for S3D high-energy pipeline damage impact analysis to solve the problems raised in the above background technology.
[0005] To achieve the above objectives, the present invention provides the following technical solutions: an S3D high-energy pipeline damage impact analysis system, comprising a high-energy pipeline input module, a high-energy pipeline path analysis module, an impact space generation module, an impact analysis calculation module, and an impact report generation module, characterized in that: the high-energy pipeline input module is used by the user to specify the high-energy pipeline range to be analyzed and the damage impact interval value, wherein the high-energy pipeline range can be a single pipeline input or multiple pipelines specified by a list;
[0006] The high-energy pipeline path analysis module is used to identify the high-energy pipelines that need to be analyzed based on the high-energy pipeline range input by the user, and simultaneously perform path identification on the high-energy pipelines, abstracting all the involved pipelines into paths represented by lines in space;
[0007] The influence space generation module is used to automatically generate a corresponding influence space model according to the path identified by the high-energy pipeline path analysis module and the influence range input by the user;
[0008] The impact analysis module is used to identify some objects in the impact space other than the high-energy pipeline that generates the space through collision checking and record them in the corresponding database, and automatically delete the generated impact analysis space after the analysis is completed;
[0009] The report generation module is used to output the high-energy pipeline impact analysis results in the form of reports to the user for subsequent safety analysis and calculation work.
[0010] Preferably, a method for implementing an S3D high-energy pipeline damage impact analysis system is characterized by comprising the following steps:
[0011] S1. The user inputs the pipeline number and impact range corresponding to the high-energy pipeline through the high-energy pipeline input module and enters S2;
[0012] S2. Locate the specific pipeline in the model based on the user input range, identify the specific layout path of each pipeline within the range and the connection relationship between pipelines, and finally form a network path diagram composed of all high-energy pipelines, and enter S3;
[0013] S3, automatically construct the influence space in S3D based on the path diagram obtained in S2 and the influence range input in S1, and enter S4;
[0014] S4. Periodically scan the collision interference objects corresponding to the impact space generated in S3, remove the pipes that generate the impact space and the objects that are normally connected to the pipes, and input the results into the database. Delete the generated impact control and enter S5.
[0015] S5. Feedback the results of S4 to the user through the interface. If the user needs to generate a corresponding report, proceed to S6; otherwise, proceed to S7.
[0016] S6, generating an Excel report with the result and inputting it to the user, and then proceeding to S7;
[0017] S7. End.
[0018] Preferably, the step S2 locates a specific pipeline in the model according to the range input by the user, identifies the specific layout path of each pipeline within the range and the connection relationship between official roads, and finally forms a network path diagram composed of all high-energy pipelines, and the steps of forming the diagram are as follows;
[0019] S2.1. Verify whether the high-energy pipeline range entered by the user is empty. If so, report an error and proceed directly to S2.17. Otherwise, proceed to S2.2.
[0020] S2.2. Enter the S3D project to find out whether there is a corresponding pipeline based on the input pipeline range. If there is, enter the pipeline collection and proceed to S2.3. If not, an error will be reported and proceed to S2.17.
[0021] S2.3. Loop through the pipeline set. If there are pipelines that have not been traversed, go to S2.4; otherwise, go to S.8.
[0022] S2.4. Find the PipeRun set corresponding to the pipeline and proceed to S2.5.
[0023] S2.5. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S2.6. Otherwise, return to S2.3.
[0024] S2.6. Check whether the corresponding impact space already exists for the current PipeRun. If so, proceed to S2.7. Otherwise, return to S2.5.
[0025] S2.7. Delete the impact space generated by the current PipeRun and return to S2.5.
[0026] S2.8. Define a path set. A path consists of a line segment and the name of the PipeRun to which the current path belongs. A line segment consists of points. A point consists of coordinates, categories, and corresponding features. Go to S2.9.
[0027] S2.9. Loop through the pipeline collection of S2.2, obtain all PipeRun collections, and enter S2.10;
[0028] S2.10. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S2.11; otherwise, go to S2.14.
[0029] S2.11. Find all features under the current PipeRun, convert the features into points according to their categories and coordinates, and proceed to S2.12.
[0030] S2.12. Connect different points into lines based on the connection relationship between different features, and proceed to S2.13;
[0031] S2.13. Concatenate the paths under the current PipeRun based on the relationships between the lines, store them in the path collection, and return to S2.10.
[0032] S2.14. Find the endpoints and transition points of all paths from the path set. If these points are connected, they represent a connection. Paths corresponding to these points can be found. Remove the two connected points, merge the two paths into one path, and proceed to S2.15.
[0033] S2.15. Find the branch endpoints and three-way points in the path set. If the branch endpoints and three-way points are connected but are on separate paths, extend the paths corresponding to the branch endpoints to the paths corresponding to the three-way points to form a path, and then proceed to S2.16.
[0034] S2.16. Find a path with endpoints that are completely unconnected to other paths as the starting path. Arrange all paths sequentially to form a directed path network with branches, forming a network path diagram consisting of the high-energy pipelines required in subsequent steps, and proceed to S2.17.
[0035] S2.17, end.
[0036] Preferably, the influence space is automatically constructed in S3D based on the path map obtained in S2 and the influence range input in S1, and the construction of the influence space includes the following steps:
[0037] S3.1. Build the S3D Position set and proceed to S3.2.
[0038] S3.2. Traverse all paths based on the path network graph formed in S2. If there is an unvisited path, proceed to S3.3; otherwise, proceed to S3.62.
[0039] S3.3. Obtain the start and end points of the current path, define the end point of the current path as currentPos, define the feature corresponding to the current end point as currentFeature, and define the feature corresponding to the start point as aboveFeature, and proceed to S3.4.
[0040] S3.4. If the current path is the first path in the directed path network, proceed to S3.5; otherwise, proceed to S3.14.
[0041] S3.5. Get the influence range of the current path as radius. If the aboveFeature type is not an elbow, proceed to S3.6; otherwise, proceed to S3.12.
[0042] S3.6. Place the end point coordinates into the Position collection and proceed to S3.14.
[0043] S3.7. Find the point of the endpoint of aboveFeature that is closer to currentPos and set it as shortPos. Set the other endpoint as longPos and go to S3.8.
[0044] S3.8. If the turning radius of the aboveFeature is more than twice the radius of the affected range, proceed to S3.9; otherwise, proceed to S3.12.
[0045] S3.9. In this case, the elbow's influence range should be part of a circular ring. First, obtain the vector originV pointing from longPos to currentPos, then obtain the vector tempV pointing from shortPos to currentPos. Calculate the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial circular ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial circular ring in the elbow's influence space to be generated. Then proceed to S3.10.
[0046] S3.10. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of aboveFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use aboveFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the current path. After drawing, proceed to S3.11.
[0047] S3.11. Mark the aboveFeature as existing to prevent repeated drawing from affecting the space, then put shortPos into the Position collection and go to S3.14.
[0048] S3.12. In this case, the influence range of the elbow is approximately the combination of the straight segment from longPos to currentPos and the straight segment from currentPos to shortPos. Therefore, longPos, currentPos, and shortPos are placed in the Position set respectively. Then, an influence space consisting of multiple straight line segments that traverse the Position set in sequence is drawn. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is completed, proceed to S3.13.
[0049] S3.13. After clearing the Position collection, mark the aboveFeature as existing to prevent repeated drawing from affecting the space. Then put shortPos into the Position collection and go to S3.14.
[0050] S3.14. If the current path is not the last path in the directed path network, proceed to S3.15; otherwise, proceed to S3.45.
[0051] S3.15. Get the influence range of the current path as radius. If the Position set does not contain currentPos, proceed to S3.16; otherwise, proceed to S3.43.
[0052] S3.16, if the type of currentFeature is not elbow, go to S3.17, otherwise go to S3.18;
[0053] S3.17. Put currentPos into the Position collection and go to S3.28.
[0054] S3.18. Find the endpoint of currentFeature that is closer to the last point in the Position set and set it as shortPos. Set the other endpoint as longPos and proceed to S3.19.
[0055] S3.19. If currentFeature has been marked as existing, put shortPos into the Position set and go to S3.28. Otherwise, go to S3.20.
[0056] S3.20: If the turning radius of the current Feature is less than twice the radius of the affected range, proceed to S3.21; otherwise, proceed to S3.24.
[0057] S3.21. Place shortPos into the Position collection, then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.22.
[0058] S3.22. Clear the Position collection, add shortPos, currentPos, and longPos to the Position collection in order, and then draw an influence space consisting of multiple straight line segments that traverse the Position collection in order. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. After drawing is completed, proceed to S3.23.
[0059] S3.23. Clear the Position collection, add longPos to the Position collection, mark currentFeature as existing, and proceed to S3.28.
[0060] S3.24. In this case, the elbow's influence range should be part of a circle. Place shortPos into the Position collection, then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing, proceed to S3.25.
[0061] S3.25. Clear the Position collection, calculate the vector originV pointing from shortPos to currentPos, then calculate the vector tempV pointing from longPos to currentPos, and find the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.26.
[0062] S3.26. Use shortPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of currentFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use currentFeature's BendRadius as the radius of the circle cross section to draw the influence space. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.27.
[0063] S3.27. Mark the aboveFeature as existing to prevent duplicate drawing from affecting the space. Then put longPos into the Position collection and go to S3.28.
[0064] S3.28. If the name of the next path is inconsistent with the name of the previous path, or the starting point of the next path is inconsistent with the end point of the previous path, it means starting a new path that is not connected to all previous paths, and proceed to S3.29. Otherwise, return to S3.2.
[0065] S3.29: If there is a point in the Position set, go to S3.30; otherwise, go to S3.31.
[0066] S3.30. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After the drawing is completed, proceed to S3.31.
[0067] S3.31. Clear the Position collection, obtain the feature corresponding to the starting point of the next path of the current path, mark it as nextFeature, and proceed to S3.32.
[0068] S3.32: If the nextFeature type is not elbow, go to S3.33; otherwise, go to S3.34.
[0069] S3.33. Place the starting coordinates of the next path into the Position collection and return to S3.2.
[0070] S3.34. Obtain the influence range of the next path and mark it as radius. Mark the end point of the next path as refPos and proceed to S3.35.
[0071] S3.35. Set the endpoint of nextFeature that is closer to refPos as shortPos, and the other endpoint as longPos, and proceed to S3.36.
[0072] S3.36: If nextFeature is marked as existing, put shortPos into the Position collection and return to S3.2; otherwise, go to S3.37.
[0073] S3.37: If the turning radius of the nextFeature is less than twice the radius of the affected range, proceed to S3.38; otherwise, proceed to S3.40.
[0074] S3.38. Place longPos, the starting point of the next path, and shortPos into the Position collection in order. Then, draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the next path. After drawing is completed, proceed to S3.39.
[0075] S3.39. Clear the Position collection, add shortPos to the Position collection, mark nextFeature as existing, and return to S3.2.
[0076] S3.40. Calculate the vector originV pointing from longPos to the starting point of the next path, then calculate the vector tempV pointing from shortPos to the end point of the next path. Calculate the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the current elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.41.
[0077] S3.41. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of nextFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use nextFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the next path. After drawing, proceed to S3.42.
[0078] S3.42. Mark nextFeature as existing, put shortPos into the Position collection, and return to S3.2.
[0079] S3.43: The path cannot contain duplicate points. Therefore, if duplicate points are found, they are split into two paths. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After drawing, proceed to S3.44.
[0080] S3.44. Clear the Position collection, add the coordinates of the starting point of the current path to the Position collection, move the cursor back one space, and return to S3.2.
[0081] S3.45. If the Position set does not contain currentPos, proceed to S3.46; otherwise, proceed to S3.59.
[0082] S3.46. Get the influence range of the current path as radius. If the type of currentFeature is not elbow, go to S3.47; otherwise, go to S3.49.
[0083] S3.47, put currentPos into the Position collection and go to S3.48;
[0084] S3.48. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, return to S3.2.
[0085] S3.49, set the endpoint of currentFeature that is closer to the last point in the Position set as shortPos, and the other endpoint as longPos, and proceed to S3.50;
[0086] S3.50: If currentFeature is marked as existing, put shortPos into the Position collection and return to S3.48; otherwise, proceed to S3.51.
[0087] S3.51: If the turning radius of the current Feature is less than twice the radius of the affected range, proceed to S3.52; otherwise, proceed to S3.55.
[0088] S3.52. Place shortPos into the Position collection, and then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. After drawing is complete, proceed to S3.53.
[0089] S3.53. Clear the Position collection, add shortPos, currentPos, and longPos to the Position collection in order, and then draw an influence space consisting of multiple straight line segments that traverse the Position collection in order. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. Then proceed to S3.54.
[0090] S3.54. Mark currentFeature as existing and return to S3.2.
[0091] S3.55. Place shortPos into the Position collection and draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.56.
[0092] S3.56. Calculate the vector originV pointing from longPos to currentPos, then calculate the vector tempV pointing from shortPos to currentPos. Find the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.57.
[0093] S3.57. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of currentFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use currentFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.58.
[0094] S3.58. Mark currentFeature as existing and return to S3.2.
[0095] S3.59: If the Position set is not empty, proceed to S3.60; otherwise, return to S3.2.
[0096] S3.60. Get the influence range of the current path as radius, and draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, clear the Position collection and proceed to S3.61.
[0097] S3.61. Place the starting coordinates of the current path into the Position collection, then place currentPos into the Position collection. Then, draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After drawing is complete, return to S3.2.
[0098] S3.62. Check whether there is a database file storing high-energy pipeline data. If not, create the corresponding database file. After completion, proceed to S3.63.
[0099] S3.63. Check the database file to see if a data table exists for storing the PipeRun impact space. If not, create the data table LBB_INFO_1. After completion, proceed to S3.64.
[0100] S3.64. Check whether the data table LBB_INFO_2 used to store the impact analysis results exists in the db file. If it does not exist, create the table. After completion, proceed to S3.65.
[0101] S3.65. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S3.66; otherwise, go to S3.69.
[0102] S3.66. Search for the data entry of the current PipeRun from LBB_INFO_1. If it exists, proceed to S3.67. Otherwise, proceed to S3.68.
[0103] S3.67. Update the relevant attributes of the current entry, delete all the affected scopes of the current entry in LBB_INFO_2, and return to S3.65.
[0104] S3.68. Insert the impact space information corresponding to PipeRun, such as name and impact range, into LBB_INFO_1 and return to S3.65.
[0105] S3.69, end.
[0106] Preferably, the step S4 periodically scans the collision interference objects corresponding to the impact space generated in S3, removes the pipes generating the impact space and the objects normally connected to the pipes, and then inputs the results into the database, and deletes the generated impact controls including the following steps:
[0107] S4.1. Check whether there is a database file storing high-energy pipeline data. If not, create the corresponding database file. After completion, proceed to S4.2.
[0108] S4.2. Check the database file to see if a data table exists for storing the PipeRun impact space. If not, create the data table LBB_INFO_1. After completion, proceed to S4.3.
[0109] S4.3. Check whether the data table LBB_INFO_2 for storing impact analysis results exists in the database file. If not, create the table. After completion, proceed to S4.4.
[0110] S4.4. Check LBB_INFO_1 for any PipeRuns that have not yet completed the impact space collision analysis, obtain the corresponding data entry, and proceed to S4.5 after completion.
[0111] S4.5. Loop through the entries obtained in S4.4. If there are any entries that have not been traversed, proceed to S4.6; otherwise, proceed to S4.21.
[0112] S4.6. Set the collision check completion flag to "no," find all Parts under the current PipeRun, store them in the Part set, set a current collision removal set PartCol, and proceed to S4.7.
[0113] S4.7. Loop through the Part collection. If there are any parts that have not been traversed, proceed to S4.8; otherwise, proceed to S4.11.
[0114] S4.8. Place the Part into PartCol, find the Connection set of the current Part's connection points, and proceed to S4.9.
[0115] S4.9. Loop through the Connection collection. If there is a Connection that has not been traversed, go to S4.10. Otherwise, return to S4.7:
[0116] S4.10. Find the connection object of the current Connection object, find another Part in the connection object other than the current Part, and if the Part is not in PartCol, put it into PartCol and return to S4.9.
[0117] S4.11. Find the corresponding collision impact space object from the model according to the name of the current entry, and proceed to S4.12.
[0118] S4.12. Find all collision point object sets corresponding to the collision impact space and proceed to S4.13.
[0119] S4.13. Loop through all collision points obtained in S4.12. If there are collision points that have not been traversed, proceed to S4.14; otherwise, proceed to S4.16.
[0120] S4.14. Find the collision object associated with the current collision point and check whether there is one that is neither a welding point nor a collision-affected space nor an object in the collision-affected space. If so, proceed to S4.15; otherwise, return to S4.13.
[0121] S4.15. If the object does not exist in PartCol, the current object is the real object affected in the impact space. It is stored in the LBB_INFO_2 table and the collision check flag is set to true. The process returns to S4.13. Otherwise, the process returns to S4.13 directly.
[0122] S4.16, check the flag value, if it is true, go to S4.17, otherwise go to S4.18;
[0123] S4.17. Delete the collision impact space, update the impact space status of the corresponding entry in LBB_INFO_1 to "impact analysis completed," and return to S4.5.
[0124] S4.18. Find the generation time of the current impact space in LBB_INFO_1. If the current time is more than one hour compared to the generation time, proceed to S4.19; otherwise, proceed to S4.20.
[0125] S4.19: The current impact analysis is complete, but there are no impact objects. Delete the collision impact space, update the impact space status of the corresponding entry in LBB_INFO_1 to "Completed impact analysis," and return to S4.5.
[0126] S4.20: The collision check corresponding to the current impact space has not been completed yet. Wait and return directly to S4.5;
[0127] S4.21, end.
[0128] Compared with the prior art, the present invention has the following beneficial effects:
[0129] 1. This invention provides a method for automatically generating pipeline influence spaces based on pipeline layout paths, eliminating the need for analysts to manually model influence spaces and significantly improving work efficiency and quality.
[0130] 2. This invention provides a method for identifying affected objects in the impact space through collision checking, eliminating the need for designers to manually analyze affected objects and significantly improving work efficiency and quality.
[0131] 3. The present invention realizes the automatic export of analysis results, making it convenient for users to use the analysis results in subsequent calculation and analysis links;
[0132] 4. This invention supports both single-pipeline and multi-pipeline analysis modes, making it more versatile.
[0133] 5. The present invention supports highlighting and centering the user input object and the analysis result object, thereby improving the user experience. BRIEF DESCRIPTION OF THE DRAWINGS
[0134] Figure 1 Schematic diagram of the structure of the S3D high-energy pipeline damage impact analysis system of the present invention;
[0135] Figure 2 Flowchart of the method for implementing the S3D high-energy pipeline damage impact analysis of the present invention;
[0136] Figure 3 A schematic diagram of the process of constructing an S3D high-energy pipeline network path diagram of the present invention;
[0137] Figure 4 This is a flow chart of analyzing the impact range of a high-energy pipeline based on the generated impact space according to the present invention. DETAILED DESCRIPTION
[0138] The following will clearly and completely describe the technical solutions in the embodiments of the present invention in conjunction with the accompanying drawings. Obviously, the described embodiments are only part of the embodiments of the present invention, not all of the embodiments. Based on the embodiments of the present invention, all other embodiments obtained by ordinary technicians in this field without making creative efforts are within the scope of protection of the present invention.
[0139] In the description of the present invention, it should also be noted that, unless otherwise expressly specified or limited, the terms "disposed," "installed," "connected," and "connected" should be understood in a broad sense. For example, they may refer to fixed connections, detachable connections, or integral connections; they may refer to mechanical connections or electrical connections; they may refer to direct connections or indirect connections through an intermediate medium; and they may refer to internal communication between two components. Those skilled in the art will understand the specific meanings of the above terms in the present invention based on specific circumstances.
[0140] See also Figure 1-4 The present invention provides a technical solution: an S3D high-energy pipeline damage impact analysis system, comprising a high-energy pipeline input module, a high-energy pipeline path analysis module, an impact space generation module, an impact analysis calculation module, and an impact report generation module, characterized in that: the high-energy pipeline input module is used by the user to specify the high-energy pipeline range to be analyzed and the damage impact interval value, wherein the high-energy pipeline range can be a single pipeline input or multiple pipelines specified by a list;
[0141] The high-energy pipeline path analysis module is used to identify the high-energy pipelines that need to be analyzed based on the high-energy pipeline range input by the user, and simultaneously perform path identification on the high-energy pipelines, abstracting all the involved pipelines into paths represented by lines in space;
[0142] The influence space generation module is used to automatically generate a corresponding influence space model according to the path identified by the high-energy pipeline path analysis module and the influence range input by the user;
[0143] The impact analysis module is used to identify some objects in the impact space other than the high-energy pipeline that generates the space through collision checking and record them in the corresponding database, and automatically delete the generated impact analysis space after the analysis is completed;
[0144] The report generation module is used to output the high-energy pipeline impact analysis results in the form of reports to the user for subsequent safety analysis and calculation work.
[0145] Furthermore, a method for implementing the S3D high-energy pipeline damage impact analysis system is characterized by comprising the following steps:
[0146] S1. The user inputs the pipeline number and impact range corresponding to the high-energy pipeline through the high-energy pipeline input module and enters S2;
[0147] S2. Locate the specific pipeline in the model based on the user input range, identify the specific layout path of each pipeline within the range and the connection relationship between pipelines, and finally form a network path diagram composed of all high-energy pipelines, and enter S3;
[0148] S3, automatically construct the influence space in S3D based on the path diagram obtained in S2 and the influence range input in S1, and enter S4;
[0149] S4. Periodically scan the collision interference objects corresponding to the impact space generated in S3, remove the pipes that generate the impact space and the objects that are normally connected to the pipes, and input the results into the database. Delete the generated impact control and enter S5.
[0150] S5. Feedback the results of S4 to the user through the interface. If the user needs to generate a corresponding report, proceed to S6; otherwise, proceed to S7.
[0151] S6, generating an Excel report with the result and inputting it to the user, and then proceeding to S7;
[0152] S7. End.
[0153] Furthermore, the S2 locates the specific pipeline in the model according to the user input range, identifies the specific layout path of each pipeline in the range and the connection relationship between the official roads, and finally forms a network path diagram composed of all high-energy pipelines. The steps of its formation are as follows;
[0154] S2.1. Verify whether the high-energy pipeline range entered by the user is empty. If so, report an error and proceed directly to S2.17. Otherwise, proceed to S2.2.
[0155] S2.2. Enter the S3D project to find out whether there is a corresponding pipeline based on the input pipeline range. If there is, enter the pipeline collection and proceed to S2.3. If not, an error will be reported and proceed to S2.17.
[0156] S2.3. Loop through the pipeline set. If there are pipelines that have not been traversed, go to S2.4; otherwise, go to S.8.
[0157] S2.4. Find the PipeRun set corresponding to the pipeline and proceed to S2.5.
[0158] S2.5. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S2.6. Otherwise, return to S2.3.
[0159] S2.6. Check whether the corresponding impact space already exists for the current PipeRun. If so, proceed to S2.7. Otherwise, return to S2.5.
[0160] S2.7. Delete the impact space generated by the current PipeRun and return to S2.5.
[0161] S2.8. Define a path set. A path consists of a line segment and the name of the PipeRun to which the current path belongs. A line segment consists of points. A point consists of coordinates, categories, and corresponding features. Go to S2.9.
[0162] S2.9. Loop through the pipeline collection of S2.2, obtain all PipeRun collections, and enter S2.10;
[0163] S2.10. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S2.11; otherwise, go to S2.14.
[0164] S2.11. Find all features under the current PipeRun, convert the features into points according to their categories and coordinates, and proceed to S2.12.
[0165] S2.12. Connect different points into lines based on the connection relationship between different features, and proceed to S2.13;
[0166] S2.13. Concatenate the paths under the current PipeRun based on the relationships between the lines, store them in the path collection, and return to S2.10.
[0167] S2.14. Find the endpoints and transition points of all paths from the path set. If these points are connected, they represent a connection. Paths corresponding to these points can be found. Remove the two connected points, merge the two paths into one path, and proceed to S2.15.
[0168] S2.15. Find the branch endpoints and three-way points in the path set. If the branch endpoints and three-way points are connected but are on separate paths, extend the paths corresponding to the branch endpoints to the paths corresponding to the three-way points to form a path, and then proceed to S2.16.
[0169] S2.16. Find a path with endpoints that are completely unconnected to other paths as the starting path. Arrange all paths sequentially to form a directed path network with branches, forming a network path diagram consisting of the high-energy pipelines required in subsequent steps, and proceed to S2.17.
[0170] S2.17, end.
[0171] Furthermore, the S3 automatically constructs an influence space in S3D based on the path map obtained in S2 and the influence range input in S1. The construction of the influence space includes the following steps:
[0172] S3.1. Build the S3D Position set and proceed to S3.2.
[0173] S3.2. Traverse all paths based on the path network graph formed in S2. If there are any unvisited paths, proceed to S3.3; otherwise, proceed to S3.62.
[0174] S3.3. Obtain the start and end points of the current path, define the end point of the current path as currentPos, define the feature corresponding to the current end point as currentFeature, and define the feature corresponding to the start point as aboveFeature, and proceed to S3.4.
[0175] S3.4. If the current path is the first path in the directed path network, proceed to S3.5; otherwise, proceed to S3.14.
[0176] S3.5. Get the influence range of the current path as radius. If the aboveFeature type is not an elbow, proceed to S3.6; otherwise, proceed to S3.12.
[0177] S3.6. Place the end point coordinates into the Position collection and proceed to S3.14.
[0178] S3.7. Find the point of the endpoint of aboveFeature that is closer to currentPos and set it as shortPos. Set the other endpoint as longPos and go to S3.8.
[0179] S3.8. If the turning radius of the aboveFeature is more than twice the radius of the affected range, proceed to S3.9; otherwise, proceed to S3.12.
[0180] S3.9. In this case, the elbow's influence range should be part of a circular ring. First, obtain the vector originV pointing from longPos to currentPos, then obtain the vector tempV pointing from shortPos to currentPos. Calculate the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial circular ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial circular ring in the elbow's influence space to be generated. Then proceed to S3.10.
[0181] S3.10. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of aboveFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use aboveFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the current path. After drawing, proceed to S3.11.
[0182] S3.11. Mark the aboveFeature as existing to prevent repeated drawing from affecting the space, then put shortPos into the Position collection and go to S.14.
[0183] S3.12. In this case, the influence range of the elbow is approximately the combination of the straight segment from longPos to currentPos and the straight segment from currentPos to shortPos. Therefore, longPos, currentPos, and shortPos are placed in the Position set respectively. Then, an influence space consisting of multiple straight line segments that traverse the Position set in sequence is drawn. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is completed, proceed to S3.13.
[0184] S3.13. After clearing the Position collection, mark the aboveFeature as existing to prevent repeated drawing from affecting the space. Then put shortPos into the Position collection and go to S3.14.
[0185] S3.14. If the current path is not the last path in the directed path network, proceed to S3.15; otherwise, proceed to S3.45.
[0186] S3.15. Get the influence range of the current path as radius. If the Position set does not contain currentPos, proceed to S3.16; otherwise, proceed to S3.43.
[0187] S3.16, if the type of currentFeature is not elbow, go to S3.17, otherwise go to S3.18;
[0188] S3.17. Put currentPos into the Position collection and go to S3.28.
[0189] S3.18. Find the endpoint of currentFeature that is closer to the last point in the Position set and set it as shortPos. Set the other endpoint as longPos and proceed to S3.19.
[0190] S3.19. If currentFeature has been marked as existing, put shortPos into the Position set and go to S3.28. Otherwise, go to S3.20.
[0191] S3.20: If the turning radius of the current Feature is less than twice the radius of the affected range, proceed to S3.21; otherwise, proceed to S3.24.
[0192] S3.21. Place shortPos into the Position collection, then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.22.
[0193] S3.22. Clear the Position collection, add shortPos, currentPos, and longPos to the Position collection in order, and then draw an influence space consisting of multiple straight line segments that traverse the Position collection in order. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. After drawing is completed, proceed to S3.23.
[0194] S3.23. Clear the Position collection, add longPos to the Position collection, mark currentFeature as existing, and proceed to S3.28.
[0195] S3.24. In this case, the elbow's influence range should be part of a circle. Place shortPos into the Position collection, then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing, proceed to S3.25.
[0196] S3.25. Clear the Position collection, calculate the vector originV pointing from shortPos to currentPos, then calculate the vector tempV pointing from longPos to currentPos, and find the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.26.
[0197] S3.26. Use shortPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of currentFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use currentFeature's BendRadius as the radius of the circle cross section to draw the influence space. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.27.
[0198] S3.27. Mark the aboveFeature as existing to prevent duplicate drawing from affecting the space. Then put longPos into the Position collection and go to S3.28.
[0199] S3.28. If the name of the next path is inconsistent with the name of the previous path, or the starting point of the next path is inconsistent with the end point of the previous path, it means starting a new path that is not connected to all previous paths, and proceed to S3.29. Otherwise, return to S3.2.
[0200] S3.29: If there is a point in the Position set, go to S3.30; otherwise, go to S3.31.
[0201] S3.30. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After the drawing is completed, proceed to S3.31.
[0202] S3.31. Clear the Position collection, obtain the feature corresponding to the starting point of the next path of the current path, mark it as nextFeature, and proceed to S3.32.
[0203] S3.32: If the nextFeature type is not elbow, go to S3.33; otherwise, go to S3.34.
[0204] S3.33. Place the starting coordinates of the next path into the Position collection and return to S3.2.
[0205] S3.34. Obtain the influence range of the next path and mark it as radius. Mark the end point of the next path as refPos and proceed to S3.35.
[0206] S3.35. Set the endpoint of nextFeature that is closer to refPos as shortPos, and the other endpoint as longPos, and proceed to S3.36.
[0207] S3.36: If nextFeature is marked as existing, put shortPos into the Position collection and return to S3.2; otherwise, go to S3.37.
[0208] S3.37: If the turning radius of the nextFeature is less than twice the radius of the affected range, proceed to S3.38; otherwise, proceed to S3.40.
[0209] S3.38. Place longPos, the starting point of the next path, and shortPos into the Position collection in order. Then, draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the next path. After drawing is completed, proceed to S3.39.
[0210] S3.39. Clear the Position collection, add shortPos to the Position collection, mark nextFeature as existing, and return to S3.2.
[0211] S3.40. Calculate the vector originV pointing from longPos to the starting point of the next path, then calculate the vector tempV pointing from shortPos to the end point of the next path. Calculate the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the current elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.41.
[0212] S3.41. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of nextFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use nextFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the next path. After drawing, proceed to S3.42.
[0213] S3.42. Mark nextFeature as existing, put shortPos into the Position collection, and return to S3.2.
[0214] S3.43: The path cannot contain duplicate points. Therefore, if duplicate points are found, they are split into two paths. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After drawing, proceed to S3.44.
[0215] S3.44. Clear the Position collection, add the coordinates of the starting point of the current path to the Position collection, move the cursor back one space, and return to S3.2.
[0216] S3.45. If the Position set does not contain currentPos, proceed to S3.46; otherwise, proceed to S3.59.
[0217] S3.46. Get the influence range of the current path as radius. If the type of currentFeature is not elbow, go to S3.47; otherwise, go to S3.49.
[0218] S3.47, put currentPos into the Position collection and go to S3.48;
[0219] S3.48. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, return to S3.2.
[0220] S3.49. Set the endpoint of currentFeature that is closer to the last point in the Position set as shortPos, and the other endpoint as longPos, and proceed to S3.50.
[0221] S3.50: If currentFeature is marked as existing, put shortPos into the Position collection and return to S3.48; otherwise, proceed to S3.51.
[0222] S3.51: If the turning radius of the current Feature is less than twice the radius of the affected range, proceed to S3.52; otherwise, proceed to S3.55.
[0223] S3.52. Place shortPos into the Position collection, and then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. After drawing is complete, proceed to S3.53.
[0224] S3.53. Clear the Position collection, add shortPos, currentPos, and longPos to the Position collection in order, and then draw an influence space consisting of multiple straight line segments that traverse the Position collection in order. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. Then proceed to S3.54.
[0225] S3.54. Mark currentFeature as existing and return to S3.2.
[0226] S3.55. Place shortPos into the Position collection and draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.56.
[0227] S3.56. Calculate the vector originV pointing from longPos to currentPos, then calculate the vector tempV pointing from shortPos to currentPos. Find the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.57.
[0228] S3.57. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of currentFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use currentFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.58.
[0229] S3.58. Mark currentFeature as existing and return to S3.2.
[0230] S3.59: If the Position set is not empty, proceed to S3.60; otherwise, return to S3.2.
[0231] S3.60. Get the influence range of the current path as radius, and draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, clear the Position collection and proceed to S3.61.
[0232] S3.61. Place the starting coordinates of the current path into the Position collection, then place currentPos into the Position collection. Then, draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After drawing is complete, return to S3.2.
[0233] S3.62. Check whether there is a database file storing high-energy pipeline data. If not, create the corresponding database file. After completion, proceed to S3.63.
[0234] S3.63. Check the database file to see if a data table exists for storing the PipeRun impact space. If not, create the data table LBB_INFO_1. After completion, proceed to S3.64.
[0235] S3.64. Check whether the data table LBB_INFO_2 used to store the impact analysis results exists in the db file. If it does not exist, create the table. After completion, proceed to S3.65.
[0236] S3.65. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S3.66; otherwise, go to S3.69.
[0237] S3.66. Search for the data entry of the current PipeRun from LBB_INFO_1. If it exists, proceed to S3.67. Otherwise, proceed to S3.68.
[0238] S3.67. Update the relevant attributes of the current entry, delete all the affected scopes of the current entry in LBB_INFO_2, and return to S3.65.
[0239] S3.68. Insert the impact space information corresponding to PipeRun, such as name and impact range, into LBB_INFO_1 and return to S3.65.
[0240] S3.69, end.
[0241] Furthermore, the step S4 periodically scans the collision interference objects corresponding to the impact space generated in S3, removes the pipes generating the impact space and the objects normally connected to the pipes, and then inputs the results into the database. Deleting the generated impact control includes the following steps:
[0242] S4.1. Check whether there is a database file storing high-energy pipeline data. If not, create the corresponding database file. After completion, proceed to S4.2.
[0243] S4.2. Check the database file to see if a data table exists for storing the PipeRun impact space. If not, create the data table LBB_INFO_1. After completion, proceed to S4.3.
[0244] S4.3. Check whether the data table LBB_INFO_2 for storing impact analysis results exists in the database file. If not, create the table. After completion, proceed to S4.4.
[0245] S4.4. Check LBB_INFO_1 for any PipeRuns that have not yet completed the impact space collision analysis, obtain the corresponding data entry, and proceed to S4.5 after completion.
[0246] S4.5. Loop through the entries obtained in S4.4. If there are any entries that have not been traversed, proceed to S4.6; otherwise, proceed to S4.21.
[0247] S4.6. Set the collision check completion flag to "no," find all Parts under the current PipeRun, store them in the Part set, set a current collision removal set PartCol, and proceed to S4.7.
[0248] S4.7. Loop through the Part collection. If there are any parts that have not been traversed, proceed to S4.8; otherwise, proceed to S4.11.
[0249] S4.8. Place the Part into PartCol, find the Connection set of the current Part's connection points, and proceed to S4.9.
[0250] S4.9. Loop through the Connection collection. If there is a Connection that has not been traversed, go to S4.10. Otherwise, return to S4.7:
[0251] S4.10. Find the connection object of the current Connection object, find another Part in the connection object other than the current Part, and if the Part is not in PartCol, put it into PartCol and return to S4.9.
[0252] S4.11. Find the corresponding collision impact space object from the model according to the name of the current entry, and proceed to S4.12.
[0253] S4.12. Find all collision point object sets corresponding to the collision impact space and proceed to S4.13.
[0254] S4.13. Loop through all collision points obtained in S4.12. If there are collision points that have not been traversed, proceed to S4.14; otherwise, proceed to S4.16.
[0255] S4.14. Find the collision object associated with the current collision point and check whether there is one that is neither a welding point nor a collision-affected space nor an object in the collision-affected space. If so, proceed to S4.15; otherwise, return to S4.13.
[0256] S4.15. If the object does not exist in PartCol, the current object is the real object affected in the impact space. It is stored in the LBB_INFO_2 table and the collision check flag is set to true. The process returns to S4.13. Otherwise, the process returns to S4.13 directly.
[0257] S4.16, check the flag value, if it is true, go to S4.17, otherwise go to S4.18;
[0258] S4.17. Delete the collision impact space, update the impact space status of the corresponding entry in LBB_INFO_1 to "impact analysis completed," and return to S4.5.
[0259] S4.18. Find the generation time of the current impact space in LBB_INFO_1. If the current time is more than one hour compared to the generation time, proceed to S4.19; otherwise, proceed to S4.20.
[0260] S4.19: The current impact analysis is complete, but there are no impact objects. Delete the collision impact space, update the impact space status of the corresponding entry in LBB_INFO_1 to "Completed impact analysis," and return to S4.5.
[0261] S4.20: The collision check corresponding to the current impact space has not been completed yet. Wait and return directly to S4.5;
[0262] S4.21, end.
[0263] The present invention provides a method for automatically generating a pipeline influence space according to the pipeline layout path, eliminating the need for analysts to manually model the influence space, greatly improving work efficiency and quality; the present invention provides a method for identifying affected objects in the influence space through collision checking, eliminating the need for designers to manually analyze the affected objects, greatly improving work efficiency and quality; the present invention realizes the automatic export of analysis results, making it convenient for users to use the analysis results in subsequent calculation and analysis links; the present invention supports two analysis modes, single pipeline and multiple pipelines, and has stronger versatility; the present invention supports highlighted and centered display of user input objects and analysis result objects, improving the user experience.
[0264] While embodiments of the present invention have been shown and described, it will be appreciated by those skilled in the art that various changes, modifications, substitutions, and variations may be made to these embodiments without departing from the principles and spirit of the invention, and that the scope of the invention is defined by the appended claims and their equivalents.
Claims
1. A method for implementing an S3D high-energy pipeline damage impact analysis system, characterized by: The following steps are involved: S1. The user inputs the pipeline number and impact range corresponding to the high-energy pipeline through the high-energy pipeline input module and enters S2; S2. Locate the specific pipeline in the model based on the user input range, identify the specific layout path of each pipeline within the range and the connection relationship between pipelines, and finally form a network path diagram composed of all high-energy pipelines, and enter S3; S3, automatically construct the influence space in S3D based on the path diagram obtained in S2 and the influence range input in S1, and enter S4; S4. Periodically scan the collision interference objects corresponding to the impact space generated in S3, remove the pipes that generated the impact space and the objects that are normally connected to the pipes, and input the results into the database. Delete the generated impact space and proceed to S5. S5. Feedback the results of S4 to the user through the interface. If the user needs to generate a corresponding report, proceed to S6; otherwise, proceed to S7. S6, generating an Excel report with the result and inputting it to the user, and then proceeding to S7; S7, end; The S4 comprises the following steps: S4.
1. Check whether there is a database file storing high-energy pipeline data. If not, create the corresponding database file. After completion, proceed to S4.
2. S4.
2. Check the database file to see if a data table exists for storing the PipeRun impact space. If not, create data table 1. After completion, proceed to S4.
3. S4.
3. Check whether data table 2 for storing impact analysis results exists in the db file. If not, create the table. After completion, proceed to S4.
4. S4.
4. Check if there is a PipeRun in Data Table 1 that has not completed the impact space collision analysis, obtain the corresponding data entry, and after completion, proceed to S4.5; S4.
5. Loop through the entries obtained in S4.
4. If there are any entries that have not been traversed, proceed to S4.6; otherwise, proceed to S4.
21. S4.
6. Set the collision check completion flag to "no," find all Parts under the current PipeRun, store them in the Part set, set a current collision removal set PartCol, and proceed to S4.
7. S4.
7. Loop through the Part collection and go to S4.11; S4.
11. Find the corresponding collision impact space object from the model according to the name of the current entry, and proceed to S4.
12. S4.
12. Find all collision point object sets corresponding to the collision impact space and proceed to S4.
13. S4.13, loop through all collision points obtained in S4.12 and proceed to S4.16; S4.16, check the flag value, if it is true, go to S4.17, otherwise go to S4.18; S4.
17. Delete the collision impact space, update the impact space status of the corresponding entry in Data Table 1 to "impact analysis completed," and return to S4.
5. S4.
18. Find the generation time of the current impact space in data table 1. If the current time is more than 1 hour compared to the generation time, go to S4.19; otherwise, go to S4.
20. S4.19: The current impact analysis is complete, but there are no impact objects. Delete the collision impact space, update the impact space status of the corresponding entry in Data Table 1 to Completed Impact Analysis, and return to S4.
5. S4.20: The collision check corresponding to the current impact space has not been completed yet. Wait and return directly to S4.5; S4.21, end.
2. The method for implementing the S3D high-energy pipeline damage impact analysis system according to claim 1, characterized in that: The S2 locates the specific pipeline in the model according to the user input range, identifies the specific layout path of each pipeline in the range and the connection relationship between the pipelines, and finally forms a network path diagram composed of all high-energy pipelines. The steps of the construction are as follows; S2.
1. Verify whether the high-energy pipeline range entered by the user is empty. If so, report an error and proceed directly to S2.
17. Otherwise, proceed to S2.
2. S2.
2. Enter the S3D project to find out whether there is a corresponding pipeline based on the input pipeline range. If there is, proceed to get the pipeline set and go to S2.
3. If not, report an error and go to S2.
17. S2.
3. Loop through the pipeline set. If there are pipelines that have not been traversed, go to S2.4; otherwise, go to S.
8. S2.
4. Find the PipeRun set corresponding to the pipeline and proceed to S2.
5. S2.
5. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S2.
6. Otherwise, return to S2.
3. S2.
6. Check whether the corresponding impact space already exists for the current PipeRun. If so, proceed to S2.
7. Otherwise, return to S2.
5. S2.
7. Delete the impact space generated by the current PipeRun and return to S2.
5. S2.
8. Define a path set. A path consists of a line segment and the name of the PipeRun to which the current path belongs. A line segment consists of points. A point consists of coordinates, categories, and corresponding features. Go to S2.
9. S2.
9. Loop through the pipeline collection of S2.2, obtain all PipeRun collections, and enter S2.10; S2.
10. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S2.11; otherwise, go to S2.
14. S2.
11. Find all features under the current PipeRun, convert the features into points according to their categories and coordinates, and proceed to S2.
12. S2.
12. Connect different points into lines based on the connection relationship between different features, and proceed to S2.13; S2.
13. Concatenate the paths under the current PipeRun based on the relationships between the lines, store them in the path collection, and return to S2.
10. S2.
14. Find the endpoints and transition points of all paths from the path set. If these points are connected, they represent a connection. Paths corresponding to these points can be found. Remove the two connected points, merge the two paths into one path, and proceed to S2.
15. S2.
15. Find the branch endpoints and three-way points in the path set. If the branch endpoints and three-way points are connected but are on separate paths, extend the paths corresponding to the branch endpoints to the paths corresponding to the three-way points to form a path, and then proceed to S2.
16. S2.
16. Find a path with endpoints that are completely unconnected to other paths as the starting path. Arrange all paths sequentially to form a directed path network with branches, forming a network path diagram consisting of the high-energy pipelines required in subsequent steps, and proceed to S2.
17. S2.17, end.
3. The method for implementing the S3D high-energy pipeline damage impact analysis system according to claim 1 is characterized by: S3 automatically constructs an influence space in S3D based on the path map obtained in S2 and the influence range input in S1. The construction of the influence space includes the following steps: S3.
1. Build the S3D Position set and proceed to S3.
2. S3.
2. Traverse all paths based on the path network graph formed in S2. If there is an unvisited path, proceed to S3.3; otherwise, proceed to S3.
62. S3.
3. Obtain the start and end points of the current path, define the end point of the current path as currentPos, define the feature corresponding to the current end point as currentFeature, and define the feature corresponding to the start point as aboveFeature, and proceed to S3.
4. S3.
4. If the current path is the first path in the directed path network, proceed to S3.5; otherwise, proceed to S3.
14. S3.
5. Get the influence range of the current path as radius. If the aboveFeature type is not an elbow, proceed to S3.6; otherwise, proceed to S3.
12. S3.
6. Place the end point coordinates into the Position collection and proceed to S3.
14. S3.
7. Find the point of the endpoint of aboveFeature that is closer to currentPos and set it as shortPos. Set the other endpoint as longPos and go to S3.
8. S3.
8. If the turning radius of the aboveFeature is more than twice the radius of the affected range, proceed to S3.9; otherwise, proceed to S3.
12. S3.
9. In this case, the elbow's influence range is a portion of a circular ring. First, obtain the vector originV pointing from longPos to currentPos. Then obtain the vector tempV pointing from shortPos to currentPos. Calculate the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial circular ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial circular ring in the elbow's influence space to be generated. Then proceed to S3.
10. S3.
10. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of aboveFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use aboveFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the current path. After drawing, proceed to S3.
11. S3.
11. Mark the aboveFeature as existing to prevent repeated drawing from affecting the space, then put shortPos into the Position collection and go to S3.
14. S3.
12. In this case, the influence range of the elbow is approximately the combination of the straight segment from longPos to currentPos and the straight segment from currentPos to shortPos. Therefore, longPos, currentPos, and shortPos are placed in the Position set respectively. Then, an influence space consisting of multiple straight line segments that traverse the Position set in sequence is drawn. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is completed, proceed to S3.
13. S3.
13. After clearing the Position collection, mark the aboveFeature as existing to prevent repeated drawing from affecting the space. Then put shortPos into the Position collection and go to S3.
14. S3.
14. If the current path is not the last path in the directed path network, proceed to S3.15; otherwise, proceed to S3.
45. S3.
15. Get the influence range of the current path as radius. If the Position set does not contain currentPos, proceed to S3.16; otherwise, proceed to S3.
43. S3.16, if the type of currentFeature is not elbow, go to S3.17, otherwise go to S3.18; S3.
17. Put currentPos into the Position collection and go to S3.
28. S3.
18. Find the endpoint of currentFeature that is closer to the last point in the Position set and set it as shortPos. Set the other endpoint as longPos and proceed to S3.
19. S3.
19. If currentFeature has been marked as existing, put shortPos into the Position set and go to S3.
28. Otherwise, go to S3.
20. S3.20: If the turning radius of the current Feature is less than twice the radius of the affected range, proceed to S3.21; otherwise, proceed to S3.
24. S3.
21. Place shortPos into the Position collection, then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.
22. S3.
22. Clear the Position collection, add shortPos, currentPos, and longPos to the Position collection in order, and then draw an influence space consisting of multiple straight line segments that traverse the Position collection in order. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. After drawing is completed, proceed to S3.
23. S3.
23. Clear the Position collection, add longPos to the Position collection, mark currentFeature as existing, and proceed to S3.
28. S3.
24. In this case, the elbow's influence range should be part of a circle. Place shortPos in the Position collection, and then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing, proceed to S3.
25. S3.
25. Clear the Position collection, calculate the vector originV pointing from shortPos to currentPos, then calculate the vector tempV pointing from longPos to currentPos, and find the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.
26. S3.
26. Use shortPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of currentFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use currentFeature's BendRadius as the radius of the circle cross section to draw the influence space. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.
27. S3.
27. Mark the aboveFeature as existing to prevent duplicate drawing from affecting the space. Then put longPos into the Position collection and go to S3.
28. S3.
28. If the name of the next path is inconsistent with the name of the previous path, or the starting point of the next path is inconsistent with the end point of the previous path, it means starting a new path that is not connected to all previous paths, and proceed to S3.
29. Otherwise, return to S3.
2. S3.29: If there is a point in the Position set, go to S3.30; otherwise, go to S3.
31. S3.
30. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After the drawing is completed, proceed to S3.
31. S3.
31. Clear the Position collection, obtain the feature corresponding to the starting point of the next path of the current path, mark it as nextFeature, and proceed to S3.
32. S3.32: If the nextFeature type is not an elbow, go to S3.33; otherwise, go to S3.
34. S3.
33. Place the starting coordinates of the next path into the Position collection and return to S3.
2. S3.34, obtain the influence range of the next path and mark it as rad ius, mark the end point of the next path as refPos, and go to S3.35; S3.
35. Set the endpoint of nextFeature that is closer to refPos as shortPos, and the other endpoint as longPos, and proceed to S3.
36. S3.36: If nextFeature is marked as existing, put shortPos into the Position collection and return to S3.2; otherwise, go to S3.
37. S3.37: If the turning radius of the nextFeature is less than twice the radius of the affected range, proceed to S3.38; otherwise, proceed to S3.
40. S3.
38. Place longPos, the starting point of the next path, and shortPos into the Position collection in order. Then, draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the next path. After drawing is completed, proceed to S3.
39. S3.
39. Clear the Position collection, add shortPos to the Position collection, mark nextFeature as existing, and return to S3.
2. S3.
40. Calculate the vector originV pointing from longPos to the starting point of the next path, then calculate the vector tempV pointing from shortPos to the end point of the next path. Calculate the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the current elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.
41. S3.
41. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of nextFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use nextFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the next path. After drawing, proceed to S3.
42. S3.
42. Mark nextFeature as existing, put shortPos into the Position collection, and return to S3.
2. S3.
43. The path cannot contain duplicate points. Therefore, if duplicate points are found, they are split into two paths. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After drawing, proceed to S3.
44. S3.
44. Clear the Position collection, add the coordinates of the starting point of the current path to the Position collection, move the cursor back one space, and return to S3.
2. S3.
45. If the Position set does not contain currentPos, proceed to S3.46; otherwise, proceed to S3.
59. S3.
46. Get the influence range of the current path as radius. If the type of currentFeature is not elbow, go to S3.47; otherwise, go to S3.
49. S3.47, put currentPos into the Position collection and go to S3.48; S3.
48. Draw an influence space consisting of multiple straight line segments that sequentially traverse the Position set. The cross-section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, return to S3.
2. S3.
49. Set the endpoint of currentFeature that is closer to the last point in the Position set as shortPos, and the other endpoint as longPos, and proceed to S3.
50. S3.50: If currentFeature is marked as existing, put shortPos into the Position collection and return to S3.48; otherwise, proceed to S3.
51. S3.51: If the turning radius of the current Feature is less than twice the radius of the affected range, proceed to S3.52; otherwise, proceed to S3.
55. S3.
52. Place shortPos into the Position collection, and then draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. After drawing is complete, proceed to S3.
53. S3.
53. Clear the Position collection, add shortPos, currentPos, and longPos to the Position collection in order, and then draw an influence space consisting of multiple straight line segments that traverse the Position collection in order. The cross section of the influence space is a circle with a radius of radius, and the name of the influence space is the name of the current path. Then proceed to S3.
54. S3.
54. Mark currentFeature as existing and return to S3.
2. S3.
55. Place shortPos into the Position collection and draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.
56. S3.
56. Calculate the vector originV pointing from longPos to currentPos, then calculate the vector tempV pointing from shortPos to currentPos. Find the cross product direction verticalV of the two vectors. This direction is the normal vector of the plane corresponding to the partial ring in the elbow's influence space. At the same time, cross-multiply originV by verticalV to obtain the secondary axis direction secondaryV of the partial ring in the elbow's influence space to be generated, and proceed to S3.
57. S3.
57. Use longPos as the starting point of the partial circle, originV as the major axis of the circle, secondaryV as the minor axis of the circle, radius as the radius of the circle, and the ratio of currentFeature's BendAngle to 2 times Pi to determine the fraction of the circle that the influence space needs to be. Use currentFeature's BendRadius as the radius of the circle section to draw the influence space. The name of the influence space is the name of the current path. After drawing is complete, proceed to S3.
58. S3.
58. Mark currentFeature as existing and return to S3.
2. S3.59: If the Position set is not empty, proceed to S3.60; otherwise, return to S3.
2. S3.
60. Get the influence range of the current path as radius, and draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross section of the influence space is a circle with a radius equal to the influence range. The name of the influence space is the name of the current path. After drawing is complete, clear the Position collection and proceed to S3.
61. S3.
61. Place the starting coordinates of the current path into the Position collection, then place currentPos into the Position collection. Then, draw an influence space consisting of multiple straight line segments that sequentially traverse the Position collection. The cross-section of the influence space is a circle with a radius of radius. The name of the influence space is the name of the current path. After drawing is complete, return to S3.
2. S3.
62. Check whether there is a database file storing high-energy pipeline data. If not, create the corresponding database file. After completion, proceed to S3.
63. S3.
63. Check the database file to see if a data table exists for storing the PipeRun impact space. If not, create data table 1. After completion, proceed to S3.
64. S3.
64. Check whether data table 2 for storing impact analysis results exists in the db file. If not, create the table. After completion, proceed to S3.
65. S3.
65. Loop through the PipeRun collection. If there is a PipeRun that has not been traversed, go to S3.66; otherwise, go to S3.
69. S3.
66. Search for the data entry of the current PipeRun from data table 1. If it exists, proceed to S3.67; otherwise, proceed to S3.
68. S3.
67. Update the relevant attributes of the current entry, delete all affected areas of the current entry in data table 2, and return to S3.
65. S3.
68. Insert the impact space information corresponding to PipeRun, such as name and impact range, into data table 1, and return to S3.
65. S3.69, end.
4. An S3D high-energy pipeline damage impact analysis system using the implementation method of the S3D high-energy pipeline damage impact analysis system according to any one of claims 1 to 3, characterized in that: It includes a high-energy pipeline input module, a high-energy pipeline path analysis module, an impact space generation module, an impact analysis calculation module, and an impact report generation module; the high-energy pipeline input module is used by the user to specify the high-energy pipeline range to be analyzed and the damage impact interval value, wherein the high-energy pipeline range can be a single pipeline input or multiple pipelines specified by a list; The high-energy pipeline path analysis module is used to identify the high-energy pipelines that need to be analyzed based on the high-energy pipeline range input by the user, and simultaneously perform path identification on the high-energy pipelines, abstracting all the involved pipelines into paths represented by lines in space; The influence space generation module is used to automatically generate a corresponding influence space model according to the path identified by the high-energy pipeline path analysis module and the influence range input by the user; The impact analysis calculation module is used to identify some objects in the impact space other than the high-energy pipeline that generates the space through collision checking and record them in the corresponding database, and automatically delete the generated impact analysis space after the analysis is completed; The impact report generation module is used to output the high-energy pipeline impact analysis results in the form of a report to the user for subsequent safety analysis and calculation work.
Citation Information
Patent Citations
Urban underground electric power pipe network system unit model earthquake damage predicting method based on GIS
CN104239953A
Pipe damage probability prediction method based on BP neural network
CN106022518A