How to add custom location of Frame in a General Flexible Plate (or any flexible body)?

22 views (last 30 days)
For a General Flexible Plate, I want to add a reference frame at a custom location (for applying a force/attaching a part) as shown as a red dot, at a distance x and y from the tip and left edge respectively. Similar for a Felxible Circular beam, I want to have a marker at a distance x from the edge. How to do it?
Since the bodies are modeled as flexible, I cannot use a Rigid Transform to position these reference frames.
Any suggestions would be appreciated!

Answers (1)

Umar
Umar on 12 Dec 2025 at 22:25

Hi @Soumya Kanti,

You can absolutely add custom frames at specific locations on the General Flexible Plate without using Rigid Transforms. Open your block parameters and scroll to the "Frames" section at the bottom, then click the " New Frame" button to open the frame creation pane. Give your frame a name in the Frame Name field. For positioning at your custom x and y distances from the edges, you have two options for Frame Origin: either "At Reference Frame Origin" to place it at the plate's reference origin, or "Based on Geometric Feature" where you can select a specific point, line, or surface from the visualization pane and click " Use Selected Feature" to place the frame there. Then under Frame Axes, define your Primary Axis and Secondary Axis orientations by choosing either " Along Reference Frame Axis" or " Based on Geometric Feature" with the corresponding vectors shown as white arrows in the visualization. Once you confirm, the custom frame appears as a new port on your block that you can connect to forces, joints, or other components, and it deforms properly with the flexible body. The same process works for General Flexible Beam and other flexible bodies. Check out the official docs at generalflexibleplate under the Frames section for the full details. The reason this works is that flexible bodies need their frames to be part of the body definition itself so they can follow the deformation, which is why you can't use external Rigid Transform blocks like you would with rigid bodies.

Hope this helps!

Additional References: https://www.mathworks.com/help/sm/ref/generalflexiblebeam.html https://www.mathworks.com/help/sm/ref/flexiblecylindricalbeam.html

  2 Comments
Soumya Kanti
Soumya Kanti on 15 Dec 2025 at 4:33
Thank you for the response, Umar.
When I select “Use Selected Feature”, it only allows me to choose the midpoint of a line or the centroid of a plane etc. There does not seem to be an option to define a custom point.
For example, suppose I want to add a point located 0.3 m from the tip of a flexible circular beam with a total length of 1 m. Could you please walk me through the steps to define and add such a point?
Umar
Umar 1 minute ago

Thank you for the clarification, @Soumya. You're absolutely correct - the "Use Selected Feature" option only allows selecting predefined geometric features like midpoints, centroids, or vertices. There isn't a direct way to specify arbitrary coordinate locations like "0.3 m from the tip" using that interface.

However, this is actually a documented limitation, and the standard solution is to use a Rigid Transform block. This is the recommended approach in the Simscape Multibody documentation for creating frames at custom locations on flexible bodies.

Let me walk you through the exact steps for your example - a 1m Flexible Cylindrical Beam with a frame at 0.3m from the tip:

First, open your Flexible Cylindrical Beam block parameters and scroll down to the Frames section at the bottom. Check the box for "Show Port B" and click OK. Port B will now appear on your block - this represents the frame at the +z tip of the beam (half the beam length in the positive z direction).

Next, drag a Rigid Transform block from the Simscape > Multibody > Frames and Transforms library into your model. Connect the B port of your flexible beam to the B (Base) port of the Rigid Transform block.

Now open the Rigid Transform block parameters. Under the Translation section, set Method to "Cartesian" and set Offset to [0, 0, -0.3] (assuming your beam extends along the z-axis). This translates the follower frame 0.3m back along the z-axis from the tip toward the center of the beam.

The F (Follower) port of the Rigid Transform now represents your desired location at 0.3m from the tip. You can connect your force actuator, joint, or any other component to this F port.

The reason this works is that the Rigid Transform maintains a fixed offset relative to the flexible beam's port B. As the beam deforms during simulation, the Rigid Transform moves with it while maintaining that 0.3m offset. It doesn't constrain the flexibility of the beam at all.

This same approach works for General Flexible Plate as well. You'd create a custom frame at one of the available geometric features (like a corner or edge midpoint), then use a Rigid Transform to offset it to your exact desired x,y coordinates on the plate.

The Bodies documentation page explicitly mentions this workflow: "Rigid Transform blocks, normally inserted in the connection lines, provide the relative positions and orientations required for proper assembly."

You'll also notice that every flexible beam documentation page lists Rigid Transform in the "See Also" section, confirming it's the standard method.

Let me know how it goes.

References:

Sign in to comment.

Products


Release

R2025b

Community Treasure Hunt

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

Start Hunting!