MATLAB Answers


Contact modeling between two bodies

Asked by pietro
on 17 Dec 2013
Latest activity Commented on by Guy Rouleau
on 18 Dec 2013
Hi all,
I have two DOFs model of a lumped system. It's something similar to a quarter car model.
I modeled it using simulink with no physical elements. I need modeling the contact between the two bodies, that means the displacement of m1 is limited by the position of m2. I have in mind to do this using the dynamic saturation block instead of modeling the elastic contact between both of them. Could it be a good idea or there could be some stability problems?


Sign in to comment.



2 Answers

Answer by Ryan G
on 17 Dec 2013
 Accepted Answer

I'm not sure the ideal way to do this, but off the top of my head I think you would want to set up a conditional for when they collide.
This can be done in SL blocks. In this example, since the spring is already there, you could probably just ramp up the stiffness of Ks and compensate with higher b value to damp when collision occurs. Something like
If y<x
Ks = k*10
b = b*10
Ks = k
b = b;
You'd have to figure out what vvalues make sense here based on your system. Running Simulation should make it apparent how to adjust your k and b.


Sign in to comment.

Answer by pietro
on 17 Dec 2013

Hi Ryan,
Thanks for your reply, nice idea. What about using a saturation block so I will not have any dynamic problems?

  1 Comment

It can work. In that case you want to use the Second-Order Integrator block to model the hard stop properly:
Note that such ideal system can easily cause solver problems is not modeled properly... see this for an example:

Sign in to comment.