# Stable right hand steady turns with right hand applied steer torque

by
Dale Lukas Peterson
—
last modified
Apr 20, 2011 01:05 PM

According to the nonlinear equations of motion of the benchmark bicycle model that I have derived, stable steady turns to the right do not always require a left handed steer torque.

Below is a set of steady turning conditions which contradict a claim published by Kooijman et al in the April 15th, 2011 issue of Science [0]. I repeat their claim here:

A necessary condition for a bicycle to have self-stability is that the steady turn torque applied by the rider is of the opposite sign of the handlebar angle.

The results I give below make use of the numerical benchark parameter set given in [1] and include the following quantities:

- Lean, in radians, identical to \phi in [1]
- Pitch, in radians, identical to \theta_B + \lambda in [1]
- Steer, in radians, identical to \delta in [1]
- Steer torque, in Newton*meters, identical to \tau_\delta in [1]
- Front wheel rate, in radians/second, identical to \dot{\theta}_F in [1]. By this definition, a forward rolling bicycle has a negative front wheel rate.
- Velocity, in meters/second, defined as: v = - rf * \dot{\theta}_F.
- Front wheel contact height, in meters, no analog in [1]. This is provided to illustrate that the (lean, pitch, steer)-tuple satisfies the holonomic constraint to machine precision.

The results clearly indicate three things:

- a bicycle leaned and steered to the right can require a right handed applied steer torque
- the steady turn itself can be stable
- the bicycle can be "self-stable" i.e. there is a range of speeds for which the upright zero-steer hands-free configuration is stable.

The code which generates all of these results are part of OBD, specifically the "whipplesteady_review.cpp" program which is in the whipple/examples folder [2].

As a reminder, a positive lean is to the rider's right right, a positive steer is to the rider's right, a positive steer torque is to the rider's right. Without further ado, here are the results (again, these use the benchmark parameters as in [1]):

Stable steady turn:

lean = 0.4616523742186674

pitch = 0.3065256742829052

steer = 0.4584257279586958

steer torque = 0.4318550548792898

fw rate = -11.35817908143756

v = 3.975362678503145

fw contact height = 0

Eigenvalues:

lambda_0 = -0.07680460096414027 - 0.07680460096414027j

lambda_1 = -0.07680460096414027 - 0.07680460096414027j

lambda_2 = -2.731350033910955 - 2.731350033910955j

lambda_3 = -2.731350033910955 - 2.731350033910955j

Stable steady turn:

lean = 0.464879020478639

pitch = 0.3065244778494686

steer = 0.4551990816987241

steer torque = 0.4331690375024188

fw rate = -11.42385689786993

v = 3.998349914254476

fw contact height = 5.551115123125783e-17

Eigenvalues:

lambda_0 = -0.0991986244935959 - 0.0991986244935959j

lambda_1 = -0.0991986244935959 - 0.0991986244935959j

lambda_2 = -2.727287133431635 - 2.727287133431635j

lambda_3 = -2.727287133431635 - 2.727287133431635j

Stable steady turn:

lean = 0.464879020478639

pitch = 0.3065480870365042

steer = 0.4584257279586958

steer torque = 0.4326251269555437

fw rate = -11.41068402609368

v = 3.993739409132787

fw contact height = -1.110223024625157e-16

Eigenvalues:

lambda_0 = -0.002068070421780428 - 0.002068070421780428j

lambda_1 = -0.002068070421780428 - 0.002068070421780428j

lambda_2 = -2.754825780445209 - 2.754825780445209j

lambda_3 = -2.754825780445209 - 2.754825780445209j

Stable steady turn:

lean = 0.4681056667386107

pitch = 0.3065230753707452

steer = 0.4519724354387525

steer torque = 0.4344996699520969

fw rate = -11.48983460806583

v = 4.02144211282304

fw contact height = 1.110223024625157e-16

Eigenvalues:

lambda_0 = -0.123281341760237 - 0.123281341760237j

lambda_1 = -0.123281341760237 - 0.123281341760237j

lambda_2 = -2.722226170105588 - 2.722226170105588j

lambda_3 = -2.722226170105588 - 2.722226170105588j

Stable steady turn:

lean = 0.4681056667386107

pitch = 0.3065467579661763

steer = 0.4551990816987241

steer torque = 0.4338902352279064

fw rate = -11.47632187146342

v = 4.016712655012196

fw contact height = 0

Eigenvalues:

lambda_0 = -0.02370414701163148 - 0.02370414701163148j

lambda_1 = -0.02370414701163148 - 0.02370414701163148j

lambda_2 = -2.751602521149101 - 2.751602521149101j

lambda_3 = -2.751602521149101 - 2.751602521149101j

Stable steady turn:

lean = 0.4713323129985824

pitch = 0.3065214677277928

steer = 0.4487457891787808

steer torque = 0.4358484169269454

fw rate = -11.55611989124842

v = 4.044641961936946

fw contact height = 0

Eigenvalues:

lambda_0 = -0.1491415395204386 - 0.1491415395204386j

lambda_1 = -0.1491415395204386 - 0.1491415395204386j

lambda_2 = -2.716087423335117 - 2.716087423335117j

lambda_3 = -2.716087423335117 - 2.716087423335117j

Stable steady turn:

lean = 0.4713323129985824

pitch = 0.3065452130557451

steer = 0.4519724354387525

steer torque = 0.4351765685780549

fw rate = -11.54225982856094

v = 4.039790939996331

fw contact height = 0

Eigenvalues:

lambda_0 = -0.04719554828622251 - 0.04719554828622251j

lambda_1 = -0.04719554828622251 - 0.04719554828622251j

lambda_2 = -2.747223802144622 - 2.747223802144622j

lambda_3 = -2.747223802144622 - 2.747223802144622j

Stable steady turn:

lean = 0.474558959258554

pitch = 0.3065196560912572

steer = 0.4455191429188092

steer torque = 0.4372166449035663

fw rate = -11.62272060867714

v = 4.067952213037

fw contact height = 0

Eigenvalues:

lambda_0 = -0.1768705320058153 - 0.1768705320058153j

lambda_1 = -0.1768705320058153 - 0.1768705320058153j

lambda_2 = -2.708788662775098 - 2.708788662775098j

lambda_3 = -2.708788662775098 - 2.708788662775098j

Stable steady turn:

lean = 0.474558959258554

pitch = 0.3065434532303154

steer = 0.4487457891787808

steer torque = 0.4364855064299612

fw rate = -11.60850556036546

v = 4.062976946127912

fw contact height = 0

Eigenvalues:

lambda_0 = -0.07264891525682876 - 0.07264891525682876j

lambda_1 = -0.07264891525682876 - 0.07264891525682876j

lambda_2 = -2.741592032339606 - 2.741592032339606j

lambda_3 = -2.741592032339606 - 2.741592032339606j

Stable steady turn:

lean = 0.4777856055185257

pitch = 0.3065176419262789

steer = 0.4422924966588376

steer torque = 0.4386056237149276

fw rate = -11.68964481079503

v = 4.09137568377826

fw contact height = 0

Eigenvalues:

lambda_0 = -0.2065619105388293 - 0.2065619105388293j

lambda_1 = -0.2065619105388293 - 0.2065619105388293j

lambda_2 = -2.700245401659771 - 2.700245401659771j

lambda_3 = -2.700245401659771 - 2.700245401659771j

Stable steady turn:

lean = 0.4777856055185257

pitch = 0.3065414797053235

steer = 0.4455191429188092

steer torque = 0.4378183296059218

fw rate = -11.675066912364

v = 4.0862734193274

fw contact height = 0

Eigenvalues:

lambda_0 = -0.1001774361966035 - 0.1001774361966035j

lambda_1 = -0.1001774361966035 - 0.1001774361966035j

lambda_2 = -2.734603091303919 - 2.734603091303919j

lambda_3 = -2.734603091303919 - 2.734603091303919j

Stable steady turn:

lean = 0.4810122517784973

pitch = 0.306515426997527

steer = 0.4390658503988659

steer torque = 0.4400165281640217

fw rate = -11.75690074463758

v = 4.114915260623153

fw contact height = 0

Eigenvalues:

lambda_0 = -0.2383110172810169 - 0.2383110172810169j

lambda_1 = -0.2383110172810169 - 0.2383110172810169j

lambda_2 = -2.690371426088303 - 2.690371426088303j

lambda_3 = -2.690371426088303 - 2.690371426088303j

Stable steady turn:

lean = 0.4810122517784973

pitch = 0.3065392939914906

steer = 0.4422924966588376

steer torque = 0.4391762218980344

fw rate = -11.74195191969315

v = 4.109683171892604

fw contact height = 0

Eigenvalues:

lambda_0 = -0.1299016943989245 - 0.1299016943989245j

lambda_1 = -0.1299016943989245 - 0.1299016943989245j

lambda_2 = -2.726145484406229 - 2.726145484406229j

lambda_3 = -2.726145484406229 - 2.726145484406229j

Stable steady turn:

lean = 0.4842388980384689

pitch = 0.3065368978999048

steer = 0.4390658503988659

steer torque = 0.4405602716751408

fw rate = -11.80916881454324

v = 4.133209085090133

fw contact height = 0

Eigenvalues:

lambda_0 = -0.1619504668712782 - 0.1619504668712782j

lambda_1 = -0.1619504668712782 - 0.1619504668712782j

lambda_2 = -2.716099547106123 - 2.716099547106123j

lambda_3 = -2.716099547106123 - 2.716099547106123j

Stable steady turn:

lean = 0.4842388980384689

pitch = 0.3065620178259899

steer = 0.4422924966588376

steer torque = 0.4392718253528

fw rate = -11.79433108818954

v = 4.128015880866339

fw contact height = 0

Eigenvalues:

lambda_0 = -0.02537013954502348 - 0.02537013954502348j

lambda_1 = -0.02537013954502348 - 0.02537013954502348j

lambda_2 = -2.778551386982683 - 2.778551386982683j

lambda_3 = -2.778551386982683 - 2.778551386982683j

Stable steady turn:

lean = 0.4874655442984406

pitch = 0.3065594337393115

steer = 0.4390658503988659

steer torque = 0.4406344352792178

fw rate = -11.86150930284933

v = 4.151528255997264

fw contact height = 0

Eigenvalues:

lambda_0 = -0.05665514006718408 - 0.05665514006718408j

lambda_1 = -0.05665514006718408 - 0.05665514006718408j

lambda_2 = -2.76940323205274 - 2.76940323205274j

lambda_3 = -2.76940323205274 - 2.76940323205274j

References:

## Stability wit and without rider

my usual advance excuses about my non-mathematical dealing with the bike-stability issue. My comments relate to my general reflections. I am a product designer, and I am working presently on a folding bike with the ambitious goal of setting a very radical departure from the state of the art in that product sector. One of the Work Packages in the research (partly funded by the European Union) deals with ergonomics. Aside from working on the human factors in order to have a rider support system where the widest population would fit, WP Ergonomics was hoping to find a way to "design" a stability response, an intrinsic ridability, into the bike. Better, it "was" before I attended the Delft symposium 2010 and realized how far science is still from being able to incorporate the rider's psycho-physiologic stability feed-back in a more comprehensive benchmark.

My interpretation of the complex bike-rider interplay comes fron mere personal experience, from which I tend to agree with Luke's argument.

First of all one must distnguish between riderless stability (obviously with no applied torque to the steering) and stability with the rider, where some torque is or could be applied, but not without other "instinctive" actions that go with iT.

My impression is that in steady state turning (even for near-straight trajectories, that is very large radii), the torque applied to the steering is strictly coupled with the c.o.g shift in the direction of turning. And that for certain away-from-turning lean angles it could also be negative, that is into the turn..

I hope I could discuss more all this.

Thanks, regards,

Alessandro Belli