How can I stack flexible bodies while using spatial contact forces between them?

3 views (last 30 days)
The problem I am having stems from trying to model vibration imparted on the floor, and the resultant "jiggling" of a stack of bodies which are on the floor. I have modeled the floor vibration as an "External Force and Torque" block, with a sine input to oscillate the floor which is connected to the block established as the "World Reference Link" via a prismatic joint.
This then allows the vertical vibration of the floor to be modeled by shifting a "Rigid Body" ("Floor") block which I am trying to use "Spatial Contact Force"s to see the resultant "jiggle" of the bodies ("Legs" / "Vibration Dampers" / "Table Top").
(^^^ is the "Spatial Contact" Subsystem from within the first image)
The flexible bodies do not have an "Export Geometry" port which would be my immediate guess for how to model this.
Left: "World Reference Link" or "Ground" Subsystem. Right: "Legs" / "Vibration Dampers" / "Table Top" subsystem.
I am having a few problems:
  1. The plane to plane spatial contact force is not a supported geometry combination, but I have stacked "boxes", which would be plane to plane
  2. There is no matching port from a fexible body to connect to the spatial contact force input(s), so is this even a "legal" operation, and if not how can I approximate/simulate this? NOTE: The intent of the floor vibration is to be VERY small, nowhere near enough force to launch the bodies out of contact from each other.
  3. Rigid transforms seem to do nothing when applied to a flexible body, could that be further messing with the contact forces?

Answers (1)

Steve Miller
Steve Miller on 12 Feb 2023
The Spatial Contact Force block has a geometry port as its interface. You can attach rigid geometry to the flexible body blocks at their interface frames and connect that geometry to the Spatial Contact Force block. For plane-to-plane contact, we generally recommend having one plane represented as a flat surface (such as a Brick solid) and the other surface represented as points (using something like Point Cloud).
You will need an interface on the flexible body for each plane segment you wish to contact another body.
--Steve

Categories

Find more on Applications in Help Center and File Exchange

Products


Release

R2022b

Community Treasure Hunt

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

Start Hunting!