This paper is based on my work completed during an eight-week internship at the University of Wisconsin-Madison. My work was to contribute to a research program aimed at using new software that handles contacts in rigid multibody dynamics much faster than the traditional dynamic simulation software used. This new approach seems to be promising and the long run goals of this research program is to be able to simulate very complex models using this software package which will make much faster simulation and therefore a lot of time is saved, more data is obtained, and therefore designs are improved. The first parts of my work was to get familiar with this new software, called Chrono::Engine and try to run some demo tutorials, as well as trying to understand the code and the approach that was used into handling contacts. Then I had to get familiar with one of the most famous simulation software packages used in the market, ADAMS/View (Automatic Dynamic Analysis of Mechanical Systems) and run the simulation of a very complex hydraulic excavator model after thoroughly investigating the model then to monitor some variables and note down the results.
The second part of my work was to run a same model in Chrono: Engine and ADAMS/View that has many contacts and compare the CPU time that each of the software needs in order to complete the simulation of the model. This experiment was aimed at looking into the speed of the simulation and to investigate how efficient and powerful is Chrono::Engine. After results are obtained, we were able to make a quick conclusion that calls for future work in this domain, in order to be able to handle and simulate very complex models with many contact forces. Table of Contents
As we all acknowledge, time is so valuable and any approach that saves time is appreciated and encouraged to use. The more contacts we find in a model, the longer CPU time it takes to simulate it. Models like a hydraulic excavator for example, takes about 10 hours to simulate it crossing a pot hole, as will be shown in later sections. In design industries, testing and simulating are essential in order to monitor the behavior of a system under mechanical disturbances like bumps or pot holes. If one wishes to test the behavior of a tank model, at least 100 simulations are needed, that makes about 1000 hours of simulation, which is not time efficient at all. It is essential to come up with an approach that saves time and handles contacts at least 100 times faster. This approach was developed in software called Chrono::Engine. Our work here is to test its efficiency in terms of accuracy of results and more importantly, the CPU time to complete a single run of the model.
2. Review of both software
The ADAMS/View program is a 3-D interactive environment in which the parametric properties of the mechanical system are defined. Constraints between individual parts can be applied so that the resulting motion of the system mocks that of its physical counterpart. Forces, torques and motions can be applied so the system moves in a particular fashion. It is also possible to implement control systems. The user only needs to define the parametric data; the equations of motion are automatically applied when the finalized model is sent to the Solver program. Program scripts can be utilized by the Solver program to customize and guide the simulation process. The Solver automatically integrates the equations of motion for a certain time step which is determined by the Solver and outputs data in the form of result sets for each time step. After the simulation is complete the result sets can be accessed by the Postprocessor and the data can be viewed in the form of plots. If geometric shells are supplied for the parts, three-dimensional animations of the simulations can be created and visually inspected as well. It should be noted that this is an extremely general description of the ADAMS program. Each step in the simulation process is customizable; measures, sensors and user-defined subroutines are only a few of the ways the program can be manipulated to increase the accuracy and fidelity of the model and simulation.
Chrono is a software that uses a different approach then that of ADAMS. Contacts in Chrono are handled using the differential inclusion approach. This approach enables to user to create a system with extremely large number of contacts between parts, thus a more complex model. Chrono uses C++ as its building language. Third party software is then needed for the Graphical User Interface (GUI). While downloading Chrono::Engine, header files on C++ are downloaded as well. They are used to declare contacts, create parts, and call for other software…. Here is a sample code written in C++ that creates 32 spheres in Chrono
3. Numerical Experiments
3.1 Collision of balls
This model consists of 32 steel balls of equal diameter falling into a rigid container box. Each ball is in contact with each other and a coulomb friction exists among them
This model will be simulated both in ADAMS and Chrono::Engine. The purpose behind this comparison is to find out how fast Chrono::Engine handles contacts. Accuracy of results is a criterion that will not be regarded in this paper. The model is simulated for 3 seconds. All the balls end up falling into the container box, entering a series of collision courses.
Here we will proceed with an investigation of the parts that this model comprises, namely the balls and the rigid container box.
A. Single Ball
• Weight: 0.882 kg
• Diameter: 6.0 cm
• Amongst each other: Impact type, with 105 N/mm of stiffness • With the container box: Impact type, with 105 N/mm of stiffness
The balls are randomly positioned on top of the box, with no initial condition implied. When the simulation begins, under the effect of gravity, they all end up falling into the box. During this process, they all go through collision courses with each other and with the container box.
Note: The material type of the balls is steel
B. The Container Box
• Depth: 400mm
• Width: 450mm
• Length: 330mm
Note: The depth, width and length are along the Y, X and Z directions
Contacts and Joints:
• Contact with all 32 balls: Impact type, with stiffness equal to 105 N/mm • Joint with the ground: Fixed type
Note: The material type of the box is steel
3.2 The Tank Model
A The shoe element
Figure 1 A single shoe element
• Weight: 498 kg
• Width: 625 mm
• Depth: 275 mm
• Length: 900mm
• Volume: 6.4 mm3
Contacts and joints:
Each shoe is in impact type contact with its two adjacent shoes as well as all top and bottom rollers, also with the idler and the driving sprocket. They are also in contact with the ground block. There exists a revolute joint between each shoe element and its two adjacent shoes, with no motion imposed on those joints. Functionality and role:
The shoe elements in the tank are the part of the model that interfaces the ground, and thus ensures the translational motion of the excavator. They are constantly under tension due to their adjacent shoes.
B. Bottom Rollers (Lauf)
Figure 2 A bottom roller element
• Weight: 192.6 kg
• Smaller diameter: 150mm
• Larger diameter: 420mm
• Volume: 2.47 x107 mm3
Contacts and joints:
The bottom rollers are all in impact type contact with all 45 shoes, with a total of 225 contacts. A revolute joint exist between each roller and the central piece (Fahr)
Functionality and role:
The chain of shoes will roll over the rollers. The bottom rollers also provide the forward traction force to the vehicle.
C. Top Rollers (Trag)
• Weight: 72.04 kg
• Inner diameter of hole: 50mm
• Outer diameter of hole: 100mm
• Outer body diameter: 240mm
• Volume: 9.23×106 mm3
Contacts and joints:
The top rollers are all in contact with all 45 shoes each. Also a revolute joint can be found between itself and the Fahr (Center piece) Functionality and role:
Top rollers make the chain roll over them, this keeping it in position.
D. The Center Part (Fahr)
• Weight:1460.34 kg
• Length: 2400 mm
• Depth: 260 mm
• Width: 300 mm
Contacts and joints:
The center part is in contact with all 5 bottom rollers and all three top rollers. Also with the front and rear sprocket. A translational motion exists between the rear driving sprocket and this piece. Functionality and role:
The center piece (Fahr) holds the rollers in place.
4. Numerical Results
4.1 Collision of Balls
Here is a tabulated data obtained by running the model on ADAMS/View with increasing number of balls, thus increasing number of contacts in the model. (see balls_dropping movie file in the CD)
|Balls |Maximum number of Contacts |CPU time | |1 |1 |0.41 | |2 |3 |3.3 | |4 |14 |7.75 | |8 |44 |25.36 | |16 |152 |102.78 | |32 |560 |644.44 |
Here is a chart of the data obtained
Chart 1CPU time Vs number of contacts
A second order polynomial curve fit gives a surprising R2 value of 1 with:
Chart 2 CPU Time Vs Number of Balls
A power curve gives a best fit with R2 value of 0.986 that is: y = 0.512×1.991
Running the model on Chrono::Engine gives the following table (see Chrono Irrlicht Collision movie file in CD)
|Balls |Contacts |CPU time | |1
|1 |0.702 | |2 |3 |0.728941 | |4 |14 |0.7271 | |8 |44 |0.7582 | |16 |152 |0.8169 | |32 |560 |1.3167 |
Displaying those results on a chart
Chart 3 CPU time Vs Number of Contacts on Chron::Engine
A linear curve fit gives y = 0.0011x + 0.7032 with an R2 value of 0.9883.
Chart 4 CPU time Vs Number of Ballson Chrono::Engine
A second order polynomial fit gives y = 0.0007×2 – 0.0047x + 0.7276 with an R2 value of 0.9948
4.2 The Tank Model
These are the results retuned by ADAMS during the 10 second simulation of the tank model. The first chart is the torque variation on a single shoe element while the vehicle runs on constant velocity. The second is the velocity variation while the vehicle runs on constant torque. (see model I movie file in CD)
Variation of torque on a constant velocity run
As it can be seen, the point experiences some series of spikes. Those are related to the shape of the obstacle.
Variation of velocity on a constant torque run
We conclude this report by saying that Chrono::Engine is promising software in handling huge number of contacts. It is 500 times faster than ADAMS. The remaining work that is left to be done is to familiarize and to actually be able to create complex models.
My 8 week work at the Simulation Based Engineering Laboratory at the UW-Madison has basically changed the perception that I have towards my major. After only a couple of weeks of work I realized how important and prestigious Mechanical Engineering is. I started looking at my domain more professionally and think seriously about my future. Also I have gathered all the information I need about pursuing master’s degree, as well as the business world and the demand of engineers at the states. I learned what engineers exactly do in their work, and why they are so important.
Regarding my work, I was supposed to carry out simulations and compare CPU times in order to see if how valid and useful is the new Chrono::Engine software. I worked with a lab teammate, Justin, and together under the supervision of my advisor Dan Negrut, we were able to write and publish a paper about differences in CPU time of simulation of high contact number problems. The published paper is attached at the end of this report.
Finally I would like to thank the Mechanical Engineering department, our chairman Dr. Darwish and also Mrs. Nadia Mouffarej for helping me chose and enroll to my internship program.