How to connect a 6 DoF joint to a moving center of mass (by creating a moving frame) in Simscape Multibody

12 views (last 30 days)
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 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 Comments
Jintu
Jintu on 7 Oct 2024
Thank you very much!
In my model, I did not use both unit delay block and trasfer function block. I used either one of then while testing. Apologize for the wrong statement in the previous reply.
The model provided good results with a really small time constant at the transfer function!
Yifeng Tang
Yifeng Tang on 7 Oct 2024
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.

Sign in to comment.

Accepted Answer

Yifeng Tang
Yifeng Tang on 7 Oct 2024
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.

More Answers (0)

Community Treasure Hunt

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

Start Hunting!