Automatic Control Techniques For A Treadmill

Information

  • Patent Application
  • 20250235741
  • Publication Number
    20250235741
  • Date Filed
    January 17, 2025
    10 months ago
  • Date Published
    July 24, 2025
    4 months ago
Abstract
A treadmill includes a moveable belt and a controller configured to cause the belt to move in accordance with a target speed. The controller is further configured to receive information indicative of a current gradient of the belt and to automatically adjust the value of the target speed in dependence on the current gradient of the belt.
Description
FIELD

The present disclosure relates to improved control techniques for a treadmill.


BACKGROUND

This section provides background information related to the present disclosure which is not necessarily prior art.


Treadmills are well known exercise devices for running or walking in place. A treadmill is comprised of a platform or base which supports a moving belt driven by an electric motor. During operation, the belt moves from the front end of the platform to the rear end of the platform. The user walks or runs on the belt at a speed matching the speed of the belt. Through the use of an input device, the speed of the belt may be set or otherwise controlled by the user.


SUMMARY

A treadmill, in accordance with one or more aspect of the disclosure, comprises a moveable belt and a controller configured to cause the belt to move in accordance with a target speed, receive information indicative of a current gradient of the belt, and automatically adjust the value of the target speed in dependence on the current gradient of the belt.


The controller may be configured to receive an input speed for the belt and to automatically adjust the value of the target speed in dependence on the input speed and the current gradient of the belt.


When the current gradient of the belt is greater than zero, the controller may be configured to automatically adjust the value of the target speed such that the target speed is less than the input speed.


When the current gradient of the belt is zero, the controller may be configured to automatically set the target speed equal to the input speed.


When the current gradient of the belt is less than zero, the controller may be configured to automatically set the target speed equal to the input speed, or the controller may be configured to automatically adjust the value of the target speed such that the target speed is greater than the input speed.


The controller may be configured to receive information indicative of a change in the input speed and to automatically adjust the target speed in dependence on the input speed, the change in the input speed, and the current gradient of the belt.


The treadmill may further comprise a motor. In such case, the belt may be driven by the motor and the controller may be configured to cause the motor to generate torque as required to cause the belt to move in accordance with the target speed.


The controller may be configured to receive an input gradient for the belt and to cause the belt to move from a first position to a second position in which the belt is tilted at the input gradient.


The treadmill may further comprise a tilt sensor configured to sense the current gradient of the belt. In such case, the controller may be configured to receive information indicative of the current gradient of the belt from the tilt sensor and the controller may be configured to automatically adjust the value of the target speed in dependence on the current gradient of the belt, even when the current gradient of the belt is different from the input tilt angle.


The treadmill may further comprise a linear actuator. In such case, the controller may be configured to cause the linear actuator to extend or retract as required to move the belt from the first position to the second position.


The controller may be configured compare the current gradient of the belt to a predefined gradient limit and to automatically adjust the value of the target speed in dependence on the lowest value of the current gradient and the predefined gradient limit.


The controller may be configured to automatically adjust the value of the target speed by dividing the target speed by a grade adjusted speed (GAS) factor. In such case, when the current gradient of the belt is greater than or equal to 0% and less than or equal to 10%, the GAS factor may be calculated according to the following equation:







G

A

S


factor



(

0



gradient



10

)



=



a

·


gradient
2



+


b

·

gradient


+

1.





When the current gradient of the belt is greater than 10%, the GAS factor may be calculated according to the following equation:








G

A

S


factor


=



a

·


gradient
2



+


b

·

gradient


+

1


,




wherein 0.001≤a≤0.002 and 0.01≤b≤0.03.


In aspects, the controller may be further configured to automatically adjust the value of the target speed in dependence on a distance of a user on the treadmill from a predefined target position on the treadmill.


In aspects, the controller may be configured to cause the belt to move to a position in which the belt is tilted at a target gradient and automatically adjust the value of the target gradient in dependence on the time derivative of the target speed of the belt and the gravitational acceleration constant.


A treadmill, in accordance with one or more aspects of the disclosure, comprises a moveable belt and a controller configured to cause the belt to move in accordance with a target speed and a target gradient and to receive information indicative of a current gradient of the belt. The controller comprises a grade adjusted speed (GAS) module configured to calculate a grade adjusted speed for the belt in dependence on the current gradient of the belt and the target speed of the belt, the controller being configured to automatically adjust the target speed of the belt in dependence on the grade adjusted speed calculated by the GAS module.


The controller may further comprise a free run module configured to calculate an adjusted target speed for the belt in dependence on a previous target speed of the belt and a distance of a user on the treadmill from a predefined target position on the treadmill. In such case, the GAS module may be configured to calculate a grade adjusted speed for the belt in dependence on the current gradient of the belt and the adjusted target speed for the belt and the controller may be configured to automatically adjust the target speed of the belt in dependence on the adjusted target speed calculated by the free run module and the grade adjusted speed calculated by the GAS module


The controller may further comprise a simulated inertial module configured to calculate an adjusted gradient angle for the belt in dependence on the time derivative of the target speed, the gravitational acceleration constant, and the target speed or the grade adjusted speed for the belt. In such case, the controller may be configured to automatically adjust the target gradient of the belt in dependence on the adjusted target gradient calculated by the simulated inertial module.


A computer-implemented method for controlling a treadmill, in accordance with one or more aspect of the disclosure, comprises: (i) driving, by a controller, a motor of the treadmill in accordance with a target speed, the motor being operatively coupled to a moveable belt of the treadmill, (ii) receiving, by the controller, a change in a gradient of the belt, (iii) computing, by the controller, an adjusted value for the target speed of the motor based on the change in the gradient of the belt, and (iv) automatically adjusting, by the controller, the target speed of the motor in accordance with the adjusted value for the target speed.


Further areas of applicability of the present disclosure will become apparent from the detailed description, the claims and the drawings. The detailed description and specific examples are intended for purposes of illustration only and are not intended to limit the scope of the disclosure.





DRAWINGS

The drawings described herein are for illustrative purposes only of selected embodiments and not all possible implementations, and are not intended to limit the scope of the present disclosure.



FIG. 1 is a perspective view of a treadmill.



FIG. 2 is a side view of the treadmill of FIG. 1.



FIG. 3 is a block diagram of a control system for a treadmill.



FIG. 4 is a block diagram illustrating a free run module for implementing a free run mode in a treadmill, the free run module including a signal preprocessor, a target speed calculator, a safety monitor, and a limiter and arbitrator.



FIG. 5 is a block diagram depicting the signal preprocessor of FIG. 4, the signal preprocessor including a signal recovery module and a filter.



FIG. 6 is a block diagram depicting the target speed calculator of FIG. 4, the target speed calculator including a target position calculator, an error comparator, a nonlinear controller, an integrator, optionally a torque controller, and optionally a maximum calculator.



FIG. 7 is a block diagram depicting the nonlinear controller of FIG. 6, the nonlinear controller including a proportional gain calculator and a proportional-derivative (PD) controller.



FIG. 8 is a graph showing example values for the proportional gain constant calculated by the proportional gain calculator of FIG. 7 as a function of position error.



FIG. 9 is a graph showing typical horizontal (Fh) and vertical (Fv) ground reaction forces for three steps of a subject while running.



FIG. 10 is a graph showing belt speed fluctuations that can occur when a user increases or decreases their speed due to the derivative control term in the target acceleration calculation performed by the PD controller of FIG. 7.



FIG. 11 is a block diagram depicting the safety monitor of FIG. 4, the safety monitor including an initializer, a time out detector, an idle detector, a speed validator, an acceleration validator, and an inaccurate TOF distance detector.



FIG. 12 is a block diagram of the limiter and arbitrator of FIG. 4, the limiter and arbitrator including a speed limiter, a rate limiter, and an arbitrator.



FIG. 13 is a block diagram illustrating a grade adjusted speed (GAS) module for automatically adjusting the target speed of the belt of a treadmill in response to a change in the current tilt angle of the belt so that the perceived effort of the user on the treadmill remains constant, the GAS module including a GAS calculator, an inversed GAS calculator, and a summation module.



FIG. 14 is a block diagram of the GAS calculator of FIG. 13, the GAS calculator including limiter, a GAS factor calculator, and an adjusted target speed calculator.



FIG. 15 is a block diagram illustrating a free run module and a GAS module for automatically adjusting the target speed of the belt of a treadmill operating in Free Run mode.



FIG. 16 is a diagram depicting the forces exerted on a subject running up an incline.



FIG. 17 is a block diagram illustrating a simulated inertia module for automatically adjusting a target tilt angle of the belt of in response to changes in the target speed of the belt.





Corresponding reference numerals indicate corresponding parts throughout the several views of the drawings.


DETAILED DESCRIPTION

Example embodiments will now be described more fully with reference to the accompanying drawings.



FIGS. 1 and 2 depict an example treadmill 10. The treadmill 10 is comprised of a base 12 having a front end 14 and a rear end 16, a movable belt 18 supported on the base 12 and driven by a motor 20, two side rails 22 projecting upward from the base 12, and a U-shaped frame 24 supported on the two side rails 22. In aspects, the belt 18 may be supported on outer surfaces of rollers 126 driven by the motor 20, for example, by being coupled to a drive shaft (not shown) of the motor 20. The U-shaped frame 24 includes a user console 26 positioned toward the front end 14 of the base 12 and two handrails 28 extending from the user console 26, between the front end 14 and the rear end 16 of the base 12. The user console 26 extends between the two side rails 22 and faces toward the rear end 16 of the base 12. The base 12 of the treadmill 10 may be coupled to a linear actuator 29 configured to raise or lower the front end 14 of the base and thereby increase or decrease a tilt angle α (FIG. 2) of the base 12 and thus of the belt 18 relative to a horizontal plane 48 on which the treadmill 10 is positioned. In aspects, the treadmill 10 may include a plurality of feet 27 and the base 12 may be supported on a plurality of feet 27. In such case, one or more of the feet 27 may be coupled to the linear actuator 29, which may be configured to extend or retract the feet 27 and thereby tilt the base 12 and thus the belt 18 at an angle with respect to the horizontal plane 48 on which the treadmill 10 is positioned. In aspects, the treadmill 10 may include left and right feet 27 respectively coupled to left and right linear actuators 29 and disposed near the front end 14 of the base 12. The left and right linear actuators 29 may be configured to extend or retract the left and right feet 27 to increase or decrease the tilt angle α of the base 12 with respect to the horizontal plane 48.


With reference to FIG. 3, the treadmill 10 further includes a control system 30 comprising a main controller 32 configured to receive input signals from the user console 26, a distance sensor 34, optionally a torque sensor 36, optionally a tilt sensor 38, and optionally a speed sensor 39, and to provide output signals to a motor controller 40 and optionally a linear actuator controller 42 to control operation of the treadmill 10. In aspects, the main controller 32 may be configured to receive input signals from and/or provide output signals to an auxiliary device 44. It is to be understood that only the relevant steps and/or features of the treadmill 10 and the main controller 32 are discussed in relation to FIG. 3, but that other components may be needed to control and manage the overall operation of the treadmill 10.


In an exemplary embodiment, the main controller 32 is implemented as a microcontroller. The logic for control of the treadmill 10 by main controller 32 can be implemented in hardware logic, software logic, or a combination of hardware and software logic. In this regard, the main controller 32 can be or can include any of a digital signal processor (DSP), microprocessor, microcontroller, or other programmable device which is programmed with software implementing the operation of the treadmill 10. Additionally or alternatively, the main controller 32 may be or may include other logic devices, such as a Field Programmable Gate Array (FPGA), a complex programmable logic device (CPLD), or application specific integrated circuit (ASIC). When it is stated that the main controller 32 performs a function or is configured to perform a function, it should be understood that the main controller 32 is configured to do so with appropriate logic (such as in software, logic devices, or a combination thereof).


The distance sensor 34 is configured to measure the distance from a definite location on the treadmill 10 to a user on the treadmill 10. For example, the distance sensor 34 may be configured to measure the distance from the user console 26 to a waist or torso of a user on the treadmill 10. In such case, the distance sensor 34 may be positioned on or embedded in the user console 26, as shown in FIG. 2, although other positions for the distance sensor 34 are envisioned. In an example embodiment, the distance sensor 34 is further defined as an infrared sensor, although other types of sensors are contemplated by this disclosure. Distance sensors of this type are commonly referred to as time-of-flight (TOF) sensors. The distance measured by the distance sensor 34 from the definite location on the treadmill 10 to the user on the treadmill 10 may be referred to herein as the “TOF distance.” In aspects, the TOF distance may be the distance of the user from the distance sensor 34.


The optional torque sensor 36 is configured to sense or determine the torque generated by the motor 20, i.e., the motor torque. In an example embodiment, the torque is directly proportional to the applied current and the torque sensor 36 is a current sensor sensing the current drawn by the motor 20, although other types of torque sensors are contemplated by this disclosure. In other embodiments, the motor torque is estimated from the requested motor current signal and the torque sensor 36 is not needed. For example, the requested motor current signal may be an output signal from the motor controller 40. The torque generated by the motor 20 is transferred to the belt 18 and controls the speed of the belt 18.


The optional tilt sensor 38 is configured to sense or determine a tilt angle α (FIG. 2) of the base 12 and thus of the belt 18 relative to the horizontal plane 48 on which the treadmill 10 is positioned. In aspects, the tilt sensor 38 may sense or determine a position of the actuator 29, which may be used by the main controller 32 to determine the tilt angle α of the base 12. In aspects, the tilt angle α may be calculated or determined using other available data such that the tilt sensor 38 is not needed.


The optional speed sensor 39 is configured to sense or determine the actual speed of the belt 18 and to transmit data indicative of the actual speed of the belt 18 to the main controller 32. In aspects, the speed sensor 39 may be coupled to one of the rollers 126, as shown in FIG. 2, although other positions for the speed sensor 39 are envisioned. In aspects, the speed sensor 39 may comprise a revolution sensor. In aspects, the actual speed of the belt 18 may be calculated or determined using other available data such that the speed sensor 39 is not needed.


During operation, a user on the treadmill 10 interacts with the user console 26 to input to the main controller 32 a desired speed for the belt 18 and optionally a desired tilt angle α for the base 12. Additionally or alternatively, the user may interact with the auxiliary device 44 to input to the main controller 32 a desired speed for the belt 18 and/or a desired tilt angle α for the base 12, or to initiate a program on the auxiliary device 44 that inputs to the main controller 32 a desired speed for the belt 18 and/or a desired tilt angle α for the base 12. Based on the input speed from the user console 26 and/or the auxiliary device 44, the main controller 32 outputs a target speed to the motor controller 40, and the motor controller 40 controls the motor torque of the motor 20 so that the belt 18 moves at the target speed. For example, the user can input a desired speed for the belt 18 of 10 kilometers per hour (km/h). Based on the input tilt angle α from the user console 26 and/or the auxiliary device 44, the main controller 32 outputs a target tilt angle α to the linear actuator controller 42, and the linear actuator controller 42 controls movement of the linear actuator 29 to move the belt 18 so that the belt 18 is tilted at the target tilt angle α. For example, the user can input a desired tilt angle α for the belt 18 of π/60 radians (i.e., 3 degrees). In aspects, the tilt angle input by the user may be in degrees or a percent grade and the main controller 32 may convert the input tilt angle α to radians, as needed.


The main controller 32 may include a free run module 46, a grade adjusted speed (GAS) module 47, and/or a simulated inertia module 49, which may control or adjust the target speed of the belt 18 based on information in addition to or alternative to the input speed and/or the input tilt angle α from the user console 26 and/or the auxiliary device 44. For example, the free run module 46 is configured to operate the treadmill 10 in a Free Run mode in which the target speed of the belt 18 generated by the main controller 32 is a function of the user's position with the respect to the treadmill 10. When the treadmill 10 is operating in Free Run mode, the user can control the speed of the belt 18 without manual interaction with the user console 26 and/or the auxiliary device 44, i.e., without inputting a desired speed for the belt 18, which may help improve the user's comfort and enjoyment. The objective of Free Run mode is to automatically maintain the user at an appropriate position (i.e., a “target position”) relative to the treadmill 10. In aspects, the target position may be a location at or near a center of the belt 18, between the front end 14 and the rear end 16. In aspects, Free Run mode may be activated or deactivated by the user of the treadmill 10 via the user console 26 and/or the auxiliary device 44.


When the treadmill 10 is operating in Free Run mode, a user can freely vary their moving speed, and the main controller 32 will automatically adjust the target speed of the belt 18 so that the user is maintained at the target position relative to the treadmill 10. More specifically, when the treadmill 10 is operating in Free Run mode and the user changes their moving speed, which causes the user to move forward or rearward of the target position, the free run module 46 of the main controller 32 is configured to generate an adjusted target speed for the belt 18 that is calculated to return the user to the target position. In aspects, the adjusted target speed generated by the free run module 46 may automatically be output by the main controller 32 to the motor controller 40 as the target speed for the belt 18. In other aspects, the adjusted target speed generated by the free run module 46 may be used by the main controller 32, for example, in combination with the GAS module 47 and/or the simulated inertia module 49 in determining the target speed of the belt 18 output to the motor controller 40. In response to receiving the target speed from the main controller 32, the motor controller 40 is configured to automatically increase or decrease the torque of the motor 20 as required to move the belt 18 in accordance with the target speed.


When the treadmill 10 is operating in Free Run mode, if the user accelerates relative to the belt 18 and thereby moves forward of the target position (i.e., toward the user console 26 and toward the front end 14 of the base 12), the free run module 46 of the main controller 32 is configured to generate an adjusted target speed that is greater than the previous target speed, which, when implemented by the motor 20, will cause the user to move backwards on the belt 18, towards the target position. If the user decelerates relative to the belt 18 and thereby moves rearward of the target position, the free run module 46 is configured to generate an adjusted target speed that is less than the previous target speed, which, when implemented by the motor 20, will cause the user to move forward on the belt 18, towards the target position.


Referring now to FIG. 4, the free run module 46 includes a signal preprocessor 50, a target speed calculator 52, a limiter and arbitrator 54, and a safety monitor 56. When the treadmill 10 is operating in Free Run mode, the free run module 46 is configured to receive input from the distance sensor 34 and the torque sensor 36 indicative of the TOF distance of the user and of the motor torque, respectively, and to output an adjusted target speed for the belt 18 that is calculated to maintain the user at the target position or return the user to the target position relative to the treadmill 10.


Referring now to FIG. 5, the signal preprocessor 50 improves data quality by removing invalid TOF distance data and reducing signal noise, which ensures good algorithm performance by the free run module 46. As shown in FIG. 5, the signal preprocessor 50 includes a signal recovery module 60 and a filter 62 and is configured to receive raw data from the distance sensor 34 indicative of the TOF distance of the user and to output a validated and filtered TOF distance signal. The signal recovery module 60 is configured to remove invalid data points from the raw data generated by the distance sensor 34, which may occur due to excessive ambient light or direct sunlight, for example, in embodiments where the distance sensor 34 is an infrared sensor. When the TOF distance signal drops out or is out of range, the last valid TOF distance value will be used by the free run module 46 to continue operation of Free Run mode. The TOF distance signal is considered out of range if the TOF distance is less than 0 meters or greater than 2 meters. The safety monitor 56 may receive information regarding the TOF distance signal recovery time from the signal recovery module 60 and may be configured to terminate Free Run mode if the TOF distance signal recovery time exceeds a predetermined threshold.


The filter 62 is configured to filter the data in the TOF distance signal to reduce signal noise. The filter 62 may include two filters arranged in parallel, a first filter 64 and a second filter 66. The signal generated by the first filter 64 may be used by the proportional control term and the signal generated by the second filter 66 may be used by the derivative control term in equation (5) described below with respect to the PD controller 82 of the nonlinear controller 72. In aspects, the filter 62 may be configured to transmit a signal indicative of the TOF distance signal noise and/or loss of data packets to the safety monitor 56, and the safety monitor 56 may be configured to terminate Free Run mode when the TOF distance signal noise and/or loss exceeds a predetermined threshold. To avoid a delayed acceleration or deceleration response in intervals, the second filter 66 may be disabled if the user's position is outside a specified band around the target position (for example, in situations where the user's position is 10 cm forward or rearward of the target position).


In aspects, the first filter 64 may be a first order Butterworth filter with a 0.5 Hz cutoff frequency and the second filter 66 may be a moving average filter. In aspects where the second filter 66 is a moving average filter, the second filter 66 may have a present window size of, for example, 2 seconds. For simplicity, in aspects, the first filter 64 and the second filter 66 may be exponential filters. In such case, the first filter 64 may have a time constant of 0.33 seconds (low filtering) and the second filter may have a time constant of 1.25 seconds (heavy filtering), or vice versa.


In aspects, the second filter 66 may be configured to minimize belt speed fluctuations during steady state running. This is because, if a user runs or walks on the treadmill 10 at a constant pace, it is mechanically identical to running overground, as long as belt speed fluctuations are negligible. Therefore, it may be desirable to minimize belt speed oscillations when the user is running or walking at a constant pace. For example, because treadmill users may typically have small forward and backward motion relative to the treadmill 10 during running and/or walking, the TOF distance signal may contain a periodic position fluctuation. Consequently, the free run module 46 may be constantly reacting to this small position fluctuation, which may lead to belt speed fluctuations during steady state running. To minimize these belt speed fluctuations, the second filter 66 may be configured to smooth the TOF distance signal based on the cadence of the user, which is reflected in and thus can be determined by analysis of the belt speed fluctuations.


For example, in aspects where the second filter 66 is a moving average filter, the second filter 66 may be programmed to have a variable window size that is as long as the step time, which will effectively mitigate belt speed fluctuations. The step time may be calculated according to equation (1):










step


time

=

60
cadence





(
1
)







where the user's cadence may be calculated based on the motor torque and the acceleration torque, which will oscillate in response to the user's cadence. A standard peak detector algorithm may be used to identify each minimum and maximum of the oscillating signal, with the cadence being defined as the time interval between two consecutive maxima or two consecutive minima. This process yields two cadence signals-one derived from the minima and the other from the maxima of the signal. The final cadence may be obtained by averaging the two values.


Where the second filter 66 is a moving average filter, to mitigate belt speed fluctuations, the second filter 66 may be configured to have a variable window size, N, that is calculated based the user's cadence according to equation (2):









N
=


step


time


Δ

t






(
2
)







where the step time is in seconds, cadence is in steps per minute, and Δt is the update cycle time of the free run module 46.


In aspects where the second filter 66 is an exponential filter, to mitigate belt speed fluctuations, the second filter 66 may be programmed to have a variable time constant that is calculated based the user's cadence according to equation (3):










time


constant

=


c
·
step



time





(
3
)







where c is a proportionality constant and step time is in second and calculated according to equation (1).


As shown in FIG. 5, the motor torque signal from the torque sensor 36 may be subjected to similar signal preprocessing steps as the TOF distance signal, for example, to remove invalid motor torque data and reduce signal noise.


With reference to FIGS. 6 and 7, the target speed calculator 52 calculates the adjusted target speed of the belt 18 needed to maintain the user at the target position or to return the user to the target position. To accomplish this, the target speed calculator 52 obtains input data including the TOF distance of the user (e.g., from the signal preprocessor 50), the actual speed of the belt 18 (e.g., from the speed sensor 39), and the previous target speed of the belt 18 (e.g., previously calculated by the target speed calculator 52 or previously input by the user). The target speed calculator 52 includes a target position calculator 68, an error comparator 70, a nonlinear controller 72, and an integrator 74. In aspects, the target speed calculator 52 also may use the motor torque (e.g., sensed or determined by the torque sensor 36) and the motor torque setpoint (e.g., determined by the motor controller 40) to provide a more robust calculation of the adjusted target speed of the belt 18. In such case, the target speed calculator 52 optionally may include a torque controller 76 and a maximum calculator 78.


The target position calculator 68 determines a desired target position of the user relative to the treadmill 10. When Free Run mode is activated, the target position may be set to the user's current position. In other implementations, the target position may be set to a predefined and fixed area on the belt 18. The target position should be set to a position that ensures a minimum distance between the user and the rear end 16 of the base 12 or belt 18 and optionally to ensure a minimum distance between the user and the front end 14 of the base 12 or belt 18. It may be desirable to ensure a minimum distance between the user and the rear end 16 of the base 12 because, for example, when Free Run mode is active, the user must physically move behind the target position to decelerate the belt 18. Therefore, to ensure that the user can decelerate safely, there should be sufficient distance on the belt 18 behind the target position. In aspects, the target position of the user may be one-dimensional and may be defined as the horizontal distance from the distance sensor 34 to a vertical line extending from a defined point on the belt 18.


Typically, the target position of the user is static when Free Run mode is active, but this need not be the case. In aspects, the target position may be dynamic and may depend, for example, on the target speed or the actual speed of the belt 18 and may be calculated to accommodate the observed behavior that treadmill users tend to move closer to the front of the treadmill 10 when their speed increases. Additionally or alternatively, the target position of the user can also be adjusted based on the tilt angle α of the base 12. For example, as shown in FIG. 2, when the front end 14 of the base 12 tilts up, the distance between the user and the distance sensor 34 may decrease. And, when the front end 14 of the base 12 tilts down, the distance between the user and the distance sensor 34 decreases. In one embodiment, the target position is adjusted based on the tilt angle α of the base 12 to prevent the belt 18 from accelerating or decelerating when the base 12 is tilting. With reference to FIG. 2, in such case, the target position of the user may be adjusted based on the tilt angle α of the base 12 according to the following equations (4) and (5):










target


position


adjustment

=


h
·
tan


α





(
4
)








adjusted target position=target position−target position adjustment  (5)


where h is the height of the distance sensor 34 from the belt 18 in meters and α is the tilt angle of the base 12 in radians. In aspects, h=0.935 meters. Other conditions for adjusting the target position are envisioned by this disclosure.


The error comparator 70 calculates the error or difference between the target position calculated by the target position calculator 68 and the actual position of the user on the treadmill 10 (i.e., the TOF distance) and outputs the error to the nonlinear controller 72.


With reference to FIG. 7, based on the error between the target position and the TOF distance of the user on the treadmill 10, the nonlinear controller 72 calculates a target acceleration for the belt 18, or the rate the belt 18 needs to accelerate (or decelerate) to maintain or return the user to the target position. The nonlinear controller 72 includes a proportional gain calculator 80 and a proportional-derivative (PD) controller 82.


The proportional gain calculator 80 calculates or determines the proportional gain constant, Kp, that should be applied to the error in the PD controller 82 algorithm. The proportional gain constant may be a function of a difference between the user's actual position on the treadmill 10 (i.e., the TOF distance) and the target position, or the position “error,” and also optionally may be a function of the actual speed or target speed of the belt 18. Referring now to FIG. 8, when the speed of the belt 18 is less than or equal to 15 km/h (i.e., about 9.3 miles per hour, mph), the proportional gain constant is determined according to the plot of the solid line shown in FIG. 8, where the value of the error is measured in meters and is positive when the user is in front of the target position and negative when the user is behind the target position. When the speed of the belt 18 is greater than 15 km/h and the error is greater than or equal to −0.2 meters (i.e., the user is less than or equal to 0.2 meters behind the target position or is in front of the target position), the proportional gain constant is determined according to the plot of the solid line shown in FIG. 8. As shown, when the TOF distance of the user is the same as the target position, or when the error is very small, e.g., the error is less than or equal to ±0.25 meters, the proportional gain constant, Kp, generated by the proportional gain calculator 80 is equal to 0. As a result, the target acceleration of the belt 18 calculated by the nonlinear controller 72 will be zero when the user walks or runs at or within ±0.25 meters of the target position, which will create a dead zone on the treadmill 10 where the user can walk or run during Free Run mode without initiating a change in the target speed of the belt 18 (the target speed calculator 52 will output a constant target speed for the belt 18), which will help keep the user at a constant pace. When the user walks or runs at a distance of greater than about ±0.25 meters of the target position, the target acceleration of the belt 18 calculated by the nonlinear controller 72 will increase in magnitude the further the user moves forward or backward of the target position. When the speed of the belt 18 is greater than 15 km/h and the error is less than −0.2 meters (i.e., the user is more than 0.2 meters behind the target position), the proportional gain constant is determined according to the plot of the dashed line shown in FIG. 8. As shown, when speed of the belt 18 is greater than 15 km/h and the user is more than 0.2 meters behind the target position, for safety reasons, as the error increases in magnitude, the proportional gain constant will increase at a faster rate than if the user were walking or running at a slower speed, which will result in a relatively high rate of deceleration when the user is running behind the target position at speeds of greater than 15 km/h than when the user is walking or running at relatively low speeds. As a result, at speeds of greater than 15 km/h, the user will need to move a shorter distance behind the target position to trigger significant deceleration of the belt 18.


The PD controller 82 calculates the target acceleration in meters per second squared (m/s2) according to the following equation (6):










target


acceleration

=




K
p

·
error

+


K
d

·


d


error

dt



dt





(
6
)







where the error is the difference between the TOF distance of the user and the target position of the user in meters, Kp is the proportional gain constant (as calculated by the proportional gain calculator 80), and Kd is the derivative gain constant. The derivative control term







(


K
d

·


d


error

dt


)

,




is included in the target acceleration calculation performed by the PD controller 82 to increase responsiveness. The derivative control term is independent of the TOF distance of the user and will generate a target acceleration value due to acceleration by the user, regardless of the user's position relative to the target position. Including the derivative control term in the target acceleration calculation performed by the PD controller 82 may cause the belt 18 to accelerate earlier and stronger compared to using the proportional control term (Kp·error) by itself, for example, when the user accelerates close to the target position. In some embodiments, the derivative gain constant may be set to a constant value, for example 1.5. In other embodiments, the derivative gain constant may vary. In aspects, the derivative control term may be eliminated from equation (5) by setting the derivative gain constant to zero, for example, when







d


error

dt




is less than 0.15 meters per second (m/s), which may help improve stability during steady-state running.


Additionally or alternatively, the nonlinear controller 72 may be configured to output a target acceleration of zero when the user is in flight phase, which may help ensure that the belt 18 is moving at a similar speed during push-off and subsequent landing of the user on the belt 18, thereby better simulating outdoor running mechanics. For example, FIG. 9 depicts the horizontal (Fh) and vertical (Fv) ground reaction forces for three steps of a subject while running. As shown, forces are applied in both the vertical and horizontal directions when a person is in contact with the ground (push-off phase), but no forces are applied to the ground when a person is in flight phase 84. Newton's second law states that acceleration is zero if the net force is zero. Therefore, the horizontal acceleration of a person's center of mass is zero during the flight phase in overground running (when ignoring wind resistance). Without accounting for the user's walking or running phase, if the user's position is away from the target position (in front or behind the target position), the PD controller 82 will output a positive or negative target acceleration. Therefore, to help ensure the belt 18 is moving at a similar speed during push-off and landing of the user on the belt 18, in some embodiments, the PD controller 82 may be configured to output a target acceleration of zero when user is in flight phase.


Additionally or alternatively, the nonlinear controller 72 may be configured to help improve the ease with which a user is able to seamlessly modify (increase or decrease) their pace, without experiencing undesirable speed fluctuations by the belt 18, even when the treadmill 10 is operating in Free Run mode. When the treadmill 10 is operating in Free Run mode, if the user wants to increase or decrease their current pace, the user must briefly subceed or exceed their new desired pace because, after the user moves in front or behind the target position and then returns to the target position (where the belt speed will stabilize) the speed will change again. The resulting under/overshoot effect is illustrated in FIG. 10, which depicts the belt speed 86, the user's desired pace 88, and the periods of unwanted belt speed change 90 when the user returns to the target position. The under/overshoot effect that occurs during changes of pace in Free Run mode are mainly caused by the derivative control term, (Kd·d error/dt), in the target acceleration calculation performed by the PD controller 82. Therefore, to prevent undesirable speed fluctuations by the belt 18 when the user changes their desired pace, the target acceleration output by the PD controller 82 may be limited during the time when the user is returning to the target position after initiating a desired change of pace. For example, to prevent undesirable speed fluctuations by the belt 18 when the user changes their desired pace, the derivative gain constant may be set to zero (i.e., Kd=0) for a predetermined time after the user increases their pace.


When included in the target speed calculator 52, the torque controller 76 may help improve the robustness and responsiveness of the free run module 46, for example, by accounting for the torque applied by the user to the belt 18 and the motor 20 when calculating the target acceleration. The control objective of the torque controller 76 is to maintain a constant (low) setpoint torque during the user's push-off phase. To accomplish this, the torque controller 76 helps maintain the motor torque close to the setpoint torque by accelerating the belt 18 when the user applies a force to the belt 18 that would result in a motor torque below the setpoint torque. The torque controller 76 receives data including the setpoint torque, for example, from the motor controller 40, and the actual motor torque, for example, from the torque sensor 36, and outputs a target acceleration for the belt 18 that is calculated to maintain the motor torque close to the setpoint torque (e.g., as determined by the motor controller 40).


In aspects where the target speed calculator 52 includes the torque controller 76, the maximum calculator 78 compares the target acceleration generated by the nonlinear controller 72 and the torque controller 76 and outputs the maximum value of the target acceleration calculated by the nonlinear controller 72 and the torque controller 76 to the integrator 74.


The integrator 74 calculates the adjusted target speed of the belt 18 by integrating the target acceleration generated by the nonlinear controller 72 (or by the torque calculator 76) over time to obtain the change in target speed and adding the change in target speed to the previous target speed, as shown in the following equation (7):










adjused


target


speed


=



previous


target


speed


+




0


t




target



acceleration

·

dt








(
7
)







where t is the variable of integration. The previous target speed may be the speed initially set by the user (e.g., using the user console 26) or may be the adjusted target speed previously calculated by the integrator 74, for example, and saved in memory. In aspects, the previous target speed may be obtained from the GAS module 47 (described below).


With reference to FIG. 11, the safety monitor 56 is an independent safety module integrated with the other functions of the free run module 46. The safety monitor 56 analyzes data received and generated by the free run module 46 to identify circumstances when initialization of Free Run mode should be prevented and, if the treadmill 10 is currently operating in Free Run mode, to identify circumstances when Free Run mode should be disabled. The safety monitor 56 may include an initializer 92, a time out detector 94, an idle detector 96, a speed validator 98, an acceleration validator 100, and an inaccurate TOF distance detector 102.


The initializer 92 is configured to function as an initial check prior to initiating operation of the treadmill 10 in Free Run mode. For example, the initializer 92 may receive a measurement of the TOF distance from the distance sensor 34 via the signal preprocessor 50 and compare the measured TOF distance to a range of valid TOF distances. If the initializer 92 determines that the measured TOF distance is valid, the initializer 92 will not interfere with the target speed send to the limiter and arbitrator 54 by the free run module 46 and may output a signal to the limiter and arbitrator 54 that Free Run mode is authorized. On the other hand, if the initializer 92 determines that the measured TOF distance is invalid, the initializer 92 may output a signal to the limiter and arbitrator 54 to prevent implementation of Free Run mode.


The time out detector 94 is configured to receive information regarding the TOF distance signal recovery time from the signal recovery module 60 and to compare the TOF distance signal recovery time to a predetermined allowable recovery time. As described above, signal recovery is enabled when the TOF signal has invalid data. If the TOF distance signal recovery time exceeds the allowable recovery time, the time out detector 94 is configured to output a signal to the limiter and arbitrator 54 that Free Run mode is not permitted. For example, the time out detector 94 may determine that Free Run mode is not permitted and should be terminated when the TOF distance signal recovery time is greater than 1 second.


The idle detector 96 is configured to receive information regarding the actual speed of the belt 18 (e.g., from the speed sensor 39) and to determine when the actual speed of the belt 18 has been zero for more than a preset duration, e.g., 3 seconds. When Free Run mode is active and the idle detector 96 determines that the actual speed of the belt 18 has been zero for more than the preset duration, the idle detector 96 is configured to output a signal to the limiter and arbitrator 54 that Free Run mode is not permitted and should be terminated.


The speed validator 98 is configured to receive information regarding the actual speed of the belt 18 (e.g., from the speed sensor 39) and to determine when the actual speed of the belt 18 is below a predefined threshold, e.g., below 1.35 meters per second (m/s) (equivalent to a pace of about 20 minutes per mile). If the speed validator 98 determines that the actual speed of the belt 18 is below the predefined threshold speed for Free Run mode operation, the speed validator 98 is configured to output a signal to the limiter and arbitrator 54 that Free Run mode is not permitted. As such, prior to initiating Free Run mode, an input speed that is greater than or equal to the predefined threshold speed must be received from the user console 26 or the auxiliary device 44 and implemented by the main controller 32 before the treadmill 10 can being operating in Free Run mode.


The acceleration validator 100 is configured to validate instructions from the free run module 46 that would increase or decrease the target speed of the belt 18 prior to implementing a speed change commanded by the free run module 46. To accomplish this, the acceleration validator 100 receives information regarding the adjusted target speed (from the target speed calculator 52), the actual speed of the belt 18 (e.g., from the speed sensor 39), and the motor torque (e.g., from the torque sensor 36 via the signal preprocessor 50) and determines whether increases or decreases in the target speed of the belt 18 commanded by the target speed calculator 52 are accompanied by a corresponding increase or decrease in motor torque. The motor torque can be used to validate increases or decreases in the target speed of the belt 18 commanded by the target speed calculator 52 because an increase or decrease in the speed the user is walking or running on the treadmill 10 should also be accompanied by a corresponding increase or decrease in the torque generated by the motor 20. If an increase or decrease in the target speed of the belt 18 is accompanied by a corresponding increase or decrease in motor torque, then the acceleration validator 100 is configured to permit the increase or decrease in the target speed of the belt 18. Alternatively, if an increase or decrease in the target speed of the belt 18 commanded by the target speed calculator 52 is not accompanied by a corresponding increase or decrease in motor torque, then the acceleration validator 100 is configured to output a signal to the limiter and arbitrator 54 to limit the change in target speed commanded by the target speed calculator 52.


The inaccurate TOF distance detector 102 is configured to analyze the TOF distance (e.g., from the distance sensor 34 via the signal preprocessor 50) and identify instances when then TOF distance may be inaccurate. For example, the inaccurate TOF distance detector 102 may be configured to analyze the TOF distance and identify relatively large and rapid changes in the TOF distance that are likely unrelated to the user's intention to increase the speed of the belt 18. For example, the distance sensor 34 may be briefly obstructed by the user's arm swing and, as a result, the target speed calculator 52 may incorrectly translate the change in TOF distance as an increase or decrease in target speed. To prevent such unintentional speed changes, the inaccurate TOF distance detector 102 may prevent increases or decreases in target speed when such increases or decreases are the result of relatively large and rapid changes in TOF distance. For example, if an increase or decrease in the target speed of the belt 18 results from two consecutive TOF distance measurements with a difference of greater than 0.1 meter, then the inaccurate TOF distance detector 102 may be configured to output a signal to the limiter and arbitrator 54 to limit the change in target speed commanded by the target speed calculator 52. As another example, the inaccurate TOF distance detector 102 may be configured to identify circumstances when the distance sensor 34 is blocked, for example, if the TOF distance output by the distance sensor 34 has been less than 10 centimeters (cm) for greater than or equal to 0.5 seconds, the inaccurate TOF distance detector 102 may be configured to output a signal to the limiter and arbitrator 54 to limit or withhold the change in target speed commanded by the target speed calculator 52.


Although not shown in FIG. 11, the safety monitor 52 may be configured to analyze additional data received and/or generated by the free run module 46 to identify additional circumstances when Free Run mode should not be initiated, should be disabled, or should be limited, and/or to identify circumstances when the overall operation of the treadmill 10 should be terminated. For example, to ensure that the treadmill 10 will not operate unless a user is on the belt 18, the safety monitor 52 may instruct the limiter and arbitrator 54 to disable or prevent initiation of Free Run mode and/or to stop the belt 18 if the TOF distance signal indicates that a user is not on the belt 18. If the safety monitor 52 determines that a user is not on the belt 18 and the belt 18 is currently moving, the speed of the belt 18 may be gradually decreased prior to stopping. As another example, to ensure that the treadmill will stop when a user stops running or walking, the safety monitor 52 may be configured to disable Free Run mode gradually stop the belt 18, when changes to the motor torque that would normally be present due to the user's cadence are not detected. As yet another example, to ensure that a ball or small object cannot be pulled under the treadmill 10 from the rear end 16 of the base 12, the safety monitor 52 may be configured to terminate operation of the treadmill 10 when an unexpected drag resistance increase is detected, for example, in the motor torque signal. As another example, to ensure that the treadmill 10 will stop when the user is tripping, the safety monitor 52 may be configured to terminate operation of the treadmill 10 when an unexpected high impact force is detected on the belt 18. Yet another example, the safety monitor 52 may be configured to initiate a display on the user console 26 or to initiate a warning sound when the rear end 16 of the base 12 is too close to another object, e.g., a wall. For example, the safety monitor 52 may determine that the treadmill is too close to another object if the TOF distance is greater than 1.1 meters for greater than or equal to 5 seconds.


Yet another example, the safety monitor 52 may be configured to identify circumstances where the user is unable to keep up with the speed of the belt 18, for example, by identifying situations where the TOF distance of the user is too large, meaning that the user is too close to the rear end 16 of the base 12. In such case, the safety monitor 52 may be configured to disable Free Run mode and stop the belt when the TOF distance is greater than a definite value, which may be based on the tilt angle α of the base 12. In aspects where the base 12 of the treadmill 10 is level and the tilt angle α is zero, the safety monitor 52 may be configured to disable Free Run mode and stop the belt when the TOF distance is greater than or equal to about 1 meter. When the tilt angle α is not zero, the safety monitor 52 may be configured to disable Free Run mode and stop the belt when the TOF distance is greater than or equal to a user out of range distance calculated by the following equation (8):










user


out


of


range


distance


=


1

-


h


tan



α

·

0.5







(
8
)







where h is the height of the distance sensor 34 from the belt 18 in meters (e.g., 0.935 meters) and a is the tilt angle of the base 12 in radians.


With reference to FIG. 12, the limiter and arbitrator 54 is an independent safety module that is configured to ensure that the free run module 46 outputs a safe adjusted target speed for the belt 18 and includes a speed limiter 104, a rate limiter 106, and an arbitrator 108.


The speed limiter 104 receives the adjusted target speed from the free run module 46 and limits the adjusted target speed output from the free run module 46 if the adjusted target speed is above or below certain predefined values. For example, the speed limiter 104 may limit the adjusted target speed to values greater than or equal to 0 km/h and less than or equal to 24.1 km/h, or optionally less than or equal to 17.5 km/h.


The rate limiter 106 limits changes in the target speed of the belt 18 that would result in rapid accelerations or decelerations of the belt 18. For example, the rate limiter 106 may adjust the adjusted target speed of the belt 18 so that, in comparison to the previous target speed of the belt 18, the adjusted target speed generated by the free run module 46 will not result in an acceleration of greater than or equal to 0.879 meters per second squared (m/s2) and will not result in a deceleration of greater than or equal to 2.6 m/s2, or optionally greater than or equal to 1.4 m/s2. If the rate limiter 106 receives a signal from the safety monitor 52 that the adjusted target speed should be limited, the rate limiter 106 may adjust the adjusted target speed so that the adjusted target speed output by the free run module 46 will not result in an acceleration or a deceleration greater than a predefined value, for example, greater than or equal to 0.25 m/s2.


The arbitrator 108 is the final check for before the adjusted target speed generated by the free run module 46 is used by the main controller 32 to adjust the target speed of the belt 18 output to the motor controller 40. If the arbitrator 108 receives a signal from the safety monitor 52 that Free Run mode is not permitted, the arbitrator 108 may output a signal to stop Free Run mode or the arbitrator 108 may output an adjusted target speed of zero meters per second (m/s). If the arbitrator 108 receives a signal from the safety monitor 52 that Free Run mode is not permitted and the belt 18 is currently moving, the arbitrator 108 may withhold any changes in the target speed of the belt 18. Alternatively, if the belt 18 is currently moving and the arbitrator 108 outputs an adjusted target speed of zero m/s, the main controller 32 may control the speed of the belt 18 so that it is gradually stopped.


After successfully passing the limiter and arbitrator 54, the adjusted target speed generated by the free run module 46 may be output by the main controller 32 as the target speed to the motor controller 40. In other embodiments, the adjusted target speed generated by the free run module 46 may be output to the GAS module 47 (FIG. 15).


Referring now to FIG. 13, when the tilt angle α of the belt 18 is non-zero, i.e., when the belt 18 is at an incline with respect to the horizontal plane 48, the GAS module 47 of the main controller 32 is configured to automatically control the target speed of the belt 18 so that the perceived effort of the user on the treadmill 10 is the same as if the tilt angle α of the belt 18 were zero. As such, in response to a change in the tilt angle α of the belt 18, the GAS module 47 is configured to automatically generate a grade adjusted speed for the belt 18 that is calculated to help ensure that the perceived effort of the user on the treadmill 10 remains constant. In the embodiment shown in FIG. 13, the speed and tilt angle α of the belt 18 are input from the user console 26 and/or the auxiliary device 44 and adjustments are automatically made to the target speed of the belt 18 by the GAS module 47. In the embodiment shown in FIG. 13, the free run module 46 is not used and the treadmill 10 is not operating in Free Run mode.


The function of the GAS module 47 is based on the observation that, when walking or running outdoors, a person will typically react to changes in grade by adjusting their pace. For example, when grade increases, to maintain the same effort, a person typically must reduce their speed, and vice versa. In response to a change in the tilt angle α of the belt 18, the GAS module 47 is configured to automatically generate a grade adjusted speed for the belt 18 that is calculated to mimic a person's natural adjustment to their pace when reacting to grade changes when walking or running outdoors. Some sports devices and companion apps may use a grade adjusted pace (GAP) model to gauge the effort level of a user's running activity. Existing GAP models are designed to calculate the equivalent pace that a runner would achieve with the same effort when running on flat ground instead of at a gradient and are traditionally based on an assessment of the metabolic energy cost of running at different gradients or equivalent heart rates. Instead of assessing the user's effort level, the GAS module 47 is configured to control the target speed of the belt 18 such that the effort of the user of the treadmill 10 remains generally constant, even when the tilt angle α of the belt 18 changes.


The GAS module 47 includes a signal filter 128, a GAS calculator 110, an inversed GAS calculator 112, and a summation module 120. In response to a change in the actual tilt angle α of the base 12 and thus of the belt 18, the GAS calculator 110 is configured to calculate a grade adjusted speed for the belt 18 that is used by the main controller 32 in determining the target speed for the belt 18 output to the motor controller 40. Because changes to the target tilt angle α of the belt 18 may not be implemented by the linear actuator 29 instantaneously, the grade adjusted speed calculated by the GAS calculator 110 is based on the current or actual tilt angle α of the belt 18 as sensed or determined by the tilt sensor 38 or by another component of the control system 30.


The signal filter 128 filters the data in the actual tilt angle α signal generated, for example, by the tilt sensor 38 to reduce signal noise prior to passing the actual tilt angle α to the GAS calculator 110. In aspects, the signal filter 128 may be a first order Butterworth filter 64 with a 2.0 Hz cutoff frequency. In aspects, the signal filter 128 may be part of or integrated with the signal preprocessor 50 of the free run module 46.


The GAS calculator 110 receives the filtered tilt angle α signal from the signal filter 128 and calculates the grade adjusted speed for the belt 18. Referring now to FIG. 14, the GAS calculator 110 may include a limiter 114, a GAS factor calculator 116, and a grade adjusted speed calculator 118. The limiter 114 may receive the value of the actual tilt angle α of the base 12, for example, from the tilt sensor 38, and convert the tilt angle α in radians to a gradient or grade expressed as a percentage according to equation (9):









gradient

=


tan



α

·

100







(
9
)







where α is the actual tilt angle of the base 12 (and thus of the belt 18) in radians.


In aspects, the limiter 114 may limit the value of the gradient output to the GAS factor calculator 116 to a predefined gradient limit. For example, the limiter 114 may limit the gradient output to the GAS factor calculator 116 to values greater than 0% and less than or equal to 10%.


The GAS factor calculator 116 receives the gradient calculated by the limiter 114 (or the value of the predefined gradient limit, whichever is greater) and uses the gradient to calculate a GAS factor that can be applied to the target speed to generate a grade adjusted speed for the belt 18 that is formulated to maintain the user of the treadmill 10 at substantially the same effort level. In embodiments, the GAS factor calculator 116 may calculate the GAS factor using equation (10), (11), or (12). As shown by equation (10), when the gradient is less than zero (0), the GAS factor is equal to one (1). When the gradient is greater than or equal to 0 and less than or equal to 10, the GAS factor is calculated according to equation (11). When the gradient is greater than 10, the GAS factor is calculated according to equation (12):










G

A

S


factor



(

gradient

<

0

)



=

1




(
10
)













G

A

S


factor



(

0



gradient



10

)



=



a

·


gradient
2



+


b

·

gradient


+

1





(
11
)













G

A

S



factor





(

gradient

>

10

)



=



a

·


10
2



+


b

·

10


+

1





(
12
)







where the gradient is calculated according to equation (9) and expressed as a percentage, 0.001≤a≤0.002, and 0.01≤b≤0.03. In aspects, 0.0014≤a≤0.0015, or optionally 0.00141≤a≤0.00143, In aspects, 0.015≤b≤0.025, or optionally 0.0195≤b≤0.02. In aspects, a=0.00142019 and b=0.0199205.


In other embodiments, the GAS factor calculator 116 may use a different formula to calculate the GAS factor. Other methods for calculating the GAS factor may be similar to known methods for calculating a runner's grade adjusted pace. One such method is described in U.S. Pat. No. 11,623,121 B1 entitled Using aggregate activity data to generate a grade adjusted pace model. Other methods of calculating the GAS factor also may be used. However, the inventors of the present disclosure have discovered that, when the GAS factor is calculated using equation (10), (11), or (12), the grade adjusted speed output by the GAS module 47 results in an adjustment to the target speed of the belt 18 that helps maintain the user at a constant effort level, without being disruptive or distracting to the user, which helps improve the overall experience and enjoyment of the user of the treadmill 10.


The grade adjusted speed calculator 118 receives the target speed of the belt 18 and the value of the GAS factor calculated by the GAS factor calculator 116 and calculates the adjusted target speed according to equation (13).










grade


adjusted


speed


=


target


speed


G

A

S


factor






(
13
)







where target speed is the target speed of the belt 18 that would otherwise be output to the motor controller 40 absent the GAS module 47 and is equal to the speed the belt 18 would be controlled to move if the tilt angle α of the base 12 were zero. In response to a change in the current tilt angle α of the base 12, the target speed in equation (13) initially will be the previous target speed of the belt 18 before the change in the tilt angle α of the base 12 occurred.


The inversed GAS calculator 112 is configured to ensure that the grade adjusted speed calculated by the GAS module 47 is based on a value of the target speed that would be output to the motor controller 40 without consideration for the user's grade adjusted pace, i.e., if the main controller 32 did not include the GAS module 47 or the tilt angle α of the base 12 were zero. This ensures that the GAS calculator 110 does not apply the GAS factor to a target speed value that is already based on a grade adjusted speed calculated by the GAS factor calculator 116, which would result in an inaccurate adjustment of the user's grade adjusted pace. To accomplish this, the inversed GAS calculator 112 receives the grade adjusted speed from the GAS calculator 110 and reverses the calculations performed by the GAS calculator 110 to obtain an unadjusted target speed of the belt 18. Specifically, the inversed GAS calculator 112 receives the grade adjusted speed from the GAS calculator 110 and calculates the unadjusted target speed of the belt 18 according to the following equation (14):










unadjusted


target


speed


=


grade


adjusted



speed

·

G


A

S


factor





(
14
)







where the GAS factor is the GAS factor previously calculated by the GAS factor calculator 116 of the GAS calculator 110. Then, the inversed GAS calculator 112 either returns the unadjusted target speed calculated by equation (14) to the summation module 120 (FIG. 13) or to the free run module 46 as the previous target speed (FIG. 15) (when the GAS module 47 is used in combination with the free run module 46). The summation module 120 is only used when the treadmill 10 is not operating in Free Run mode. The summation module 120 is configured to receive a signal indicative of any changes in the target speed of the belt 18 subsequent to the previously calculated value for the grade adjusted speed and to output a value for the target speed that can be used by the GAS calculator 110 to calculate the grade adjusted speed according to equation (13).


As shown in FIG. 14, for safety reasons, in some embodiments, the GAS calculator 110 optionally may include a GAS factor scaler 130, which may apply a GAS factor gain to the GAS factor when calculating the grade adjusted speed for the belt 18. The GAS factor gain may be configured so that the GAS module 47 will adjust the target speed of the belt 18 in response to increases in the tilt angle α of the base 12 but will not adjust the target speed in response to decreases in the tilt angle α of the base 12. For example, to prevent unexpected increases in the speed of the belt 18, it may be desirable to prevent adjustments to the target speed in response to decreases in the target tilt angle α of the base 12 based on input from the auxiliary device 44. In such case, the GAS factor scaler 130 of the GAS calculator 110 may calculate the grade adjusted speed for the belt 18 according to the following equations (15) and (16):










grade


adjusted


speed


=



target


speed


scaled






G

A

S


factor






(
15
)













scaled


G

A

S






factor


=





(


G

A

S






factor


-

1

)


·

G


A

S


factor


gain


+

1





(
16
)







where the GAS factor is calculated according to equation (10), (11), or (12), the GAS factor gain is a value greater than or equal to 0 and less than or equal to 1, and the scaled GAS factor depends on the tilt direction. A GAS factor gain of 1 allows the target speed by the GAS module 47 to be adjusted by the full value of the GAS factor and a GAS factor gain of 0 results in no adjustment to the target speed. For example, the GAS factor gain may be set to 1 in situations where the adjusted target speed results from an increase in the tilt angle α of the base 12. On the other hand, the GAS factor gain may be set to 0 in situations where the adjusted target speed results from a decrease in the tilt angle α of the base 12.


In situations where a GAS factor gain is applied to the GAS factor when calculating the grade adjusted speed, the inversed GAS calculator 112 may calculate the unadjusted target speed of the belt 18 according to the following equations (17) and (18):










unadjusted


target



speed
(

k

-

1

)



=


grade


adjusted




speed
(

k

-

1

)


·

G


A

S



factor
(

k
-
1

)






(
17
)








unadjusted target speed(k−1)=grade adjusted speed(k−1)·GAS factor(k)  (18)


where k is the current sample of the discrete signal, k−1 is the previous sample corresponding to a one-sample-period delay in the discrete signal. Equation (17) is used in situations where no change in the direction of the tilt angle α occurred between k and k−1. Equation (18) is used in situations where a change in the direction of the tilt angle α occurred between k and k−1.



FIG. 15 depicts an embodiment in which the main controller 32 is configured to automatically adjust the target speed of the belt 18 based on the adjusted target speed calculated by the free run module 46 and by the grade adjusted speed calculated by the GAS module 47. In the embodiment shown in FIG. 15, the free run module 46 and the GAS module 47 operate simultaneously and their functionality is integrated. In such case, to ensure that the GAS calculator 110 does not apply the GAS factor to a target speed that is already based on a grade adjusted speed calculated by the GAS factor calculator 116, the unadjusted target speed calculated by the inversed GAS calculator 112 is used by the integrator 74 of the free run module 46 as the previous target speed (FIG. 6). In addition, in aspects where the GAS module 47 is used in combination with the free run module 46, the target speed calculator 52 of the free run module 46 may include a GAS correction module 132. The GAS correction module 132 is configured to multiply the target acceleration calculated by the nonlinear controller 72 by the GAP factor calculated by the GAS factor calculator 116 according to equation (9), (10), or (11). When the GAS module 47 is used in combination with the free run module 46, the GAS correction module 132 ensures that the target acceleration used by the integrator 74 to calculate the adjusted target speed does not already contain an adjustment applied by the GAP module 47.



FIG. 16 depicts the forces exerted on a subject while running up an incline. A difference between overground running and treadmill running is that in overground running, the user experiences inertial forces due to their body weight and acceleration with respect to the world. In treadmill running, the acceleration of the user's center-of-mass is practically zero and hence inertial forces are negligible. Inertial forces are apparent in overground running on hills, e.g. when a runner transitions from flat ground into a hill, their weight “carries” them up the hill initially until a steady state pace is achieved.


Referring now to FIG. 17, the main controller 32, via the simulated inertia module 49, is configured to automatically adjust the tilt angle α of the base 12 in a manner that is calculated to simulate to the user of the treadmill 10 the inertial forces that they would experience if they were running or walking overground by adjusting the target tilt angle α of the belt 18. For example, in the above example where inertial force “carries” a runner up a hill, the target tilt angle α of the belt 18 may be increased slowly in response to increases in the input tilt angle α received from the user console 26 and/or the auxiliary device 44 to simulate an easier transition to the increased grade. As another example, the main controller 32, via the simulated inertia module 49, may be configured to simulate the inertia a user would experience during grade changes when walking or running overground by adjusting the target tilt angle α of the belt 18, which may enhance the user's experience during speed transitions, particularly in structured workouts. For instance, increasing the target tilt angle α of the belt 18 when the user accelerates mimics inertial forces, while decreasing the target tilt angle α of the belt 18 when the user decelerates simulates braking forces, adding a realistic dynamic feel to the workout. The main controller 32 may implement the simulated inertia module 49 independently or in combination with the free run module 46 and/or the GAS module 47.


The simulated inertia module 49 may include an acceleration calculator 122 and an adjusted grade calculator 124. The acceleration calculator 122 is configured to calculate the user's acceleration a by calculating the time derivative of the target speed of the belt 18 according to the following equation (19):









acceleration

=



d

v

dt





(
19
)







where v is the target speed of the belt 18 and dt is the change in time. The target speed of the belt 18 may be the input speed of the belt from the user console 26 or the auxiliary device 44, or the target speed may be the adjusted target speed calculated by the free run module 46 or the grade adjusted speed calculated by the GAS module 47.


The adjusted grade calculator 124 is configured to calculate an adjusted tilt angle α for the base 12 in response to changes in the target speed of the belt 18 according to the following equations (20), (21), (22), (23), and (24):










grade


force


=




-
m


·

g

·

sin



(
grade
)






(
20
)













acceleration


force


=


m
·

a





(
21
)













adjusted


grade


force


=



grade


force


-


acceleration


force






(
22
)













adjusted


grade


force


=



-
m


·

g
·


sin

(

adjusted


grade

)






(
23
)













adjusted


grade


=


grade

+


a
g






(
24
)







where grade is the target tilt angle α of the base 12 in radians, the grade force is the force exerted on the user in Newtons, m is the mass of the user, g is the gravitational acceleration constant (i.e., 9.8 m/s2), a is the user's acceleration calculated by the acceleration calculator 122, and the adjusted grade is the adjusted tilt angle α of the base 12 calculated in radians.


The adjusted tilt angle α of the base 12 calculated by the adjusted grade calculator 124 may be used by the main controller 32 in determining the target tilt angle α to output to the linear actuator controller 42. In aspects, the main controller 32 will output the adjusted tilt angle α calculated by the adjusted grade calculator 124 as the target tilt angle α to the linear actuator controller 42, and the linear actuator controller 42 will control movement of the linear actuator 29 and thus of the belt 18 so that the belt 18 is tilted at the target tilt angle α.


In aspects, the adjusted tilt angle α of the base 12 calculated by the simulated inertia module 49 may be scaled based on the time derivative of the target tilt angle α, allowing its magnitude to be reduced or fully disabled as needed. For example, it may be preferable to prevent implementation of the simulated inertia module 49 when the target tilt angle α of the base 12 remains constant, even if the user's speed changes.


Because it takes time to change the actual tilt angle α of the base 12 after a commanded change in the target tilt angle α, changes to the actual tilt angle α of the base 12 implemented by the simulated inertia module 49 may take too long to implement in response to the acceleration dynamics of the user, for example, because the user may accelerate or decelerate very quickly. Therefore, to ensure that changes in the actual tilt angle α of the base 12 implemented by the simulated inertia module 49 effectively coincide with the acceleration dynamics of the user, changes to the target tilt angle α of the base 12 implemented by the simulated inertia module 49 may be limited to a maximum of ±2 percent grade. This may help ensure that the effects of the simulated inertia module 49 are in sync with the user's acceleration dynamics.


The control techniques described herein may be implemented by one or more computer programs executed by one or more processors of the main controller 32. The computer programs include processor-executable instructions that are stored on a non-transitory tangible computer readable medium. The computer programs may also include stored data. Non-limiting examples of the non-transitory tangible computer readable medium are nonvolatile memory, magnetic storage, and optical storage.


Some portions of the above description present the techniques described herein in terms of algorithms and symbolic representations of operations on information. These algorithmic descriptions and representations are the means used by those skilled in the data processing arts to most effectively convey the substance of their work to others skilled in the art. These operations, while described functionally or logically, are understood to be implemented by computer programs. Furthermore, it has also proven convenient at times to refer to these arrangements of operations as modules or by functional names, without loss of generality.


Unless specifically stated otherwise as apparent from the above discussion, it is appreciated that throughout the description, discussions utilizing terms such as “processing” or “computing” or “calculating” or “determining” or “displaying” or the like, refer to the action and processes of a computer system, or similar electronic computing device, that manipulates and transforms data represented as physical (electronic) quantities within the computer system memories or registers or other such information storage, transmission or display devices.


Certain aspects of the described techniques include process steps and instructions described herein in the form of an algorithm. It should be noted that the described process steps and instructions could be embodied in software, firmware or hardware, and when embodied in software, could be downloaded to reside on and be operated from different platforms used by real time network operating systems.


The present disclosure also relates to an apparatus for performing the operations herein. This apparatus may be specially constructed for the required purposes, or it may comprise a computer selectively activated or reconfigured by a computer program stored on a computer readable medium that can be accessed by the computer. Such a computer program may be stored in a tangible computer readable storage medium, such as, but is not limited to, any type of disk including floppy disks, optical disks, CD-ROMs, magnetic-optical disks, read-only memories (ROMs), random access memories (RAMs), EPROMs, EEPROMs, magnetic or optical cards, application specific integrated circuits (ASICs), or any type of media suitable for storing electronic instructions, and each coupled to a computer system bus. Furthermore, the computers referred to in the specification may include a single processor or may be architectures employing multiple processor designs for increased computing capability.


The foregoing description of the embodiments has been provided for purposes of illustration and description. It is not intended to be exhaustive or to limit the disclosure. Individual elements or features of a particular embodiment are generally not limited to that particular embodiment, but, where applicable, are interchangeable and can be used in a selected embodiment, even if not specifically shown or described. The same may also be varied in many ways. Such variations are not to be regarded as a departure from the disclosure, and all such modifications are intended to be included within the scope of the disclosure.

Claims
  • 1. A treadmill comprising: a moveable belt; anda controller configured to: cause the belt to move in accordance with a target speed,receive information indicative of a current gradient of the belt, andautomatically adjust the value of the target speed in dependence on the current gradient of the belt.
  • 2. The treadmill of claim 1, wherein the controller is configured to receive an input speed for the belt and to automatically adjust the value of the target speed in dependence on the input speed and the current gradient of the belt.
  • 3. The treadmill of claim 2, wherein the controller is configured such that, when the current gradient of the belt is greater than zero, the controller is configured to automatically adjust the value of the target speed such that the target speed is less than the input speed.
  • 4. The treadmill of claim 3, wherein the controller is configured such that, when the current gradient of the belt is zero, the controller is configured to automatically set the target speed equal to the input speed.
  • 5. The treadmill of claim 3, wherein the controller is configured such that, when the current gradient of the belt is less than zero, the controller is configured to automatically set the target speed equal to the input speed.
  • 6. The treadmill of claim 2, wherein the controller is configured to receive information indicative of a change in the input speed and to automatically adjust the target speed in dependence on the input speed, the change in the input speed, and the current gradient of the belt.
  • 7. The treadmill of claim 1, further comprising: a motor,wherein the belt is driven by the motor, andwherein the controller is configured to cause the motor to generate torque as required to cause the belt to move in accordance with the target speed.
  • 8. The treadmill of claim 1, wherein the controller is configured to receive an input gradient for the belt and to cause the belt to move from a first position to a second position in which the belt is tilted at the input gradient.
  • 9. The treadmill of claim 8, further comprising: a tilt sensor configured to sense the current gradient of the belt,wherein the controller is configured to receive information indicative of the current gradient of the belt from the tilt sensor, andwherein the controller is configured to automatically adjust the value of the target speed in dependence on the current gradient of the belt, even when the current gradient of the belt is different from the input tilt angle.
  • 10. The treadmill of claim 8, further comprising: a linear actuator,wherein the controller is configured to cause the linear actuator to extend or retract as required to move the belt from the first position to the second position.
  • 11. The treadmill of claim 1, wherein the controller is configured compare the current gradient of the belt to a predefined gradient limit and to automatically adjust the value of the target speed in dependence on the lowest value of the current gradient and the predefined gradient limit.
  • 12. The treadmill of claim 1, wherein the controller is configured to automatically adjust the value of the target speed by dividing the target speed by a grade adjusted speed (GAS) factor, wherein, when the current gradient of the belt is greater than or equal to 0% and less than or equal to 10%, the GAS factor is calculated according to the following equation:
  • 13. The treadmill of claim 1, wherein the controller is further configured to automatically adjust the value of the target speed in dependence on a distance of a user on the treadmill from a predefined target position on the treadmill.
  • 14. The treadmill of claim 1, wherein the controller is configured to: cause the belt to move to a position in which the belt is tilted at a target gradient, andautomatically adjust the value of the target gradient in dependence on the time derivative of the target speed of the belt and the gravitational acceleration constant.
  • 15. A treadmill comprising: a moveable belt; anda controller configured to cause the belt to move in accordance with a target speed and a target gradient and to receive information indicative of a current gradient of the belt, the controller comprising a grade adjusted speed (GAS) module configured to calculate a grade adjusted speed for the belt in dependence on the current gradient of the belt and the target speed of the belt, the controller being configured to automatically adjust the target speed of the belt in dependence on the grade adjusted speed calculated by the GAS module.
  • 16. The treadmill of claim 15, wherein the controller further comprises a free run module configured to calculate an adjusted target speed for the belt in dependence on a previous target speed of the belt and a distance of a user on the treadmill from a predefined target position on the treadmill, wherein the GAS module is configured to calculate a grade adjusted speed for the belt in dependence on the current gradient of the belt and the adjusted target speed for the belt, and wherein the controller is configured to automatically adjust the target speed of the belt in dependence on the adjusted target speed calculated by the free run module and the grade adjusted speed calculated by the GAS module.
  • 17. The treadmill of claim 15, wherein the controller further comprises a simulated inertial module configured to calculate an adjusted gradient angle for the belt in dependence on the time derivative of the target speed, the gravitational acceleration constant, and the target speed or the grade adjusted speed for the belt, and wherein the controller is configured to automatically adjust the target gradient of the belt in dependence on the adjusted target gradient calculated by the simulated inertial module.
  • 18. A computer-implemented method for controlling a treadmill, the method comprising: driving, by a controller, a motor of the treadmill in accordance with a target speed, the motor being operatively coupled to a moveable belt of the treadmill;receiving, by the controller, a change in a gradient of the belt;computing, by the controller, an adjusted value for the target speed of the motor based on the change in the gradient of the belt; andautomatically adjusting, by the controller, the target speed of the motor in accordance with the adjusted value for the target speed.
CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. Provisional Application No. 63/623,004, filed on Jan. 19, 2024.

Provisional Applications (1)
Number Date Country
63623004 Jan 2024 US