BicycleEfficiency.jl
A package to calculate the efficiency of a bicycle's chain drive
Frictional losses
BicycleEfficiency.P1
— FunctionP1(μ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
BicycleEfficiency.P2
— FunctionP2(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 teethr0::Number
: radius of contact during offset operationγ::Number
: chain offset angleT0::Number
: free chain tension
Examples
julia> P2(150, [48, 24], 80*(2pi/60), 0.09, 300, 0.00249288, π/180, 1.52)
0.02952298838057144
BicycleEfficiency.P3
— FunctionP3(μ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
BicycleEfficiency.Ptotal
— FunctionPtotal(μ::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 angleT0::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
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 angleT0::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