"be consistent" PerlMonks

### Re^4: [OT] Forces.

by bitingduck (Chaplain)
 on Feb 15, 2016 at 18:16 UTC ( #1155275=note: print w/replies, xml ) Need Help??

in reply to Re^3: [OT] Forces.

You could use linear density (mass per unit length) if you want the mass. You only need the mass if you want accurate calculation of the speed in real units. If you just want the motion around the spindle, you can set the mass=1 arbitrary unit and integrate the magnitude of F_perp as you go around to determine the relative speed at any given point.

Replies are listed 'Best First'.
Re^5: [OT] Forces.
by BrowserUk (Pope) on Feb 15, 2016 at 20:32 UTC
you can set the mass=1 arbitrary unit and integrate the magnitude of F_perp as you go around to determine the relative speed at any given point.

That's an interesting notion, although it's hard to see what the calculated speed would be relative to?

In as much as, whilst I have to enter a "known starting point" to the FEA, it does not necessarily follow that that starting point is stationary. The forces acting are the same regardless of the instantaneous velocities of the components they are acting upon, and they remain the same from beginning to end of the infinitesimally small time delta over which the integration runs.

So even if the result of the integration of F_perp came out as zero, it wouldn't mean that there was either no speed, nor no change in speed, simply that no change had occurred within that tending toward zero delta?

That means that the calculated forces will not have any affect within the time delta of the simulation; and thus will only take affect between simulations; which I think means that the FEA cannot tell me anything about the rate of change that will occur as a result of the forces it calculates?

At which point my brain hurts and I'm gonna sleep on it to see if this all still makes sense to me when I read it back in the morning; or if I've just thunk my way into a blind alley :)

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.

You're overthinking it. All you're trying to do is numerically integrate the accelerations over time to get the new position at any given time.

You can start with F=ma. Your system means that the motion is constrained to a circle, so all of the a's and v's will be angular accelerations and velocities.

Don't solve the forces at a uniform distribution of positions around the circle, solve them at a uniform distribution of times. To get the new position at each time, use the acceleration (a=F, since m=1)to get the velocity, then add v*t to your current position to get the new position (holding the current velocity for use next time, too. If you pick reasonably small time steps, this should work fine. If you solve it at uniform angles instead, you should be able to get away with interpolating. It doesn't matter if there's an initial angular velocity-- that would just be added to whatever you get.

In pseudocode I think all you need is:
```\$m_inverse=1  /* this could be chosen as arbitrarily small, like 0.000
+01 to get effectively smaller time steps) */
\$v=0
\$theta=0
while(!\$done){
(\$F_x,\$F_y)=ForceCalculator(\$theta)
\$F_perp=\$F_x*sin(theta)+\$F_y*cos(\$theta)
\$v=\$v+\$F_perp*\$scale
\$theta=\$theta+\$v
}

And you just have to make \$m_inverse small enough to make the motion from step to step differences small. This is equivalent to changing the mass.

EDIT: this is the same thing that salva said here: Re^7: [OT] Forces.

All you're trying to do is numerically integrate the accelerations over time to get the new position at any given time.

Okay. Accept by setting mass = 1 (or any other constant), were effectively ignoring the mass; so any "position" derived is at the very best scaled incorrectly. Presumably, the undeclared, set or explained \$scale in your pseudo-code is there to account for that.

So effectively, \$v becomes a running accumulation of the consecutive instantaneous force vectors (minus their direction?) scaled by some arbitrary constant. The direction could be retrieved/retained by storing tan-1( Fy / Fx )

But, F(N) = m(kg) * a(ms-2). Set m = 1, and F(N) = a(ms-2). I'm given F, I want metres, so rearranging m = N * s-2. I have N, but no s. s is undefined and undefinable. If the mechanism is rotating slowly, the time taken to traverse an input step of 1 degree will be longer than if it is running quickly. Perhaps orders of magnitude: 1 rpm versus 1000 rpm.

And if we set the time to some arbitrary constant, then we are equating distance moved with force acting: m = N. If the mechanism was a simple rotation around a single axis, we might get away with that. (And I'm unconvinced of even that.)

But as the force we have is acting in a semi-radial direction on a compound (cam) linkage, the force will act for some unspecified time period to 'straighten' the link, at which point it reaches a form of equilibrium. But achieving that position will only require some subset of the force acting. At that point, the rest of the force will simply be expended trying to stretch the link. And as far as I can tell, there is no way to decide what proportion of the force did work, and what was expended in futility.

Since my steps are (can only be) (angular) distance traveled -- and that's what I'm trying to determine -- the next input position is defined as the position resulting from the last integration. The best I can do to achieve my desired "at least 1 simulation for every degree of rotation", is: if the result of a step is substantially greater than one degree, divide the angles I used to establish the position I fed into that step, by 2 or 3 or whatever is appropriate, and re-run the model to obtain the intermediate positions.

But that accumulation of intermediate steps will almost certainly result in a different final position, as the forces acting through a degree of movement are definitely non linear.

For example, let's assume that the general direction of the preponderance of forces acting is fixed. (They aren't, but bear with me.) And for simplicity, let's assume that direction is the opposite direction of the green force line shown in my diagram. And the X/Y force values I get are Fx = 200, Fy = 3.

In the first step, the vast majority of that X component will be expended in trying to compress the link A-B. And only the small Y component will cause A to rotate about B, some small amount.

In the next step, the small movement that resulted from the previous step means that the leverage has changed, and the same forces acting will have a bigger effect. Ditto the next step, and the step after that, until eventually, A has rotated far enough around B that A-B is aligned with the resultant force vector. At that point, if the forces acting don't vary, no further rotation would be possible.

My point is, I cannot see how directly equating distance with force can possibly result in anything useful?

Please, I'm an engineer who does a little math. If I missing the purity of the math you are suggesting, (and simply muddying it with all my talk of physical units and motions, I'm sorry :) but 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.

Nor do I see it possible to assume one or allocate one arbitrarily.

Also, and perhaps more importantly, F = ma requires that all forces (and masses and accelerations) are taken into account; but, by Newton's 3rd, the reaction force from the solid, fixed and immovable B is unaccountable in the above.

Update:BTW, don't you just love the way a-holes downvote what they don't understand. Amuses me no end :)

With the rise and rise of 'Social' network sites: 'Computers are making people easier to use everyday'
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority". I knew I was on the right track :)
In the absence of evidence, opinion is indistinguishable from prejudice.

Create A New User
Node Status?
node history
Node Type: note [id://1155275]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others contemplating the Monastery: (7)
As of 2018-06-23 15:11 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
Should cpanminus be part of the standard Perl release?

Results (125 votes). Check out past polls.

Notices?