Hi, Ruochun
Thank you for your reply, I wiil try it. By the way, can you share
me the method how to debug the code step-by-step in linux?
Best regards,
Wenxuan
在2024年6月27日星期四 UTC+8 23:06:58<Ruochun Zhang> 写道:
> Hi Wenxuan,
>
> 1. When you load a mesh or an analytical object, it's by default in family
> 255, a reserved and automatically fixed family. You probably changed your
> mesh into a family that does not have any motion prescription, then in that
> case it follows the "normal physics" like all the particles you load in,
> including falling under gravity. If you wish to fix that family, just use
> *SetFamilyFixed*.
>
> 2. This is more complicated. First, we have to understand that in DEME,
> strictly speaking, objects work with their principal frames of inertia
> (centered at CoM, having a diagonal inertia matrix). This is a current
> limitation due to how the inertia matrix-defining APIs are designed: you
> can only input the principal moments of inertia. But this also means that
> setting the frame correctly is not necessary if you completely prescribe
> the motion of that object (a.k.a. this object does not respond to physics),
> and you don't care about getting a torque reading. However, in your case, I
> suggest you do so, since you'll prescribe a complex motion, and
> standardizing the frame to use at least the CoM frame can save you some
> head-scratching. I suggest that you make it such that in the mesh file you
> load in, the (0,0,0) point is right at the CoM of this mesh; but if not,
> you can adjust the CoM and principal axes with *InformCentroidPrincipal*
> after loading in the mesh.
>
> After that is taken care of, you need to combine the two rotations into a
> rotation about this object's own CoM and a linear translation of this
> object's CoM (because family motion prescription allows for setting these
> two motions only). Use your MBD knowledge to do that. I don't guarantee the
> correctness of this, but some back-of-the-envelop calculation seems to put
> the angular velocity to be (w2×cos(w1×t), w2×sin(w1×t), w1), and the linear
> velocity to be 5×(w2×cos(w2×t)×sin(w1×t)+sin(w2×t)×w1×cos(w1×t),
> -w2×cos(w2×t)×cos(w1×t)+sin(w2×t)×w1×sin(w1×t), 0). Again, please verify
> yourself. After that, prescribe the object's family's motion using it.
>
> But if this is too complicated and you can write your code to calculate
> the location and quaternion of this object at any given *t *(which for
> some people is easier than mathematically deriving the analytical
> expression for the linear and rotational motions), then you can set this
> object fixed, then use the tracker methods *SetPos *and *SetOriQ *to
> enforce the location and rotation of this object *at each time step*. It
> should achieve the same assuming this object is not moving at a very high
> velocity.
>
> Thank you,
> Ruochun
>
> On Thursday, June 27, 2024 at 2:49:43 PM UTC+8 [email protected] wrote:
>
>> Hi,
>> I want to achieve a composite rotational motion of a geometric body,
>> as follows
>> Motion 1: Rotate at a speed of w1 rad/s, with the rotation axis being the
>> z-axis
>> Motion 2: Rotate at a speed of w2 rad/s, with a rotation vector of [1 *
>> cos (w1 * time), 1 * sin (w1 * time), 0], and an action point of [0, 0, 5],
>> as shown in attached figure.
>> [image: rotating_Chute.png]
>>
>>
>> However, the following issues were encountered:
>> 1. After using DEMTracker to track geometry, even if I don't add any
>> motion, the geometry will continue to drop down. How can I fix the geometry?
>> 2. How to achieve the composite rotational motion mentioned above?
>>
>> Best regards,
>> Wenxuan Xu
>>
>
--
You received this message because you are subscribed to the Google Groups
"ProjectChrono" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/projectchrono/02c5ad55-1b20-4d54-a585-f5513870bc8fn%40googlegroups.com.