How to connect a 6 DoF joint to a moving center of mass (by creating a moving frame) in Simscape Multibody
16 次查看(过去 30 天)
显示 更早的评论
I am simulating the projectile motion of an aerial vehicle with wing deployment in Simscape Multibody. The vehicle is given an initial velocity using the State Target in the 6-DOF joint. The 6-DOF joint is connected to the center of gravity (CG) of the vehicle at its initial position. During the projectile motion, the wings deploy, causing the CG location of the vehicle to change over time. I am measuring this displacement using an Inertia Sensor, and this part of the simulation works well.
My ultimate goal is to perform a co-simulation between Simscape and a CFD solver. I created a Standalone FMU from the Simscape model, which I provided to the CFD solver. In the CFD solver, I calculate the aerodynamic forces and moments based on the updated CG location at each time step and pass these values as inputs to the Simscape Multibody model (FMU).
Current Difficulty:
My current challenge lies in placing a joint at the moving center of mass (CG) in Simscape Multibody. In Simscape, when a 6-DOF joint is placed, the center of rotation is fixed at the joint connection point, which in my case is the initial CG location. However, I need the joint to follow the moving CG. If I can create a frame at the moving CG location, I could directly apply the aerodynamic forces from the CFD solver (using the 6-DOF joint) at that updated location.
I have referred to several related solutions from the following MathWorks discussions: https://www.mathworks.com/matlabcentral/answers/1576920-placing-a-joint-on-a-moving-center-of-mass-in-simscape-multibody?s_tid=answers_rc1-2_p2_MLT and https://www.mathworks.com/matlabcentral/answers/1851513-simscape-multibody-apply-forces-sense-velocity-of-global-center-of-mass Unfortunately, I have not yet been successful in resolving this issue.
I would greatly appreciate any suggestions or comments on how to place a frame (joint) at a moving center of mass (CG) in Simscape Multibody.
Thank you!.
5 个评论
Yifeng Tang
2024-10-7
Good to know!
An really small time constant may result in unneccessary, overly small time steps. Consider experiment with a few different values and find out what is small enough for your application. Good luck!
I'll summarize the comments and put into the Answer section.
采纳的回答
Yifeng Tang
2024-10-7
Summarizd from comments:
(1) leave the 6DOF untouched
(2) use the measured CG location to drive a cartesian joint to the new CG location. you MAY need a tiny mass to avoid degenerate system error.
(3) apply the calculated force at the follower frame of the cartesian joint.
(4) use a transfer function with small time constant to break algebraic look if any occurs. experiment with the value to find a small enough one.
0 个评论
更多回答(0 个)
另请参阅
类别
在 Help Center 和 File Exchange 中查找有关 Applications 的更多信息
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!