Generating flexbody of wheel in contact with granular soil

PimK
PimK Altair Community Member

Hi all,

I am trying to simulate the locomotion of a simple robot on granular soils, where the wheels have some flexible elements. I am using the FlexPrep tool in MotionView to generate the flexbody of the wheel. I am using MotionView coupled with EDEM to simulate the locomotion.

I do not know which settings are the best for generating the flexbody of a wheel. I am now using the default settings and use the Craig-Bampton synthesis type. Is the Craig-Chang method or the Craig Chang Contact method a better synthesis type to use for flexbody generations? I also used rigid RBE2 spiders to the center node of the wheel, where it is in contact with the axle. Is that correct, because in reality the axle also has a diameter, so the rigid connection is not ending in one point in the middle of the wheel.

As I understood from the help page, increasing the cut-off value would also increase the accuracy of the flexbody, but it also reduces the performance. I am now using a value of 10, should it be higher?

Kind regards,

Pim

«1

Answers

  • Vishvam
    Vishvam
    Altair Employee

    Hello @PimK

    You can use the Craig-Bampton synthesis type as a start for creating flexbody. Refer to the following different types and what each of those do here:

    You can also go through the flexbody theory.

    Regarding the RBE2 rigid spider. It should be at the location/point where there is a revolute joint between the wheel and axle/spindle.

    Hope this helps!

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    It should be noted that this type of cosimulation could be very computationally expensive, and depending on your available computing power this simulation may take a long time. You will be incorporating solvers for EDEM, OptiStruct, likely MotionSolve (if you are including the vehicle), and possibly Twin Activate (if including any control models or electrification models).

    If your eventual model incorporates some or all of the above solvers, I would recommend that you troubleshoot each portion of the model independently before combining pieces. If you are new to any of those programs, I would also complete a suitable amount of eLearning for each before constructing such a model.

    A common trap for enthusiastic Users is to couple these cosimulation aspects together before learning each one independently, so I just wanted to throw that out there.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi,

    I did already the available tutorials and e-learning. I am basically interested in only the simulation results of the wheel itself. So I am simulating a robot body with four wheels using MotionSolve coupled with EDEM. The wheels have some parts which are a flexible body. I already tried it with the Craig Bampton method and succeeded, but I was wondering if it could be more accurate if I used some other settings. Especially because the simulation fails when the stiffness of the flexible body is low, and I want to simulate flexible parts which deform when in contact with the granular material.

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    I'm happy to hear you are taking the correct training approach then.

    Does the simulation fail to initialize or does the integrator fail to proceed at a certain point?

    In the context of this model, I don't believe changing the CMS method will have any significant effects.

    It should be noted that flexible bodies are not fond of large-scale deformation, hyper-elastic materials like rubber, and local plastic deformations, as the superposition of modes only applies to linear systems.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi Adam,

    Thanks for your answer. Do you see any other possibilities of simulating hyper-elastic materials, or is this not possible by using Altair MotionSolve using a flexible body?

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    This is a general limitation of all CMS FlexBodies.

    If you are trying to simulate a flexible tire and EDEM particles, there is a PM Flex-Tire plugin that you could look into implementing.

    If you are looking to model a wheel with large flaps on it like below, then you would need to implement a full nodal representation of the body, and not a modal representation.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi,

    I could not find any documentation online about how to implement a full nodal representation of a flexible body in MotionView. The documentation only gives two options for the generation of a flexible body in MotionView. The first one is using the modal representation by generating a CMS flexbody with the flexprep tool. I already did this with both the Craig-Bamption and Craig-Chang methods, but indeed the results did not vary that much. The second method is by doing it directly in Hypermesh. Is the second method doing different things or is it just another way of generating the CMS flexbody?

    Could you provide me some information about implementing a full nodal representation of a flexible body in MotionView? Are there any tutorials available?

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    Cosimulation between OptiStruct and MotionSolve would be required for a nodal body. Please use the following Tutorial for more information on how to complete this process:

    https://help.altair.com/hwsolvers/ms/topics/tutorials/mv/mv_7022_front_suspension_spring_msos_co_simulation_t.htm

    Models required for this Tutorial can be found in the Altair Marketplace:

    It should be noted that cosimulation between OptiStruct, MotionSolve, and EDEM may be computationally very expensive, especially if you are trying to model a full vehicle with multiple finite-element wheels as well as bulk material simulation. Do your current simulation needs require a full vehicle model, or are you only testing the design of the wheel? If only the wheel, then you can simply modify the following example from EDEM to cut computational costs. In your case, you would have a soil bed of sorts and not a hopper, but the rotating flexible wheel encountering bulk materials can be replicated.

    https://help.altair.com/hwdesktop/hwx/topics/tutorials/mv/tut_mv_7021_ms_edem_cosimulation_mvx_t.htm

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi Adam,

    I tried to follow the tutorial, but there is already a problem with the second step. The first sentence, see screenshot, is to se the environment variable. However, I do not know how to set the environment variable to the desired value.

    I think as a result of this missing step, the body properties are not showing the field Functional Source, which should be set to OS Flexbody. In my case that is not possible.

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    Simply search for Environment Variables from the Windows Start Menu.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi Adam,

    I managed to find that and I can now create the flexbody. However, I get an error when running the model and this error is because of the flexbody. I followed the steps from the tutorial twice, but the error is still there, so I do not know the problem. Do you have any idea? Is there a setting which is wrong?

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    My guess is that your file path is using special characters like the '+' symbol.

    Please create a file path that does not use spaces or special characters.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi Adam,

    That is not the solution. The error still appears when the file path is without spaces or special characters.

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    When do you encounter this error? Is it after you launch the MotionView simulation or when you launch the Compute Console for OS cosimulation?

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi Adam,

    This error occurs after I launch the MotionView simulation, so before the Compute Console for OS cosimulation is required.

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    Unfortunately I do not encounter this error when I complete this tutorial.

    Can you please provide the model as a zipped model archive so I can find your errors?
    (File >> Export >> Model >> Archive Model & Create Zip File)

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member
    edited February 14

    Hi Adam,

    In the attachment you find the model. For your info: I use the 2024.1 version.

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    It looks like you were trying to run it with the Python Solver and Online.

    Please change it to XML and Offline:

    With these changes, the model initializes just fine.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi Adam,

    That was indeed the problem, thanks for your help. It was by default running online.

    Kind regards,

    Pim

  • PimK
    PimK Altair Community Member

    Hi,

    I have the following wheel assembly, where the grey part is a rigid body, which is connected with a revolute joint to the robot body, to be able to rotate. The green part is a flexible OS body, but I am wondering how to connect that body to the grey part, such that it rotates together with the grey part.

    The FEM model of this soft flexible part looks like this:

    For the CMS flexbody approach, I connected the independent center node to the grey rigid part of the wheel with a fixed joint in MotionView. Now I have to connect the center independent node of the FEM file with the grey rigid part of the wheel with only ball joints, but I do not completely understand how it should work. Could anyone help me out?

    Kind regards,

    Pim

  • Vishvam
    Vishvam
    Altair Employee

    Hello @PimK

    The way to constrain the OS body in Motionview is bit challenging at the first go, as it considers only ball joints as you mentioned.

    But you can creatively use a combination of these ball joints. For example:
    1) One Ball joint - Gives 3 DOF

    2) Two Ball joints - If colinear in an axis, create a revolute joint

    3) Three Ball joints - Create a fixed joint, as it removes all DOF.

    You can see in the following image for the spring in a vehicle, from the tutorial model, wherein 3 ball joints are used to fix both the ends.

    I hope this can give you can idea into the MS-OS modelling!

    Regards,

    Vishvam N

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    Another approach you could take to this wheel assembly is to replace the flexible chunks with either torsional springs or beams, such that you can still include the flexibility of the hyper-elastic material but remove the computational complexity of the OptiStruct cosimulation. The paddles can be connected to the central hub with a revolute joint so they can still pivot as well.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member
    edited February 20

    Hi all,

    I managed to connect my flexible OS body to the rigid body by using three ball joints.

    However, I have a strange problem occurring when transferring the OS flexbody to EDEM. In the test MDL file I was using to test the connection of the flexbody I can transfer the OS flexbody to EDEM. However, if I create a new MDL file, using exactly the same setup, it gives me the following error when transferring the OS flexbody to EDEM.

    'wheel_soft0' failed to be transferred to EDEM. Triangulation of flex body failed. [General]

    I do not know how to solve this error. If I put another OS flexbody in the first MDL file (where the transfer was successfull), then the new OS flexbody can also not be exported, so I do not have any idea how to solve this strange issue. Do you have any ideas how to solve it?

    Edit: this error also occurs when I want to transfer the springof the Optistruct Cosimulation Tutorial to EDEM.

    Kind regards,

    Pim

  • PimK
    PimK Altair Community Member

    Hi Adam,

    Your suggestion about modelling the flexible parts as beams is not working, as I can not transfer those beams to EDEM, so a co-simulation is not possible. Those beams are also not visible during the simulation and are not interacting with the material.

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    It appears that you have not completed the same setup as your test MDL or else the transfer would also be successful. Without access to your model or intimate knowledge of it, there is no good way of troubleshooting that error message. Perhaps it is worth revisiting your mesh sizing or you must have separate bodies for these chunks, as space between them could be causing issues.

    As for the simplified representation, the interaction with the material could be accomplished with a rigid graphic and you could set the constraints so that it does not interact with the paddles. It is simply there as a support piece.

    As for the beams, try using a rotational spring instead between each paddle, located at the tire center, to account for the flexibility.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member

    Hi Adam,

    Thanks for your help. I identified already a bit more details about the problem. I cannot transfer any OS flexbody to EDEM. I even tried it with the OS flexbody spring of the tutorial, but also that body could not be transferred to EDEM. Next to this I tried it with a separate body and also with a finer mesh, but it does not solve the error. I also tried it with an OS flexbody without any RBE2 rigid spiders, but that is also not the problem.

    The reason why I was able to transfer it to EDEM is because I first performed a simulation with the CMS flexbody. After that I changed the flexbody to an OS flexbody and then the transfer can be performed. I repeated this method and then I could successfully transfer the OS flex body.

    However, it seems MotionView is not transferring the OS flexbody at that time, as the graphics of the CMS flexbody were transferred to EDEM. Running the simulation was also not possible, as it gave me the following error: "Only non-compliant ball joints are supported for OS flexbodies".

    However, there are only non-compliant ball joints attached to the OS flexbody, so that is not the issue. This error also shows up when the DEM 0 component in the model tree is active. If I deactivate that component, there is no error. So, it seems that the transferring of OS flexbodies is not possible at the moment, but I have no idea how to solve it.

    I have attached a export ZIP with the files.

    Kind regards,

    Pim

  • PimK
    PimK Altair Community Member

    Hi,

    The problem I want to solve is to model a small robot moving on soft soils with some obstacles. The flexible part of the robot wheels is used to deform around obstacles, to increase the grip on the obstacles. Therefore, I want to model the large deformations of the flexible parts in the wheel, which can shape around any obstacle.

    I want to know what the possibilities are in modelling this type of problem, using the Altair software. As far as I know I have tried the following options:

    1. Co-simulation of MotionView and Optistruct (using the OS flexbody), for a rigid soil and rigid obstacles. This option is not possible, as it is impossible to define a contact between the flex body and a rigid body. If this contact is defined, the following error is given: "Only non-compliant ball joints are supported between an OS Flexbody and other bodies". However, I did not define any other joints than ball joints and the error is not showing up when there is no contact between the OS flexbody and a rigid body. So it seems adding a contact between an OS flexbody and rigid body is not possible in MotionView.
    2. Co-simulation of MotionView, Optistruct and EDEM, using the OS flexbody and particles to represent granular soil. This method would not require any contacts between OS flexbody and rigid bodies. However, it is not possible to transfer OS flexbodies to EDEM, so this method will also not be possible with Altair software.
    3. The suggested option to model the flexible bodies as rigid bodies which are connected with a flexible spring or beam, would also not work, as it will not model the deformation of the flexible body around the obstacle.
    4. Using NLFE bodies (beams which represent the flexible body), would also not work, as NLFE bodies cannot be transferred to EDEM and it is impossible to add contacts between NLFE bodies and rigid bodies.

    Are the following four points right, or should one of the four points be possible to model flexible bodies in contact with rigid bodies or soft soils? Are there any other ways to model this problem?

    Kind regards,

    Pim

  • GTT Adam
    GTT Adam
    Altair Employee

    Hi @PimK,

    1. Contacts between an OS flexbody and a rigid body are very possible, as demonstrated by the following simulation where an OS flexbody gas tank strikes a rigid bump and experiences plastic deformation.

    You may have enabled the 'compliant' option in your ball joints. Please review the joint definition and confirm this is deactivated.

    2) I am fairly certain that OS flexbodies can be transferred to EDEM, but I will let an expert like @Eric_Veikle or @Stephen Cole confirm that one.

    3/4) Correct. Springs and beams can not be used as contact bodies with EDEM particles as they do not have associated geometry.

    What is exactly the purpose of this study? Perhaps if we better understand your eventual goal with this multidisciplinary problem, we can better simplify the process to be in more manageable pieces.

    For example, the trafficability of the tire through soft soils can be completed using a rigid wheel like this Mars Rover example:

    Then, the obstacle climb performance can be evaluated separately using MotionView/MotionSolve and tire models with the 3D envelopment option activated.

    So if the goal is to evaluate several different tire designs, then this can be accomplished over several unique events instead of a single event.

    Additionally, it should be noted that Altair Radioss could be looked into as well to develop a full FE wheel model encountering SPH soil profiles. This will further increase the computational intensity however I believe.

    Hope this helps!

    Adam Reid

  • PimK
    PimK Altair Community Member
    edited February 27

    Hi @GTT Adam,

    Thanks for your answer,

    In my model there are no compliant options enabled for the joints, so that could not be the problem. The error is not showing up before adding the contacts between the OS flexbody and rigid obstacle, so it is weird that this error appears after adding the contact. The error also appears when I have a totally new simulation where I imported again the CAD geometry. After this I set the body to OS flexbody and after I create a contact the error appears again. So the error is also present even when there are no joints in the model, but only two bodies and a contact.

    Do you have more information available about the type of contacts used in the example of the fuel tank? Or is there any tutorial available about defining a contact between OS flexbody and a rigid body? Maybe there is a model that works on your computer, so I can check if it also works on my computer? I attached my model for your information.

    The goal of the simulations is to investigate the added value of the flexible bodies between the rigid lugs of a lugged wheel. However, it is not possible to model it with tyres, as the shape and properties are different than normal tyres. The influence of the flexible part on the granular simulation is not that big, so I was already trying to split it into two simulations, one for evaluating the rigid wheel design on granular soils, using MotionView coupled with EDEM. The other one can capture the interaction between flexible bodies and the obstacles, using MotionView and Optistruct. However, I could not make it happen for the last option, as it gives me this weird error. The first part, investigating the rigid wheel on granular soils is working, so I do only need help with the part using OS flexbodies and MotionView bodies. Lastly, if possible I would like to investigate if combining MotionView, Optistruct and EDEM is a possibility, but at the moment it looks like this is not possible.

    What do you mean by the 3D envelopment option, I cannot find any information about that.

    Kind regards,

    Pim

  • PimK
    PimK Altair Community Member
    edited February 27

    Hi @GTT Adam,

    Thanks for your answer,

    In my model there are no compliant options enabled for the joints, so that could not be the problem. The error is not showing up before adding the contacts between the OS flexbody and rigid obstacle, so it is weird that this error appears after adding the contact. The error also appears when I have a totally new simulation where I imported again the CAD geometry. After this I set the body to OS flexbody and after I create a contact the error appears again. So the error is also present even when there are no joints in the model, but only two bodies and a contact.

    Do you have more information available about the type of contacts used in the example of the fuel tank? Or is there any tutorial available about defining a contact between OS flexbody and a rigid body? Maybe there is a model that works on your computer, so I can check if it also works on my computer? I attached my model for your information.

    The goal of the simulations is to investigate the added value of the flexible bodies between the rigid lugs of a lugged wheel. However, it is not possible to model it with tyres, as the shape and properties are different than normal tyres. The influence of the flexible part on the granular simulation is not that big, so I was already trying to split it into two simulations, one for evaluating the rigid wheel design on granular soils, using MotionView coupled with EDEM. The other one can capture the interaction between flexible bodies and the obstacles, using MotionView and Optistruct. However, I could not make it happen for the last option, as it gives me this weird error. The first part, investigating the rigid wheel on granular soils is working, so I do only need help with the part using OS flexbodies and MotionView bodies. Lastly, if possible I would like to investigate if combining MotionView, Optistruct and EDEM is a possibility, but at the moment it looks like this is not possible.

    What do you mean by the 3D envelopment option, I cannot find any information about that.

    Kind regards,

    Pim