BicycleEfficiency.jl

A package to calculate the efficiency of a bicycle's chain drive

Frictional losses

BicycleEfficiency.P1Function
P1(μ1::Number, ρ::Number, N::Vector{Int}, ω::Number, T0::Number)::Float64

Compute the power loss due to friction between pins and bushings.

Arguments

  • μ1::Number: friction coefficient between the pin and the bushing.
  • ρ::Number: bushing radius.
  • N::Vector{Int}: number of teeth on the front and rear sprockets (in that order).
  • ω::Number: pedaling cadence.
  • T0::Number: free chain tension

Examples

julia> P1(0.09, 0.00175968, 300, [48, 24], 80*(2π/60), 200)
1.8756733110309638
source
BicycleEfficiency.P2Function
P2(N::Vector{Int}, ω::Number, μ2::Number, r0::Number, γ::Number, T0::Number)::Float64

Compute the power loss due to chain offset.

Arguments

  • N::Vector{Int}: number of teeth on the front and rear sprockets (in that order).
  • ω::Number: pedaling cadence
  • μ2::Number: friction coefficient between the chain and the sprocket teeth
  • r0::Number: radius of contact during offset operation
  • γ::Number: chain offset angle
  • T0::Number: free chain tension

Examples

julia> P2(150, [48, 24], 80*(2pi/60), 0.09, 300, 0.00249288, π/180, 1.52)
0.02952298838057144
source
BicycleEfficiency.P3Function
P3(μ3::Number, rR::Number, N::Vector{Int}, ω::Number, ψ::Number, T0::Number)::Float64

Compute the power loss due to interaction between rollers and sprocket teeth.

Arguments

  • μ3::Number: friction coefficient between roller and sprocket teeth.
  • rR::Number: roller radius.
  • N::Vector{Int}: number of teeth on the front and rear sprockets (in that order).
  • ω::Number: pedaling cadence
  • ψ::Number: absolute roller rotation angle.
  • T0::Number: free chain tension

Examples

julia> P3(0.09, 300, 0.00249288, [48, 24], 80*(2pi/60), π/2)
0.02840827017479334
source
BicycleEfficiency.PtotalFunction
Ptotal(μ::Vector{Float64}, p::Number, ρ::Number, ψ::Number, rR::Number,
       N::Vector{Int}, ω::Number, γ::Number, T0::Number)::Float64

Compute the power loss due to all 3 sources (friction between pins and bushings, chain misalignment and interaction between rollers and sprocket teeth).

It is calculated as the sum of the losses from all sources, which are implemented separately in P1, P2 and P3

Arguments

  • μ::Vector{Float64}: vector containing the friction coefficients for cases 1, 2 and 3 (in that order).
  • p::Number: chain pitch.
  • ρ::Number: bushing radius.
  • rR::Number: roller radius.
  • N::Vector{Int}: number of teeth on the front and rear sprockets (in that order).
  • ω::Number: pedaling cadence.
  • γ::Number: chain offset angle
  • T0::Number: free chain tension

Examples

julia> Ptotal(fill(0.09, 3), 0.01222, 0.00175968, π/2, 0.00249288, 300, [48, 24], 80*(2π/60), π/180)
1.9336045695863286
source
BicycleEfficiency.ηFunction
η(μ::Vector{Float64}, p::Number, ρ::Number, ψ::Number,
  rR::Number, N::Vector{Int}, ω::Number, γ::Number, T0::Number)::Float64

Compute the power transmission efficiency considering only frictional losses.

Arguments

  • μ::Vector{Float64}: friction coefficients for cases 1, 2 and 3 (in that order).
  • p::Number: chain pitch.
  • ρ::Number: bushing radius.
  • ψ::Number: absolute roller rotation angle.
  • rR::Number: roller radius.
  • N::Vector{Int}: number of teeth on the front and rear sprockets (in that order).
  • ω::Number: pedaling cadence.
  • γ::Number: chain offset angle
  • T0::Number: free chain tension

Examples

julia> η(fill(0.09, 3), 0.01222, 0.00175968, π/2, 0.00249288, 300, [48, 24], 80*(2π/60), π/180, 200)
0.9917587093835826
source