##### Sections
> Blog > Stable right hand steady turns with right hand applied steer torque

# 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:
1. Lean, in radians, identical to \phi in [1]
2. Pitch, in radians, identical to \theta_B + \lambda in [1]
3. Steer, in radians, identical to \delta in [1]
4. Steer torque, in Newton*meters, identical to \tau_\delta in [1]
5. 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.
6. Velocity, in meters/second, defined as:  v = - rf * \dot{\theta}_F.
7. 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:
1. a bicycle leaned and steered to the right can require a right handed applied steer torque
2. the steady turn itself can be stable
3. 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]):

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Posted by Jason Moore at Apr 20, 2011 06:13 PM
Dear Luke, dear all,
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

### Scope

Posted by Dale Lukas Peterson at Apr 20, 2011 08:27 PM
Alessandro, my post is purely about the correctness of statements made about a model of a highly simplified bicycle model. The extent to which it applies to real bicycles is a very interesting question, but not one which I am trying to address in this post. Until we can find common agreement about the behavior of the simplified models of bicycle, I think it is unlikely that we will be able to agree about the behavior of real bicycles. I am simply trying to address the former.

~Luke