Suspension strength load extraction method based on Adams software
Through secondary development of Adams software, Python was used to quickly create a multi-body dynamics model of the suspension and adjust spring and bushing preloads, solving the problems of errors and high time costs in the existing technology, and achieving an efficient suspension. Strength load extraction method.
Patent Information
- Application Number
- CN202411429668.8
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Filing Date
- 2024-10-14
- Publication Date
- 2025-01-14
AI Technical Summary
The prior art is prone to errors and high time costs when creating a multi-body dynamic model of the suspension and adjusting springs and bushings to preload, resulting in large workloads and low efficiency.
Through secondary development of Adams software, Python is used to quickly create requests and adjust spring and bushing preloads, realizing automated processing and reducing manual adjustment steps.
It achieves rapid creation of requests and efficient adjustment of spring and bushing preloads, significantly reducing workload, improving efficiency, and reducing time costs.
Smart Images

Figure CN119312485A_ABST
Abstract
Description
Technical Field
[0001] The invention belongs to the technical field of virtual simulation, and in particular relates to a suspension strength load extraction method based on Adams software. Background Art
[0002] During the automotive design and development stage, structural durability engineers use virtual simulation technology to calculate the strength of body and chassis components, which can timely discover and avoid potential risk points in the structure. Before conducting strength simulation work on body and chassis components, multi-body dynamics engineers are required to provide load information on related attachment points, which will then be used to load the finite element model for accurate strength simulation analysis.
[0003] In order to extract the load information of relevant attachment points, multi-body dynamics engineers need to build a multi-body dynamics model of the front and rear suspensions and create corresponding requests to adjust the suspension springs and bushing preloads. Then, they can extract the load information at each hard point according to the force conditions of the tires and the dynamic assembly under different working conditions. Among them, request refers to a specific data request used to extract specific information of interest to the user from the simulation results, including physical quantities such as force, displacement, velocity, and acceleration.
[0004] When creating requests and adjusting spring and bushing preloads, if multiple manual adjustments are used, the workload will double, and it is easy to make mistakes, and the time cost is high. Therefore, it is necessary to carry out secondary development of Adams software to reduce the workload and improve efficiency. If multiple manual adjustments are used, the workload will double, and it is easy to make mistakes. Summary of the invention
[0005] The purpose of the present invention is to provide a suspension strength load extraction method based on Adams software. The present invention calculates the automobile through simulation technology, specifically a suspension strength load extraction method based on Adams software, by quickly creating a request and quickly adjusting the spring and bushing preload, solves the problem that the existing manual processing method for creating a request and adjusting the spring and bushing preload is prone to error and has a high time cost. The present invention has the advantages of greatly reducing the workload and high efficiency.
[0006] The technical solution adopted by the present invention to solve the technical problem is as follows: The present invention provides a suspension strength load extraction method based on Adams software, which specifically includes the following steps: Step S1: quickly create a request; Use Python to perform secondary development on Adams software, obtain the Part list, Joint list, Bush list and Topo information in the multi-body dynamics model of the suspension, and use this information to check and filter each other, delete invalid topological relationships, and identify the topological relationship of each component; create a request for each component based on the topological relationship of each component; Step S2: quickly adjust the spring and bushing preload; Input the designed wheel load in the ready state in the software program interface, perform a flat jump simulation first, automatically read the wheel load in the result, subtract the wheel load read in the simulation from the designed wheel load, and then multiply by the coefficient as the increment of spring preload, and automatically update the spring preload; the software program automatically reads the forces in the X, Y, Z, TX, TY, and TZ directions of each bushing, and updates it to the preload of the bushing, and then performs the next flat jump simulation; repeat the above operations until the difference between the designed wheel load and the actual wheel load is less than the specified value, and the bushing displacement deviation is less than the specified value, and the preload adjustment is completed.
[0007] As a preferred implementation, the request is a specific data request for extracting specific information of interest to the user from the simulation results.
[0008] As a preferred implementation, in step S1, the Part name is preliminarily obtained: use the list Part command to find out all the Parts in the multi-body dynamics model of the suspension, synthesize a Dataframe named Parts_DF, and add ground in the last line. When creating a request, ground plays the role of the car body.
[0009] As a preferred implementation, in step S1, the topological relationship is preliminarily obtained: the list topology command is used to read the topological information in the multi-body dynamics model, and a Dataframe is generated, named topo_DF. Then, according to the type of Joint, some useless Joints are deleted, and Parts that are not in Parts_DF are deleted; at the same time, the Field suffix of the bush name in topo_DF is deleted.
[0010] As a preferred implementation, in step S1, the Joint information is screened: all the Joint information in the multi-body dynamics model is read, and the Joint information is screened according to the keywords of the Joint information to delete invalid Joints; the imarker name and the jmarker name in the Joint information are read to generate a dictionary Joint_marker_dic.
[0011] As a preferred implementation, in step S1, the names of bushes are filtered out from topo_DF, and then bushes with the same name are removed using a set method and stored in a list, namely, bush_initial_list.
[0012] As a preferred implementation, in step S1, the Joint names in the dictionary Joint_marker_dic and the bush names in the list bush_initial_list are combined into a list named fu_list, and the 'Connector' column in topo_DF is filtered. If the connector column element in topo_DF is not in fu_list, the corresponding row in topo_DF is deleted.
[0013] As a preferred implementation, in step S1, the marker information of the bush is read according to the bush name in the list bush_initial_list, and the marker information is stored in the dictionary Joint_marker_dic.
[0014] As a preferred implementation, in step S1, topo_DF needs to be processed in the last step; ① In topo_DF, when Part1 is a switch Part, Part2 is not a switch Part, and the Joint types of Part1 and Part2 are both sw*_fixed, both Part1 and Part2 are stored in the dictionary Topo_dict1; ②In topo_DF, when Part1 and Part2 are both switch Parts and the Joint types of Part1 and Part2 are both sw*_fixed, Part1 is stored as a list Topo_dict2_liebiao1, and Part2 is stored as a list Topo_dict2_liebiao2; ③ Loop through the list Topo_dict2_liebiao2, and replace the value in the list Topo_dict2_liebiao2 by querying the dictionary Topo_dict1. At the same time, add this value and the corresponding value of Topo_dict2_liebiao1 to the dictionary Topo_dict1. Loop through the list Topo_dict2_liebiao2 multiple times until the list Topo_dict2_liebiao2 no longer contains sw; ④ Delete all the Joint types of sw*_fixed in topo_DF; ⑤ Replace all switch parts in the newly generated Topo with corresponding parts through dictionary query.
[0015] As a preferred implementation, create a request for each component based on the topological relationship of each component: first select the subsystem in Subsystemss, click each subsystem, and the Part in the corresponding system will pop up; then select the corresponding component in Part, click Create_request, and the corresponding request can be created based on the topological relationship.
[0016] The beneficial effects of the present invention are: 1. The present invention can realize the rapid creation of requests: Before the development of this function, when multi-body dynamics engineers extract loads from body and chassis components, they need to create requests for each component. For example, for the body, they need to create multiple requests in sequence, which is a cumbersome process. In addition, when extracting the loads at the body attachment points, different suspension forms require different numbers of requests to be created. Taking a certain car model with a front double wishbone and a rear H-arm as an example, 20 requests need to be created when extracting the body load. After the development of this function, you only need to select this component in the software interface to create them all at once. The software has also developed a request deletion function to delete some unnecessary requests, which simplifies the workflow, improves work efficiency, and reduces time costs.
[0017] 2. The present invention can quickly and efficiently adjust the spring and bushing preload: Before developing this function, before extracting the load, the multi-body engineer needs to adjust the static balance of the suspension multiple times, and adjust the spring preload and the preload of each bushing in the X, Y, Z, TX, TY, and TZ directions to make its wheel load equal to the design wheel load in the ready state, and the suspension posture is consistent with the design state. Since it is necessary to repeatedly input the bushing force in the post-processing into the bushing preload in the model, the workload is large and it is easy to make mistakes. After developing this function, you only need to input the wheel load in the design state in the software interface, and you can quickly adjust the preload with one click. Taking a certain model with a front double wishbone and a rear H-arm as an example, there are 16 bushings in the front suspension and 30 bushings in the rear suspension. To adjust the static balance once, you need to modify (16+30)*6=276 preloads. Assuming that you need to adjust the preload of 3 wheels, the workload will take at least 1 day, and it is easy to make mistakes. Adjustment by the method of the present invention is expected to be completed in half an hour without making mistakes, which improves work efficiency, reduces workload, and reduces time cost. BRIEF DESCRIPTION OF THE DRAWINGS
[0018] Figure 1A schematic diagram of quickly creating a request in a suspension strength load extraction method based on Adams software provided by the present invention.
[0019] Figure 2 A schematic diagram of the principle of quickly adjusting the spring and bushing preload in a suspension strength load extraction method based on Adams software provided by the present invention. DETAILED DESCRIPTION
[0020] The invention provides a suspension strength load extraction method based on Adams software, which mainly comprises the following steps: quickly creating a request and quickly adjusting the preload of a spring and a bushing.
[0021] The following will be combined with the embodiments of the present invention to clearly and completely describe the technical solutions in the embodiments of the present invention. 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 work are within the scope of protection of the present invention.
[0022] The present invention provides a suspension strength load extraction method based on Adams software, which specifically consists of the following steps: Step S1: Figure 1 As shown, quickly create a request; The Adams software is secondary developed using Python to obtain the Part list (component list), Joint list (joint sublist), Bush list (bushing list) and Topo information (topological information) in the multi-body dynamics model of the suspension. These information are used to check and filter each other and delete invalid topological relationships, so that the topological relationship of each component can be correctly identified. According to the topological relationship of each component, a request can be directly created for each component, where request refers to a specific data request used to extract specific information of interest to the user from the simulation results, including physical quantities such as force, displacement, velocity, and acceleration.
[0023] The present invention can obtain the Part, Joint, Bush, and Topo information in a multi-body dynamics model by quickly creating a request, and use this information to check and filter each other, delete invalid topological relationships, so that the topological relationship of each component can be correctly identified. Based on this topological relationship, a request can be automatically created for this component with one click.
[0024] The specific creation process is as follows: S1.1: Preliminary acquisition of Part names: Use the list Part command to find all the Parts in the multi-body dynamics model of the suspension (excluding the Parts in the testrig), then synthesize a Dataframe and name it "Parts_DF". At the same time, add "ground" to the last line. When creating a request in the future, "ground" plays the role of the body.
[0025] Among them, Figure 1 As shown, the box on the left shows how many Subsystems there are in the multi-body dynamics model. Clicking on each subsystem will pop up the Part in the corresponding system.
[0026] S1.2: Preliminary acquisition of topological relationships: Use the list topology command to read the topological information in the multibody dynamics model, generate a Dataframe, and name it "topo_DF". Then, according to the type of Joint, delete some useless Joints and delete the Parts that are not in "Parts_DF". At the same time, delete the Field suffix of the bush name in "topo_DF".
[0027] Among them, Figure 1 As shown in the figure, the middle box is the Part display area. Click each Part to display the associated Parts and connection relationships in the box below. The box below is the topological relationship display area for each component.
[0028] S1.3: Joint information screening: read all joint information in the multi-body dynamics model, and screen according to the keywords of the joint information to delete invalid joints; read the imarker name and jmarker name in the joint information, and generate a dictionary "Joint_marker_dic". Using this dictionary, you can query the information of the imarker name and jmarker name through the joint name.
[0029] S1.4: Filter out the names of bushes from "topo_DF", then use the set method to remove bushes with the same name and store them in a list, namely the list "bush_initial_list".
[0030] S1.5: Combine the joint names in the dictionary "Joint_marker_dic" and the bush names in the list "bush_initial_list" into a list named "fu_list", and start filtering the 'Connector' column in "topo_DF". If the connector column element in topo_DF is not in fu_list, delete the corresponding row in topo_DF.
[0031] S1.6: Read the bush marker information according to the bush name in the list "bush_initial_list", and store the marker information into the dictionary "Joint_marker_dic".
[0032] S1.7: Perform the final processing on "topo_DF"; ① In "topo_DF", when Part1 is a switch Part, Part2 is not a switch Part, and the Joint types of Part1 and Part2 are both sw*_fixed, Part1 and Part2 are stored in the dictionary "Topo_dict1" at the same time.
[0033] ② In "topo_DF", when Part1 and Part2 are both switch Parts and the Joint types of Part1 and Part2 are both sw*_fixed, Part1 is saved as a list "Topo_dict2_liebiao1" and Part2 is saved as a list "Topo_dict2_liebiao2".
[0034] ③ Loop through the list "Topo_dict2_liebiao2", replace the value of the list "Topo_dict2_liebiao2" by querying the dictionary "Topo_dict1", and add this value and the corresponding value of "Topo_dict2_liebiao1" to the dictionary "Topo_dict1". Loop through the list "Topo_dict2_liebiao2" multiple times until the list "Topo_dict2_liebiao2" no longer contains "sw".
[0035] ④ In “topo_DF”, delete all the Joint types of sw*_fixed.
[0036] ⑤ Replace all switch parts in the newly generated Topo with corresponding parts through dictionary query.
[0037] S1.8: Based on the final generated topological relationship, requests can be quickly generated for parts; like Figure 1 As shown, the upper left box shows how many Subsystems there are in the multi-body dynamics model. Clicking each subsystem will pop up the Part in the corresponding system. The upper middle box is the Part display area. Clicking each Part will display the associated Parts and connection relationships, and display them in the lower left box. The lower left box is the topological relationship display area for each component. Click the upper right box to select a Part and create a request. The lower right box is the created request display area.
[0038] After opening the software, first select the subsystem in "Subsystemss". Click each subsystem and the Part in the corresponding system will pop up. Then select the corresponding parts in "Part" and click "Create_request" to create the corresponding request based on the topological relationship.
[0039] The present invention can realize the rapid creation of requests. Before the development of this function, when multi-body dynamics engineers extract loads from vehicle body and chassis components, they need to create requests for each component. For example, for the vehicle body, multiple requests need to be established in sequence, and the process is relatively cumbersome. In addition, when extracting the loads at the attachment points of the vehicle body, different suspension forms require different numbers of requests to be created. Taking a certain car model with a front double wishbone and a rear H-arm as an example, 20 requests need to be created when extracting the body load. After the development of this function, you only need to select this component in the software interface to create them all at once. The software has also developed a request deletion function to delete some unnecessary requests, which simplifies the workflow and improves work efficiency.
[0040] Step S2: Figure 2 As shown, quickly adjust the spring and bushing preload; The user enters the designed wheel load in the ready state in the software program interface, first performs a flat jump simulation, automatically reads the wheel load in the result, subtracts the wheel load read in the simulation from the designed wheel load, and then multiplies it by the coefficient as the increment of the spring preload, and automatically updates the spring preload. The software program automatically reads the X, Y, Z, TX, TY, and TZ direction forces of each bushing, and updates it to the bushing preload, and then performs the next flat jump simulation. Repeat the above operations until the difference between the designed wheel load and the actual wheel load is less than the specified value, and the bushing displacement deviation is less than the specified value, and the preload adjustment is completed.
[0041] like Figure 2As shown, after opening the software, enter the designed wheel load in the ready state behind "Input the curb weight wheel load (N)", and click "Adjust static balance" to start automatically adjusting the spring and bushing preload.
[0042] The present invention first performs static balance calculation according to the designed wheel load in the ready state, automatically reads the bushing and tire forces in the results, updates the spring preload and bushing preload, and performs the next round of static balance adjustment until the designed wheel load is equal to the actual wheel load.
[0043] The present invention can quickly and efficiently adjust the spring and bushing preload. Before developing this function, before extracting the load, the multi-body engineer needs to adjust the static balance of the suspension multiple times, and adjust the spring preload and the preload of each bushing in the X, Y, Z, TX, TY, and TZ directions at the same time, so that the wheel load is equal to the design wheel load in the ready state, and the suspension posture is consistent with the design state. Since it is necessary to repeatedly input the bushing force in the post-processing into the bushing preload in the model, the workload is large and it is easy to make mistakes. After developing this function, it is only necessary to input the wheel load in the design state in the software interface, and the preload can be quickly adjusted with one key. Taking a certain model of front double wishbone and rear H-arm model as an example, there are 16 bushings in the front suspension and 30 bushings in the rear suspension. To adjust the static balance once, (16+30)*6=276 preloads need to be modified. Assuming that 3 wheel preloads need to be adjusted, the workload takes at least 1 day, and it is easy to make mistakes. Adjustment by the method of the present invention is expected to be completed in half an hour, and there will be no mistakes, which improves work efficiency and reduces workload.
[0044] The above is only a preferred embodiment of the present invention. It should be pointed out that for ordinary technicians in this technical field, several improvements and modifications can be made without departing from the principle of the present invention. These improvements and modifications should also be regarded as the scope of protection of the present invention.
Claims
1. The suspension strength load extraction method based on Adams software is characterized by: The following steps are involved: Step S1: quickly create a request; Use Python to perform secondary development on Adams software, obtain the Part list, Joint list, Bush list and Topo information in the multi-body dynamics model of the suspension, and use this information to check and filter each other, delete invalid topological relationships, and identify the topological relationship of each component; create a request for each component based on the topological relationship of each component; Step S2: quickly adjust the spring and bushing preload; Input the designed wheel load in the ready state in the software program interface, perform a flat jump simulation first, automatically read the wheel load in the result, subtract the wheel load read in the simulation from the designed wheel load, and then multiply by the coefficient as the increment of spring preload, and automatically update the spring preload; the software program automatically reads the forces in the X, Y, Z, TX, TY, and TZ directions of each bushing, and updates it to the preload of the bushing, and then performs the next flat jump simulation; repeat the above operations until the difference between the designed wheel load and the actual wheel load is less than the specified value, and the bushing displacement deviation is less than the specified value, and the preload adjustment is completed.
2. The suspension strength load extraction method based on Adams software according to claim 1 is characterized in that: The request is a specific data request used to extract specific information of interest to the user from the simulation results.
3. The suspension strength load extraction method based on Adams software according to claim 1 is characterized in that: In step S1, the Part names are initially obtained: use the list Part command to find all the Parts in the multi-body dynamics model of the suspension, synthesize a Dataframe named Parts_DF, and add ground to the last line. When creating a request, ground plays the role of the body.
4. The suspension strength load extraction method based on Adams software according to claim 3 is characterized in that: In step S1, the topological relationship is initially obtained: use the list topology command to read the topological information in the multi-body dynamics model and generate a Dataframe named topo_DF. Then, according to the type of Joint, some useless Joints are deleted, and Parts that are not in Parts_DF are deleted; at the same time, the Field suffix of the bush name in topo_DF is deleted.
5. The method for extracting suspension strength load based on Adams software according to claim 4, characterized in that: In step S1, the Joint information is screened: all the Joint information in the multi-body dynamics model is read, and the Joint information is screened according to the keywords of the Joint information to delete invalid Joints; the imarker name and the jmarker name in the Joint information are read to generate a dictionary Joint_marker_dic.
6. The method for extracting suspension strength load based on Adams software according to claim 5, characterized in that: In step S1, the names of bushes are filtered out from topo_DF, and then bushes with the same name are removed using the set method and stored in a list, namely bush_initial_list.
7. The method for extracting suspension strength load based on Adams software according to claim 6, characterized in that: In step S1, the joint names in the dictionary Joint_marker_dic and the bush names in the list bush_initial_list are combined into a list named fu_list, and the 'Connector' column in topo_DF is filtered. If the connector column element in topo_DF is not in fu_list, the corresponding row in topo_DF is deleted.
8. The method for extracting suspension strength load based on Adams software according to claim 7, characterized in that: In step S1, the marker information of the bush is read according to the bush name in the list bush_initial_list, and the marker information is stored in the dictionary Joint_marker_dic.
9. The method for extracting suspension strength load based on Adams software according to claim 8, characterized in that: In step S1, topo_DF needs to be processed in the last step; ① In topo_DF, when Part1 is a switch Part, Part2 is not a switch Part, and the Joint types of Part1 and Part2 are both sw*_fixed, both Part1 and Part2 are stored in the dictionary Topo_dict1; ②In topo_DF, when Part1 and Part2 are both switch Parts and the Joint types of Part1 and Part2 are both sw*_fixed, Part1 is stored as a list Topo_dict2_liebiao1, and Part2 is stored as a list Topo_dict2_liebiao2; ③ Loop through the list Topo_dict2_liebiao2, and replace the value in the list Topo_dict2_liebiao2 by querying the dictionary Topo_dict1. At the same time, add this value and the corresponding value of Topo_dict2_liebiao1 to the dictionary Topo_dict1. Loop through the list Topo_dict2_liebiao2 multiple times until the list Topo_dict2_liebiao2 no longer contains sw; ④ Delete all the Joint types of sw*_fixed in topo_DF; ⑤ Replace all switch parts in the newly generated Topo with corresponding parts through dictionary query.
10. The method for extracting suspension strength load based on Adams software according to claim 9, characterized in that: Create a request for each component based on the topological relationship of each component: first select the subsystem in Subsystemss, click each subsystem, and the Part in the corresponding system will pop up; then select the corresponding component in Part, click Create_request, and the corresponding request can be created based on the topological relationship.