Method for controlling a bicycle shift

The described method for electric bicycles uses a processor to manage shifting commands and synchronize gear changes with rider input, addressing the challenge of delayed responses to pedal speed changes and improving shifting accuracy and control.

CN119705700APending Publication Date: 2025-03-28SRAM
View PDF 0 Cites 2 Cited by

Patent Information

Application Number
CN202411349950.5
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2024-09-13
Filing Date
2024-09-26
Publication Date
2025-03-28

AI Technical Summary

Technical Problem

Existing electric bicycles with pedal-assist motors face challenges in accurately detecting and responding to rider input, leading to delayed or inappropriate shifting, especially when the pedal speed changes rapidly, resulting in a disconnect between the rider's leg torque and the electric motor's contribution.

Method used

A method involving a processor that identifies and manages shifting commands, determines the direction and timing of shifts, and compares these to predetermined thresholds to synchronize the bicycle's gear changes with the rider's input, ensuring proper shifting based on pedal speed, wheel speed, and acceleration data from sensors.

Benefits of technology

This approach enhances the responsiveness and accuracy of shifting in electric bicycles, improving the rider's control and reducing the likelihood of unintended shifts or motor torque misalignment with pedal effort.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119705700A_ABST
    Figure CN119705700A_ABST
Patent Text Reader

Abstract

The invention relates to a method for controlling a bicycle shift. The method includes identifying a first shift command for a first shift having a first shift direction and identifying a second shift command for a second shift having a second shift direction. The method includes determining a time period between identifying a first shift command and identifying a second shift command; and comparing, by the processor, the determined time period with a predetermined time period. Based on the comparison, when the determined time period is less than the predetermined time period, the method further includes initiating a shift in the second shift direction when the second shift direction and the first shift direction are the same shift direction; and blocking, by the processor, a shift in the second shift direction when the second shift direction and the first shift direction are different shift directions.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] The present disclosure relates generally to an electric bicycle, and more particularly to control of an electric bicycle. Background Art

[0002] A bicycle with a pedal-assist motor (e.g., an electric bicycle or e-bike) may include wheel speed sensors and crank speed sensors that may be used as inputs to an automatic shifting algorithm for the bicycle transmission. The pedal-assist motor may rotate the drive sprocket independently of the crank of the bicycle. This aspect exists so that when the assist motor is active, the rider does not sense the motor torque in the rider's legs if the rider slows the pedal speed faster than the assist motor can react. Summary of the invention

[0003] In one example, a method for controlling a shift of a bicycle includes: identifying a first shift command by a processor. The source of the first shift command is a control device of the bicycle. The method includes: determining a first shift direction by the processor based on the first shift command; and initiating a first shift of the bicycle in the first shift direction by the processor based on the first shift command. The method includes identifying a second shift command by the processor. The source of the second shift command is the processor or another processor. The second shift command follows the first shift command. The method includes: determining a second shift direction by the processor based on the second shift command; determining a time period between identifying the first shift command and identifying the second shift command by the processor; and comparing the determined time period with a predetermined time period by the processor. Based on the comparison, when the determined time period is less than the predetermined time period, the method further includes: initiating a shift of the bicycle in the second shift direction by the processor when the second shift direction and the first shift direction are the same shift direction; and preventing the bicycle from shifting in the second shift direction by the processor when the second shift direction and the first shift direction are different shift directions.

[0004] In one example, identifying the second shift command includes generating, by a processor, the second shift command based on an automatic shift algorithm.

[0005] In one example, identifying the first shift command includes receiving, by the processor, the first shift command from a control device of the bicycle in response to a user input at an input device of the control device of the bicycle.

[0006] In one example, the method further comprises: starting a timer after identifying the first shift command. Determining the time period comprises: determining the time period based on the timer.

[0007] In one example, the method further includes: based on a comparison of the determined time period with the predetermined time period, when the determined time period is less than the predetermined time period, determining a cadence of the crank arms of the bicycle, and comparing the determined cadence of the crank arms with a cadence set point. Comparing the determined crank arm cadence with the cadence set point includes: determining a difference between the determined crank arm cadence and the cadence set point. The method further includes: based on a comparison of the determined time period with the predetermined time period, when the determined time period is less than the predetermined time period, comparing the determined difference with a predetermined threshold difference, and based on a comparison of the determined difference with the predetermined threshold difference, when the determined difference is greater than the predetermined threshold difference, removing the blocking step so that the bicycle is allowed to shift in the second shift direction when the second shift direction is different from the first shift direction.

[0008] In one example, a method for controlling a bicycle shift includes identifying, by a processor, wheel speed data of a wheel of a bicycle. The wheel speed data represents the speed of the wheel at multiple points in time. The method includes: calculating, by the processor, an acceleration of the bicycle based on the identified wheel speed data; identifying, by the processor, additional acceleration data of the bicycle; and comparing, by the processor, the calculated acceleration of the bicycle with the identified additional acceleration data. The method includes preventing or allowing the bicycle to shift gears based on the comparison.

[0009] In one example, identifying the additional acceleration data includes identifying a predetermined maximum threshold acceleration value and a predetermined minimum threshold acceleration value. Comparing the calculated acceleration of the bicycle with the identified additional acceleration data includes comparing the calculated acceleration of the bicycle with the predetermined maximum threshold acceleration value and the predetermined minimum threshold acceleration value. The predetermined minimum threshold acceleration value is a predetermined maximum threshold deceleration value. Preventing or allowing the bicycle from shifting gears based on the comparison includes preventing the bicycle from shifting gears when the calculated acceleration of the bicycle is greater than the predetermined maximum threshold acceleration value or the calculated acceleration of the bicycle is less than the predetermined minimum threshold acceleration value based on the comparison of the calculated acceleration of the bicycle with the predetermined maximum threshold acceleration value and the predetermined minimum threshold deceleration value.

[0010] In one example, the preventing step includes preventing the bicycle from shifting gears for a predetermined period of time.

[0011] In one example, the calculated acceleration of the bicycle is a first acceleration of the bicycle. Identifying the additional acceleration data includes: receiving, by a processor, acceleration data from an acceleration sensor of the bicycle at the plurality of time points, and calculating, by the processor, a second acceleration of the bicycle based on the received acceleration data. The comparing step includes comparing the first acceleration of the bicycle with the second acceleration of the bicycle.

[0012] In one example, the comparing step further includes: calculating, by the processor, a ratio of the first acceleration of the bicycle to the second acceleration of the bicycle, and comparing, by the processor, the calculated ratio to a predetermined minimum threshold ratio and a predetermined maximum threshold ratio. The method further includes: identifying a blocking condition or a slipping condition based on the comparison of the calculated ratio to the predetermined minimum threshold ratio and the predetermined maximum threshold ratio. Identifying a blocking condition or a slipping condition includes: based on the comparison of the calculated ratio to the predetermined minimum threshold ratio, when the calculated ratio is less than the predetermined minimum threshold ratio and the first acceleration is less than zero, identifying, by the processor, a blocking condition; and based on the comparison of the calculated ratio to the predetermined maximum threshold ratio, when the calculated ratio is greater than the predetermined maximum threshold ratio and the first acceleration is greater than zero, identifying, by the processor, a slipping condition.

[0013] In one example, the blocking or allowing step includes: when the blocking condition or the slipping condition is identified, the processor identifies a first time point, the first time point being the time point at which the blocking condition or the slipping condition is identified; and the processor identifies a speed of the wheel at the first time point based on the wheel speed data. The blocking or allowing step includes: when the blocking condition or the slipping condition is identified, the processor calculates the translational acceleration of the bicycle at the first time point and at a second time point based on the acceleration data received from the acceleration sensor, the second time point being after the first time point; and the processor calculates the translational speed of the bicycle at the second time point based on the identified speed of the wheel at the first time point, the calculated translational acceleration of the bicycle at the first time point, the calculated translational acceleration of the bicycle at the second time point, and a time period between the first time point and the second time point. The blocking or allowing step includes: when the blocking condition or the slipping condition is identified, using the calculated translational speed of the bicycle within an automatic shifting algorithm to allow shifting.

[0014] In one example, the ratio is a first ratio. The first ratio is calculated for a first time point among a plurality of time points. The method further includes calculating, by the processor, a second ratio of a first acceleration of the bicycle to a second acceleration of the bicycle. The second ratio is calculated for a second time point among the plurality of time points. The second time point is after the first time point. The method further includes: comparing, by the processor, the calculated second ratio with the predetermined minimum threshold ratio and the predetermined maximum threshold ratio; based on the comparison of the calculated second ratio with the predetermined minimum threshold ratio and the predetermined maximum threshold ratio, identifying, by the processor, the end of the blocking condition or the slipping condition when the calculated second ratio is greater than the predetermined minimum threshold ratio and less than the predetermined maximum threshold ratio.

[0015] In one example, a method for controlling a shift of a bicycle includes: identifying, by a processor, a first shift command; determining, by the processor, a first shift direction based on the first shift command; and initiating, by the processor, a first shift of the bicycle in the first shift direction based on the first shift command. The method includes: identifying, by the processor, a second shift command before the first shift of the bicycle is completed; identifying, by the processor, a number of link passing events between initiating the first shift of the bicycle and identifying the second shift command; and comparing, by the processor, the identified number of link passing events to at least one predetermined threshold number of link passing events. The method includes: initiating, by the processor, or delaying initiation of a second shift of the bicycle based on the second shift command based on the comparison.

[0016] In one example, the method further includes: identifying, by the processor, a second shift direction based on the second shift command. The comparing step includes: comparing, by the processor, the number of identified link passing events with a first predetermined threshold number of link passing events when the identified second shift direction is the same as the identified first shift direction. The at least one predetermined threshold number of link passing events includes the first predetermined threshold number of link passing events. The comparing step includes: comparing, by the processor, the number of identified link passing events with a second predetermined threshold number of link passing events when the identified second shift direction is a different direction from the identified first shift direction. The at least one predetermined threshold number of link passing events includes the second predetermined threshold number of link passing events. The second predetermined threshold number of link passing events is greater than the first predetermined threshold number of link passing events.

[0017] In one example, initiating or delaying initiation of a second gear shift of the bicycle based on the second gear shift command by the processor includes: when the identified second gear shift direction is the same direction as the identified first gear shift direction, based on a comparison, when the number of identified link passing events is greater than a first predetermined threshold number of link passing events, initiating the second gear shift of the bicycle; and based on a comparison, when the number of identified link passing events is less than the first predetermined threshold number of link passing events, delaying the second gear shift of the bicycle. Initiating or delaying initiation of a second gear shift of the bicycle by the processor includes: when the identified second gear shift direction is a different direction from the identified first gear shift direction, based on a comparison, when the number of identified link passing events is greater than a second predetermined threshold number of link passing events, initiating the second gear shift of the bicycle; and based on a comparison, when the number of identified link passing events is less than the second predetermined threshold number of link passing events, delaying the second gear shift of the bicycle.

[0018] In one example, when the second gear shift is delayed, the method further includes: incrementing a shift counter by the processor; and after the first gear shift is completed, for each gear shift identified by the shift counter: repeating the step of identifying the first gear shift command, wherein the earliest delayed gear shift command is the first gear shift command; repeating the determining step; repeating the step of initiating the first gear shift of the bicycle; identifying whether a new second gear shift command is received before the first gear shift of the bicycle is completed; and when the new second gear shift command is received, repeating the step of identifying the number of link passing events, repeating the comparing step, and repeating the initiating or delaying initiation step.

[0019] In one example, the comparing step includes comparing, by the processor, the number of identified link passing events to a predetermined threshold number of link passing events among at least one predetermined threshold number of link passing events. The predetermined threshold number of link passing events is zero link passing events. Based on the comparing, the initiating or delaying initiating step includes initiating, based on the comparing, a second gear shift of the bicycle based on the second gear shift command when the number of identified link passing events is equal to zero.

[0020] In one example, a method for controlling a bicycle shift includes: identifying a target cadence by a processor; identifying a static cadence offset by the processor based on the gear in which the bicycle is operated; and determining a static cadence window by the processor based on the identified target cadence and the identified static cadence offset. The static cadence window has an upper limit and a lower limit. The method includes: identifying a cadence at a crank arm of the bicycle by the processor; identifying a torque at the crank arm of the bicycle, a speed of the bicycle, an acceleration of the bicycle, or any combination thereof by the processor; and identifying a riding scenario of the bicycle by the processor based on the identified torque, the identified cadence, the identified speed, the identified acceleration, or any combination thereof. The method includes: comparing the identified cadence at the crank arm of the bicycle with the static cadence window by the processor; determining a dynamic offset by the processor based on the identified riding scenario; and based on the comparison, when the identified cadence at the crank arm is equal to the upper limit of the static cadence window, adding the determined dynamic offset by the processor to the upper limit of the static cadence window, thereby avoiding an automatic shift that would otherwise be initiated by an automatic shifting algorithm based on the static cadence window.

[0021] In one example, the method further includes: decaying, by the processor, the dynamic offset over time.

[0022] In one example, when the riding scene is identified as riding on a first type of terrain, determining the dynamic offset based on the identified riding scene includes: determining a first dynamic offset. When the riding scene is identified as riding on a second type of terrain, determining the dynamic offset based on the identified riding scene includes: determining a second dynamic offset. The first type of terrain is more technically complex than the second type of terrain, and the first dynamic offset is greater than the second dynamic offset.

[0023] In one example, identifying the torque at the crank arm of the bicycle, the speed of the bicycle, the acceleration of the bicycle, or any combination thereof includes: identifying, by the processor, the torque at the crank arm of the bicycle. Determining the target cadence includes: identifying, by the processor, a static target cadence; determining, by the processor, a rider input based on the identified torque at the crank arm of the bicycle; and comparing, by the processor, the determined rider input to a predetermined threshold rider input. Determining the target cadence includes: determining, by the processor, the target cadence based on a comparison of the determined rider input with the predetermined rider input. Determination of the target cadence includes: dynamically adjusting, by the processor, the identified static target cadence when the determined rider input becomes greater than or less than the predetermined threshold rider input based on a comparison of the determined rider input with the predetermined threshold rider input.

[0024] In one example, a method for controlling an electric bicycle includes identifying, by a processor, a change in the inclination of a surface on which the electric bicycle is being ridden. The change in inclination is from a decline to an incline. The method includes instructing, by the processor, an auxiliary motor of the electric bicycle to operate at an increased output power based on the identified change in inclination.

[0025] In one example, identifying the change in inclination includes: receiving, by the processor, inclination data from an inclination sensor of the electric bicycle and identifying the change in inclination based on the received inclination data; or receiving, by the processor, distance data from a laser distance measurement sensor and identifying the change in inclination based on the received distance data. The laser distance measurement sensor is configured to measure the distance from the electric bicycle to a point in front of the electric bicycle.

[0026] In one example, instructing an auxiliary motor of an electric bicycle to increase output power includes: instructing, by a processor, the auxiliary motor of the electric bicycle to operate with increased output power for a predetermined period of time; or identifying, by a processor, a current gear in which the electric bicycle is operating, identifying, by the processor, a target gear identified by an automatic shifting algorithm, and instructing, by the processor, the auxiliary motor of the electric bicycle to operate with increased output power until the current gear matches the target gear.

[0027] In one example, the method further includes: identifying, by the processor, a user input at the electric bicycle; and stopping, by the processor, instructing an auxiliary motor of the electric bicycle to operate at an increased output power based on the identified user input. The identified user input is a depression of a brake control device of the electric bicycle or a manual shift override. BRIEF DESCRIPTION OF THE DRAWINGS

[0028] The objects, features and advantages of the present invention will become apparent from the following description read in conjunction with the accompanying drawings, in which:

[0029] Figure 1 shows a side view of one example of a bicycle having component movements that can be controlled according to the teachings of the present disclosure;

[0030] Figure 2 is a side view of an example of a rear derailleur;

[0031] Figure 3 is a block diagram of an embodiment of an electromechanical control system;

[0032] Figure 4 is a block diagram of the operating components;

[0033] Figure 5 is a flow chart of an embodiment of a method for automatic gear shifting;

[0034] Figure 6 is a flow chart of an embodiment of a method for controlling one or more components of a bicycle;

[0035] Figure 7 is a flow chart of another embodiment of a method for controlling one or more components of a bicycle;

[0036] Figure 8 is a flow chart of another embodiment of a method for controlling one or more components of a bicycle;

[0037] Fig. 9 is a flow chart of another embodiment of a method for controlling one or more components of a bicycle;

[0038] Fig.10 An example of dynamic target rhythm regulation is shown;

[0039] Fig.11 An example of dynamic target tempo window adjustment is shown;

[0040] Fig.12 is a flow chart of yet another embodiment of a method for controlling one or more components of a bicycle;

[0041] Fig.13 shows the stages of the G output tracking condition; and

[0042] Fig.14 is a flow chart of another embodiment of a method of controlling one or more components of a bicycle. DETAILED DESCRIPTION

[0043] A bicycle (e.g., an electric bicycle or e-bike) having a pedal-assist motor capable of driving a sprocket independently of a crank is provided. The bicycle includes a wheel speed sensor and a crank cadence sensor. The wheel speed sensor and the crank cadence sensor measure the wheel speed and the crank cadence, respectively, and provide the measured wheel speed and crank cadence to an electric rear derailleur or controller of the bicycle. For example, the electric rear derailleur is configured to instruct the electric bicycle controller to activate motor overdrive based on the measured wheel speed and / or the measured crank cadence.

[0044] For example, the rear derailleur, and more specifically, the shifting performed by the rear derailleur, can be configured based on the selected riding mode. The riding mode can be selected from a plurality of different riding modes, and the controller of the bicycle or another controller can switch between two or more different riding modes. In each different riding mode, the characteristics of the shifting can be adjusted, such as the gear hysteresis, the minimum gear to shift to without pedaling, and / or other characteristics.

[0045] To avoid chain breakage or cassette damage, avoid jumping the chain over two or more gears when shifting. If two or more shifts are triggered in a short period of time, the rear derailleur is configured to pause for a predetermined period of time to avoid the chain pulling on the cassette, out of sync with the shift position.

[0046] The present embodiment provides a synchronization method in which a shift request (e.g., from an automatic shift algorithm or a rider-generated request) is processed only when the drive train of the electric bicycle is ready to shift. Given the characteristics of the cassette, the worst-case number of chain links that pass a certain position on the electric bicycle until the chain is engaged in the target gear and ready to process a new shift request is defined.

[0047] The processor of the electric bicycle counts the chain links that have passed based on data from a sensor (e.g., a sprocket angle sensor). In one embodiment, the processor can determine the number of chain links that have passed based on the count. In another embodiment, the processor can determine the number of chain links that have passed based on the relative encoder position of the rotor of the auxiliary motor of the electric bicycle, the gear ratio, and the size of the sprocket of the electric bicycle.

[0048] When processing a new shift (e.g., when the rear derailleur begins to move), the processor enters the shift state and rejects further shift requests while in the shift state. When the count of passed links equals the predetermined number of passed links and the chain has moved to the next gear, the processor enters the prepare next shift state and is configured to process further shift requests.

[0049] In automatic shifting, once the wheel speed or cadence reaches a limit, the processor executing the automatic shift algorithm can trigger an outward shift. A rider accelerating on slippery ground will reach the limit, and the automatic shift algorithm can initiate an outward shift. This may cause more slip on slippery ground, and the processor can be configured to trigger one or more additional outward shifts until the rider loses control of the bicycle.

[0050] In automatic shifting, when the wheel speed decreases, the processor executing the automatic shifting algorithm can trigger an inward shift. When the wheel is blocked for a period of time (e.g., during full brake application), the cassette flywheel cannot rotate, but the processor can be configured to trigger one or more inward shifts.

[0051] The present embodiment provides a method for detecting slip and / or blocking based on abnormal acceleration values. The abnormal acceleration values ​​are detected by a wheel speed sensor and / or a cadence sensor. The processor is configured to prevent shifting (eg, automatic shifting) based on the detected abnormal acceleration values.

[0052] Additional filtering may be applied to the signals from the wheel speed sensor and / or cadence sensor. Detection thresholds for slip and / or blocking may be adjusted based on, for example, the maximum acceleration achievable under ideal conditions and / or the maximum deceleration achievable when braking under ideal conditions, respectively. The processor may be adapted and / or learned to detect slip and / or blocking based on other inputs such as rider power and motor power, system weight, slope and / or other parameters. Additional sensors for detecting brake actuation applied by the user may also be provided.

[0053] On a bicycle with automatic shifting (e.g., an electric bicycle), the rider can perform one or more manual shifts at any time that have priority over the shift decisions of the automatic shift algorithm. Current solutions use manual override time to prevent the automatic system from canceling manual shifts performed by the rider. If the rider performs a manual shift and the automatic shift algorithm is paused (e.g., blocked) during the manual override time, the second automatic shift may not follow within the manual override time even if appropriate (e.g., when the rider accelerates). The rider may pedal at a high cadence, or need to hold by performing a manual shift. Holding with a manual shift may result in a continuous pause (e.g., blocking) of the automatic shift algorithm. The automatic shift may become essentially inactive for an extended period of time.

[0054] In this embodiment, when a manual shift is being performed (e.g., manual override), automatic shift requests to the opposite direction are blocked for a predetermined amount of time, while automatic shift requests to the same direction are still processed. For example, when the electric bicycle is, for example, decelerating without waiting for a predetermined amount of time (e.g., override time) to elapse, a manual inward shift prior to entering a climb can be assisted by one or more additional automatic inward shifts. However, outward shifts (e.g., due to high speed) are blocked during the predetermined amount of time. The predetermined amount of time (e.g., override time) can be a fixed time (e.g., 7 seconds), or can be varied depending on riding conditions, terrain, or rider input.

[0055] Turning now to the accompanying drawings, Figure 1 An exemplary bicycle 100 (e.g., an electric bicycle) is shown that can be used to achieve connection with a shifter 102 using an intermediate power connector 104. In the illustrated embodiment, the bicycle 100 includes a frame 106, a handlebar 108, and a seat 110. The bicycle 100 also includes a first or front wheel 112 and a second or rear wheel 114. A front brake 116 and / or a rear brake 118 are included to brake the front wheel 112 and the rear wheel 114, respectively. The front brake 116 and / or the rear brake 118 are controlled by at least one brake actuator 120. The bicycle 100 includes a drive train 122. Figure 1The drive train 122 includes a crank assembly 124 operatively coupled to a rear cassette 126 via a chain 128. The crank assembly includes a crank arm 130 and a pedal 132 and at least one sprocket 134 configured to be operatively coupled to the chain 128 to transfer force and / or power applied to the crank assembly 124 to the chain 128. The force and / or power is transferred to the rear cassette 126 via the chain 128, whereby a driving force 136 and / or power is transferred from the rear cassette 126 to the rear wheel 114. Although the drive train 122 includes a shifter (e.g., the rear derailleur 102 in the illustrated embodiment), other transmissions such as an internal gear hub, a gear box, and / or a continuously variable transmission may also be applied to the bicycle 100.

[0056] The drive train 122 may also include a power assist device 140. The rider applies pedal torque to the crank assembly 124 using the pedals 132 and the crank arm 130. The power assist device 140 is configured to assist the rotation of the rear wheel 114. In the illustrated embodiment, the power assist device 140 is configured to assist the rotation of the rear wheel 114 through a coupling connection with the crank assembly 124. The power assist device 140 includes a power assist motor 141 powered by a remote power source 142.

[0057] like Figure 1 As shown, the chain 128 can be moved between the various sprockets of the rear cassette 126 using a shifter such as the rear derailleur 102. The rear derailleur 102 is, for example, an electric shifter controlled by a signal indicating that a shift command has been actuated by a bicycle operator or rider. Alternatively, the electric rear derailleur 102 can be powered by an integrated power source or a remote power source 142 (using a power conducting connector or cable 144). Power is provided from the remote power source 142 to an intermediate power connector 104 coupled to the rear derailleur 102 via a cable 144. The shift command is implemented using an electric actuator 148 that can be manually operated by the rider. The signal indicating the shift command can be transmitted to the electric rear derailleur 102 using wired and / or wireless communication technology.

[0058] Reference Figure 2 , the rear derailleur 102 is attached to the frame 106 and is positioned proximate to the rear cassette 126. The chain 128 is schematically shown only in phantom. The electric or electromechanical rear derailleur 102 includes a base member 150 (e.g., a "B-knuckle"), an outer link 152, and an inner link 154. The base member 150 can be attached to the frame 106 in a conventional manner. The inner link 154 is pivotally attached to the base member 150, such as by a link pin. A moving member or assembly 156 (e.g., a "P-knuckle") is pivotally connected to the outer link 152 and the inner link 154 at the end opposite the base member 150 to allow the moving assembly 156 to shift relative to the base member 150.

[0059] The rear derailleur 102 may also be configured to operate with an integrated power source 158, such as a removable battery. Figure 1 and Figure 2 In the example shown, an integrated power source or battery 158 is attached to the rear derailleur 102. The integrated power source 158 can provide power, for example, to the motor of the rear derailleur 102, which is used to shift the rear derailleur 102. The intermediate power connector 104 may include an interface with the rear derailleur 102, the interface including interface features similar to the removable battery 158, so as to be electrically connected to the derailleur 102. The interface may have a portion that is removably connected or coupled to the rear derailleur 102. The intermediate power connector 104, or at least its connection portion, may also be smaller than the removable battery 158. When the intermediate power connector 104 transmits power from the remote battery or power source 142, the intermediate power connector 104 may include circuits for converting the electrical energy provided by the remote battery 142 into a form that can be used by the derailleur 102. For example, the intermediate power connector 104 may include circuits for voltage reduction, voltage rectification, and other power conversion circuits and / or devices or combinations thereof. In one embodiment, the intermediate power connector 104 may also include communication circuits and / or other devices. For example, the intermediate power connector 104 may include a wireless transmitter and / or receiver, a CANbus to wireless converter, a wired data connector, a CANbus to derailleur protocol converter, and / or other devices or circuits and combinations thereof.

[0060] As shown, the bicycle 100 also has a user interface mounted on the handlebars, such as a shift actuator or electric actuator 148. All of these components can be connected to a remote power source or remote battery 142. In addition, all communications between the electric bicycle central control system or controller and each component are achieved through wired or wireless communications. There can be discrete controls with separate wires from the central controller to each component, or the system can use a controller area network ("CAN") bus, which is designed to allow microcontrollers and devices to communicate with each other in an application.

[0061] Although the bicycle 100 shown is a mountain bike and may include suspension components, such as a suspension fork, the embodiments disclosed herein may be implemented with other types of bicycles, such as a road bike. The front and / or forward orientation of the bicycle 100 is determined by Figure 1 In this way, the forward movement direction of the bicycle is indicated by the direction of arrow A.

[0062] The electric bicycle central control system or controller can be supported by the same housing as the remote power source 142. The electric bicycle controller can control power from the remote power source 142 to components on the bicycle 100 (e.g., the power assist device 140). The electric bicycle controller can control power to other and / or different components on the bicycle 100. The electric bicycle controller can send signals (e.g., commands) to components on the bicycle 100 (e.g., the derailleur 102, the suspension system, and / or the seat post assembly) and / or receive data (e.g., commands and / or sensor data) from components on the bicycle 100 to actuate and / or control components of the bicycle 100.

[0063] In other embodiments, the electric bicycle controller can be located elsewhere on the bicycle 100 (e.g., mounted on the handlebars), or alternatively, can be distributed between the components of the bicycle 100, wherein the communication link is routed to accommodate the necessary signal and power paths. The electric bicycle controller can also be located somewhere other than on the bicycle 100, such as on the rider's wrist or in a jersey pocket. The communication link can include wires, can be wireless, or can be a combination thereof. In one example, the electric bicycle controller can be integrated with the rear derailleur 102 to transmit control commands between the components. The electric bicycle controller can include a processor, a communication device (e.g., a wireless communication device), a memory, and one or more communication interfaces.

[0064] In one example, the controller of the derailleur and / or the electric bicycle controller wirelessly actuates the motor module and / or the auxiliary motor of the derailleur 102 and operates the derailleur 102 to perform gear changes and gear selections. Additionally or alternatively, the controller of the derailleur and / or the electric bicycle controller may be configured to control the shifting of the front derailleur.

[0065] Figure 3 An example of a control system 300 (eg, an electromechanical control system) is shown, for example, for bicycle 100. Control system 300 includes an electric bicycle controller 302, power assist device 140, rear derailleur 102, and one or more sensors. Power assist device 140 is, for example, an auxiliary motor.

[0066] The one or more sensors include, for example, a pedal speed sensor 304, a wheel speed sensor 306, and a torque sensor 308. For example, the pedal speed sensor 304 measures the rotational speed of at least one of the crank arms 130, the wheel speed sensor 306 measures the rotational speed of at least one of the wheels 114, 112, and the torque sensor 308 measures the torque on the crank assembly 124 and / or the torque on the output shaft of the auxiliary motor 140. The control system 300 may include more, fewer, and / or different sensors. For example, the one or more sensors may include more than one wheel speed sensor 306: one for the front wheel 112 and one for the rear wheel 114. As another example, the one or more sensors may include a sprocket angle sensor, a chain link counter, one or more accelerometers, a global positioning system (GPS) sensor, a tilt sensor, a laser distance measurement sensor, and / or one or more other sensors.

[0067] The pedal speed sensor 304, the wheel speed sensor 306, and the torque sensor 308 may be any number of different types of sensors. For example, the pedal speed sensor 304 and the wheel speed sensor 306 may be a combined speed and cadence sensor. The speed and cadence sensor may include a spoke magnet attached to the spokes of the front wheel 112 or the rear wheel 114 and / or a cadence magnet attached to one of the crank arms 130 and a sensor (e.g., a Hall effect sensor) attached to the frame 106 of the bicycle 100. The sensor attached to the frame 106 of the bicycle is configured to identify and count the rotation of one crank arm 130 and / or the front wheel 112 or the rear wheel 114, respectively, based on the cadence magnet and / or the spoke magnet passing through the sensor attached to the frame 106. Other types of sensors may be provided (e.g., a combination of a gyroscope and an accelerometer for the wheel speed sensor 306). The torque sensor 308 may include, for example, a magnetoelastic torque sensor, a strain gauge, a SAW device, and / or other types of torque sensors. In one embodiment, the torque sensor 308 is a current sensor that measures the current through the auxiliary motor 140. The amount of current consumed by the auxiliary motor 140 is proportional to the torque that the auxiliary motor 140 applies to the drive train of the bicycle 100.

[0068] like Figure 3As shown in the embodiment of the control system 300, the power assist device 140, the rear derailleur 102 and one or more sensors (e.g., the pedal speed sensor 304, the wheel speed sensor 306 and the torque sensor 308) can communicate directly with the electric bicycle controller 302. Alternatively or additionally, at least some components of the control system 300 can communicate indirectly with the electric bicycle controller 302. For example, the wheel speed sensor 306 and / or the pedal speed sensor 304 can communicate directly with the rear derailleur 102 and communicate indirectly with the electric bicycle controller 302 via the rear derailleur 102. In one embodiment, at least each of the rear derailleur 102 and the electric bicycle controller 302 communicates directly with all sensors such as the pedal speed sensor 304, the wheel speed sensor 306 and the torque sensor 308. Other and / or different components of the control system 300 (e.g., the power assist device 140) can communicate directly with all sensors in the one or more sensors. The communication between the components of the control system 300 can be wired communication and / or wireless communication.

[0069] Each communication link 310 between components of the control system 300 can be in both directions. In other words, the data flow between components of the control system 300 in direct communication can be in both directions. For example, the wheel speed sensor 306 can receive a signal (e.g., regarding when the rotation speed is measured) from the electric bicycle controller 302 or the rear derailleur 102 and return the measured rotation speed to the electric bicycle controller 302 or the rear derailleur 102.

[0070] Figure 4 4 is a block diagram of an operating component 400. The operating component 400 may be one or more of the aforementioned components (e.g., the rear derailleur 102, the electric bicycle controller 302, and the front shifter) or may be a portion of one or more of the aforementioned components. The operating component 400 may also be another component, such as a power assist device 140, an internal gearbox component, a suspension component, an adjustable suspension component, or an adjustable seat component. A plurality of operating components 400 may be provided.

[0071] The operating component 400 is provided with an operating unit 402, which can be a circuit board or an alternative configuration. The operating unit 402 includes an operating processor 404, an operating memory 406, an operating user interface 408, an operating power supply 410, an operating communication interface 412, and an operating device interface 414. In one embodiment, the operating communication interface 412 communicates with the operating communication device 416, and the operating device interface 414 communicates with the operating device 418. Additional, different or fewer components can be provided. For example, the operating user interface 408 can be omitted.

[0072] The structure, connection and function of the operation processor 404 can represent the structure, connection and function of the rear derailleur 102, the front derailleur, the bicycle controller 302 or other components. The operation processor 404 can include a general purpose processor, a digital signal processor, an ASIC, an FPGA, an analog circuit, a digital circuit, a combination thereof, or other processors now known or later developed. The operation processor 404 can be a single device or a combination of devices, such as through shared or parallel processing.

[0073] The operating memory 406 may be a volatile memory or a non-volatile memory. The operating memory 406 may include one or more of a ROM, a RAM, a flash memory, an EEPROM, or other types of memory. The operating memory 406 may be removable from the operating component 400 (e.g., an SD memory card). In a specific non-limiting example embodiment, the computer-readable medium may include a solid-state memory, such as a memory card or other packages that accommodate one or more non-volatile read-only memories. In addition, the computer-readable medium may be a random access memory or other volatile rewritable memory. In addition, the computer-readable medium may include a magneto-optical medium or an optical medium, such as a disk or a tape or other storage device. Therefore, the present disclosure is considered to include any one or more computer-readable media and other equivalents and successor media in which data or instructions may be stored.

[0074] The operating memory 406 is a non-transitory computer-readable medium and is described as a single medium. However, the term "computer-readable medium" includes a single medium or multiple media, such as a centralized or distributed memory structure, and / or associated caches that can be used to store one or more sets of instructions and other data. The term "computer-readable medium" will also include any medium that can store, encode, or carry an instruction set for execution by a processor or cause a computer system to perform any one or more methods or operations disclosed herein.

[0075] The operating power source 410 is a portable power source that can be stored inside the operating component 400 or stored outside the operating component 400 and communicates with the operating component through a power conducting cable. The operating power source 410 may involve power generation, such as using a mechanical power generation device, a fuel cell device, a photovoltaic cell, a piezoelectric or other power generation device. The operating power source 410 may include a battery, such as a device composed of two or more electrochemical cells that convert stored chemical energy into electrical energy. The operating power source 410 may include a combination of multiple batteries or other power supply devices. Specially assembled or configured battery types or standard battery types can be used.

[0076] In an example where the operating component 400 is the rear derailleur 102, the operating power source 410 may be stored inside the operating component 400. In an example where the operating component 400 is the electric bicycle controller 302, the operating power source 410 may be stored inside or outside the operating component 400. For example, the electric bicycle controller 302 may be supported on a Figure 1 The remote power supply 142 is located within the housing.

[0077] The operating device interface 414 allows operation of components of the bicycle 100. For example, the operating device interface 414 can transmit power from the operating power source 410 to generate motion in the operating device 418. In various embodiments, the operating device interface 414 sends power to control the motion of the auxiliary motor 140, the motor of the rear derailleur 102, the motor of the front derailleur, or any combination thereof. In one embodiment, the operating component 400 is an electric bicycle controller 302, and the operating device interface 414 sends power to control the motion of the power assist device 140. The operating device interface 414 includes wired signal and / or data communication circuitry that operates to control the operating device 418.

[0078] The operation user interface 408 can be one or more buttons, keypads, keyboards, mice, styluses, trackballs, rocker switches, touch pads, voice recognition circuits, or other devices or components for transmitting data between a user and the operation component 400. The operation user interface 408 can be a touch screen, which can be capacitive or resistive. The operation user interface 408 can include an LCD panel, LED, LED screen, TFT screen, or other type of display. The operation user interface 408 can also include audio capabilities or speakers.

[0079] The operation communication interface 412 is configured to receive data from bicycle components (e.g., pedal speed sensor 304, wheel speed sensor 306, and / or torque sensor 308; electric bicycle controller 302) with an operation communication device 416, such as measurement data (e.g., rotational crank speed, rotational wheel speed, and / or torque), expected signals, operation signals, and / or other signals. In one embodiment, the operation component 400 includes more than one operation communication interface 412 that communicates with more than one operation communication device 416, respectively. The operation communication interface 412 can also be configured to send data such as status signals (e.g., temperature sensor signals) for receipt by, for example, the electric bicycle controller 302. The operation communication interface 412 uses any operable connection to transmit data. An operable connection can be a connection in which signals, physical communications, and / or logical communications can be sent and / or received. An operable connection can include a physical interface, an electrical interface, and / or a data interface. One or more operation communication interfaces can provide wireless communication through the operation communication device 416 in any format now known or later developed. Although this specification describes components and functions that can be implemented in specific embodiments with reference to specific standards and protocols, the present invention is not limited to these standards and protocols. For example, standards for Internet and other packet-switched network transmissions (e.g., TCP / IP, UDP / IP, HTML, HTTP, HTTPS) represent examples of the prior art. Such standards are periodically replaced by faster or more efficient equivalents having substantially the same functionality. Therefore, replacement standards and protocols having the same or similar functionality as those disclosed herein are considered to be equivalents thereof.

[0080] According to various embodiments of the present disclosure, the methods described herein may be implemented with a software program executable by a computer system, such as components of the control system 300 (e.g., the electric bicycle controller 302 and the rear derailleur 102), and / or other components on the bicycle 100 and / or worn by the user. In addition, in an exemplary and non-limiting embodiment, implementations may include distributed processing, component / object distributed processing, and parallel processing. Alternatively, a virtual computer system process may be constructed to implement one or more methods or functions described herein.

[0081] A computer program (also referred to as a program, software, software application, script, or code) may be written in any form of programming language, including compiled or interpreted languages, and may be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program does not necessarily correspond to a file in a file system. A program may be stored in a portion of a file that holds other programs or data (e.g., one or more scripts stored in a markup language document), in a single file dedicated to the program in question, or in multiple collaborative files (e.g., files storing one or more modules, subroutines, or code portions). A computer program may be deployed to execute on one computer or multiple computers, which are located at one site or distributed across multiple sites and interconnected by a communications network.

[0082] The processes and logic flows described in this specification can be performed by one or more programmable processors executing one or more computer programs to perform functions by operating on input data and generating output. The processes and logic flows can also be performed by special purpose logic circuits (e.g., FPGAs or ASICs), and the devices can also be implemented as special purpose logic circuits.

[0083] As used in this application, the term "circuitry" refers to all of the following: (a) hardware circuit implementations only (e.g., implementations in analog and / or digital circuits only); (b) combinations of circuitry and software (and / or firmware), such as (as applicable): (i) a combination of a processor or (ii) portions of processor / software (including digital signal processors), software, and memory that work together to enable a device such as a mobile phone or server to perform various functions; and (c) circuitry, such as a microprocessor or portion of a microprocessor, that requires software or firmware to operate, even if the software or firmware is not physically present.

[0084] This definition of "circuitry" applies to all uses of this term in this application, including in any claims. As another example, as used in this application, the term "circuitry" would also cover an implementation of merely a processor (or multiple processors) or portion of a processor and its accompanying software and / or firmware, as well as other electronic components. The term "circuitry" would also cover (for example and if applicable to a particular claim element) a baseband integrated circuit or an application processor integrated circuit for a mobile computing device, or a similar integrated circuit in a server, cellular network device, or other network device.

[0085] For example, processors suitable for executing computer programs include general-purpose and special-purpose microprocessors, and any one or more processors of any type of digital computer. Typically, the processor receives instructions and data from a read-only memory or a random access memory or both. The basic elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Typically, the computer also includes one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data, or is operatively connected to receive data from one or more mass storage devices (e.g., magnetic disks, magneto-optical disks, or optical disks) for storing data or to transfer data to one or more mass storage devices or both for storing data. However, the computer does not have to have such a device. In addition, the computer can be embedded in another device, such as a mobile phone, a personal digital assistant ("PDA"), a mobile audio player, a global positioning system ("GPS") receiver, a control unit, a rear derailleur, or a front derailleur, just to name a few examples. Computer-readable media suitable for storing computer program instructions and data include all forms of nonvolatile memory, media, and storage devices, including, for example: semiconductor memory devices (e.g., EPROM, EEPROM, and flash memory devices); magnetic disks (e.g., internal hard disks or removable disks); magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and memory may be supplemented by, or incorporated in, special purpose logic circuitry.

[0086] The operating communication device 416 allows data and / or signal communication from the operating component 400 to another component of the bicycle 100 or an external device (such as a mobile phone or other computing device). The operating communication device uses any operable connection to transmit data. An operable connection can be a connection in which signals, physical communications, and / or logical communications can be sent and / or received. An operable connection can include a physical interface, an electrical interface, and / or a data interface. The control communication device can be configured for wireless communication and therefore include one or more antennas. The control communication device provides wireless communication in any format now known or later developed.

[0087] A control antenna may also be provided. The control antenna may be a plurality of control antennas. The operating component 400 may include an antenna with a circuit of the PCB of the operating component 400; however, additional antennas may also be included in the circuit. The control antenna may be integrated with another component of the bicycle 100, or may be a separate component. For example, the control antenna may be integrated as part of the electric bicycle controller 300 and / or as part of the rear derailleur 102.

[0088] The derailleur 102 can allow for configuration of multiple riding modes that can be switched between by a control unit (e.g., the electric bicycle controller 302 or another controller on or external to the bicycle 100). The control unit can switch riding modes based on user input (e.g., via the electric actuator 148 or another interface) or automatically switch riding modes based on sensed conditions. Within each mode, various characteristics of the riding mode can be adjusted. For example, gear hysteresis, the minimum gear to shift to without pedaling, and / or other characteristics can be adjusted.

[0089] Figure 5 1 is a flow chart of an embodiment of a method for electromechanical control of components of, for example, a bicycle 100. The flow chart also shows a method for sending and receiving wireless signals on a bicycle 100. As presented in the following sections, the actions may be performed using any combination of the components indicated in the previous figures. For example, the following actions may be performed by at least some components of the control system 300 and additional or other components. In one embodiment, the actions may be performed by, for example, the rear derailleur 102, the electric bicycle controller 302, the power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions may be provided. The actions are performed in the order shown or in other orders. The actions may be repeated.

[0090] In action 500, the processor initiates a mode of the bicycle (e.g., a fully automatic mode). In the fully automatic mode, the derailleur (e.g., derailleur 102) shifts gears without user input to maintain a gear that causes the rider's cadence to approach a defined target based on the current wheel speed. The processor can initiate the fully automatic mode based on user input or automatically initiate the fully automatic mode based on sensed riding conditions. In one embodiment, the processor is a processor of the derailleur and initiates the fully automatic mode based on instructions from another processor (e.g., electric bicycle controller 302) that receives user input or identifies sensed riding conditions.

[0091] In action 502, the processor receives data representing wheel speed from a sensor (e.g., a wheel speed sensor; wheel speed sensor 306). The wheel speed sensor measures the rotational speed of the wheel continuously or at predetermined intervals. The received data representing wheel speed may be for the front wheel of the bicycle and / or the rear wheel of the bicycle. The data representing wheel speed may be a rotational speed value (e.g., in revolutions per minute).

[0092] In action 504, the processor receives data representing the cadence speed from a sensor (e.g., a pedal speed sensor or a crank cadence sensor; pedal speed sensor 304). The pedal speed sensor measures the rotation speed of the crank arm to which the bicycle pedal is connected continuously or at predetermined intervals. The data representing the cadence speed can be a rotation speed value (e.g., in revolutions per minute).

[0093] Some wheel speed and crank cadence sensors that can be used as inputs to this method use a single magnet mounted on the wheel or crank, respectively, and a single reed switch or Hall effect sensor mounted on the frame. As the wheel or crank rotates, the magnet passes the Hall effect sensor or reed switch once per revolution, generating a signal that is read by the processor. These sensor systems use the time between activations of the reed switch or Hall effect sensor to measure the crank or wheel angular velocity.

[0094] In action 506, the processor compares the data of the representation cadence speed (e.g., current cadence speed) received in action 504 with the target cadence speed. The target cadence speed can be user-defined. For example, a bicycle can include one or more control devices (e.g., two control buttons) mounted on the handlebar of the bicycle. The two control buttons can communicate (e.g., wireless communication and / or wired communication) with, for example, bicycle controller 302 and / or other components on the bicycle. One of the two control buttons can generate a signal indicating that the target cadence speed increases when pressed, and the other of the two control buttons can generate a signal indicating that the target cadence speed decreases when pressed. Single pressing of any of the two control buttons, for example, increases or decreases the configurable RPM number of the target cadence speed (e.g., set point). In one embodiment, the set point is adjustable within a functionally actual predetermined limit (e.g., 60RPM to 120RPM). The rider who attempts to adjust the limit exceeding the predetermined limit has no effect on the set point. In other words, the set point will remain at a lower limit or an upper limit. The predetermined limit can also be adjustable.

[0095] In one embodiment, a shift button that controls the upshift and downshift actions of the rear derailleur may be dual purposed to control the set point of the automatic shift target cadence. If the shift button is pressed for less than a predetermined amount of time (e.g., less than 300 milliseconds), the upshift and downshift buttons may trigger upshift and downshift actions of the rear derailleur, respectively. If the shift button is pressed and held for longer than a predetermined amount of time (e.g., a long press), the long press may be considered a set point adjustment command and may increment or decrement the target cadence.

[0096] Each set point adjustment may modify the target cadence by only a small amount (e.g., 1 RPM) to achieve precise adjustments. In one embodiment, to quickly make large adjustments to the target cadence, a long press may be followed by one or more short presses (e.g., less than 300 milliseconds). Each short press may cause an additional increment or decrement to the set point as long as it occurs within a certain threshold time (e.g., 800 milliseconds) after the previous press.

[0097] A memory in communication with the processor (e.g., a memory of the derailleur 102 or a memory of the electric bicycle controller 302) stores a gear ratio table and an upshift / downshift table. When the set point is adjusted by the rider, the processor recalculates the gear ratio table and the upshift / downshift table based on the adjusted set point. If the closest gear ratio changes when the set point is adjusted, the derailleur shifts immediately, ignoring the hysteresis built into the upshift / downshift table.

[0098] In one embodiment, the set point adjustment is configured through a system control interface (e.g., an electric bicycle system control interface). The system control interface is capable of displaying the current set point and adjusting the set point directly on the rear derailleur. In another embodiment, the set point adjustment is performed through a mobile device application that communicates directly with the rear derailleur.

[0099] In act 508, the processor determines whether the current cadence speed received in act 504 is within a range (e.g., within 3 RPM) relative to the target cadence speed based on the comparison of act 506. If the current cadence speed is within the range, the method returns to act 502. If the current cadence speed is outside the range, the method moves to act 510.

[0100] In action 510, the processor compares the current wheel speed with a predetermined minimum wheel speed. For example, the processor calculates the difference between the current wheel speed and the predetermined minimum wheel speed. The predetermined minimum wheel speed represents, for example, a functional minimum rotational wheel speed.

[0101] In act 512, the processor determines whether the current wheel speed is greater than or less than the predetermined minimum wheel speed based on the comparison in act 510. If the processor determines that the current wheel speed is less than the predetermined minimum wheel speed, the shift is not initiated and the method returns to act 502. If the processor determines that the current wheel speed is greater than the predetermined minimum wheel speed, the method moves to act 514.

[0102] The feature of overdriving the sprocket while not pedaling is limited by the speed of the bicycle. This stipulates that the sprocket should not be driven at a speed at which torque is applied to the wheel. Therefore, the above method cannot be applied when the bicycle is moving very slowly or stopped. To overcome this problem, a hub that can detach the cassette flywheel can be used. When the bicycle stops or moves to a speed below that at which the overdrive function can be safely used, the control system can detach or separate the cassette flywheel from the rear hub to allow the cassette flywheel to move forward without applying torque to the wheel. With the hub detached, the derailleur can change gears and the auxiliary motor can operate in overdrive to select the desired gear for the slow or stopped condition. A crank speed sensor can be used to detect the rider input to restart the system. When the rider pedaling or faster rider pedaling is detected, the control system reconnects the cassette flywheel to the hub.

[0103] In act 514, the processor determines whether the crank arm is rotating. For example, the processor determines whether the crank arm is rotating based on the current cadence speed received in act 504. If the current cadence speed is greater than zero, the method moves to act 516. If the current cadence speed is equal to zero or approximately zero (e.g., less than or equal to 1 RPM), the method moves to act 518.

[0104] In act 516, the processor instructs the motor (e.g., the motor of the derailleur or the auxiliary motor 140) to start and shift to maintain a gear that causes the rider's cadence to approach (e.g., within the range discussed above) the target cadence speed identified in act 506. After act 516, the method returns to act 502.

[0105] When performing automatic shifting, the derailleur may adjust the minimum timing between shifts based on the current wheel speed, the current gear, the current rider cadence, or some other parameter to provide for each shift to be completed before attempting the next shift. The timing is optimized to allow shifting as quickly as possible without causing shifting failures.

[0106] The auxiliary motor is not running when the user is not pedaling, so that the motor accelerates or maintains the bicycle speed. This is not difficult if the current wheel speed is accurate. However, the wheel speed sensor may update the current wheel speed only once per wheel revolution. During a rapid deceleration event, the bicycle may drop below the speed of the auxiliary motor before the wheel speed sensor reports a change in speed. The bicycle's accelerometer or inertial measurement unit (IMU) can be used to supplement the wheel speed sensor data by disabling the auxiliary motor in the event of significant deceleration. If a rapid deceleration event occurs, the auxiliary motor can be temporarily stopped (for example, if currently running) until the wheel speed data has been updated.

[0107] In act 518 , the processor instructs, for example, an auxiliary motor to operate for a period of time to allow the chain to be derailed to the target gear (eg, with a derailleur motor). After act 518 , the method returns to act 502 .

[0108] When the auxiliary motor is used to facilitate gear shifting without the rider pedaling, the auxiliary motor should cause the drive train to move slower than the bicycle is moving. A threshold value for the amount of current consumed by the auxiliary motor (e.g., proportional to the torque applied by the auxiliary motor to the drive train) can be defined to prevent unwanted power input from the motor into the drive train. This is an intentionally redundant approach to turning off the auxiliary motor for speed calculations. It is important that the auxiliary motor does not apply unwanted torque to the drive train that could result in unwanted acceleration of the bicycle.

[0109] For example, the rate at which the auxiliary motor drives the chain to facilitate the shift when the rider is not pedaling should be low enough so that for the current transmission ratio and the current wheel speed, no torque is transmitted to the drive element of the hub (e.g., chain_rpm < current transmission ratio * current wheel speed + safety margin). It is desirable to complete the shift as quickly as possible. Therefore, the sprocket can be driven as quickly as possible without applying torque to, for example, the rear wheel. Therefore, the auxiliary motor speed can be set based on the current transmission ratio and the current wheel speed. In one embodiment, the motor output torque is limited to below a threshold during a motor-assisted shift event. For example, the motor output torque can be limited to two ("2") Newton meters ("Nm").

[0110] It is desirable that the assist motor runs for as little time as is required to complete the commanded shift. Any time the sprocket is rotating, the chance of the sprocket derailing increases (e.g., in the case of low pedal loads for motor-assisted shifting). The duration of motor operation may be a function of the currently selected gear, as different gears have different expected times to complete a shift. In one embodiment, the rear derailleur (e.g., a processor and / or one or more sensors of the rear derailleur) may determine when the shift has been completed (e.g., the chain has derailed to the target gear). In this case, the motor may run until the derailleur has detected completion of the shift.

[0111] In one embodiment, even if the bicycle is configured for zero rider assistance, the above-described automatic shifting can operate with a motor drive function while not pedaling (e.g., overdriving the sprocket while not pedaling). In this configuration, the auxiliary motor can only be operated when the derailleur is shifting gears without pedaling to facilitate shifting. When the rider is pedaling, the non-assisted mode of the electric bicycle system is respected.

[0112] Figure 66 is a flow chart of an embodiment of a method 600 for electromechanical control of components of a bicycle (e.g., bicycle 100). As presented in the following sections, the actions may be performed using any combination of the components indicated in the previous figures. For example, the following actions may be performed by at least some components of the control system 300 and additional or other components. In one embodiment, the actions may be performed by, for example, the rear derailleur 138, the electric bicycle controller 302, the power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions may be provided. The actions are performed in the order shown or in other orders. The actions may be repeated.

[0113] In action 602, a processor of the bicycle (e.g., a processor of the control system 300, a processor of the rear derailleur 138, and / or a processor of the electric bicycle controller 302) receives a shift command. The shift command may be received from an automatic shift algorithm or from a user at a control device of the bicycle during a manually triggered shift. The shift command may include any number of different types of data, including, for example, a shift direction and / or a shift number. The shift command may include different types of data.

[0114] In act 604, the processor initiates a gear shift (e.g., a first gear shift) of a derailleur (e.g., a rear derailleur) of the bicycle based on the gear shift command received in act 602. When the processor initiates the gear shift in act 604, the processor (e.g., as part of the control system 300 or the electric bicycle controller) may enter a gear shift state. In the gear shift state, the processor may reject further gear shift requests.

[0115] In action 606, after the shift of the derailleur is initiated in action 604, the processor identifies a link passing (e.g., a link passing event). For example, the processor identifies each time a link of the chain passes a specific position of the bicycle. In one embodiment, the bicycle includes a sprocket angle sensor, and the processor identifies the link passing based on data generated by and received from the sprocket angle sensor. In another embodiment, the processor estimates when a link passing occurs based on the relative encoder position of the rotor of the motor of the power assist device (e.g., the power assist device), the DU transmission ratio, and the size of the sprocket of the drive train. Other sensors and / or methods can be used to identify link passing.

[0116] For example, a link counter (e.g., a sensor module separate from the processor) detects link movement and counts the links by measuring the relative sprocket angle. Given the sprocket size (e.g., number of teeth) and the relative sprocket angle, the number of links that pass through the sprocket can be calculated. For example, the number of links that pass through is equal to the relative sprocket angle multiplied by the sprocket size and divided by 360 degrees. The number of links that pass through the sprocket is equal to the number of links that pass through the cassette flywheel.

[0117] When the rider is pedaling without motor assistance from the bicycle (e.g., an e-bike), the relative sprocket angle is equal to the relative pedal angle derived, for example, from the cadence sensor. When the auxiliary motor of the bicycle (e.g., an e-bike) is active (e.g., when coasting or shifting gears while providing motor assistance as the rider pedals), the relative sprocket angle can be determined from the relative motor encoder position divided by the drive unit gearbox ratio.

[0118] In action 608, the processor increments (e.g., by 1) a link counter. The link counter is stored in a memory that is in communication with the processor. The memory may be included in any number of components of the bicycle (e.g., the control system 300, the rear derailleur 138, and / or the electric bicycle controller 302). Actions 606 and 608 may be repeated any number of times, as the processor may increment the link counter each time the processor identifies a link passing event.

[0119] In act 610, the processor compares the current value (e.g., number) of the link counter to at least one predetermined threshold number of links. For example, the at least one predetermined threshold number of links may include a predetermined threshold number of links that corresponds to a worst-case number of links that pass before the chain engages in a target gear of the cassette and the processor is ready for another shift request. The predetermined threshold number of links may be stored in the memory or another memory when the bicycle is manufactured and / or may be user-defined.

[0120] In one embodiment, the at least one predetermined threshold number of links includes at least three predetermined threshold numbers of links (e.g., a first threshold number of links, a second threshold number of links, and a third threshold number of links). The number of link passing events (after which the rear derailleur is ready for another gear shift) may differ depending on the direction of the first gear shift and the second gear shift, respectively.

[0121] When the first shift and the second shift are in the same direction, the comparison in act 610 may be between the current value of the link counter and the first threshold number of links. When the first shift and the second shift are in different (e.g., opposite) directions, the comparison in act 610 may be between the current value of the link counter and the second threshold number of links. The second threshold number of links may be greater than the first threshold number of links. In other words, the method 600 may wait longer before allowing a shift in the opposite direction than a shift in the same direction.

[0122] In one embodiment, in addition to comparing the current value of the link counter to the first threshold number of links or the second threshold number of links, the processor also compares the current value of the link counter to a third threshold number of links. The third threshold number of links can be, for example, zero links. When the current value of the link counter is zero, the bicycle can be identified as stationary.

[0123] If the processor determines in act 610 that the current value of the link counter is less than (e.g., or equal to) the first predetermined threshold number of links or the second predetermined threshold number of links, the method 600 moves to act 612. If the processor determines in act 610 that the current value of the link counter is greater than the first predetermined threshold number of links or the second predetermined threshold number of links, the method 600 moves to act 616.

[0124] In act 612, the processor identifies whether the processor has received an additional shift request (e.g., an automatic shift request or a manual shift request for a second shift) since initiating the shift in act 604. For example, the processor identifies whether an additional shift command has been received. If the processor determines in act 612 that an additional shift request has not been received, the method 600 returns to act 606 for identifying the passage of another link of the bicycle's chain. If the processor determines in act 612 that an additional shift request has been received, the method 600 moves to act 614.

[0125] If the processor determines that an additional shift request has been received, the processor may identify any number of different types of data from the additional shift request including, for example, a shift direction and / or a shift number.The additional shift command may include different types of data.

[0126] In action 614, the processor increments the shift counter (e.g., by 1). The shift counter is stored in the memory or another memory. The other memory may be included in any number of components of the bicycle (e.g., the control system 300, the rear derailleur 138, and / or the electric bicycle controller 302). For example, the shift counter may not only indicate the number of shifts requested when the processor is already in the shift state, but may also indicate the direction of the number of shifts, respectively. The shift counter may be stored in a buffer, and once the processor is out of the shift state, the processor acts on the shift indicated by the shift counter. After action 614, the method 600 returns to action 606 for identifying another link of the chain of the bicycle passing.

[0127] In one embodiment, instead of incrementing the shift counter in act 614, the processor may identify whether the additional shift request is for a compensatory shift without chain movement. Such a compensatory shift without chain movement may correspond to, for example, when the rider is coasting and the auxiliary motor of the electric bicycle is inactive, or when the rider is shifting back and forth while stationary.

[0128] For example, the processor may compare the current value of the link counter to a third predetermined threshold number of links and may identify, based on the comparison, that the additional shift request is for a compensatory shift when the current value of the link counter is equal to the third predetermined threshold number of links (e.g., the chain is not moving). In one embodiment, the processor only identifies the additional shift request as for a compensatory shift when the processor also identifies that the second shift is in the opposite direction of the first shift.

[0129] When the processor identifies that the additional shift request is for a compensatory shift, the processor may initiate an additional shift (e.g., a compensatory shift) based on the additional shift request. The processor may initiate an additional shift instead of incrementing the shift counter. In such an embodiment, after the processor initiates the additional shift, the method 600 may return to action 606.

[0130] Actions 612 and 614 may be performed by the processor only in the manual trigger mode, and not in the automatic mode. Alternatively, actions 612 and 614 may be performed in both the automatic mode and the manual trigger mode.

[0131] In act 616, the processor determines whether the shift counter is greater than 0. In other words, the processor determines whether any additional shift requests are received while the processor is already in a shift state and has rejected additional shift requests. If the processor determines in act 616 that the shift counter is greater than 0, the method 600 returns to act 604 and initiates the oldest shift request represented by the shift counter (e.g., as identified in the buffer) in a repeat return 604. At least acts 604 to 616 may be repeated until all shift requests represented by the shift counter are executed.

[0132] In act 618, the processor completes the gear shift initiated in act 604. The processor may enter a ready state in which the processor prepares for the next gear shift and is configured to process further gear shift requests.

[0133] In one embodiment, when at least acts 604 to 616 are repeated for an additional shift request received in act 612, and the additional shift request is in the opposite direction (e.g., outward) of a previous (e.g., most recent) shift request (e.g., for an inward shift), the processor may not act on the additional shift request until the processor enters a shift complete state. For example, when the next shift request (e.g., the additional shift request identified by the shift counter) is in the opposite direction of the current shift request, the threshold number of links used in act 610 may be increased. This allows the chain to be adequately wrapped around the cassette to minimize the risk of damage.

[0134] In one embodiment, when the processor transitions to the ready state (e.g., the processor will allow another shift in the same direction as the previous shift), the chain may engage, for example, sixteen, eighteen, twenty, or another number of teeth of the gear to which the chain is shifting. When the processor transitions to the shift complete state (e.g., the chain has all the way around the gear), the chain may engage, for example, 20 to 33 teeth of the gear to which the chain is shifting, depending on any number of different factors. For example, the processor may access a lookup table in memory and determine the number of chain links to the shift complete state based on any number of inputs including, for example, output power, speed, cadence, acceleration, and / or one or more other parameters.

[0135] For example, when the additional shift request is for a shift in the same direction as the current shift request, the threshold number of links (e.g., the first predetermined threshold number of links) may be, for example, twenty links; when the additional shift request is for a shift in the opposite direction to the current shift request, the threshold number of links (e.g., the second predetermined threshold number of links) may be, for example, 30 links. Other numbers of links may be provided for the threshold number of links for shifting in the same direction and shifting in the opposite direction, respectively.

[0136] The method 600 is a synchronization method that provides for processing a shift request only when the bicycle's drive train is ready to shift. The method 600 can help avoid chain breakage or cassette damage by, for example, preventing the chain from jumping up two or more gears of the cassette when shifting. The method 600 also enables the fastest multiple shifts on an external drive train system based on the rider's cadence.

[0137] Figure 7 Flowchart of an embodiment of a method 700 for electromechanical control of components of a bicycle (e.g., bicycle 100). As presented in the following sections, the actions may be performed using any combination of the components indicated in the previous figures. For example, the following actions may be performed by at least some components of the control system 300 and additional or other components. In one embodiment, the actions may be performed by, for example, the rear derailleur 138, the electric bicycle controller 302, the power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions may be provided. The actions are performed in the order shown or in other orders. The actions may be repeated.

[0138] The automatic shifting algorithm may trigger shifting based on the bicycle speed measured by the wheel speed sensors. In a slipping or blocking situation, the bicycle speed measured by the wheel speed sensors does not reflect the actual translational speed of the bicycle. In a slipping situation, the speed of the bicycle measured by the wheel speed sensors is higher than the actual translational speed of the bicycle, leading to unintended outward shifts, for example. With this increased wheel speed, more outward shifts may be triggered, leading to more slipping. A slipping situation combined with auxiliary motor support may cause the rider to lose control and may result in a safety critical situation. In a blocking situation, the bicycle speed measured by the wheel speed sensors is less than the actual translational speed of the bicycle, leading to unintended inward shifts.

[0139] The method 700 allows the actual translational speed of the bicycle to be calculated even when the bicycle is in a slipping situation or a blocking situation. The method 700 also allows the end of the slipping situation or the blocking situation to be determined. Thus, the automatic shifting algorithm can determine the best gear for the riding situation even when the bicycle is in a slipping situation or a blocking situation.

[0140] In action 702, the processor identifies an acceleration of the bicycle (e.g., a first acceleration). For example, the bicycle may include one or more wheel speed sensors (e.g., at the rear wheel of the bicycle) and / or one or more cadence sensors (e.g., at the crank assembly of the bicycle), and the processor may receive sensor data generated by these sensors from the one or more wheel speed sensors and / or the one or more cadence sensors. The processor may determine, for example, the acceleration of the rear wheel of the bicycle or the crank arm of the crank assembly based on the received sensor data. For example, the processor may determine the acceleration of the rear wheel or the crank arm of the bicycle by taking a derivative of a subset of the received sensor data. The processor may calculate, for example, the translational acceleration of the bicycle as the acceleration of the bicycle based on the determined acceleration of, for example, the rear wheel or the crank arm of the bicycle. The processor may identify the acceleration of the bicycle in other ways, and / or the processor may determine the acceleration of the bicycle based on data from other types of sensors (e.g., one or more accelerometers).

[0141] In action 704 , the processor receives a shift command. The received shift command is, for example, an automatic shift command. The shift command received in action 704 may be generated, for example, by an automatic shift algorithm in response to the acceleration identified in action 702 .

[0142] In action 706, the processor identifies additional acceleration data for the bicycle. In one embodiment, the additional acceleration data includes one or more predetermined threshold accelerations (e.g., predetermined threshold accelerations). The predetermined threshold accelerations, for example, represent the maximum deceleration that can be achieved by the bicycle when the bicycle is braked under ideal conditions, or the maximum acceleration that can be achieved by the bicycle when the bicycle is operated under ideal conditions. The one or more predetermined threshold accelerations can be determined in a laboratory and stored in a memory of the bicycle that communicates with the processor. The predetermined acceleration thresholds can be stored in a memory when the bicycle is manufactured and / or can be defined by the rider. Other predetermined threshold accelerations can be used.

[0143] In one embodiment, the additional acceleration data includes a first predetermined threshold acceleration representing a maximum achievable deceleration and a second predetermined threshold acceleration representing a maximum achievable acceleration. For example, the deceleration greater than the first predetermined threshold acceleration identified in act 702 is more negative (e.g., a greater deceleration) than the first predetermined threshold acceleration. In one embodiment, the first predetermined threshold acceleration is -6.0 m / s 2 , and the second predetermined threshold acceleration is 2m / s 2 Other values ​​may be provided for the first predetermined threshold acceleration and the second predetermined threshold acceleration, respectively.

[0144] In another embodiment, the additional acceleration data includes acceleration data from one or more other sensors (e.g., one or more accelerometers) of the bicycle and / or acceleration (e.g., a second acceleration) calculated based on the acceleration data from the one or more other sensors of the bicycle. For example, the accelerometer of the bicycle can generate three-axis acceleration data. The processor can calculate an acceleration vector (e.g., a second acceleration) in the forward direction of the bicycle based on the three-axis acceleration data.

[0145] In act 708, the processor compares the acceleration identified in act 702 (e.g., the first acceleration) with the additional acceleration data identified in act 702 or the acceleration calculated based on the additional acceleration data (e.g., the second acceleration). For example, the processor compares the acceleration identified in act 702 with a first predetermined threshold acceleration representing a maximum achievable deceleration and a second predetermined threshold acceleration representing a maximum achievable acceleration. The comparison may include the processor determining whether the acceleration identified in act 702 is less than the first predetermined threshold acceleration or whether the acceleration identified in act 702 is greater than the second predetermined threshold acceleration.

[0146] In one embodiment, the processor compares the first acceleration identified in act 702 (e.g., calculated based on data from the one or more wheel speed sensors and / or the one or more cadence sensors) to the second acceleration (e.g., from the one or more accelerometers) identified in act 706. For example, the processor may calculate an absolute value of the ratio of the first acceleration to the second acceleration.

[0147] In act 710, the processor determines whether the bicycle is in a blocking condition (e.g., fully braked, based on abnormal acceleration values). In one embodiment, the processor determines that the bicycle is in a blocking condition when the first acceleration identified in act 702 is less than a first predetermined threshold acceleration based on the comparison in act 708.

[0148] In another embodiment, the processor determines that the bicycle is in a blocking condition when the absolute value of the ratio of the first acceleration to the second acceleration is less than one minus a predetermined tolerance based on the comparison in act 708. For example, when the bicycle is not in a blocking condition (or a slipping condition), the first acceleration and the second acceleration are equal within a predetermined tolerance. The processor identifies that the bicycle is in a blocking condition when the following are true:

[0149] Among them, a wheelspeed <0

[0150] Among them, a wheelspeed is the first acceleration, a accelis the second acceleration, and x represents the tolerance.

[0151] If the processor determines in act 710 that the bicycle is in a blocked condition, the method 700 moves to act 712. Otherwise, the method 700 moves to act 714.

[0152] In act 714, the processor determines whether the bicycle is in a slipping condition (e.g., from a slippery condition, based on an abnormal acceleration value). In one embodiment, the processor determines that the bicycle is in a slipping condition when the first acceleration identified in act 702 is greater than a second predetermined threshold acceleration based on the comparison in act 708.

[0153] In another embodiment, the processor determines that the bicycle is in a slipping condition when the absolute value of the ratio of the first acceleration to the second acceleration is greater than one plus a predetermined tolerance based on the comparison in act 708. For example, when the bicycle is not in a slipping condition (or a blocking condition), the first acceleration and the second acceleration are equal within a predetermined tolerance. The processor identifies that the bicycle is in a slipping condition when the following are true:

[0154] Among them, a wheelspeed >0

[0155] Among them, a wheelspeed is the first acceleration, a accel is the second acceleration, and x represents the tolerance.

[0156] In yet another embodiment, the processor may receive acceleration data measured by a global positioning system (GPS) sensor of the bicycle or acceleration data measured by a global positioning system (GPS) sensor worn by the user. The acceleration measured by the GPS may directly indicate the translational acceleration of the bicycle, and the automatic shifting algorithm may be controlled based on the acceleration measured by the GPS. For example, if the GPS sensor does not detect the translational acceleration of the bicycle (e.g., even if a high wheel speed acceleration is detected), then a down-out shift may not be triggered.

[0157] In another embodiment, the processor can determine whether the bicycle is in a slipping condition by comparing the bicycle speed obtained from the GPS sensor with the bicycle speed obtained from the wheel speed sensor. When the GPS sensor and the wheel speed sensor return the same value within a predetermined tolerance, the processor can identify that the bicycle is not slipping. When the processor determines that the absolute value of the difference between the values ​​respectively returned by the GPS sensor and the wheel speed sensor exceeds the predetermined tolerance, the processor can identify the bicycle as being in a slipping condition or a blocking condition. For example, when the bicycle speed obtained from the wheel speed sensor is greater than the bicycle speed obtained from the GPS sensor, the processor can identify the bicycle as being in a slipping condition. When the bicycle speed obtained from the wheel speed sensor is less than the bicycle speed obtained from the GPS sensor, the processor can identify the bicycle as being in a blocking condition.

[0158] If the processor determines in act 714 that the bicycle is in a slipping condition, the method 700 moves to act 712. Otherwise, the method 700 moves to act 716.

[0159] In act 712, the processor blocks a shift corresponding to the shift command received in act 704 due to the identification of a blocking condition of the bicycle in act 710 or the identification of a slipping condition of the bicycle in act 714. In one embodiment, the processor blocks the shift (e.g., and any other shifts) for a predetermined amount of time. For example, the processor blocks the shift for two seconds, three seconds, four seconds, or another predetermined amount of time.

[0160] In another embodiment, the processor blocks the shift until the end of the blocking condition of the bicycle or the slipping condition of the bicycle is identified. For example, after the blocking condition of the bicycle is identified in act 710 or the slipping condition of the bicycle is identified in act 714, the determination of the first acceleration, the determination of the second acceleration, and the determination of the absolute value of the ratio of the first acceleration to the second acceleration are repeated (e.g., at predetermined time intervals) until the following is satisfied:

[0161]

[0162] Among them, a wheelspeed is the first acceleration, a accel is the second acceleration, and x represents the tolerance.

[0163] In one embodiment, after identifying a blocking condition of the bicycle in action 710 or identifying a slipping condition in action 714, the processor can determine the speed of the bicycle, for example based on the second acceleration, and can use the determined speed of the bicycle within the automatic shifting algorithm. For example, the processor can calculate the speed of the bicycle using:

[0164]

[0165] in:

[0166] t0 = time when the slip or blocking condition begins;

[0167] v t0 = v measured at the onset of the slip or blocking condition wheelspeed ;

[0168] a(t) = translational acceleration obtained from the accelerometer; and

[0169] v trans (t) = actual translational bicycle speed.

[0170] In act 716, the processor initiates a shift corresponding to the shift command received in act 704. In act 716, the processor does not identify blocking or slipping in acts 710 and 714, and the processor initiates a shift corresponding to the shift command received in act 704.

[0171] Using the three-axis acceleration sensor data in conjunction with the wheel speed data increases the reliability of slip and / or blocking detection and allows calculation of the actual translational bicycle speed even when the bicycle is slipping or blocking. Using this information, the processor can use an automatic shifting algorithm to identify the best gear for bicycle operation.

[0172] In one embodiment, additional filtering is applied to the sensor data (e.g., input signals) received in act 702. In another embodiment, the automatic shifting algorithm can adapt and / or learn based on other inputs (e.g., rider power and motor power, system weight, slope, and / or other inputs). In yet another embodiment, the bicycle can include one or more sensors configured to detect brake actuation, and the processor can prevent shifting from the automatic shifting algorithm for a predetermined period of time after detecting brake actuation.

[0173] In automatic shifting, for example, when the speed (e.g., wheel speed) or cadence (e.g., cadence of the crank arms of the bicycle) of the wheel of the bicycle reaches a predetermined limit, the automatic shifting algorithm can trigger an outward shift. For example, a rider accelerating on slippery ground reaches a predetermined limit, and the automatic shifting algorithm can initiate an outward shift. For example, on slippery ground, this causes more slipping and may trigger additional outward shifts until the rider loses control of the bicycle. In automatic shifting, an inward shift is triggered when the wheel speed of the bicycle decreases. When the wheel is blocked (e.g., by the rider applying full brakes) for a period of time, the cassette flywheel cannot rotate, but the automatic shifting algorithm can initiate an inward shift. The method 700 detects slipping or blocking based on abnormal acceleration values ​​detected by one or more sensors of the bicycle, and prevents shifting (e.g., by the automatic shifting algorithm) based on the detected slipping or blocking.

[0174] Figure 8 8 is a flow chart of an embodiment of a method 800 for electromechanical control of components of a bicycle (e.g., bicycle 100). As presented in the following sections, the actions may be performed using any combination of the components indicated in the previous figures. For example, the following actions may be performed by at least some components of the control system 300 and additional or other components. In one embodiment, the actions may be performed by, for example, the rear derailleur 138, the electric bicycle controller 302, the power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions may be provided. The actions are performed in the order shown or in other orders. The actions may be repeated.

[0175] In action 802, the processor receives a manual shift command. The manual shift command may be generated in response to, for example, a rider's interaction with a control device at the bicycle. In action 804, the processor identifies a shift direction corresponding to the manual shift command received in action 802. The shift corresponding to the manual shift command received in action 802 may be, for example, an inward shift or an outward shift. The processor may identify the shift direction corresponding to the manual shift command received in action 802 based on a signal generated in response to the rider's interaction with the control device of the bicycle. For example, different signals may be generated based on different rider inputs at one or more control devices of the bicycle, and the processor may identify the shift direction based on the signals generated and received by the processor.

[0176] In act 806, the processor starts a timer.After the processor initiates a shift corresponding to the manual shift command received in act 802, the processor may start a timer.

[0177] In act 808, the processor determines whether an automatic shift command has been received (e.g., from an automatic shift algorithm) after the timer has been started in act 806. If the processor determines in act 808 that an automatic shift command has not been received, the method 800 moves to act 810. If the processor determines in act 808 that an automatic shift command has been received, the method 800 moves to act 812.

[0178] In act 810, the gear shift corresponding to the manual gear shift is completed and the method 800 ends. In one embodiment, the method 800 ends after the timer started in act 806 reaches a predetermined time (eg, an override time).

[0179] In act 812, the processor determines a shift direction corresponding to the automatic shift command identified in act 808. For example, the shift direction corresponding to the automatic shift command identified in act 808 may be inward or outward. The automatic shift command identified in act 808 may include a shift direction and the number of gears to be traversed.

[0180] In act 814 , the processor determines whether the shift direction corresponding to the manual shift command identified in act 804 matches the shift direction corresponding to the automatic shift command identified in act 812 .

[0181] If the processor determines that the directions match based on the comparison in act 814, the method 800 moves to act 816. For example, if the shift direction identified in act 804 is inward and the shift direction identified in act 812 is inward, the method 800 moves to act 816. As another example, if the shift direction identified in act 804 is outward and the shift direction identified in act 812 is outward, the method 800 moves to act 816.

[0182] If the processor determines based on the comparison in act 814 that the directions do not match, the method 800 moves to act 818. For example, if the shift direction identified in act 804 is inward and the shift direction identified in act 812 is outward, the method 800 moves to act 818. As another example, if the shift direction identified in act 804 is outward and the shift direction identified in act 812 is inward, the method 800 moves to act 818.

[0183] In act 816, the processor initiates a gear shift corresponding to the automatic shift command identified in act 808. After act 816, method 800 returns to act 808 where additional automatic shift commands may be identified.

[0184] In act 818, the processor determines whether the elapsed time of the timer is greater than a predetermined threshold time (e.g., an override time). If the processor determines in act 818 that the elapsed time of the timer is greater than the predetermined threshold time, the method 800 moves to act 820. If the processor determines in act 818 that the elapsed time of the timer is not greater than (e.g., less than or equal to) the predetermined threshold time, the method 800 moves to act 822.

[0185] In act 820, the processor initiates a shift corresponding to the automatic shift command identified in act 808. In act 820, the override time has elapsed, so an automatic shift in the opposite direction to the shift corresponding to the manual shift command received in act 802 is no longer prevented.

[0186] In act 822, the processor prevents a shift corresponding to the automatic shift command identified in act 808. In act 822, the override time has not yet elapsed, so an automatic shift in the opposite direction to the shift direction corresponding to the manual shift command received in act 802 is prevented.

[0187] In one embodiment, when the processor identifies a stall, the processor may pause the timer (e.g., unblock). For example, the processor may determine the cadence of the crank arms of the bicycle and compare the determined cadence of the crank arms to a cadence set point (e.g., as part of an automatic shifting algorithm). The comparison of the determined cadence of the crank arms to the cadence set point may include, for example, determining a difference between the determined cadence of the crank arms and the cadence set point. The processor may compare the determined difference to a predetermined threshold difference and may identify a stall of the bicycle (e.g., a stall of the auxiliary motor of the bicycle) when the determined difference is greater than the predetermined threshold difference based on the comparison of the determined difference to the predetermined threshold difference. The processor may pause the timer or unblock so that the bicycle is allowed to shift in a second direction when the second shift direction is different from the first shift direction.

[0188] After action 822, method 800 returns to action 808, where the processor waits for another automatic shift command. Method 800 may time out once the timer started in action 806 matches, for example, an override time. The override time may be a fixed amount of time (e.g., 7 seconds), or may vary based on, for example, riding conditions, terrain, or rider input.

[0189] On a bicycle with automatic shifting, the rider can perform one or more manual shifts at any time that have priority over the shift decision of the automatic shift algorithm. Current solutions can use manual override time to prevent the automatic shift algorithm from canceling one or more manual shifts performed by the rider.

[0190] In this embodiment, when the rider performs a manual override, the processor prevents the automatic shift algorithm from making a shift request in the direction opposite to the manual override shift direction. However, the processor does execute a shift request by the automatic shift algorithm in the same direction as the manual override shift direction. For example, when the rider performs a manual inward shift before entering a climb, the processor can assist the rider in making an additional automatic inward shift as the bicycle decelerates without waiting for the override time to elapse. However, outward movement due to, for example, high speed may be prevented during the override time.

[0191] Fig. 9 Flowchart of an embodiment of a method 900 for electromechanical control of components of a bicycle (e.g., bicycle 100). As presented in the following sections, the actions may be performed using any combination of the components indicated in the previous figures. For example, the following actions may be performed by at least some components of the control system 300 and additional or other components. In one embodiment, the actions may be performed by, for example, the rear derailleur 138, the electric bicycle controller 302, the power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions may be provided. The actions are performed in the order shown or in other orders. The actions may be repeated.

[0192] The automatic shifting algorithm may define a static target cadence window, and by using the automatic shifting algorithm, the processor may maintain the cadence at the bicycle within the static target cadence window by changing gears when the actual cadence exceeds a threshold of the target cadence window.

[0193] The static cadence window depends on the cadence set point that defines the midpoint of the static cadence window, the cassette geometry, and the overlap offset (eg, hysteresis) that defines the size of the static cadence window for each gear.

[0194] For a specific rider output and a specific terrain, this automatic shifting algorithm may not be ideal because the rider may be in the wrong gear that feels like a stall or spin slide. Riding statistics and data logs show that riders prefer different rhythms in different riding scenarios. For example, for active and / or sports riding with higher torque, the rider may expect a higher target rhythm. As another example, for a relaxed commute with lower torque, the rider may expect a lower target rhythm. As another example, riding on technically simple terrain (e.g., flat roads) may require more reactive behavior to keep the rider close to the target rhythm because there is no decline or peak in the expected rhythm. As another example, riding on technically complex terrain (e.g., based on steep uphill, high torque, a large number of positive wheel speed acceleration and negative wheel speed acceleration, vibration to identify) allows more flexible shifting behavior to allow declines and peaks in speed and / or rhythm without shifting when passing obstacles.

[0195] In action 902, the processor identifies the target cadence. The target cadence can be predetermined, set by the rider or determined in another way. For example, the target cadence identified in action 902 can be static, or can change based on the torque and / or power input by the rider at the crank arm of the bicycle, for example. For example, the processor can identify the initial target cadence set point in the memory communicating with the processor, and the processor can dynamically adjust the initial target cadence set point (for example, the first target cadence set point) (see actions 908 and 910) based on the rider input and / or torque. The processor can determine the rider input based on the torque at the crank arm of the bicycle, the cadence at the crank arm of the bicycle, the speed of the bicycle, the acceleration of the bicycle, or any combination thereof. For example, the processor can determine the rider input by multiplying the torque at the crank arm of the bicycle by the cadence at the crank arm of the bicycle.

[0196] The processor can identify a predetermined threshold torque and / or a predetermined threshold input power. The predetermined threshold torque and the predetermined threshold input power can be thresholds for separating active riding (e.g., having a higher output torque and / or input power) and relaxing riding (e.g., having a lower output torque and / or input power). The processor can compare the torque at the crank arm of the bicycle with the predetermined threshold torque, and / or can compare the rider input with the predetermined threshold input power. When, based on the comparison, for example, the torque at the crank arm moves above the predetermined threshold torque (e.g., from below the predetermined threshold torque), the processor can dynamically adjust the initial target cadence set point upwards (e.g., adjust to the second target cadence set point). When, based on the comparison, for example, the torque at the crank arm moves below the predetermined threshold torque (e.g., from above the predetermined threshold torque), the processor can dynamically adjust the target cadence set point downwards (e.g., from the second target cadence set point to the first target cadence set point). A higher rider torque can result in a higher target cadence, while a lower rider torque can result in a lower target cadence.

[0197] Fig.10 An example of dynamic target cadence adjustment is shown. For example, when the torque at the crank arm moves above a predetermined threshold torque based on the above comparison, the processor can dynamically adjust the target cadence from a first target cadence set point to a second target cadence set point (e.g., a “specified target cadence”), such as Fig.10 As shown. Fig.10 In the illustrated embodiment, the processor may gradually increase the target cadence from the first target cadence setting point to the second target cadence setting point (e.g., during a transient time period). For example, when the torque at the crank arm moves below a predetermined threshold torque based on the above comparison, the processor may dynamically adjust the target cadence from the second target cadence setting point to the first target cadence setting point, such as Fig.10 As shown. Fig.10 In the illustrated embodiment, the processor can gradually reduce the target cadence from the second target cadence setting point to the first target cadence setting point (e.g., within a transient time). In one embodiment, the processor performs low-pass filtering on the adjustment of the target cadence to avoid signal jumps representing the target cadence.

[0198] In action 904, the processor identifies a static cadence offset. For example, the static cadence offset defines a static offset around the target cadence identified in action 902. In one embodiment, the processor identifies the static cadence offset based on the gear in which the bicycle is operated. In other words, the static cadence offset can be gear specific. For example, the static cadence offset is defined by the cassette flywheel geometry that limits the speed range. The transmission ratio can be the most ideal (e.g., closest to the target cadence) for the available gears. The memory can store a lookup table with static cadence offsets and corresponding cassette flywheel geometries, and the processor can use the stored lookup table to identify the static cadence offset. A low gear can, for example, have a larger static cadence offset than a high gear.

[0199] In action 906, the processor determines a static tempo window based on the target tempo identified in action 902 and the static tempo offset identified in action 904. The static tempo window has an upper limit and a lower limit. For example, the processor can determine the upper limit of the static tempo window by adding the static tempo offset identified in action 904 to the target tempo identified in action 902, and can determine the lower limit of the static tempo window by subtracting the static tempo offset identified in action 904 from the target tempo identified in action 902.

[0200] In action 908, the processor identifies the cadence at the crank arm of the bicycle. For example, a cadence sensor of the bicycle can generate cadence data of the crank arm and send the generated cadence data to the processor. The processor can identify the cadence at the crank arm of the bicycle based on the cadence data generated by the cadence sensor. The processor can identify the cadence at the crank arm in additional and / or different ways.

[0201] In action 910, the processor identifies the torque at the crank arm of the bicycle, the speed of the bicycle, the acceleration of the bicycle, or any combination thereof. For example, a torque sensor of the bicycle can generate torque data, a speed sensor of the bicycle can generate speed data, an acceleration sensor of the bicycle can generate acceleration data, or any combination thereof, and the generated data can be transmitted to the processor. The processor can identify the torque, speed, acceleration, or any combination thereof based on the transmitted data. The processor can identify the torque, speed, acceleration, or any combination thereof in additional and / or different ways.

[0202] In action 912, the processor identifies a riding scenario of the bicycle. For example, the processor identifies the riding scenario of the bicycle based on the cadence identified in action 908, the torque identified in action 910, the speed identified in action 910, the acceleration identified in action 910, or any combination thereof. Other data (e.g., tilt data, vibration data) may be used to identify the riding scenario.

[0203] For example, the processor can identify a first riding scene (e.g., a trail condition) based on the acceleration identified in action 910. When, for example, the acceleration identified in action 910 changes a predetermined number of times between negative acceleration (e.g., deceleration) and positive acceleration within a predetermined time period, the processor can identify the first riding scene. As another example, the processor can identify a second riding scene (e.g., a highway condition) based on the rhythm identified in action 908. When, for example, the rhythm stays within a static rhythm window for a predetermined amount of time (e.g., without starting a gear shift), the processor can identify the second riding scene. The first riding scene can be on a terrain (e.g., a first terrain) that is more technically complex than the terrain (e.g., a second terrain) on which the second riding scene is executed. The processor can identify the first riding scene and / or the second riding scene based on additional and / or different types of data. The processor can identify any number of other riding scenes based on additional and / or different data.

[0204] In action 914, the processor compares the identified cadence at the crank arm of the bicycle to the static cadence window. For example, the processor can compare the identified cadence of the crank arm to the upper limit of the static cadence window and determine when the identified cadence at the crank arm of the bicycle is greater than the upper limit of the static cadence window.

[0205] In action 916, the processor determines a dynamic offset based on the identified riding scenario. Automatic shift impedance can be achieved by dynamically adjusting the static cadence window determined in action 906. In trail conditions, the dynamic offset (e.g., and prevent misoperation time) can be set to a larger value, which results in a more resilient shift. In highway conditions, the dynamic offset (e.g., and prevent misoperation time) can be set to a smaller value, which results in a more responsive shift.

[0206] The memory may store different dynamic offsets for different riding scenarios in a lookup table. For example, the dynamic offset of a first riding scenario (e.g., a first dynamic offset) may be greater than the dynamic offset of a second riding scenario (e.g., a second dynamic offset). The processor may determine the dynamic offset based on the identified riding scenario using, for example, a lookup table.

[0207] In act 918, the processor adds the dynamic offset determined in act 916 to the static cadence window determined in act 906. For example, when the cadence at the crank arm of the bicycle identified in act 908 is equal to the upper limit of the static cadence window based on the comparison in act 914, the processor adds the dynamic offset determined in act 916 to the upper limit of the static cadence window determined in act 906. Adding the dynamic offset in act 918 can avoid an automatic shift that might have otherwise been initiated (e.g., as part of an automatic shift algorithm).

[0208] The time point at which the rhythm at the crank arm of the bicycle identified in action 908 is equal to the upper limit of the static rhythm window, for example, an initial offset corresponding to the dynamic offset determined in action 916 is added to the static rhythm window determined in action 906, but the initial offset decays over time (for example, within the misoperation prevention time). The misoperation prevention time can be stored in a lookup table together with the dynamic offset of different riding scenes, respectively. A larger dynamic offset allows the automatic shifting algorithm to be more flexible for short spikes in the rhythm window (for example, obstacles), and can be adjusted for each riding situation. In other words, a large dynamic offset and misoperation prevention time result in a more flexible shift (for example, for trail riding), while a small dynamic offset and misoperation prevention time result in a faster-reacting shift (for example, for road riding).

[0209] See also Fig.11 , the first riding scenario is shown with a solid line, and the second riding scenario is shown with a dotted line. Referring to the first riding scenario, when the cadence signal (e.g., from the cadence sensor) reaches the upper limit of the static window, a dynamic offset (e.g., an anti-misoperation offset) is added to the upper limit of the static window. The dynamic offset decays over a period of time (e.g., an anti-misoperation time), and the cadence signal eventually intersects the decay upper limit. When the cadence signal is equal to the decay upper limit, the processor triggers an outward gear shift. Referring to the second riding scenario (e.g., a dotted line), the dynamic offset is smaller, and the anti-misoperation time is shorter.

[0210] Fig.12 1 is a flow chart of an embodiment of a method 1200 for electromechanical control of components of a bicycle (e.g., bicycle 100). As presented in the following sections, the actions may be performed using any combination of the components indicated in the previous figures. For example, the following actions may be performed by at least some components of the control system 300 and additional or other components. In one embodiment, the actions may be performed by, for example, the rear derailleur 138, the electric bicycle controller 302, the power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions may be provided. The actions are performed in the order shown or in other orders. The actions may be repeated.

[0211] See also Fig.13 In a specific trail condition known as a G-out, a cyclist experiences a sudden, sharp drop in the trail, which Fig.13 The bicycle executing the automatic shifting algorithm can recognize the sudden increase in speed, and the bicycle's processor can instruct the bicycle's derailleur (e.g., rear derailleur) to shift to a higher gear to reduce the pedal cadence to the target cadence. The sudden increase in speed allows the bicycle's drivetrain to move faster, allowing multiple shifts to occur very quickly. When the next stage of the trail (e.g., "stage 2") is a steep, sudden incline, the bicycle decelerates quickly. The deceleration may be so sudden that the shift to a lower gear does not continue, resulting in a reduced cadence and a reduction in speed during the shift. The rider is then in the "third stage" of the trail, in which the bicycle is moving too slowly to shift quickly. The momentum loss can be regained after the bicycle shifts to a low enough gear so that acceleration can begin again.

[0212] The method 1200 attempts to help a rider recover from deceleration in a G-out trail condition by utilizing the auxiliary motor of a bicycle (e.g., an electric bicycle). The method 1200 automatically detects the G-out trail condition and provides a temporary power boost from the auxiliary motor of the electric bicycle to help maintain the speed of the bicycle in the "second stage" and "third stage" in order to effectively shift to a desired lower gear.

[0213] In action 1202, the processor identifies a change in the inclination of a surface on which a bicycle is operating (e.g., being ridden by a rider). The change in inclination is from a descent to an incline. In one embodiment, the processor may receive inclination data, for example, from an inclination sensor (e.g., a gyroscope) of the bicycle, and the processor may determine the change in inclination based on the received inclination data. In another embodiment, the processor may receive distance data from a laser distance measurement sensor, and may identify the change in inclination based on the received distance data. The laser distance measurement sensor is configured to measure the distance from the bicycle to a point in front of the bicycle. Since the angle of the laser and the bicycle always remains the same, if the length of the laser from the bicycle to the ground on which the bicycle is operating decreases, the terrain becomes steeper. If the length of the laser from the bicycle to the ground increases, the terrain becomes steeper on the downhill slope.

[0214] In action 1204, the processor instructs the auxiliary motor of the bicycle to operate with increased output power based on the change in inclination identified in action 1202. In one embodiment, the processor instructs the auxiliary motor of the bicycle to operate with increased output power for a predetermined time period. The predetermined time period may be stored in a memory in communication with the processor and may have an initial value. The predetermined time period may be changed by, for example, the rider.

[0215] In another embodiment, the processor identifies the current gear in which the bicycle is operating, identifies the target gear identified by the automatic shifting algorithm, and instructs the auxiliary motor to operate at an increasing output power until the current gear matches the target gear.

[0216] In yet another embodiment, the processor may control the output power of the auxiliary motor based on a combination of two or more factors, such as distance, GPS location, cadence, speed, rider input torque, rider input power, one or more other factors, or any combination thereof. For example, as rider input torque decreases, the bicycle may be approaching a target gear, and the increased output power may be removed or reduced.

[0217] In action 1206, the processor identifies a user input at the bicycle. For example, the processor can identify depression of a brake control of the bicycle, a manual shift override, or a trail condition. In action 1206, the processor can identify different user inputs or sensed conditions.

[0218] In action 1208, based on the user input or sensed condition identified in action 1206, the processor stops the auxiliary motor from operating at the increased output power, adjusts the output power of the auxiliary motor, or adjusts the duration of the increased output power. For example, if the brake control of the bicycle is used (e.g., depressed), the processor can disable the increased output power. For another example, a rough trail or a slippery descent can extend or reduce the duration of the increased output power. For another example, activation of a manual shift override can affect the value or duration of the increased output power.

[0219] The increased output power of the assist motor may be added or removed in a sudden or gradual manner. For example, when the bicycle is decelerating, the full increased output power may be needed immediately, but when the bicycle is accelerating, the increased output power may be gradually decayed so as not to stall the bicycle.

[0220] Fig.141 is a flow chart of an embodiment of a method 1400 for electromechanical control of components of a bicycle (e.g., bicycle 100). As presented in the following sections, the actions may be performed using any combination of the components indicated in the previous figures. For example, the following actions may be performed by at least some components of the control system 300 and additional or other components. In one embodiment, the actions may be performed by, for example, the rear derailleur 138, the electric bicycle controller 302, the power assist device 140, one or more sensors, or any combination thereof. Additional, different, or fewer actions may be provided. The actions are performed in the order shown or in other orders. The actions may be repeated.

[0221] In downhill applications (e.g., downhill roads), infrequent shifting may occur (e.g., automatically and / or based on input). However, infrequent shifting takes rider attention and control away from the downhill road. Any manual shifting requires knowledge of the actual gear and the desired gear. In addition, to perform manual shifting, the rider may need to at least partially release his grip on the bicycle handlebars. The shifting controls take up space on the handlebars and add weight to the bicycle.

[0222] Method 1400 automates drive train control (e.g., shift control of a rear derailleur of a bicycle). A downhill slope may include extended portions (e.g., a first subset of pedaling portions) where pedaling is not required or even possible, and portions (e.g., a second subset of pedaling portions) where the rider exerts effort to pedal in a desired gear. From actual practice, the rider knows which gear is desired on each pedaling portion.

[0223] In action 1402, a processor of the bicycle identifies the position of the bicycle. In one embodiment, the processor identifies the position of the bicycle in a variety of different ways. For example, the processor can identify the absolute position of the bicycle and / or the relative position of the bicycle. The relative position of the bicycle can be relative to the starting point on the downhill road.

[0224] The processor may identify the location of the bicycle based on sensor data from one or more sensors (e.g., sensors of the bicycle and / or sensors away from the bicycle). The one or more sensors may include, for example, a GPS sensor. The GPS sensor may generate location data for the bicycle based on signals received from GPS satellites at a predetermined rate. For example, the GPS sensor may generate location data for the bicycle once per second, although other update rates may be provided. In action 1402, the processor may identify the location (e.g., absolute location) of the bicycle based on the location data generated by the GPS sensor.

[0225] Additionally or alternatively, the one or more sensors may include one or more accelerometers. The one or more accelerometers may generate acceleration data of the bicycle, and the processor may calculate the relative position (e.g., relative to the starting point on the downhill road) based on the generated acceleration data. For example, the processor may calculate the change in position data (e.g., relative position data) based on a double integral of the acceleration data.

[0226] In one embodiment, acceleration data generated by one or more accelerometers (e.g., and changes in position data based on the acceleration data) can be used to verify the route location based on the position data generated by the GPS sensor. For example, the processor can determine a first absolute position of the bicycle based on the position data generated by the GPS sensor (e.g., at predetermined intervals, such as one second), and can determine a second absolute position of the bicycle based on information about the downhill road (e.g., known absolute positions at different distances along the downhill road) and changes in position data generated based on the acceleration data generated by the one or more accelerometers (e.g., at predetermined intervals). The processor can determine whether the first absolute position matches the second absolute position (e.g., within a predetermined percentage). When the first absolute position matches the second absolute position, in action 1402, the processor can identify the first absolute position as the location of the bicycle. When the first absolute position does not match the second absolute position, in action 1402, the processor can identify the second absolute position or another position calculated based on other data as the location of the bicycle. Verification using acceleration data generated by one or more accelerometers can avoid errors due to poor signal quality in a forest through which the downhill road extends.

[0227] In one embodiment, the processor may identify the position of the bicycle (e.g., within a downhill road) based on, for example, information about the downhill road and other sensor data. For example, the information about the downhill road may identify different sections within the downhill road with different inclinations (e.g., a first section that is flat, a second section with an inclination of 10%, a third section that is flat, a fourth section with an inclination of 15%, a fifth section that is a jump), and the processor may identify inclination data of the bicycle from, for example, an inclination sensor and / or acceleration data from one or more accelerometers of the bicycle. For example, the processor may compare the inclination data with the information about the downhill road and identify when the bicycle transitions between different sections based on the comparison. In action 1402, the processor may identify the position of the bicycle as a section in the downhill road (e.g., as defined by the information about the downhill road).

[0228] In action 1404, the processor identifies the current gear in which the bicycle is operating. For example, the processor identifies the current gear of the rear derailleur in which the bicycle is operating. For example, the processor can control the shifting of the rear derailleur of the bicycle (e.g., via an automatic shifting algorithm and / or in response to input at the bicycle), and can store data identifying the current gear of the rear derailleur after each shift in a memory of the bicycle. The memory can communicate with the processor, and the processor can identify the current gear from the stored data. The processor can identify the current gear in other ways.

[0229] In act 1406, the processor identifies a desired gear based on the position of the bicycle identified in act 1402. During a test run on a downhill, for example, the processor can identify gear changes, the position of the bicycle at which each gear change occurs (e.g., based on position data generated by a GPS sensor), and the gear the bicycle is shifting to (e.g., historical data). The processor can also identify a range of positions along the downhill during which the derailleur does not change gears. Each position range can be defined by position endpoints (e.g., by the position of the bicycle at the beginning of a gear shift and the position of the bicycle at the beginning of the next gear shift for a corresponding position range).

[0230] The rider may perform multiple test runs and save data (e.g., historical data) of one of the test runs (e.g., the best run) in a memory. The saved data may include shift positions, the gear shifted to after each gear shift, the gears corresponding to the position ranges, and / or other data. For example, a first position range (e.g., defined by the starting position of the bicycle at the beginning of the downhill and the position of the bicycle when the first gear shift occurs) and the corresponding gears of the bicycle that remain unchanged when the bicycle moves through the first position range are stored in the memory. A second position range (e.g., defined by the position of the bicycle at which the first gear shift occurs and the position of the bicycle at which the second gear shift occurs) and the corresponding gears of the bicycle that remain unchanged when the bicycle moves through the second position range are stored in the memory. A third position range (e.g., defined by the position of the bicycle at which the second gear shift occurs and the position of the bicycle at which the third gear shift occurs) and the corresponding gears of the bicycle that remain unchanged when the bicycle moves through the third position range are stored in the memory. The historical data may include more (e.g., a fourth position range, a fifth position range, a sixth position range, etc.), less, and / or different data.

[0231] In action 1406, the processor may identify the desired gear by comparing the position of the bicycle identified in action 1402 with the historical data. For example, the processor may determine within which position range of the historical data the position of the bicycle identified in action 1402 is, and may identify the gear corresponding to the determined position range (e.g., stored in a memory) as the desired gear in action 1406.

[0232] The desired gear may be determined in other ways. For example, during the best test run, as the bicycle travels downhill, the processor may store the position of the bicycle based on the position data and the corresponding gear in which the bicycle was operated at that position (e.g., as a historical data set) in a memory every predetermined time period (e.g., every second). The processor may compare the position of the bicycle identified in action 1402 with the stored historical data set, and may identify the position of the bicycle closest to the position of the bicycle identified in action 1402 within the stored historical data set. Then, in action 1406, the processor may identify the gear corresponding to the identified position of the bicycle within the stored historical data set as the desired gear.

[0233] In act 1408, the processor determines whether the desired gear identified in act 1406 is the same as the current gear identified in act 1404. If the processor determines that the desired gear identified in act 1406 is the same as the current gear identified in act 1404, the method 1400 returns to act 1402 and the method 1400 is repeated for the next identified position of, for example, a bicycle. If the processor determines that the desired gear identified in act 1406 is different from the current gear identified in act 1404, the method moves to act 1410.

[0234] In act 1410, the processor instructs the rear derailleur to shift to the desired gear identified in act 1406. After act 1410, the method 1400 returns to act 1402 and the method 1400 is repeated for the next identified position of, for example, a bicycle.

[0235] A processor that knows where the bicycle is on a downhill road combined with historical data can be used for more than one gear selection. For example, such information can also be used to control a device to disengage the drive train (e.g., located in a sprocket yoke or a free hub). Method 1400 can be used for more than just downhill roads. For example, method 1400 can be applied to any type of riding on a known route.

[0236] The description of the embodiments described herein is intended to provide a general understanding of the structures of various embodiments. These illustrations are not intended to be used as a complete description of all elements and features of the equipment and systems utilizing the structures or methods described herein. After reading this disclosure, many other embodiments will be apparent to those skilled in the art. Other embodiments may be utilized and derived from this disclosure so that structural and logical replacements and changes may be made without departing from the scope of this disclosure. In addition, the illustrations are merely representative and may not be drawn to scale. Certain proportions in the illustrations may be exaggerated, while other proportions may be minimized. Therefore, this disclosure and the accompanying drawings are considered to be illustrative rather than restrictive.

[0237] Although this specification includes many details, these details should not be interpreted as limitations on the scope of the present invention or the scope that may be claimed, but rather as descriptions of specific features of specific embodiments of the present invention. Certain features described in the context of a separate embodiment in this specification may also be implemented in combination in a single embodiment. On the contrary, the various features described in the context of a single embodiment may also be implemented individually or in any suitable sub-combination in multiple embodiments. In addition, although features may be described above as working in certain combinations and even initially claimed as such, one or more features from the claimed combination may be deleted from the combination in some cases, and the claimed combination may be directed to a sub-combination or a change in the sub-combination.

[0238] Similarly, although operations and / or actions are depicted in the accompanying drawings and described herein in a particular order, this should not be understood as requiring the operations to be performed in the particular order shown or in sequence, or requiring the execution of all illustrated operations to achieve the desired result. In some cases, multitasking and parallel processing may be advantageous. In addition, the separation of the various system components in the above-described embodiments should not be understood as requiring such separation in all embodiments, and it should be understood that any described program components and systems can generally be integrated in a single software product or encapsulated in multiple software products.

[0239] One or more embodiments of the present disclosure may be referred to herein individually and / or collectively by the term "invention", which is only for convenience and is not intended to voluntarily limit the scope of the present application to any particular invention or inventive concept. In addition, although specific embodiments are shown and described herein, it should be understood that any subsequent arrangement designed to achieve the same or similar purpose may replace the specific embodiments shown. The present disclosure is intended to cover any and all subsequent modifications or variations of the various embodiments. The combination of the above-mentioned embodiments and other embodiments not specifically described herein will be apparent to those skilled in the art after reading this specification.

[0240] An abstract of the disclosure is provided, and the abstract is submitted with the understanding that it will not be used to interpret or limit the scope or meaning of the claims. In addition, in the foregoing detailed description, various features may be grouped together or described in a single embodiment for the purpose of simplifying the disclosure. This disclosure should not be interpreted as reflecting an intention that the claimed embodiments require more features than those expressly recited in each claim. On the contrary, as reflected in the following claims, the inventive subject matter may involve less than all the features of any disclosed embodiment. Therefore, the following claims are incorporated into the specific embodiments, wherein each claim independently represents a subject matter that is individually defined for protection.

[0241] The foregoing detailed description is intended to be considered illustrative rather than restrictive, and it should be understood that the appended claims, including all equivalents, are intended to define the scope of the invention. The claims should not be understood to be limited to the described order or elements unless this effect is stated. Therefore, all embodiments within the scope and spirit of the appended claims and their equivalents are claimed to be the present invention.

[0242] This application claims the benefit of U.S. Provisional Patent Application No. 63 / 586,219, filed on September 28, 2023, the contents of which are hereby incorporated by reference in their entirety.

Claims

1. A method for controlling a bicycle gear shift, the method comprising: identifying, by a processor, a first gear shift command, the source of the first gear shift command being a control device of the bicycle; determining, by the processor, a first shift direction based on the first shift command; initiating, by the processor, a first gear shift of the bicycle in the first gear shift direction based on the first gear shift command; identifying, by the processor, a second shift command, the source of the second shift command being the processor or another processor, the second shift command being subsequent to the first shift command; determining, by the processor, a second shift direction based on the second shift command; determining, by the processor, a time period between identifying the first shift command and identifying the second shift command; comparing, by the processor, the determined time period with a predetermined time period; Based on the comparison, when the determined time period is less than the predetermined time period: When the second shift direction is the same as the first shift direction, the processor initiates a shift of the bicycle in the second shift direction; and The bicycle is prevented by the processor from shifting in the second shift direction when the second shift direction is a different shift direction than the first shift direction.

2. The method according to claim 1, wherein: Identifying the second shift command includes generating, by the processor, the second shift command based on an automatic shift algorithm.

3. The method according to claim 1, wherein: Identifying the first shift command includes receiving, by the processor, the first shift command from a control device of the bicycle in response to a user input at an input device of the control device of the bicycle.

4. The method according to claim 1, further comprising: After identifying the first shift command, starting a timer, The determining of the time period includes: determining the time period based on the timer.

5. The method according to claim 4, further comprising: Based on a comparison between the determined time period and the predetermined time period, when the determined time period is less than the predetermined time period: determining a cadence of a crank arm of the bicycle; comparing the determined cadence of the crank arms with a cadence set point, the comparing the determined cadence of the crank arms with the cadence set point comprising: determining a difference between the determined cadence of the crank arms and the cadence set point; comparing the determined difference to a predetermined threshold difference; Based on a comparison of the determined difference with the predetermined threshold difference, when the determined difference is greater than the predetermined threshold difference, removing the preventing step allows the bicycle to shift in the second shift direction when the second shift direction is different from the first shift direction.

6. A method for controlling a bicycle gear shift, the method comprising: identifying, by a processor, wheel speed data of a wheel of the bicycle, the wheel speed data representing the speed of the wheel at a plurality of time points; calculating, by the processor, an acceleration of the bicycle based on the identified wheel speed data; identifying, by the processor, additional acceleration data for the bicycle; comparing, by the processor, the calculated acceleration of the bicycle with the identified additional acceleration data; and The bicycle is prevented or allowed to shift gears based on the comparison.

7. The method according to claim 6, wherein: Identifying the additional acceleration data includes identifying a predetermined maximum threshold acceleration value and a predetermined minimum threshold acceleration value, and Wherein, comparing the calculated acceleration of the bicycle with the identified additional acceleration data comprises: comparing the calculated acceleration of the bicycle to the predetermined maximum threshold acceleration value and the predetermined minimum threshold acceleration value, the predetermined minimum threshold acceleration value being a predetermined maximum threshold deceleration value, and Wherein, preventing or allowing the bicycle to shift gears based on the comparison comprises: Based on a comparison of the calculated acceleration of the bicycle with the predetermined maximum threshold acceleration value and the predetermined minimum threshold acceleration value, preventing the bicycle from shifting gears when the calculated acceleration of the bicycle is greater than the predetermined maximum threshold acceleration value or the calculated acceleration of the bicycle is less than the predetermined minimum threshold acceleration value, and Wherein, preventing the bicycle from shifting gears includes: preventing the bicycle from shifting gears within a predetermined time period.

8. A method for controlling a bicycle gear shift, the method comprising: identifying, by the processor, a first shift command; determining, by the processor, a first shift direction based on the first shift command; initiating, by the processor, a first gear shift of the bicycle in the first gear shift direction based on the first gear shift command; recognizing, by the processor, a second gear shift command before a first gear shift of the bicycle is completed; identifying, by the processor, a number of chain link passing events between initiating a first gear shift of the bicycle and identifying the second gear shift command; comparing, by the processor, the identified number of link passing events to at least one predetermined threshold number of link passing events; and Based on the comparison, initiating or delaying initiation, by the processor, of a second gear shift of the bicycle based on the second gear shift command.

9. The method according to claim 8, further comprising: identifying, by the processor, a second shift direction based on the second shift command, The comparison step includes: When the identified second shift direction is the same direction as the identified first shift direction: comparing, by the processor, the identified number of link passing events to a first predetermined threshold number of link passing events, the at least one predetermined threshold number of link passing events including the first predetermined threshold number of link passing events; When the identified second shift direction is a direction different from the identified first shift direction: The processor compares the number of identified link passing events with a second predetermined threshold number of link passing events, wherein at least one of the predetermined threshold numbers of link passing events includes the second predetermined threshold number of link passing events, and the second predetermined threshold number of link passing events is greater than the first predetermined threshold number of link passing events.

10. The method according to claim 9, wherein: Initiating or delaying initiation of a second gear shift of the bicycle based on the second gear shift command by the processor includes: When the identified second shift direction is the same as the identified first shift direction: Based on the comparison, when the identified number of link passing events is greater than a first predetermined threshold number of link passing events, initiating a second gear shift of the bicycle; and Based on the comparison, when the identified number of link passing events is less than a first predetermined threshold number of link passing events, delaying a second gear shift of the bicycle; and When the identified second shift direction is a direction different from the identified first shift direction: Based on the comparison, when the identified number of link passing events is greater than a second predetermined threshold number of link passing events, initiating a second gear shift of the bicycle; and Based on the comparison, a second gear shift of the bicycle is delayed when the identified number of link passing events is less than a second predetermined threshold number of link passing events.

11. The method according to claim 10, wherein: When the second gear shift is delayed, the method further comprises: incrementing, by the processor, a shift counter; and After the first shift is completed, for each shift identified by the shift counter: The steps of identifying the first shift command are repeated, wherein the earliest delayed shift command is the first shift command; repeating the determining step; repeating the step of initiating a first shift of the bicycle; identifying whether a new second shift command is received before the first shift of the bicycle is completed; and when the new second shift command is received, repeating the step of identifying the number of link passing events, repeating the comparing step, and repeating the initiating or delaying initiating step.

12. The method according to claim 8, wherein: The comparing step includes comparing, by the processor, the number of identified link passing events to a predetermined threshold number of link passing events of at least one predetermined threshold number of link passing events, the predetermined threshold number of link passing events being zero link passing events, and Wherein, based on the comparison, the starting or delaying starting step includes: Based on the comparison, when the identified number of link passing events is equal to zero, a second gear shift of the bicycle is initiated based on the second gear shift command.

13. A method for controlling a bicycle gear shift, the method comprising: The target rhythm is identified by the processor; identifying, by the processor, a static cadence offset based on a gear in which the bicycle is operated; determining, by the processor, a static tempo window based on the identified target tempo and the identified static tempo offset, the static tempo window having an upper limit and a lower limit; identifying, by the processor, a cadence at a crank arm of the bicycle; identifying, by the processor, a torque at a crank arm of the bicycle, a speed of the bicycle, an acceleration of the bicycle, or any combination thereof; identifying, by the processor, a riding scenario of the bicycle based on the identified torque, the identified cadence, the identified speed, the identified acceleration, or any combination thereof; comparing, by the processor, the identified cadence at a crank arm of the bicycle to the static cadence window; determining, by the processor, a dynamic offset based on the identified riding scenario; and Based on the comparison, when the identified cadence at the crank arm is equal to the upper limit of the static cadence window, the processor adds the determined dynamic offset to the upper limit of the static cadence window, thereby avoiding automatic shifting that would otherwise be initiated based on the static cadence window using an automatic shifting algorithm.

14. The method according to claim 13, further comprising: The dynamic offset is decayed over time by the processor.

15. The method according to claim 13, wherein: When the riding scene is identified as riding on a first type of terrain, determining the dynamic offset based on the identified riding scene includes: determining a first dynamic offset, Wherein, when the riding scene is identified as riding on a second type of terrain, determining the dynamic offset based on the identified riding scene includes: determining a second dynamic offset, and Wherein, the first type of terrain is technically more complex than the second type of terrain, and the first dynamic offset is greater than the second dynamic offset.

16. The method according to claim 13, wherein: Identifying the torque at the crank arm of the bicycle, the speed of the bicycle, the acceleration of the bicycle, or any combination thereof includes: identifying, by the processor, the torque at the crank arm of the bicycle, and Wherein, determining the target rhythm includes: identifying, by the processor, a static target rhythm; determining, by the processor, a rider input based on the identified torque at a crank arm of the bicycle; comparing, by the processor, the determined rider input to a predetermined threshold rider input; and The target cadence is determined by the processor based on a comparison of the determined rider input with the predetermined rider input, the determining the target cadence comprising dynamically adjusting, by the processor, the identified static target cadence when the determined rider input becomes greater than or less than the predetermined threshold rider input based on a comparison of the determined rider input with the predetermined threshold rider input.

17. A method for controlling an electric bicycle, the method comprising: identifying, by a processor, a change in the inclination of a surface on which the electric bicycle is being ridden, the change in inclination being from a decline to an incline; and An auxiliary motor of the electric bicycle is instructed, by the processor, to operate at an increased output power based on the identified change in incline.

18. The method according to claim 17, wherein: Identifying the change in the inclination includes: receiving, by the processor, inclination data from an inclination sensor of the electric bicycle and identifying a change in the inclination based on the received inclination data; or Distance data from a laser distance measurement sensor configured to measure a distance from the electric bicycle to a point in front of the electric bicycle is received by the processor and the change in inclination is identified based on the received distance data.

19. The method according to claim 17, wherein: Instructing the auxiliary motor of the electric bicycle to increase output power includes: instructing, by the processor, the auxiliary motor of the electric bicycle to operate at the increased output power for a predetermined period of time; or The processor identifies a current gear in which the electric bicycle is operating, identifies a target gear identified by an automatic shifting algorithm, and instructs an auxiliary motor of the electric bicycle to operate at the increased output power until the current gear matches the target gear.

20. The method according to claim 17, further comprising: recognizing, by the processor, a user input at the electric bicycle; ceasing, by the processor based on the identified user input, to instruct the auxiliary motor of the electric bicycle to operate at the increased output power; and The identified user input is a depression of a brake control device of the electric bicycle or a manual gear shift override.

Citation Information

Cited By

  • Electronic transmission gear shifting detection method and related device

    CN122426335A

  • Electronic transmission shift detection method and related devices

    CN122426335B