CEE 212—Dynamics CP 2—Contact
Arizona State University The Mechanics Project
Computing Project 2 Contact
The second computing project is called Contact. The concept is to subject projectile motion to live inside a box. Each time the particle comes in contact with a side of the box a contact impact computation is done to change the velocity of the particle based upon conservation of momentum and a model for energy loss in the normal direction. The geometry of the constrained space is simply a rectangular box with a specified length, width, and height. Note that the box has six sides (see sketch) and therefore, there are six planes that the particle can contact. The main task of this project is to write the logic for describing the planes, checking for contact (with all six sides), selecting the most violated one (in case there is more than one possibility), and resolving the contact using the impulse/momentum calculation.
When the projectile is not at a contact event it moves freely, subjected to gravity and the drag forces of the fluid. Hence, the time-stepping part of this problem is identical to CP 1. More information on the background for this project can be found in the CP Notes for the project.
What you need to do
The basic MATLAB program Impact_SinglePlane.m is available on Bb (see Recitation 3.0). This code does projectile motion without drag and includes contact with a single plane. You can use this code as a template for CP 2. You will need to add the drag forces (as you did in CP 1) and you will need to add the logic to handle six potential contact planes.
The specific tasks you will need to do include the following:
1. Create a code that does the six-plane impact problem.
a. Implement the implicit version of CP 1 into Impact_SinglePlane.m. Verify that the code still works for the single plane and can do the drag force.
b. Develop a means of drawing the box by creating the vertices of the box and drawing the lines connecting vertices. This part is only for graphical output (it is really hard to see the contact without the box). There is guidance on how to do this in the CP 2 Notes—Particle in a Box.
c. Implement the code feature in which you calculate the exact time, position, velocity, and acceleration of the impact and adjust to capture that instant (this is just an interpolation between the last step, which was not penetrated, and the next step, which is penetrated). See the CP 2 Notes.
d. Implement the six planes of contact. You can store the information for each plane in separate row of the array ‘plane’. That way you do not have to have a different variable name for each plane.
2. Explore and discover. Use the code to explore the problem. Some suggestions
a. Plot the energy vs. time. Why is more energy lost in some contact than in others? Does the angle of impact matter?
b. What happens in a corner? Is it possible to penetrate two planes in the same time step? What is the best way to resolve this type of contact scenario?
c. What happens when the normal energy is exhausted but the in-plane velocity is not? Does the particle slide on the surface or does it stop?
d. What else can you observe?
3. Write a report documenting your work and the results (in accord with the specification given in the document Guidelines for Doing Computing Projects). Post it to
the Critviz website prior to the deadline. As usual, consult the document Evaluation of Computing Projects to see how your project will be evaluated to make sure that you can get full marks. All projects will be subject to the peer review process.