I was trying to figure out how much centering force there is and so tried
calculate some of the pivot forces directly. I read Dirk's code for a bit,
but realized how rusty my matrix math is. Next, I tried to do something
similar to his charts on:
http://dirkb.dnsalias.net/pythonselfcenter.html
using just x-z plane geometry. It seems to be correct for the angle limits
etc., but disagrees with Dirk's for high turn angles. If anyone can
critique it, please do. Basically, for any given pivot angle, I calculate
the x-z point for the given turn angle. I don't quite see where Dirk used
the wheel radius.
The objective was to then subtract the force of the front mass falling from
the force needed to raise the rear mass. If correct, it seems from this
math that once you put your feet on the pedals the front mass fall could
~balance the rear rise.
I need to add in lean and review Hand's thesis again as well...
Code below, cluttered diagram attached.
Ray
===============================================
trlP2Rear = 110 trlP2Front = -10 ## trail pivotAngle = 30 * math.pi / 180.0 # deg from vertical turnAngle = 30 * math.pi / 180.0 rearMassZ = 30 rearMassX = 100 frontMassZ = 40 frontMass2PivotAxis = 20
trlP2Front = -trlP2Front # I use opposite sign
d1 = math.sin(pivotAngle)*trlP2Front d2 = math.cos(pivotAngle)*d1
d4 = trlP2Front*math.cos(pivotAngle)
## good for pivot rise if trlP2Rear >> trlP2Front, rule of small angles rise = d2*abs(1-math.sin(turnAngle+math.pi/2.))
if pivotAngle==0: pivotAngle = .00000000001 d5 = rise/math.tan(pivotAngle)
rearFrameRiseAngle = math.atan(rise / (trlP2Rear+trlP2Front-d5))
rearMassHyp = (rearMassZ**2+rearMassX**2)**.5 rearMassAngle = math.asin(rearMassZ/rearMassHyp) rearMassRise = math.sin(rearMassAngle+rearFrameRiseAngle)* \ rearMassHyp - rearMassZ
frontMassX = ((trlP2Rear + math.cos(pivotAngle)*\ frontMass2PivotAxis*math.cos(turnAngle))**2 +\ frontMassZ**2)**.5 frontMassHyp = (frontMassZ**2+frontMassX**2)**.5 frontMassAngle = math.asin(frontMassZ/frontMassHyp)
print "riseAngle: %fdeg, mass rise: %fcm" % \ (rearFrameRiseAngle*180/math.pi, rearMassRise) print "frontMassFall: %fcm" % (frontMassFall)
OUTPUT: riseAngle: 0.279327deg, mass rise: 0.487159cm frontMassFall: 4.331108cm
Attachment:
pivot.jpg
Description: JPEG image