Simulating Motion with Physical Dynamics

I started playing around today with Solidworks’ physical dynamics modeling while developing ideas for a simple, secondary mechanism for our 2007 robot. I thought it might be interesting for others to see how you can assign dynamic properties to parts in an assembly and simulate the interaction of parts based on those properties. For my purposes, I added gravity, a rotary motor at the arm’s shoulder joint and a linear spring at the wrist.

Here’s the first prototypical model: http://youtube.com/watch?v=qZKbm0RZX_w

It turns out that allowing the wrist to become colinear with the rest of the arm is bad, so I made some quick changes to the wrist part and arrived at a better solution.

http://youtube.com/watch?v=TJM-8YpX0S4

That works just as I was expecting and hoping – and I learned that all without cutting a single piece of metal.

I thought that was pretty neat.

Actually, that IS pretty neat. Really neat. I gotta learn how to do that. In April, maybe.

Don

I am very happy that the new version of solidworks has these features…the physical dynamics function has made prototyping designs possible in the virtual environment.

That’s cool.

How do you define the motion within the program? Do you, for example, describe the arm’s angle as a function of time? Or does the program understand how motors work, and you input the motor’s speed or power?

The physical simulator has four basic properties that can be applied to parts and assemblies – gravity, linear spring, linear motor and rotary motor.

Gravity behavies as you might expect. You can vary the magnitude and direction.

Linear springs are defined by a free length and a spring force. The program seems to try to differentiate between compression and tension springs automagically and has mixed success. Unfortunately, there’s no way to account for a spring’s physical characteristics – compressed length, particularly.

Linear and rotary motors are defined by speed of motion rather than the physical characteristics as well. Also, their operation is unaffected by other circumstances. For example, a rotary motor can be set to operate at a speed of 45*/sec – but it doesn’t slow or speed up based upon load.

The dynamics modeling is great for determining how motion will play out given a limited set of variables – but it can by no means be used to determine gearing or load bearing capacity.

The physical dynamics features in SW are cool, but can only take you so far. If you want to model actual response torque based on an input motion profile (position, speed, or acceleration) and visa versa, then you need CosmosMotion that is embedded in SW. We have been using CosmosMotion for several years at FANUC and we used it in 2005 and this year to determine what actual spring balancer we wanted to use for the arm.

I highly recommend the CosmosMotion add on for anyone designing mechanisms. It saves a bundle on prototyping and mock-ups.