go ahead... be a heretic | |
PerlMonks |
Re^8: [OT] Forces.by bitingduck (Chaplain) |
on Feb 16, 2016 at 04:48 UTC ( [id://1155322]=note: print w/replies, xml ) | Need Help?? |
Also, at worst you're only off by the mass scaling factor-- you can solve the whole problem as described and the only thing that changes with mass is the speed. Each loop iteration is a time interval, also with some unit that you can select later, where you can rescale the whole problem by the mass and time units. Dimensionally what I've shown is correct, and since you don't actually have a mass or specified time, you can rescale by both later. The only force component that matters to producing motion is the one that I've called F_perp. The loop is a numerical integration over time to get the position and velocity, where we're using arbitrary time units (which is perfectly acceptable as long as they're consistent). You could explicitly put in a "dt" each iteration, but you can scale by that at any time. There's nothing philosophical about it--I'm just leaving out the things that don't matter. If there are no torques on the disk/cylinder, then conservation of angular momentum means it will maintain its orientation as it goes round, so that's a distraction. As are forces that put tension or compression on the linkage, but don't produce motion unless you want to include the real properties of materials and then you're talking full up FEM and you might as well just have somebody draw it in SolidWorks and mesh it up to see the tiny deformations (unless you choose silly putty as the material, in which case they'll be huge). This problem is much closer to my day job than coding in Perl is. Edits to add more explanation:
I'm not equating a force to a distance-- we're integrating up the acceleration over time. F= ma (units mass*length/time^2). If I divide out the mass (in arbitrary units, where the mass involved =1 unit, then I have a= magnitude(F) with units of (length/time^2). If I calculate the forces on the disk at some time t, then multiply by some small dt (which is buried in the mass scaling factor, so I cheated a little there), then I get a new velocity at time t+dt=v+a*dt, and a new position that's x=x+v*dt. I buried the dt by suggesting that you just keep shrinking the scale til the motions of the linkage on any iteration are small, but you could put it in explicitly for convenience. Another edit... since any determination of work done derive from F = ma inevitably requires a known time delta, and there is simply no way to derive one from a static model. You don't have to ask the static model for a time delta. You pick a time delta small enough that if you calculate the velocity and acceleration (from the net force produced by the static model) at any time t and multiply it by the interval you're choosing, you get a new position and velocity that aren't very different from the previous ones. That's how numerical integration works. As the time delta gets smaller and smaller, you get something closer to what you'd get from an analytical solution.
In Section
Seekers of Perl Wisdom
|
|