The present application relates generally to the field of exercise equipment and methods, and more specifically to systems and methods for sensing and/or adjusting resistance in exercise equipment.
Modern fitness equipment is often configured to allow a user to adjust the intensity and/or other settings according to personal training goals. The adjustment operation may be difficult and cumbersome for many users, especially during exercise. For example, an exercise cycle, such as a spin bike, may be configured with a torque regulator, allowing a user to adjust the pedal resistance by adjusting a degree of torque to be applied to a flywheel. The torque adjustment can be difficult to operate and take a long time to accurately set, inconveniencing the user during exercise. The torque adjustment can also interfere with the exercise session if the user is distracted by sudden changes to the torque during adjustment. Further complicating the user experience, an auxiliary brake may also be included to stop the spinning flywheel and the drivetrain for safety purposes. This is usually achieved by a separate friction-based brake that is designed only to be used intermittently to bring the system to a full stop. There is therefore a need for improved systems and methods for operating exercise equipment that increases the convenience to the user and enhances the exercise experience.
Aspects of the disclosure and their advantages can be better understood with reference to the following drawings and the detailed description that follows. It should be appreciated that like reference numerals are used to identify like elements illustrated in one or more of the figures, wherein showings therein are for purposes of illustrating embodiments of the present disclosure and not for purposes of limiting the same. The components in the drawings are not necessarily to scale, emphasis instead being placed upon clearly illustrating the principles of the present disclosure.
In accordance with various embodiments of the present disclosure, systems and methods for sensing and adjusting torque in exercise equipment are provided. In some embodiments, a braking system includes a plurality of magnets providing varying exercise resistance when moved in relation to a flywheel of the exercise apparatus. In some embodiments, a braking system includes both an easy to use and accurate resistance adjustment assembly for adjusting resistance during exercise and an auxiliary brake for bringing the flywheel to a full stop through the same adjustment knob, providing convenience and safety for the operator. A control system smoothly adjusts the resistance during operation and derives power, cadence, resistance, and other values for use by the system and display to the user.
In various embodiments, the resistance adjustment apparatus is operable to control the level of resistance in the resistance brake using electronic systems and methods. Further, it may be desirable to physically measure the amount of torque being applied to the flywheel of an exercise bike, and the amount of resistance being felt by the user in order to determine how much instantaneous power is being generated and how much total work has been done by the user. Physically measuring the level of applied resistance increases the accuracy of the measurement compared to conventional methods that infer an amount of resistance applied by measuring the position of the braking mechanism relative to the flywheel and comparing this measurement to a previously measured and correlated resistance level. The embodiments disclosed herein provide these and other advantages as will be apparent to those skilled in the art.
Referring to
The resistance brake assembly 2 includes two or more magnets 4 selected and arranged such that, as the magnets 4 move closer to (e.g., eclipsing the edge of the flywheel 5) and/or further away from the center of the flywheel 5, the amount of resistance can be adjusted from a maximum level to zero. The flywheel 5 may be made of aluminum or other material capable of generating resistive forces while passing through the field of the magnet 4. In one embodiment, the actuator 1 is a stepper motor, such as a permanent magnet linear stepper motor, comprising a shaft 6. The shaft 6 has a first end pivotably attached to the frame of the cycle 9, allowing the shaft 6 to pivot as the stepper motor traverses along the shaft 6. In one embodiment, the fixed end is hinged preventing rotation along its primary axis. The stepper motor body 1 is pivotably attached to the resistance brake assembly 2 at a mounting point 8, allowing the stepper motor 1 to pivot relative to the resistance brake assembly 2 during operation. In operation, the stepper motor 1 is operable to translate up and down the threaded shaft 6, causing the brake assembly 2 to pivot about the pivot point 3. As a result, the magnets 4 are selectively moved up and down relative to the flywheel 5 to adjust the resistance.
In various embodiments, the resistance system further includes an auxiliary brake assembly 10, which can operate independently of the pivoting resistance brake assembly 2. The auxiliary brake assembly 10 may be activated by the operator by pressing down onto an adjustment knob 11, which will cause an elongated adjustment shaft 12 to translate towards the flywheel, causing the pivoting friction brake assembly 10 to pivot towards the flywheel 5, eventually contacting the edge of the flywheel and providing the braking force. Rotating the adjustment knob 11 will cause the elongated adjustment shaft 12 to rotate about its primary axis which is connected to an electrical encoder (e.g., as shown in
A load cell 13 measures the reaction force transmitted from a second part 14 of the pivoting brake assembly (including a magnet holding bracket and one or more magnets held therein) to the first part 7 mounted to the frame. In various embodiments, the load cell 13 may have metal body and be comprised of bonded metal foil strain gauges, silicon strain gauges, and/or other components. The load cell 13 joins the first part of the brake assembly 7 to the second part of the brake assembly 14. In one embodiment, the brake assembly 14 is supported by the load cell 13 and is not supported by other devices or assemblies.
The configuration of the magnet holding bracket 14 and the load cell 13 will be such that the force measured by the load cell 13 will be proportional to the load being applied to the flywheel 5. In order to calculate the torque applied to the user, the product of the applied force, and the distance from the center of the flywheel will yield the torque applied to the flywheel. The rotational speed of the flywheel may also be measured using one or more sensors (e.g., using one or more sensors to measure RPMs). The power absorbed by the resistance apparatus may be calculated as a function of shaft torque and speed, for example by using the formula Power(W)=Shaft Torque (N*m)*Speed (RPM)*0.10472.
Referring to
The braking system 20 includes a torque adjusting unit 30 and a linkage assembly 40. The torque adjusting unit 30 includes an adjusting bracket 31, an adjusting shaft 34, and a brake compression spring 35. In some embodiments, the brake compression spring 35 is provided to bias the adjust shaft 34 in an upward position (no resistance on flywheel) absent downward force applied to the adjusting shaft 34.
The adjusting bracket 31 is disposed around a periphery of a flywheel 14, with one end of the adjusting bracket 31 attached to load cell 40. The adjusting shaft 34 (in some embodiments, a push rod having a push rod tip 36), passes through a brake encoder 37, which senses the rotation of the adjusting shaft 34. The push rod tip 36 includes an end portion adapted to correspondingly engage with a portion of brake pad assembly 50. In some embodiments, a joint is formed between push rod tip 36 and the brake pad assembly 50 housing. In the illustrated embodiment, the push rod tip 36 is substantially conical shaped with a rounded tip to engage a corresponding concave portion of the brake pad assembly 50 housing, allowing the push rod to apply downward pressure on the brake pad assembly 50, which pivotably rotates to the fly wheel 14. In various embodiments, the push rod tip 36 and the brake pad assembly 50 housing may be correspondingly formed in other configurations that enable the push rod 34 to pivotably move the brake pad assembly 50 towards the flywheel 14.
In one or more embodiments, a brake pad 64 is disposed in the adjusting bracket 31 to apply additional resistance to the flywheel 14 when the adjusting bracket 31 is pushed down onto the flywheel 14 by the adjusting shaft 34. In various embodiments, the adjusting bracket includes a brake pad disposed to apply a resistance to the flywheel when the adjusting bracket is pushed into the flywheel 14 by the adjusting shaft 34. A knob, handle, lever or other mechanism may be disposed at an end of the adjusting shaft 34 to facilitate the application of force to lower the brake pad assembly 50 to contact the flywheel 14.
The load cell 40 is connected on a first end to the adjusting bracket 31 and on a second end to a first mounting bracket 60. An actuator, such as stepper motor 70, is pivotably attached between the first mounting bracket 60 and a second mounting bracket 62. The stepper motor 70 includes a stepper motor rod 72 that is pivotably attached to a brake mounting bracket 74. In operation, the stepper motor 72 is driven to move up and down along the stepper motor rod 72. At the same time, the mounting brackets 60 and 62 move up and down, causing corresponding movement of the adjusting bracket 31 relative to the flywheel 14, such that magnetic flux between one or more pairs of magnetic members 32 disposed on opposite sides of the flywheel is changed, providing resistance to the flywheel 14. When the stepper motor 74 is driven, the mounting brackets 60 and 62 and the load cell 40 adjust accordingly. The torque adjustment unit 30 is driven to orient toward or away from the brake mounting bracket 74 such that a distance and orientation between the stepper motor 70 and the brake mounting bracket 74 is changed, as may be sensed by the load cell 40.
In view of the foregoing, it will be appreciated that the braking system 10 of the present embodiment includes a load cell 40 mounted to support and move the adjusting bracket 31 in response to the stepper motor 70 to provide resistance to the flywheel 14. In some embodiments, the mounting brackets 60 and 62 are pivotably attached to a bike frame. In the illustrated embodiment, the mounting brackets 60 and 62 are pivotably attached to the bike frame through a bike frame weldment 64, in an assembly that may include one or more screws, bolts and/or spacers to center the brake assembly over the flywheel and allow for pivoting of the brake assembly up and down relative to the flywheel.
In one embodiment, a brake mounting bracket pivotably connects the brake pad assembly 50 to the frame at the same pivot point connecting mounting bracket 60 to frame 64. In some embodiments, a torque spring is provided to bias the brake pad assembly 50 upward absent downward force applied by the push down rod 34.
Other embodiments of the present disclosure will now be described with reference to
The embodiments disclosed herein achieve various design goals, including reducing bike-to-bike watt variability (and metrics accuracy) and providing accurate calibration for a simple and easy way for the user to accurately adjust the resistance during exercise. In various embodiments, a braking mechanism may include a resistance control system comprising a user-controlled adjustment knob and a brake encoder for sensing the user knob adjustments. The sensed knob adjustments may be translated into signals for driving an electric actuator to vary the resistance. In various embodiments, accuracy will approach and/or exceed +/−1%.
In various embodiments, the actuator may include a stepper motor operable to selectively drive the brake assembly towards and away from the flywheel, with speed and precision exceeding human control. In this manner, the user is provided with fully programmatic control of brake level.
In some embodiments, the braking force is measured via a load cell, which may include a low cost, high precision load cell operable to measure forces generated directly within the brake mechanism. Braking force can be used with a measured flywheel speed to accurately calculate user power output. In one embodiment, the actuator may comprise a 35 mm permanent magnet, non-captive, linear stepper motor to actuate the braking mechanism. In various embodiments, the load cell may include a low-cost aluminum, single point load cell, arranged such that the load cell is the only member connecting the magnet holding bracket to the rest of the braking mechanism. The stepper motor may include an integrated stepper driver with current control. In some embodiments, a stepper motor operable at 12 v, 500-900 mA may be used. Microstepping may be used for smooth and quiet operation.
In some embodiments, the signal from the load cell may be conditioned via integrated amplifiers and high-resolution analog-to-digital converters (ADCs) compatible for load cell amplification. Alternatively, a standalone amplifier could be used in conjunction with a built in ADC on a microcontroller. Alternatively, the load cells may include conditioning circuitry and provide a digital output.
In some embodiments, the resistance magnets may include 6 resistance magnets arranged in 3 corresponding magnet pairs (or other paired arrangement). Each magnet may be, for example, 25 mm diameter, 8 mm thick sintered Neodymium rare earth magnets, grade N32. The resistance apparatus may include a magnet holder that is formed in one piece, machined and bent into shape for use as described herein. In some embodiments, two opposing linear bearings carry the measurement subassembly and common drawer slides or linear bearings with a similar envelope could be used.
In various embodiments, the auxiliary (e.g., emergency brake) may be activated via a cable, plunger or other mechanical system. By integrating the emergency brake into the resistance apparatus, the cycle has a cleaner look without an extra activation interface.
Various embodiments of electrical components for use in an exercise apparatus with a braking system disclosed herein will now be described with reference to
In various embodiments, the exercise apparatus electrical components 710 include a controller 712, power supply 714, communications components 722, a stepper motor driver 716 for controlling the linear actuator 732, load cell circuitry 718 (e.g., PGA and/or ADC) for receiving a signal from load cell 734 and conditioning the signal, and interfaces with other sensors 736, which may include sensors for detecting flywheel RPMs and/or sensors for measuring changes in knob positon in response to user adjustments as disclosed herein.
The controller 712 may be implemented as one or more microprocessors, microcontrollers, application specific integrated circuits (ASICs), programmable logic devices (PLDs) (e.g., field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), field programmable systems on a chip (FPSCs), or other types of programmable devices), or other processing devices used to control the operations of the exercise apparatus.
Communications components 722 may include wired and wireless interfaces. Wired interfaces may include communications links with the operator terminal 750, and may be implemented as one or more physical networks or device connect interfaces. Wireless interfaces may be implemented as one or more WiFi, Bluetooth, cellular, infrared, radio, and/or other types of network interfaces for wireless communications, and may facilitate communications with the operator terminal, and other wireless devices. In various embodiments, the controller 712 is operable to provide control signals and communications with the operator terminal 750.
The operator terminal 750 is operable to communicate with and control the operation of the exercise apparatus electrical components 710 in response to user input. The operator terminal 750 includes a controller 760, exercise and user control logic 770, display components 780, user input/output components 790, and communications components 792.
The processor 760 may be implemented as one or more microprocessors, microcontrollers, application specific integrated circuits (ASICs), programmable logic devices (PLDs) (e.g., field programmable gate arrays (FPGAs), complex programmable logic devices (CPLDs), field programmable systems on a chip (FPSCs), or other types of programmable devices), or other processing devices used to control the operator terminal. In this regard, processor 760 may execute machine readable instructions (e.g., software, firmware, or other instructions) stored in a memory.
Exercise logic 770 may be implemented as circuitry and/or a machine readable medium storing various machine readable instructions and data. For example, in some embodiments, exercise logic 770 may store an operating system and one or more applications as machine readable instructions that may be read and executed by controller 760 to perform various operations described herein. In some embodiments, exercise logic 770 may be implemented as non-volatile memory (e.g., flash memory, hard drive, solid state drive, or other non-transitory machine readable mediums), volatile memory, or combinations thereof. The exercise logic 770 may include status, configuration and control features which may include various control features disclosed herein. In some embodiments, the exercise logic 770 executes an exercise class (e.g., live or archived) which may include an instructor and one or more other class participants. The exercise class may include a leaderboard and/or other comparative performance parameters for display to the user during the the exercise class.
Communications components 792 may include wired and wireless interfaces. A wired interface may be implemented as one or more physical network or device connection interfaces (e.g., Ethernet, and/or other protocols) configured to connect the operator terminal 750 with the exercise apparatus electrical components 710. Wireless interfaces may be implemented as one or more WiFi, Bluetooth, cellular, infrared, radio, and/or other types of network interfaces for wireless communications.
Display 780 presents information to the user of operator terminal 750. In various embodiments, display 780 may be implemented as an LED display, a liquid crystal display (LCD), an organic light emitting diode (OLED) display, and/or any other appropriate display. User input/output components 790 receive user input to operate features of the operator terminal 750.
Referring
In various exemplary embodiments, a stationary bike 102 may comprise a frame 106, a handlebar post 108 to support the handlebars 110, a seat post 112 to support the seat 114, a rear support 116 and a front support 118. Pedals 120 are used to drive a flywheel 122 via a belt, chain, or other drive mechanism. The flywheel 122 may be a heavy metal disc or other appropriate mechanism. In various exemplary embodiments, the force on the pedals necessary to spin the flywheel 122 can be adjusted using a resistance adjustment knob 124 which adjusts a resistance mechanism 126, such as the braking system disclosed herein. The resistance adjustment knob may rotate an adjustment shaft to control the resistance mechanism 126 to increase or decrease the resistance of the flywheel 122 to rotation. For example, rotating the resistance adjustment knob clockwise may cause a set of magnets of the resistance mechanism 126 to move relative to the flywheel 122, increasing its resistance to rotation and increasing the force that the user must apply to the pedals 120 to make the flywheel 122 spin.
The stationary bike 102 may also include various features that allow for adjustment of the position of the seat 114, handlebars 110, etc. In various exemplary embodiments, a display screen 104 may be mounted in front of the user forward of the handlebars. Such display screen may include a hinge or other mechanism to allow for adjustment of the position or orientation of the display screen relative to the rider.
The digital hardware associated with the stationary bike 102 may be connected to or integrated with the stationary bike 102, or it may be located remotely and wirelessly connected to the stationary bike. The digital hardware may be integrated with a display screen 104 which may be attached to the stationary bike or it may be mounted separately but should be positioned to be in the line of sight of a person using the stationary bike. The digital hardware may include digital storage, processing, and communications hardware, software, and/or one or more media input/output devices such as display screens, cameras, microphones, keyboards, touchscreens, headsets, and/or audio speakers. In various exemplary embodiments these components may be integrated with the stationary bike. All communications between and among such components may be multichannel, multi-directional, and wireless or wired, using any appropriate protocol or technology. In various exemplary embodiments, the system may include associated mobile and web-based application programs that provide access to account, performance, and other relevant information to users from local or remote personal computers, laptops, mobile devices, or any other digital device.
In various exemplary embodiments, the stationary bike 102 is equipped with various sensors that can measure a range of performance metrics from both the stationary bike and the rider, instantaneously and/or over time. For example, the resistance mechanism 126 may include sensors providing resistance feedback on the position of the resistance mechanism. The stationary bike may also include power measurement sensors such as magnetic resistance power measurement sensors or an eddy current power monitoring system that provides continuous power measurement during use. The stationary bike may also include a wide range of other sensors to measure speed, pedal cadence, flywheel rotational speed, etc. The stationary bike may also include sensors to measure rider heart-rate, respiration, hydration, or any other physical characteristic. Such sensors may communicate with storage and processing systems on the bike, nearby, or at a remote location, using wired (such as view wired connection 128) or wireless connections.
Hardware and software within the sensors or in a separate processing system may be provided to calculate and store a wide range of status and performance information. Relevant performance metrics that may be measured or calculated include resistance, distance, speed, power, total work, pedal cadence, heart rate, respiration, hydration, calorie burn, and/or any custom performance scores that may be developed. Where appropriate, such performance metrics can be calculated as current/instantaneous values, maximum, minimum, average, or total over time, or using any other statistical analysis. Trends can also be determined, stored, and displayed to the user, the instructor, and/or other users. A user interface may be provided for the user to control the language, units, and other characteristics for the information displayed.
Referring to
An example brake implementation in accordance with one or more embodiments will now be described with reference to
The control unit 1050 may be connected to other devices through a communications link 1060 (e.g., USB-C connection providing 24V power to the control unit). The control unit 1050 processes the sensor inputs to generate data 1052 for processing by the system 1000 and/or display to the user (e.g., through a display device 1066), such as revolutions per minute (RPMs), power, resistance and brake position. In various embodiments, the control unit 1050 may be implemented as circuitry providing an interface between the sensors and a processing system, a sensor board, a data logger, a computing device and/or other hardware and/or software configured in accordance with system requirements. In various embodiments, the control unit 1050 include an RPM/cadence processing module 1054, a load cell processing module 1055, a knob position processing module 1056, a resistance controller 1057, a stepping supervisor 1058 and a data processing module 1059.
Referring back to
An interrupt routine is attached to the falling edge of the hall effect sensor input. The routine may calculate and update variables that represent flywheel rpm, crank rpm, and/or other rate information specific to the exercise apparatus. The routine may incorporate a debouncing method to reject false triggering if two or more falling edges are detected on one passing of the magnet. The system may also be configured to reject interrupts that would produce clearly erroneous data (e.g., a RPM that is above a predetermined threshold). The routine may further incorporate a process to decay the measured RPM to zero in a natural way if flywheel comes to an abrupt stop. In Step 1076, the rate of rotation and/or pedaling cadence is provided to other components of the control unit and/or exercise apparatus for processing, display, and/or storage.
In some embodiments the load cell 1020 operates at a predetermined sample rate (e.g., 4 Hz) and measures the force being applied to the flywheel (e.g., in decagrams or a similar measurement unit) by the magnetic braking assembly. The control unit 1050 communicates with the load cell 1020 using a standard protocol such as I2C. The force measurements from the load cell 1020 may be used to calculate power and other criteria. For example, power may be calculated as a function of the force derived from the load cell 1020 which corresponds to a position of the braking assembly and the speed (or other rate calculation) of the flywheel calculated from the RPM data.
Referring to
In one embodiment, the process 1080 starts in Step 1082 by initiating a load cell calibration routine, which determines the calibration steps needed to the device (e.g., creation of table of load cell measurements, determination of offsets, updating load cell measurements, etc.). To calibrate the load cell, the brake assembly is positioned to a first position at an edge of the flywheel in Step 1084. The load cell values at the first position and a plurality of spaced positions of the brake assembly from the first position are measured in Step 1086. The plurality of brake positions and corresponding load cell values are stored in a table in Step 1088. The table may be stored in non-volatile memory including the load cell value, brake position, and a crc checksum to ensure data integrity. The resistance applied during operation of the exercise apparatus is calculated in Step 1089 based on sensed load cell value and the values stored in the table.
In one embodiment, upon power-up the computing system (e.g., the tablet, control unit or other processing device) checks for a valid load cell table in memory. If a table exists, then a standard homing procedure is conducted. If a valid table is not found in memory, then the calibration routine is executed to build a new table and store the new table in memory. Using the table, a current load cell reading can be used to calculate a position/offset by interpolating from the position information from the table.
In some embodiments, load cell zeroing is performed at or near the beginning of an exercise session. As is common with load measuring devices, the reading from the load cell 1032 can drift over time based on many factors that cannot be controlled. A routine may be performed to generate an “offset” which may be added to future readings from the load cell 1032, or until the next time the load cell is zeroed. In order to allow zeroing at any brake position, the offset table is used to calculate the offset to apply. For example, a formula to calculate “offset” is the current reading plus an interpolation of output from position from the table. The procedure described herein may be executed in approximately 1 second or less and may be performed automatically within the sensor firmware. In some configuration, the procedure is performed before every ride. The firmware may wake up and take the reading on regular intervals (e.g., every few minutes), for example, as determined by the permissible power draw. Motion of the flywheel may result in inaccurate readings. Thus, if the flywheel is moving upon wake (e.g., >10 RPMs), the last recorded value may be used if it is not too old (e.g., not older than 10 minutes).
The position of the adjustable shaft (e.g., knob position) is sampled at a rate through interrupts and may be measured in terms of rotations by the rotary encoder 1012. The knob position may be calculated and tracked using components of the rotary encoder 1012 and the resulting data may be used to drive the stepper motor.
The stepper motor 1040 is configured to operate from an integrated circuit or other control components to initialize, configure and drive the stepper motor to provide positional control of the brake. As previously discussed, the stepper motor position is used to populate an offset table of position values and load cell measurement values.
An example process 1090 for operating a stepper motor is illustrated in
Operation of the stepping motor includes a plurality of processing steps. In some embodiments, homing is achieved using integrated stall detection (Step 1096) within the stepper driver. An open loop position control routine (Step 1093) may be provided to keep track of the brake position vs. the zero position (for example as a number of steps from the homing position). The homing routine may be used to determine the upper and lower limit of the range of motion of the brake. Stepper motor position may be counted as steps up and away from contact between the magnet holder and the edge of the flywheel. In some embodiments, logic is provided to detect motion of the flywheel and prevent the homing routine from executing if motion of the flywheel is detected from the hall effect sensor. In this case, the user may be notified to stop pedaling while the homing routine is executed. In some implementations, the homing routines disclosed herein may be completed in approximately five seconds or less.
The stepper motor 1040 position is used to determine a location value of the brake assembly in units of full steps. For example, a scale of 0 to 1000 steps may be used, where 1000 is when the brake contacts the flywheel and 0 is near the top of the range of the travel during operation. In some embodiments, the stepper motor 1040 is configured to operate between positions 0 and a value that is less than 1000 (e.g., 750) to avoid contact with the flywheel and to match an operational range of the exercise apparatus.
In one or more embodiments, a computing system (e.g., the tablet/display 1066), resistance controller, control unit or other device/circuitry is configured to provide instructions to a stepper motor 1040, including generating a “Drive to Position” command. For example, when a resistance setting is desired (e.g., as set by a user or controlled by the exercise apparatus in accordance with a terrain feature) a corresponding target position is determined and a drive to position command is issued. The stepper motor 1040 is configured to receive the “Drive to Position” command, including the desired position value (Step 1094), and command the stepper motor to execute a corresponding number of steps between a current position and the target position (Step 1095). The resistance may be converted into a position using a reverse lookup from the offset table. The command should then be used to drive to position using a smooth motion control profile for a desirable user experience.
The encoder is configured to update the resistance setpoint (e.g., according to a fixed linear ratio of 7.5 revolutions per 100 resistance percentage points). In one embodiment, upon startup the firmware does not cause any offset to the resistance setpoint based on relative knob position. In this embodiment, the knob acts as an incremental encoder with no zero reference. Upon moving the knob the encoder updates the resistance setpoint according to the defined ratio. The encoder movement logic may be configured to reject small inputs (e.g., changes under 1-degree) to avoid movement when users place their hand on the knob.
In some embodiments, acceleration, speed and current position value of the stepper motor is managed by a stepper supervisor process to achieve synchronous stepping under various speed and load conditions and protect the stepper motor from overheating in the event the user cycles the stepper continuously at high load for a long time. Tuning acceleration and running speeds and custom current profiles of the stepper facilitates a user experience that feels smooth. Operation of the stepper motor may further include protection circuitry and/or control logic to provide thermal protection for the stepper motor
In various embodiments, acceleration, speed and/or current of the stepper motor 1040 is controlled by a stepper supervisor with a goal to achieve synchronous stepping under all possible speed and load conditions and protect the stepper from overheating in the event the user cycles the stepper continuously at high load over a period of time. Tuning acceleration and running speeds and custom current profiles of the stepper allows operation to feel smooth.
In various embodiments of stepping control, motor position and speed are generally referenced in terms of whole steps (0 to 1000) and whole steps per second. However, in the interest of achieving the smoothest and quietest operation possible, the motor is operated in a microstepping mode, where the two motor phases are both partially energized in order to achieve partial steps between the whole steps. The actual motor position is counted in microsteps (0 to 8000), but most higher-level functions specify full step values.
In one embodiment, the motor driver allows the user to program in custom current profiles for the individual phases of microstepping. Nominally, these steps would be programmed to a sinusoidal profile. A custom profile may be used, derived from the back EMF waveform of its motor. This profile gives smoother and quieter operation than an ideal sinusoid does with this particular motor.
In some embodiments, the speed of the stepper motor varies as the motors reaches a target position. For example, whenever the motor is in motion, the target motor speed may be specified as a multiple of the remaining distance to be traveled (in full steps). The speed is also bounded by minimum and maximum values. For small hops, low speeds are used. For very long commanded motions, the speed will peg at the maximum allowable value. As the motor approaches the target position, the motor will naturally decelerate as the remaining distance value gets smaller.
This proportional speed setting allows the motor to follow continuous position updates (e.g. from the encoder) without stutter stepping, caused by catching up too quickly and stopping repeatedly. The motor will settle into an average speed which matches the position updates, with an angular lag that is proportional to speed. When the target position stops changing, the motor will catch up to the target position and stop.
In some embodiments, acceleration of the stepping motor is also controlled. The motor may have a minimum speed setting and be capable of reaching a certain minimum speed instantly (e.g., within one step) and there is no point in trying to ramp up from a slower speed, which will only hurt responsiveness of the control. Starting from too low of a speed simply wastes time and results in the motor moving and stopping for each step. If the target speed value for a given motion is higher than the minimum speed, then the motor speed will ramp up linearly on each successive step until the target speed is reached. After each step completes, a new target speed is calculated, as well as a new maximum speed that is allowed, while remaining within the linear acceleration limit. The resultant speed value is then used to determine the time to the next motor step. In some embodiments, there is no explicit deceleration control, but the speed setpoint may naturally ramp down as the distance from the actual position to the target position is decreased.
In some embodiments, stepper motor driver allows for multiple possible current magnitude values (e.g., 8 current settings from 0-7) to be applied to the motor. Higher current values allow the motor to put out more torque, thus reducing the possibility of losing a step. Because the motor position is controlled by open loop step counting, it is critical that steps are never lost. However, higher current levels contribute to more audible noise and perceptible vibration, as well as more heating of the motor. Therefore, it is desirable to optimize the current setting to the present operational state, while allowing plenty of headroom for design tolerances.
Testing has demonstrated that lower current levels may produce less desirable results for the rider, and for certain stepper motors, only higher current levels are used for controlling the brake (e.g., between 4 and 7) for a better rider experience. In some embodiments, the controller is configured to calculate and/or determine the necessary current level, depending on conditions. For some motors, the current may be set by setting registered in the stepper motor. The desired current is determined when the motor starts to move, and is recalculated during operation, such as every time a step completes. Therefore, if conditions change (flywheel speed, motor position, etc.) the current value can be updated. If the target current value changes, a message or command is sent to update stepper motor (e.g., by setting registers of the stepper motor), while the motor is in motion.
In some embodiments, the current set point is determined by combining characterization data for the motor (maximum linear force as a function of current setpoint and speed) with data for the brake (required linear force as a function of motor position, direction of movement, and flywheel speed). A current setpoint is chosen that will allow the motor to meet the necessary force requirement and should provide a margin (e.g., at least 30-40% margin), based on a sampling of motors and brakes.
The motor force curve is a function of current and motor speed. However, below a motor speed of 300 PPS (currently the maximum allowed), the curve is fairly flat. Given the amount of margin desired on the motor current setting, motor speed is ignored when selecting a current setpoint. In other words, maximum force capability is treated only as a function of motor current, not as a function of motor speed. The ratings are conservative enough to apply at 300 PPS. If a higher motor speed is required, it may be necessary to consider motor speed in the current setpoint determination.
The force required by the brake is affected by several factors. The brake moves against a spring, so there is a static force that is a function of motor position. The further down the brake moves, the more the spring is deflected and the more force is required. In addition, a spinning flywheel causes a load on the brake, which increases the force requirement. This load is proportional to flywheel speed.
Based on curve fitting, a baseline force requirement is calculated from the target motor position, then an additional force, proportional to flywheel speed, is added. If the target position or flywheel speed change while the motor is in motion, the required force may be updated, leading to a change in motor current setpoint.
In various embodiments, the control system may include a stall detection mechanism. which is dependent on the operating conditions of the motor. The controller functions to regulate the motor current. The device sets a Pulse Width Modulation (PWM) duty cycle which, in conjunction with the supply voltage, determines the voltage applied to the motor. The applied voltage, minus the motor's back EMF voltage is divided by the motor's resistance in order to set the motor current. The stall detection mechanism functions by monitoring the PWM duty cycle.
If the motor stalls (is blocked from moving), the back EMF will go to zero. This causes the required voltage to be reduced, which causes the PWM duty cycle to be reduced. This reduction in PWM duty cycle is detected as a stall. In order to use stall detection, the controller is configured with a threshold PWM duty cycle, below which a stall is reported. In various embodiments, the nominal PWM duty cycle is dependent on power supply voltage (e.g., stepper motor regulated to 12V), motor winding resistance (production tolerance and temperature dependent), motor speed, and motor current setpoint. If any of these parameters change, the nominal PWM duty cycle may change and the stall detection threshold may need to be changed, as well. If the threshold is set too high, stalls will be falsely reported. If the threshold is set too low, a true stall will never be reported.
With these constraints in mind, in some embodiments, stall detection may be limited to use in one situation: motor homing. When the motor is being homed, it is operated at a fixed current level (level 7) and a fixed speed (300 PPS). The motor drives at constant speed until it runs into the flywheel and stops abruptly. A stall detection threshold was chosen for these specific conditions, in the middle of the range between the last failure to detect a stall and the first false stall detection. If power supply voltage, homing speed, homing current, or the motor design change, it will be necessary to reevaluate the stall detection threshold.
In experimental settings, a stall detection threshold was set at 125 and this proved to be an issue in PVT for a small <1% of bikes due to a spring manufacturing defect. This was resolved by implementing a smart and adaptive stall detection procedure. During calibration, the calibration routine is updated such that a stall detection value is pulled from persistent memory and is no longer hard coded for each brake. When calibration is run, start by setting stall detection to a common threshold value (e.g., set stall threshold to 125). If a stall does not get detected, increase the stall detection by 5 and repeat up to a maximum value (e.g., a maximum threshold value of 145). During a homing routine, a stall should be detected. If a stall is not detected, update the stall detection threshold stored in memory by 5 up to a maximum value (e.g., a maximum threshold value of 145.
In various embodiments, the power calculated and displayed on the tablet/display 1066 is calculated using a polynomial equation and matching coefficients with variables. For example, the power calculation uses readings of position value of resistance apparatus and RPMs of flywheel. To calculate power, the system can sum of all terms of an element-wise multiplication of the two lists of values. In the event the sensor data is invalid, the power value can be provided based on a fallback power map based on resistance and RPM only.
Operation of an exercise apparatus with resistance correction mechanics will now be described with reference to
An exercise apparatus 1210 including a braking system disclosed herein includes an interactive display. As the user rides the exercise apparatus 1210, the resistance is displayed to the user (step 1220) based on a mapping of brake position to resistance, as illustrated in table 1230. At the same time, values are checked against a fixed map 1240 and an error value is calculated in step 1222. In step 1264, the errors values are stored in a new error map 1260. The display table 1230 then gets updated in step 1262. The resulting resistance value is displayed for the user as shown in screen shot 1270.
As illustrated, the procedure of
The resistance determination uses the two tables, which may be referred to as (i) the active resistance and position table (e.g., table 1230), and (ii) a static, ideal, power/resistance/cadence model that is very closely matched to a reference bike or a lookup table (e.g., fixed table 1240), which will be used to calculate an error signal. Because the actual map may be large, a model of that relationship can be used in its place. The same model can be used, for example, across bikes of a certain brand.
Resistance auto-correction is achieved using the procedure of
The error is calculated periodically (e.g., once per second). In some embodiments, error is not calculated if the acceleration of the flywheel is above a threshold (e.g., 3 revolutions/minute2), when RPM is less than 20, or when power is less than 22 W. The running average can have various lengths (e.g., 30 values). The length and frequency of the running average can be adjusted to improve performance as desired. When resistance setpoint changes are executed where the commanded change is more than 5 percentage points, the value for the running average of error is used to update the table of resistance to percentage table to zero out the error. If the running average is not yet reached the threshold number of readings (e.g., 30 readings long), no zeroing will take place. If the error signal is greater than 2 percentage points, it can be split up into different moves.
Program logic for implementing the resistance calculation procedure of
An example function to handle the cumulative errors built up over time is illustrated below:
Various ranges used in an implementation of the present embodiment (e.g., RPM, W, threshold for determining speed stability, size of the running average, frequency to call the function) may be system dependent and determined experimentally. An initial value of less than 5 rpm/second2 may be used to start. Third, the size of the running average and the frequency to call that function should be determined experimentally.
In various embodiments, the systems disclosed herein may be used to capture diagnostic and other data and transmit the data to an central server, the cloud or other processing system for further processing, which may include tracking data across one or more exercise apparatus. The diagnostic data may be captured and kept up to date in a nonvolatile memory and passed to the tablet/computing device and/or cloud on a periodic basis (e.g., once per wake cycle). The diagnostic data may include: 1. Odometer (in total revolutions); 2. Hours (in minutes); 3. Calibration cycles; 4. Wake cycles; 5. Encoder moves (total number the encoder has been moved); 6. Drive to position moves (total number of tablet directed movements); 7. Average motor position (0-768); 8. Average encoder movement size in terms of motor position (0-768); 9. Maximum encoder movement size in terms of motor position (0-768).
Cadence-resistance-output values used in conventional exercise equipment do not provide accurate readings of power due to inherent manufacturing variations between devices and other factors. The systems disclosed herein include a novel load cell arrangement and a positioning stepper motor that provides improved sensing of the location of the brake and measures the load being applied to the flywheel by the magnetic brake. Load, position, and cadence values from the system are used to calculate the power input by the user. This could be done with the empirical equations for torque and power, and the known geometry and configuration of the load sensor. During development, the coefficients/relationships that define the system may be carefully measured, calibrated and adjusted for accurate results during use.
The system illustrated in
The method starts by measuring output power generated by a bike at various levels of cadence, resistance, and load, using a high-precision dynameter. This data is collected to a cloud data store. This data is downloaded onto a server/remote/host machine to train an elastic net model (or other statistical model as appropriate) on this data to learn the underlying relationships between output power and the other variables. The elastic net is a linear model that is trained using regularization, a technique that penalizes large model coefficients/weights, which reduces overfitting, and regularization and variable selection via the elastic net. In some embodiments, these weights are embedded at a firmware level on chips that may not have high numerical precision and/or memory to fit larger values. These weight values will be uploaded to a data store, and eventually loaded onto the exercise machine/bike firmware.
The systems and methods described herein provide robust platforms that improve the rider experience, while facilitating new and improved exercise models. For example, in some exercise classes, an instructor leads a class of riders through a workout routine that includes instructions to change a pedaling resistance, cadence or other target performance metrics at various times in the class. In a live class, the instructor may vocalize the performance target ranges and in response, each rider may adjust settings on the exercise bike and/or adjust performance to follow the class. In an archived or preprogrammed class, the exercise class content may include data identifying target ranges for various class segments.
In some embodiments, live classes are recorded, and a post-processing method is used to populate the class content with target ranges. For example, a manual process may include having a person listen to the recorded live classes for target cadence and resistance ranges and annotating the class content with data representing the target ranges based on a timestamp. In other embodiments, an automated process may include automated speech processing to detect and annotate target events, analysis of the performance metrics from the instructor's exercise apparatus and/or class participants, and/or other data processing techniques.
When a user accesses an on-demand exercise class, the user interface may display one or more performance target metrics for a current class segment. For example, at a certain point in the class, the instructor may instruct the class participants of the target ranges for resistance and cadence (e.g., resistance 20-30 and cadence 80-100). An example user interface 1500 is illustrated in
Referring to
In operation, the auto-follow mode will automatically adjust the resistance applied to the flywheel in accordance with the target resistance range. In some embodiments, the resistance adjustment systems and methods described herein (e.g., as described in the method of
The user interfaces 1610 further include a graphical representation 1626 (e.g., a dot) illustrating where along the resistance target range the exercise apparatus is currently set. The user may adjust the resistance during operation to increase or decrease the resistance (e.g., by turning an adjustment knob as described with reference to
The auto-follow features described herein may be supported in various user interfaces and implemented through a plurality of modes of operation, allowing the user to select, toggle or otherwise control the implementation of the auto-follow functionality. Depending on the mode selected by the user, the user interface and/or mapping of the user performance to the exercise class may be modified in real time during class participation. Local storage may be used to track tooltips (e.g., a graphical user interface element displayed as information to a user, such as in a graphical box over a screen element as shown in tooltip 1640 and tooltip 1642) seen across sessions and maintain tooltip display logic inside mappers. User interactions may be handled by actions associated with the graphical user interface to handle navigating through tooltips and handling user interactions (e.g., taps) related to enabling or disabling auto follow, triggering tap-to-jump and other features.
The graphical user interfaces 1610a-i illustrates various interfaces that may be presented to a user during operation. Interface 1610a shows an “auto-follow off” state with a resistance range 1622, a current resistance value 1624 that is within range, and a lock icon 1620 for selecting the “auto-follow” mode. Interface 1610b show the interface with a current resistance that is below the target range. In interface 1610c, the target metric is hidden. In interface 1610d, the lock icon indicates that “auto-follow” mode has been selected and the status ring around the lock icon provides an indication of when the target range will change. Interface 1610e illustrates an auto-follow mode with a current resistance that is below range. Interface 1610f illustrates an auto-follow mode with the target metric hidden from view. Interface 1610g illustrates a resistance metric in the middle of the target range in a standard mode of operation. Interface 1610h illustrates a tooltip informing the user that auto-follow is off. Interface 1610i illustrates a tooltip informing the user that auto-follow is on. Interfaces 1650a, 1650b, and 1650c illustrate cadence metrics that are in range, above range, and hidden, respectively.
In some embodiments, an exercise system includes one or more live and/or archived instructor led classes available for delivery to one or more exercise devices at remote locations. The exercise device, such as an exercise cycle, includes a user interface (e.g., user interface 1500) that guides the user through the exercise class through video, audio and/or displayed content. The class content includes instructor cues directing the riders towards certain performance metrics or settings, such as cadence (e.g., pedal within an identified cadence range), resistance (e.g., set the exercise device to within a particular resistance range), and/or other metrics.
In a standard operation, the rider manually adjusts target parameters to stay within range. In a default auto-follow mode, the exercise cycle receives target range data for a segment of the class and adjusts the resistance (and/or other target metric) to position within the range (e.g., in the middle of the range). In some cases, the rider may not be able to perform to a desired instructor target metric and may manually adjust exercise performance to fit the rider's ability. For example, the rider may reduce the resistance using a knob to make the ride easier. In such cases, it may still be desirable for the rider to use the auto-follow features described herein. In accordance with one or more embodiments, the exercise system includes one or more auto-follow features and logic to enhance the exercise experience for the rider with user-initiated adjustments. For example, the user may adjust the resistance to a higher or lower part of the range, and the next automatic resistance change will set the resistance to value at a similar relative position in the new resistance range.
In some embodiments, the exercise content includes instructor cue data, annotations or similar data or designation that informs the system of target metrics and ranges associated with the exercise content. The content may be displayed to the user allowing the user to manually follow the instructor or used in an auto follow mode, where the exercise device automatically implements one or more instructor cues (e.g., by automatically setting a resistance) and/or adjusts settings, performance targets, and/or class content presented to the user on the user interface during an exercise class. As previously discussed, the auto follow mode may include logic to adjust one or more settings in accordance with detected user performance and/or user adjustments.
In some embodiments, tutorial features (e.g., tooltips 1640 and 1642) are provided to the user to direct the user through the auto follow features. For example, data may be stored identifying whether the user has seen certain tutorials (e.g., a Boolean value for each tutorial). Tutorials may be provided, for example, in a window overlay on the graphical user interface during the exercise class.
Referring to
In step 1308, an exercise program that utilizes tooltip seen data is implemented. For example, the program logic may include logic that correlates the user's exercise performance to corresponding data of an exercise class and displays relevant data to the user. In step 1310, the system determines whether the current program and content use HasSeen data and whether tutorial information is available for display in the current state. The tutorial information is displayed in step 1312 to notify the user of the educational information and the user record is changed to reflect that the tutorial information has already been observed. After the state is populated, it can be used to instruct the user interface to display tutorial tooltips when needed.
In some embodiments, user actions are controlled by toggling through tooltips on the user interface. This will be used to cycle through to the next tooltip. This allows the mappers to hold the logic for which tooltips to show and in which order. An enable/disable Auto Follow Action will be responsible for enabling the auto follow feature as well as updating the state to reflect that the feature is enabled/disabled. User interface logic may include Auto-follow logic, Onboarding/Tooltips logic, Hiding/Unhiding logic, and Domain Models logic. In some embodiments, a data class CueRangeDomainModel may be defined identifying whether an icon is visible, whether auto-follow button is visible, whether to collapse the tooltip or other display element; etc. The tooltip display tracking is handled for individual users, which may include user preference data, custom keys to handle per user tooltip display tracking, etc.
The auto-follow functionality further includes detecting, tracking and responding to sensor data. In some embodiments, sensor data related to current resistance value and target resistance value (e.g., from the class data) are read. These may be available through a sensor state operation. The resistance value can also be written with a class BikeSensorWriter. The target resistance value can be sent to the one or more control mechanisms for adjusting the resistance value to provide for smooth and accurate changes during a ride. In some embodiments, a rate of change follows logic indicating that upon resistance changes going down, the system sends two messages to writer, one to an intermediate value then once we get to the intermediate value we send it down to final resistance. Upon resistance going up, we just write once to the sense and have the sensor take care of the smoothing.
Example auto-follow logic 1400 will now be described with reference to
An auto-follow routine 1406 tracks the current metrics and target metrics and renders an appropriate user interface such as illustrated in
In some embodiments, the logic implements a set of rules for adjusting the resistance, that may include one or more of the rules set forth in the following discussion. For example, the auto-follow feature may be toggled on or off by tapping an icon (e.g., a lock icon). A popup notification can let the user know that auto-follow is on and the lock icon can change state (e.g., from an unlocked lock to a locked lock). A progress indicator, such as an animated ring around the lock icon, can be displayed showing the progress to the next range change. In one embodiment, when auto-follow starts, the user is brought to the middle of the range. In some embodiments, if the current performance metrics are inside the new range when auto-follow starts, the resistance can stay the same without adjustment to the middle.
In some embodiments, the auto-follow logic is configured to adjust to one or more user preferences. For example, if the rider is in the current range when the next range starts, then the resistance may be adjusted to stay at the same relative position in the new range (e.g., new resistance value calculated as a percentage from the middle, where 1% equals the range/100). If the rider is below the current range once the next range starts, the resistance may be adjusted to to the bottom of the new range. If the rider is above the current range when the next range starts, the resistance may be adjusted to the top of the new range. If the user manually adjusts the resistance during auto-follow adjustments (e.g., if the automatic resistance is too hard or too easy, the user may manually adjust the resistance to a desired value) then the automatic adjustment may be ignored in favor of the manual adjustment.
In some embodiments, the manually adjusted resistance may be outside the range, and the new range may be set to (i) the bottom of the range, (ii) to a relative position outside the range, with notification (e.g., a tooltip) indicating that the rider is outside of the range, or (iii) other setting according to user preferences. In some embodiments, workout cues may be overlap in time such that an adjustment of one cue is not complete when the next cue is triggered. In this case, the first cue may be cancelled allowing the system to adjust to the current cue. The instructor-cues may be implemented in a class setting or individual workout.
Advantages of the present embodiment will be apparent to those skilled in the art, including that embodiments disclosed herein can effectively achieve a reduction of user action and shorten the required sensing time.
The foregoing disclosure is not intended to limit the present invention to the precise forms or particular fields of use disclosed. As such, it is contemplated that various alternate embodiments and/or modifications to the present disclosure, whether explicitly described or implied herein, are possible in light of the disclosure. Having thus described embodiments of the present disclosure, persons of ordinary skill in the art will recognize advantages over conventional approaches and that changes may be made in form and detail without departing from the scope of the present disclosure.
This application is a continuation of International Patent Application No. PCT/US2021/034632 filed May 27, 2021 and entitled “BRAKING SYSTEMS AND METHODS FOR EXERCISE EQUIPMENT,” which claims the benefit of and priority to U.S. Provisional Patent Application No. 63/032,512 filed May 29, 2020 entitled “BRAKING SYSTEMS AND METHODS FOR EXERCISE EQUIPMENT,” and U.S. Provisional Patent Application No. 63/075,198 filed Sep. 6, 2020 entitled “BRAKING SYSTEMS AND METHODS FOR EXERCISE EQUIPMENT,” all of which are incorporated by reference as if fully set forth herein. This application is a continuation-in-part to U.S. patent application Ser. No. 17/165,919 filed Feb. 2, 2021 and entitled “BRAKING SYSTEMS AND METHODS FOR EXERCISE EQUIPMENT,” which is a continuation of International Patent Application No. PCT/US2019/045013 filed Aug. 2, 2019 and entitled “BRAKING SYSTEMS AND METHODS FOR EXERCISE EQUIPMENT,” which claims the benefit of and priority to U.S. Provisional Patent Application No. 62/714,635 filed Aug. 3, 2018 and entitled “BRAKING SYSTEMS AND METHODS FOR EXERCISE EQUIPMENT,” all of which are incorporated by reference as if fully set forth herein.
Number | Date | Country | |
---|---|---|---|
63032512 | May 2020 | US | |
63075198 | Sep 2020 | US | |
62714635 | Aug 2018 | US |
Number | Date | Country | |
---|---|---|---|
Parent | PCT/US2021/034632 | May 2021 | US |
Child | 18058697 | US | |
Parent | PCT/US2019/045013 | Aug 2019 | US |
Child | 17165919 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 17165919 | Feb 2021 | US |
Child | PCT/US2021/034632 | US |