Force emitted from one solid only effecting a certain area of another object (Simscape Multibody)

5 views (last 30 days)
I am trying to create a Simscape Multibody model where Object A emits a force onto Object B. The force act downwards onto B, pushing it horizontally along a linear guide.
Object A is smaller than Object B, so the force from A only effects a certain portion of B. As B moves along the guide, the portion of B that is effected by the force changes (as shown in the diagrams).
How would I go about achieving this?
segmented forces 4 1.JPG
segmented forces 4 2.JPG

Answers (1)

Steve Miller
Steve Miller on 9 Jun 2021
Hi Sam,
It depends what assumptions you are making:
  1. Can part B only move along an axis? 2 axes? Can it rotate?
  2. Is part B rigid?
  3. Is the force from part A only along an axis?
If we assume part B is rigid and can only move along one axis, then I would
  1. Use a Transform Sensor to measure the distance between the CG of part A and part B along the axis of movement
  2. If that distance is less than (length of A - length of B)/2, force is maximum
  3. If that distance is more than (length of A + length of B)/2, force is zero
  4. Else, ramp the force from (0 - maximum) based on the separation.
The force can be applied to the joint connecting B to ground, or with an External Force and Torque block.
--Steve

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!