Prevent down-system initial condition propagation

1 次查看(过去 30 天)
I have a simscape multibody that attempts to model the motion of a system not unlike the bolas common to early-1900s cowboys in some areas. To do this, I have established a joint-mass-joint-mass connection, with the initial velocity of the first mass set in the first joint. However, I run into an issue where that initial velocity flows down the system and applies to all masses in the system (i.e. a va = [10 0 10] state target velocity applied to the first joint applies to all joints and masses downstream).
To balance this out, I've set the joint immediately following the first mass to be equal to -va, but that then requires a second joint and infinitesimal mass to set initial velocity of the second mass, which doesn't seem ideal. The subsystem with two inputs and out output contians the second joint in the screenshot below. I can't imagine this is the best method to go about things - it feels extremely hacked together.

采纳的回答

Shubham
Shubham 2024-2-6
Hi Philip,
In Simscape Multibody, the initial conditions for velocities are typically set at the joint level, and these conditions propagate through the connected bodies. If you set an initial velocity at the first joint, it's expected that this velocity will influence all downstream bodies, as they are physically connected and thus will move together unless acted upon by other forces or constraints.
If you're trying to model a bolas, where two weights are connected by a string or chain and thrown with one weight leading, you might be encountering the issue because in the physical world, the trailing mass would not immediately have the same velocity as the leading mass due to the slack in the connection.
To model this more accurately, consider the following adjustments:
  1. Instead of using a rigid joint between the masses, use a flexible connector that can simulate a rope or chain. This could be a spring-damper system that allows for some stretch and lag in the response of the second mass.
  2. Instead of applying the initial velocity to the joint, apply it directly to the first mass. You can use the setInitial command in Simscape to set the initial conditions for velocities of the bodies.
  3. If you need to use a joint to connect the two masses, you can use a massless body (or a very small mass) as the connector. This body would not significantly affect the dynamics but would allow you to apply different initial conditions to each mass.
  4. You can use sensors to measure the state of the system and actuators to control the velocities independently if needed. This might be more complex and require control logic, but it can give you the exact behavior you want.
  5. If the standard joints do not provide the behavior you need, you can create a custom joint using Simscape language that has the specific constraints and initial conditions you require.

更多回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Assembly 的更多信息

产品


版本

R2023a

Community Treasure Hunt

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

Start Hunting!

Translated by