Help with choosing the simualtion type: rigid body motion

  • 609 Views
  • Last Post 03 August 2018
  • Topic Is Solved
adamkovacs1126 posted this 23 July 2018

Hi everyone,

I am studying Mechanical Engineering and my final dissertation project is about a swiss lever watch escapement simulation in Ansys. I have created the CAD geometry with the necessary parts but I don't really have any prior experience with the simulation software itself.
I know that not everyone is familiar with watch escapements, so here is a video which explains the name of the key parts and shows how the motion should look like:

And to gain some concept about how the whole mechanical movement works:

https://animagraffs.com/mechanical-watch/

Could anyone help me with which type of simulation I should use to show the whole oscillative motion? I would like to measure frictional energy loss due to escape teeth sliding on the pallets.

What joints and contact types should I use?

I know it is a really specific topic but I am a true beginner with Ansys and I would appreciate any help!

Thank you,

Adam 

Order By: Standard | Newest | Votes
peteroznewman posted this 24 July 2018

Hello Adam,

Great video! 

A good choice of simulation for this is a Multi-Body Dynamics simulation, also called Rigid Dynamics, a Mechanism or a Motion simulation.

ANSYS includes a Rigid Dynamics solver, but so do some CAD systems such as SolidWorks and SIEMENS NX.  What CAD system are you using?

You will be using Revolute Joints and Frictional Contact.

Regards,

Peter

  • Liked by
  • adamkovacs1126
adamkovacs1126 posted this 24 July 2018

Hi Peter,

Thank you very much for your quick answer! 

I used SolidWorks for creating the model but I was told that Ansys will be a better tool for simulation.

Following your advice I tried the Rigid Body Simulation, I applied Ground to Body Revolute Joints at the center of the rotating parts to make them fixed against translational motion but free to rotate, Fixed Joints for keeping necessary parts together such as the pallets and the pallet fork and Frictional Sliding contact between the following parts:

- escape wheel and pallets

- pallet fork and banking pins

- pallet fork and jewel pin

I have not designed the spring yet because first I just wanted to see one half-cycle of the oscillation i.e. how the tooth of the escape wheel first unlocks from the first pallet and then locks again on the other pallet. For this, I created a joint moment turning the escape wheel representing the main spring and another joint moment turning the balance wheel-roller-jewel pin assembly representing the hairspring. 

The simulation fails to solve completely, it stops just after the tooth of the escape wheel escapes the first pallet and starts sliding on it. To see the animation, I included it in a GIF file, if you can't see it, you can click on the following link:


http://gifmaker.me/PlayGIFAnimation.php?folder=2018072321hTlW6EcVNAvkKgFsXUThwV&file=output_AUHNq8.gif

I collected the following various error messages from the solver:

    Error: state inconsistency, receive no contact point for an active contact pair. Try reducing the time step
    State Inconsistency for the contact: Shock detected without contact point
    State inconsistency at time 6.858711e-05. The solution has been restarted.
    Contact "Forced Frictional Sliding - Jewel Pin-1 To Pallet Fork-1" Received 8 contact points
    Error: state inconsistency, receive no contact point for an active contact pair. Try reducing the time step
    State inconsistency at time 2.316455e-04. The solution has been restarted.

Contact "Forced Frictional Sliding - Jewel Pin-1 To Pallet Fork-1" Received 7 contact points
    Stopped Forced Frictional Sliding - Jewel Pin-1 To Pallet Fork-1 at 0.000268116
    Murty's algorithm reached maximum number of iterations: 49
    Last 3 minimal values are -4.865388e+05 -1.530893e+10 -4.865388e+05
    Murty by Factorization algorithm failed
    Trying PSOR
    PSOR algorithm reached maximum number of iterations: 49
    Initial residual 6.461609e+05 Last 3 residual values are 3.738246e+03 3.738250e+03 3.738253e+03
    PSOR algorithm failed
    Trying Lemke
    Lemke algorithm failed
    Trying Lemke
    Enforce RHS may lead to inaccurate solutions, carefully check results.
    Lemke algorithm failed
    Trying Write LCP matrices
    Write LCP matrices algorithm failed
    None of the LCP solvers succeeded, Abort computation.

    No set of active contact stops can satisfy all the constraint equations. Solve cannot proceed

 Solve failed
    Error found at time 2.844257e-04


    Solution terminated before normal completion

Do you have any idea about what I can do to make the simulation solve the problem completely?

Thank you very much in advance,

Kind regards, 

Adam

peteroznewman posted this 24 July 2018

Hello Adam,

ANSYS is a great simulation tool for flexible bodies, but your problem can be solved using rigid bodies, so the FEA solver is not the best choice.

I have a lot of experience with mechanism simulation using SIEMENS NX Motion Simulation that uses the Recurdyn Solver, which works very well. Using Recurdyn, this kind of mechanism will solve in minutes. If you built the model using flexible bodies, the motion would take hours to solve in the ANSYS Transient Dynamics solver, but it could be done.

I have only played with ANSYS Rigid Dynamics once or twice so I don't know for sure how to get your model to solve. You could try changing to frictionless contact.  You could try changing the Restitution Factor to 0. You could try putting a tiny blend on the edge of the escapement wheel and the pallet and add those new faces into the contact and target sides of the contact pair.

If that doesn't work, I am willing to take a closer look. Please create a Workbench Project Archive .wbpz file and attach it to your last post, as long as the file size is < 120 MB.  Save As Parasolid your SolidWorks assembly and compress that into a .zip file and attach the zip file also.

Kind regards,

Peter

 

  • Liked by
  • adamkovacs1126
adamkovacs1126 posted this 24 July 2018

Thank you very much Peter! First I will try all the options you proposed and get back to you afterwards! I will also take a look at the SIEMENS software.

Thanks again and kind regards,

Adam

peteroznewman posted this 24 July 2018

Hi Adam, the great thing about ANSYS is the free Student license, and this site.  SIEMENS doesn't do that and especially not including Motion Simulation, since they have to pay a license fee to Recurdyn to get that optional license on their system.  Does you SW license include the Motion Simulation software?

Recurdyn solver technology is available in the ANSYS Workbench interface, but again that is a purchased license and there is no free Student version.

The Rigid Dynamics solver is included in the free Student license, so you should keep trying that.

Kind regards,

Peter

 

  • Liked by
  • adamkovacs1126
adamkovacs1126 posted this 25 July 2018

Dear Peter,

I tried to follow all of your advices but I still couldn't make it fully work. There must be a problem with the escape wheel - pallets interaction because if I supress the escape wheel, I receive no problems and the model behaves as it is supposed to. I left the wheel suppressed so you can see this as well. I would be more than thankful if you could take a look at it as I really have no more ideas how the problem could be solved. I attached the .wbpz and the zip files, please let me know if something is missing.

To answer your question, there is a motion simulation included in the SolidWorks Student License, but I still think as my aim is not only to show the motion, using Ansys would provide me with more opportunities to take all kinds of measurements later such as air flow simulations.

Thanks again and kind regards,

Adam

Attached Files

peteroznewman posted this 25 July 2018

Dear Adam,

I am interested to see if I can get this model to run.  What version of ANSYS are you using?

Please put Assembly.x_t into a zip file and attach that also, since I don't have access to the geometry for editing without that file. [Edit: actually I found it later in the import_files folder]

Later today, I am going to (and you can too) add a blend to these two edges, then have one frictionless contact pair that has 3 faces on the contact side and 3 faces on the target side of the contact. That may let the solver "get around the corner".

Kind regards,

Peter

  • Liked by
  • adamkovacs1126
adamkovacs1126 posted this 25 July 2018

Dear Peter,

I am using version 19.1 and I think I attached the zip file as well with the assembly inside to my previous post.

Please let me know how it goes, Kind regards,

Adam

adamkovacs1126 posted this 25 July 2018

UPDATE: I tried creating miniature blends for your 3 Face - 3 Face contact and it works without an error! Many thanks Peter, I owe you one! 

Do you have any advice on how to set up the whole motion including the second half cycle (i.e. when the jewel pin swings back due to the hairspring, unlocks the newly locked teeth and locks another one)? Should just I set up another moment at the roller joint after the first swing finished with the same magnitude as before but different direction? 

How could I measure the frictional force due to the tooth sliding on the pallet?

And last but not least, later on, to make it more lifelike, can I use the spring joints to create real spring forces?

Thank you and kind regards,

Adam

 

peteroznewman posted this 25 July 2018

Great news Adam!

Do you mean miniature chamfers (flat face) or blends (cylindrical face) on the former sharp edge? The failure of the algorithm to release the contact at the sharp edge is a defect that ANSYS should fix, but you needed a work around now.

Instead of a moment on the oscillator, which holds the impulse pin, you should put a rotary spring. That spring will have its zero torque angle at the centerline between its pivot and the escapement wheel pivot.  Then the mechanism should just keep running forever, powered by the moment on the escapement wheel.

You may be able to output the contact normal force from the contact elements, but if that doesn't give good results, a fixed joint between the stone and the lever will give you a clean output of the forces going through the fixed joint.  Since you are using frictionless contact, the frictional force is zero. You have to change the contact to frictional.

Please attach your next working iteration so I can play with it too!

Kind regards,

Peter

  • Liked by
  • adamkovacs1126
adamkovacs1126 posted this 25 July 2018

Dear Peter,

This a great community here, I am very thankful for all of your help and your quick responses.

 By the way I meant blends, sorry. I will try to go on with the project as you advised, though I might return here to ask some more questions.

Thanks again,

Kind regards,

Adam

 

adamkovacs1126 posted this 27 July 2018


Hello Peter,

unfortunately I could not manage to set up the whole oscillation as the simulation fails before the new unlocking happens no matter how many contacts set up or how many blends I create. It must be a missing or wrong contact with the escape wheel and pallets again (the simulation works if I suppress the escape wheel) but not matter how many hours I spent these days trying all the different setups, I just can't figure out which one it is. The weird thing is that if I simulate only the second half cycle by manually configuring the assembly to have the same position initially as when it finished the last half cycle, the new unlocking mechanism works.

I would be really thankful if you could take a look at this, I have attached the model and my current setup. I am planning to use a rotary spring in the future as you recommended but first as I just wanted to see the motion itself, I simply changed the moment's value to the same magnitude but opposite sign for the second step.

Thanks very much in advance and kind regards,

Adam

P.S.: this is the error message I receive:

Contact "Frictionless - Escape Wheel To Pallet2" Received 16 contact points
    Stopped Frictionless - Escape Wheel To Pallet2 at 0.0150114
    Stopped Frictionless - Escape Wheel To Pallet2 at 0.0150114
    Stopped Frictionless - Escape Wheel To Pallet2 at 0.0150114
    Murty's algorithm reached maximum number of iterations: 100
    Last 3 minimal values are -2.155316e+06 -6.163381e+06 -2.155316e+06
    Murty by Factorization algorithm failed
    Trying PSOR
    PSOR algorithm reached maximum number of iterations: 100
    Initial residual 1.247858e+06 Last 3 residual values are 4.601750e+06 4.601750e+06 4.601750e+06
    PSOR algorithm failed
    Trying Lemke
    Lemke algorithm failed
    Trying Lemke
    Enforce RHS may lead to inaccurate solutions, carefully check results.
    Lemke algorithm failed
    Trying Write LCP matrices
    Write LCP matrices algorithm failed
    None of the LCP solvers succeeded, Abort computation.

    No set of active contact stops can satisfy all the constraint equations. Solve cannot proceed

Attached Files

peteroznewman posted this 28 July 2018

Hello Adam,

I wanted to see if the Recurdyn solver used in NX Motion Simulation would have any problem with the square corner on the escape wheel and stone.

I took your original Parasolid file and in 20 minutes made a motion simulation where I drove the oscillator wheel with a constant velocity input on the joint to make the movie below.  Right click on the movie and pick Loop to make it play on loop.

 

The fact that the ANSYS Rigid Dynamics solver can't do that is a bug that should be fixed.

To your question about making a simulation that runs a full cycle, that would be nice to have, but not necessary. You can do the analysis you want with two models that run the lever in opposite directions. 

Regards,

Peter

adamkovacs1126 posted this 28 July 2018

Dear Peter,

it looks really cool although there is some interference at the end of unlocking but I am sure that must be only a contact missing. I wish NX Motion Simulation had a free student version...

I know the full cycle is not necessary but I want to keep on trying just for a couple more days as it would be nice to see the whole thing together. Any idea what can be the problem there?

Also, if I will not succeed, is it possible to manually enter coordinates for some assembly part points in order to receive the exact position where it was at the end of the first simulation? I could only find a dragging tool when I click on configure for the revolute joints.

And finally, how could I apply the rotary spring? Rigid body Dynamics lets me do only longitudinal when I choose a spring joint.

Thanks again and kind regards,

Adam

peteroznewman posted this 28 July 2018

Dear Adam,

The interference shown in the Recurdyn solution was due to the default values in the 3D contact between those two solid bodies, which looks like this:

After I put two extra zeros into the Max Penetration Depth and one extra zero into the Stiffness, frame 415 in the animation now looks like this:

 

You add a torsional spring to a Revolute joint in the Details window where it says Torsional Stiffness.

Also, when you replace the moment with a spring, you need the Transient initial conditions of that joint to have a Rotational Velocity so the oscillator wheel will have the momentum to operate the first cycle when the torsional spring force approaches zero.  Here is how simple it is to create initial conditions in NX Motion Simulation:

In ANSYS Rigid Dynamics, in order to do that, you have to use two time steps, in the first time step, you have a specified rotational velocity on the roller revolute, and in the second time step, you have to deactivate that load, so the velocity can vary with the dynamics of the spring and mass.

If you get a simulation that runs for a few cycles, you can see what the actual rotational velocity is at the initial angle of the system, and update the guess you made for the rotational velocity with the one that is established after many cycles.

I will play around and see if I can get that to work.

Regards,

Peter

 

  • Liked by
  • adamkovacs1126
adamkovacs1126 posted this 28 July 2018

Thanks a lot Peter, let me know how it goes, I will keep trying it as well.

Kind regards, 

Adam

peteroznewman posted this 29 July 2018

Hi Adam,

This model changes the sign of the moment at some point in time. This is working the way you want after I cleaned up the contacts.

 

The next step is to replace the moment with a spring and initial velocity. One way to set that up is to position the oscillator wheel at the maximum angle when it comes to zero velocity, that way, you don't have to specify an initial velocity. Say that is with the impulse pin 180 degrees away from the centerline. That means you can define the spring to have 180 degrees of wind-up, as well as a spring rate. The torsion will be zero when the impulse pin is at 0 degrees. You can just adjust the spring rate to get the motion you want.

Regards,

Peter

Attached Files

adamkovacs1126 posted this 29 July 2018

Hello Peter,

I am really thankful, I tried as well to set up the changing moment and it worked with the pallet fork only but I couldn't find the right contacts to satisfy the new unlocking for the escape wheel.

I will go on with the spring then and get real life values for stiffness and angles.

Thanks very much again, this was truly helpful!

Kind regards,

Adam

adamkovacs1126 posted this 30 July 2018

Hi again Peter,

is there anything special you changed apart from the contact faces?

I set up the same loading, time steps, blends, contacts and yet it fails to solve. Is there anything I missed? I saw you set up a parameter and a named section, do they have any specific purpose?

I know I could just use yours which is already working but I want to make sure I can get it work as well from the beginning.

Thanks and kind regards,

Adam

Attached Files

peteroznewman posted this 30 July 2018

Adam,

I changed the analysis settings to give the specific timing of when the moment changed sign.

I changed the magnitude of the moment.

I made sure all contacts had Restitution = 0.

Under Solver Controls I added With Inertia Matrix to one of the options.

Sorry, I should have deleted the Named Selection and Parameter, I just had your model open when I was trying to answer a question from another post.

I will mention that I made a version 5 of your model where I tried to make the oscillator wheel turn around again, but then I got convergence issues at times where the version 4 model was already working. That showed how fragile the solution is and that was my sign to stop working on the project and declare victory.

Regards,

Peter

  • Liked by
  • adamkovacs1126
adamkovacs1126 posted this 30 July 2018

Dear Peter, I recognised and changed all these settings and yet for me it didn't work. My computer may be cursed or I might have just missed a small detail, could you please take a look at it as a last attempt?

EDIT: I have attached my files to my previous post.

Thanks very much and kind regards,

Adam

adamkovacs1126 posted this 01 August 2018

Hi Peter!

I managed in the end! I also replaced the time varying moment with a constant initial one which works for a really small time period and I gave stiffness to the joint revolute and I was happy to see that it works nicely this way as well.

That means you can define the spring to have 180 degrees of wind-up, as well as a spring rate.

Now I am trying to set up the oscillator as you said but I am a bit stuck. Could you give me any reference reading on how exactly I should define the zero velocity angle for the revolute joint spring so when I configure it manually to start at that angle, then, at the beginning of the simulation, it will start oscillating without any further load applied on it?

Thanks again and kind regards,

Adam

 

peteroznewman posted this 01 August 2018

Hi Adam,

The attached model is (almost) working like you want. I just have a short step 1 that winds the spring up, then deactivate that load in step 2.

Regards,

Peter

Attached Files

  • Liked by
  • adamkovacs1126
adamkovacs1126 posted this 03 August 2018

Dear Peter,

Thank you very much, I will check your settings!

Kind regards,

Adam

Close