Placing a Joint on a Moving Center of Mass in Simscape Multibody

16 次查看(过去 30 天)
Hi, I wonder if there is any way to place a joint on the center of mass of a mechanism. But here is the catch, the center of mass is moving. I am trying to model a flying rocket and rocket mass varies by time. As a consequence COM is moving (upwards). Simcape lets me see where the center of mass relative to a selected frame with the inertia sensor but neither I can manipulate the mechanism's COM nor I can place a joint fixed with respect to the mechanism's COM.
Is there any solution for this?
Thanks.
  4 个评论
Steve Miller
Steve Miller 2021-11-6
Hi Baris,
You have described how a joint is connected to a frame on a body.
What do you plan to do with that joint? Why do you need the joint?
--Steve
Baris Ucarsoy
Baris Ucarsoy 2021-11-9
The 6-DOF joint is needed for connecting the rocket airframe to the world frame. I need unconstrained movement so I chose 6-DOF. I also need sensing ports from the joint so I can have feedback lines for changing drag and lift forces with respect to velocity. The problem is rocket airframe has a variable mass component (the motor), so during flight, my center of mass is moving upwards. I need my joint exactly connected to COM even when the COM is moving. The reason for that, to get an accurate stability response, rocket airframe needs to turn from COM.
From what I understand it is not yet possible to move joint location while in simulation. Thank you for your attention.

请先登录,再进行评论。

采纳的回答

Steve Miller
Steve Miller 2021-11-9
To measure the location of the CG, you can use the Inertia Sensor block.
You may need to superimpose this measurement onto another measurement.
To apply forces to a CG that is moving, you can use an External Torque and Force block.
  1. Measure the change in CG location using the Inertia sensor.
  2. Apply that motion to a joint (you may need a very small mass at the end of that joint)
  3. Apply the forces and torques to that frame.
--Steve
  3 个评论
alberto corvi
alberto corvi 2022-11-15
I cannot make this solution work. I have a similar problem where basically i need to sense the velocity of the Center of Gravity (CoG) of the system and possibly apply forces directly there. I tried to attach a 6-DoF Joint to the CoG but I haven't yet managed to do it. I cannot understand how to assign the motion of the CoG (sensed with INERTIA SENSOR) to the 6-DoF Joint block. I tried 'de-muxing' the signal but algebraic loops form and there seems to be no solution (Mux/Demux for physical signals - MATLAB Answers - MATLAB Central (mathworks.com)).
Steve Miller
Steve Miller 2022-12-1
To avoid the algebraic loop, you either have to
  1. Break the using a transfer function loop OR
  2. Do not use the joint. Instead, apply the force at the same point always, but also apply an equivalent moment to compensate for the fact that the force is not being applied at the CG.
--Steve

请先登录,再进行评论。

更多回答(0 个)

类别

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

产品


版本

R2021b

Community Treasure Hunt

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

Start Hunting!

Translated by