Mathematics in (SOLIDWORKS) Motion: Singular Perturbation Theory


One of the coolest aspects of mathematics is that almost everything in our world can be explained or demonstrated with math! Math is the basis of engineering and science and is one of the main reasons I became an engineer. There are plenty of math equations and theories that describe our physical world but what I find even more interesting is when a complicated mathematical concept can be explained by using a simple physical example. That is exactly what Professor Tadashi Tokieda did in his lecture for Gresham College called “Mathematical Research from Toy Models”. I highly recommend checking out his lecture if you are even the slightest bit interested in mathematics. Personally, I was so inspired by his lecture, that I decided to do a little experiment of my own. In this article, I walk through how I recreated one of Professor Tokieda’s examples in SOLIDWORKS Motion.


Before I dive into the SOLIDWORKS aspect of this experiment, let’s discuss the math behind the scenes. The theory that we will attempt to prove is Singular Perturbation Theory. Basically, this theory means that a given parameter cannot be approximated as zero, no matter how small it gets. Most equations I learned in engineering school assumed the opposite. I would hear professors say, “x is assumed to be very tiny and is approximated as 0” all the time!

Professor Tokieda explained this theory simply by rolling two seemingly identical blocks on a table. The first block would roll maybe one time before falling. However, the second block rolled the length of the table, despite being identical to the naked eye. The reason this happened was because the second block had a very slight curve to its edges. No matter how small of a curve there is it will always continue to roll. In this experiment, the slight curve is the parameter than cannot be approximated as zero. We will call this parameter “Epsilon” for the remainder of this article.


Okay, now let’s use SOLIDWORKS to test this theory too! I modelled the blocks to look like regular hexagons and their sketches can be seen below. Model_0 (left) is our control block and has no curvature added. Model_E (right) has the curvature added.

Sketches of Model_0 and Model_E

You cannot see any difference between the two models from a normal view. But if I zoom in real close to one of the vertices on each sketch, you can see the very slight difference. You can also see that Model_0 (left) shows a length of 4in. while Model_E (right) shows a radius of 92373.734in, or in other words, VERY LARGE.

Model_0 vs Model_E zoomed in on one of the vertices

I used a Global Variable “E” to drive the distance between the endpoints of the arcs and the endpoints of the ideal hexagon. For our experiment, I chose 0.0001 as the value of “E” because this was the lowest value I could use before SOLIDWORKS assumed it to be 0 (ironic, I know).

Equation Manager and sketch of Model_E

Next, I needed to model a little stadium to roll on. I just modeled a basic floor with a wall at the end to prevent the blocks from falling into the SOLIDWORKS abyss. I added some visuals to indicate the “Start” and “Finish” (although these were strictly for fun and added nothing to the experiment).

Front and Side View of the Rolling Platform

Lastly, I just needed to create the assembly before setting up the Motion Study which is shown below.

Assembly of Model_0 (right) and Model_E (left)


With our blocks and platform modelled and assembled, it’s finally time to test the theory using SOLIDWORKS Motion. Before creating a Motion Study, I need to ensure the SOLIDWORKS Motion Add-In is active.


To keep the experiment fair, I used the exact same setup for both studies. I applied gravity in the negative Y direction, I assumed the blocks were Rubber (Dry) and the Platform was Aluminum (Dry). To capture the rolling movement a 0.10 lbf*in Torque was applied to the inner hole.

Gravity Parameters and Direction
Contact Parameters between the Block and the Platform
Torque Parameters applied to the block

With the study setup’s finished, it’s time to see if the Singular Perturbation Theory holds up in SOLIDWORKS Motion! In layman’s terms, lets see if the blocks rock AND roll… First, let’s test out Model_0.

Model_0 does not roll, proving our theory of what happens when our epsilon is zero. Now let’s look at Model_E.

Model_E rolls! Even when the parameter is super close to zero, this proves the Singular Perturbation Theory is correct and SOLIDWORKS can simulate it!


I hope you all had a fun time following my motion experiment. SOLIDWORKS is such a powerful real-world tool to use and it’s amazing what it can do. If you enjoyed this article, be sure to check out our Resource Library for many more articles just like this one. Remember that here at DesignPoint, More is Possible.