Is there any way to constraint Simscape solid object custom inertial properties for consistency?

Indeed it appears to be possible to set centre of mass outside convex envelop of solid, as well to assign unconsistent values for inerrtia moments and products. Some contraint I guess shall be imposed?

Respuestas (1)

Hi Enrico,
Yes, you can impose constraints on custom inertial properties in Simscape to ensure consistency. Some of the points are:
  • Center of Mass: The center of mass (COM) should typically be located within the convex hull of the solid. If the COM is positioned outside this envelope, it can lead to physically incorrect behavior, such as unrealistic movements or rotations.
  • Inertia Matrix: The inertia matrix should be symmetric and positive definite. This means that all the principal moments of inertia (Ixx, Iyy, Izz) should be positive, and the determinant of the inertia matrix should be positive. The inertia tensor should be symmetric. This implies that the products of inertia (Ixy, Ixz, Iyz) should satisfy the symmetry conditions: Ixy = Iyx, Ixz = Izx, and Iyz = Izy.
  • CAD Import: If you are importing the solid from a CAD file, ensure that the inertia properties are correctly defined in the CAD software before importing
Refer to the following documentation to know about specifying custom inertias:
Hope it helps.

8 comentarios

Is that in some way possible from blocks mask or should I write additional code?
For what I know I don't see anything like this so far. What I meant is I've different oprions:
  1. Of course I can use automatically get inertial properties fro geometricla model, imported or direcly defined in simulink environment. I just need to define denisty. But it need to be constant and homogeneous, right?
  2. I can use a poinlike mass, so no matter
  3. I can use custom properties, that's my case. Assuming I'm modelling a density distribution would lead arbitrary values of my CoM and inertia tensor and scalar mass as well. The matter is when I'm dealing with custom option, I set them arbitrarily, where maybe we still need to keep geometrical constraint, maybe.
Moreover generally speaking CoM could lie out of convex hull of a solid. It just fall inside solid envelop for evident reasons. For instace take a shell solid, a torus or some kind of strange shape
Hey!
I think Simscape does not inherently provide a direct way to enforce constraints on custom inertial properties through the block mask. However, you can use parameter validation functions within the mask to check if the entered values meet certain criteria.
You can write custom MATLAB code to validate and enforce constraints on the inertial properties. This code can be executed before running the simulation to ensure all properties are consistent. For example, you can create a script that checks if the center of mass is within the convex hull and if the inertia matrix is symmetric and positive definite.
I feel, while it is theoretically possible for the center of mass to lie outside the convex hull of a solid (e.g., in the case of a shell or torus), it is generally advisable to keep it within the solid’s envelope for physical accuracy. If you have a complex shape, you might need to perform more detailed calculations to ensure the center of mass and inertia properties are correctly defined, but your thoughts are also agreed.
I see your point. Indeed It may be quite complex to manage parameter validation using complex, maybe imported geometries, If I don't know how to manage geometry files. Maybe I need to find if a point is inside a geometry. Is there any function allowingit? It would be pheraps simpler using a density distribution function, but I don't think is possible too....
In addition, once assume a geometrical constraint exist, additional constraints exist also on inertial parameters values like mass and momenta, for given densities range or conversely, on density and inertia given overall mass.
You can use MATLAB functions to determine if a point lies within a given geometry. One useful function is inpolygon, which checks if points are inside a polygon. For 3D geometries, you might need to use more advanced techniques, such as computational geometry methods or specific functions from the MATLAB File Exchange that handle 3D point-in-polyhedron checks.
While Simscape does not directly support defining a density distribution function for custom inertia properties, you can approximate this by dividing your solid into smaller elements, each with its own density and inertia properties. This approach can be complex and may require custom scripting to ensure all elements are consistent with the overall geometry and mass distribution.
I agree with all you said, but last suggestion how to manage density looks really more complex than the problem in itself in my perspective, since in the end one have just to compute integral average on whole volume to get lumped equivalent sets... Still I think should be managed by the tool more than with a external codiing, for sake of efficiency. In the end is all in one sequence step with inertial parameters calculation.
I'll reflect a while whether do or less something for.
Thanks for now.

Iniciar sesión para comentar.

Productos

Versión

R2023b

Preguntada:

el 5 de Oct. de 2024

Comentada:

el 14 de Oct. de 2024

Community Treasure Hunt

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

Start Hunting!

Translated by