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.

Reply via email to