"Smart" initial displacement and velocity

Renga@MFRC
Renga@MFRC Altair Community Member
edited January 2021 in Community Q&A

Hi


I am trying to set up a simple simulation as a practice for a larger more complex simulation. I am attempting to move a body downward (-z direction) at a constant velocity, then apply a constant acceleration, So when I use the motion command I need to input the the initial displacement and velocity. I know I could just put in -250 in for the initial displacement but I am trying to have a 'smart system' as this object will be interacting with a powder using EDEM co simulation, and I wont know the initial displacement of the body. I am trying to use DZ function but its not working, when the motion command is used the body jumps back to its starting position, as if I had entered '0' for ic_disp

my script is below, if I enter -250 for ic_disp it work as I want, B_0 is the body being move, and is the only body


<Simulate

analysis_type = 'Transient'
end_time = '5'
print_interval = '0.01'
/>

<Motion_Joint
id = '301001'
joint_id = '301001'
motion_type = 'T'
val_type = 'A'
ic_disp = 'DZ({b_0.cm.idstring},{Global_Frame.idstring})'
ic_vel = '-50'
type = 'EXPRESSION'
expr = '10'
/>

<Simulate
analysis_type = 'Transient'
end_time = '15'
print_interval = '0.01'

/>

Answers

  • Praful
    Praful
    Altair Employee
    edited September 2020

    Hello Edward - Here is how I did it (see attached model). A displacement type motion is used and a sensor is defined to capture the value of the displacement at the needed time. The value of that evaluation is used using the SENVAL statement to modify the motion.

    In my example, the motion is deactivated initially to let the body fall under gravity, but this is not necessary. The motion can be active if needed.

     

    Hope this helps.

     

    Regards

    Praful

    Unable to find an attachment - read this blog

  • Renga@MFRC
    Renga@MFRC Altair Community Member
    edited January 2021

    Hi Praful, thanks for your response


    I have tried to use this with my simulation, it does not work. I think the issue is that the Initial displacement and initial velocity required for an acceleration motion, can only be numbers, they do not seem to accept functions.


    I cannot just use displacements, I need to use accelerations to control the loading in the co-simulation


    I have attached my model with the attempt to use sensors

    Unable to find an attachment - read this blog

  • mpv
    mpv Altair Community Member
    edited September 2020

    Hi,

    Before finding out a better resolving, you may try to apply the motion to a dummy body and then try to active/deactive a coupler between the two body to conduct sequent simulation. It will avoid the conflict in initial condition of the motion.

     

    I attached the model was fixed.

    <?xml version="1.0" encoding="UTF-8"?>DZ.png

    Unable to find an attachment - read this blog

  • Renga@MFRC
    Renga@MFRC Altair Community Member
    edited January 2021

    Hi


    I ended up using forces instead to control the acceleration and used the sensor method outlined by Praful. So that works well. I think the issue that I was having is that the initial displacement and velocity have to be 'real' values as apposed to 'expressions', they cannot have functions in them. 


  • Chris Coker_21312
    Chris Coker_21312 New Altair Community Member
    edited September 2020

    This is probably the best method, since you mentioned earlier you would not know the exact position of the body, due to the external influences of the EDEM co-simulation. Relying on enforced displacements would likely always be  problematic, in this case.