## General Mechanical

#### Help with choosing the simualtion type: rigid body motion

Subscriber

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,

• peteroznewman
Subscriber

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

Subscriber

Hi Peter,

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,

• peteroznewman
Subscriber

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

Subscriber

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,

• peteroznewman
Subscriber

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

Subscriber

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,

• peteroznewman
Subscriber

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

Subscriber
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
Subscriber

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,

• peteroznewman
Subscriber

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

Subscriber

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,

Subscriber

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,

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

• peteroznewman
Subscriber

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

Subscriber

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,

• peteroznewman
Subscriber

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

Subscriber

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

Kind regards,

• peteroznewman
Subscriber

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

Subscriber

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,

Subscriber

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,

• peteroznewman
Subscriber

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

I changed the magnitude of the moment.

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

Subscriber

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,

Subscriber

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,

• peteroznewman
Subscriber

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

Subscriber

Dear Peter,

Thank you very much, I will check your settings!

Kind regards,