Critical power adaptive training with varying parameters

文档序号:1009413 发布日期:2020-10-23 浏览:10次 中文

阅读说明:本技术 具有变化的参数的临界功率自适应训练 (Critical power adaptive training with varying parameters ) 是由 约书亚·S·史密斯 于 2018-12-12 设计创作,主要内容包括:自适应训练系统可以确定有限做功能力和临界功率,并使用这些确定结果生成锻炼参数的自适应训练程序。为了确定有限做功能力和临界功率,自适应训练系统可以接收锻炼数据;通过为每次锻炼确定在多个时间窗口尺寸中的每一个完成的最大做功量来生成数据点;将这些锻炼数据点拟合至函数;并基于拟合函数确定临界功率和有限做功能力。一旦自适应训练系统确定了关键能力和有限做功能力,自适应训练系统就可以通过将一组锻炼参数所定义的函数保持在基于临界功率和有限做功能力的能力函数以下来使用它们来生成自适应训练程序。(The adaptive training system may determine limited work capacity and critical power and use these determinations to generate an adaptive training program of exercise parameters. To determine limited work capacity and critical power, the adaptive training system may receive exercise data; generating a data point by determining a maximum amount of work done at each of a plurality of time window sizes for each workout; fitting the exercise data points to a function; and determining the critical power and the limited work capacity based on the fitting function. Once the adaptive training system determines the critical capacity and limited work capacity, the adaptive training system may use functions defined by a set of exercise parameters to generate an adaptive training program by keeping them below a capacity function based on the critical power and limited work capacity.)

1. An exercise machine system for automatically providing an adaptive training program, the system comprising:

an exercise device that implements a particular type of workout having given parameters;

an instrument system integrated with the exercise machine that obtains a measurement indicative of power output; and

a processing component configured to generate the adaptive training program by:

within the measurement representing power output, a work value for each particular window size of a plurality of window size durations is determined by:

determining a maximum integral of a function specified by the measurement indicative of power output for an interval matching the particular window size;

fitting a function to the determined work value as a capability function;

applying the given parameter and at least one additional parameter to an exercise function defined for the workout of the particular type such that a value of the exercise function does not exceed a value of the competency function at any time during the duration of the workout; and

generating the adaptive training program using the given parameter and at least one additional parameter;

wherein the output or settings of the exercise device are automatically provided based on the adaptive training program.

2. The exercise machine system of claim 1,

wherein the exercise machine system further comprises a plurality of exercise machines connected via a network; and

wherein fitting a function to the work done values determined for a plurality of window size durations further comprises fitting the function to additional work done values determined for the plurality of window size durations based on a measurement representative of a power output taken on one of the networked exercise machines other than the exercise device.

3. The exercise machine system of claim 2, wherein fitting the function to the work value and the additional work value comprises:

for each particular window size, selecting a maximum of the work value and the additional work value corresponding to the particular window size; and

fitting a function to the selected maximum value of the window size.

4. The exercise machine system of claim 1, wherein the processing component is a server system connected to the exercise machine via a network.

5. The exercise machine system of claim 1,

wherein the processing component generates the adaptive training program in response to an identification comprising code representing the exercise device; and

wherein the code representing the exercise device is provided by an image capture system to a mobile device associated with the user on which an alphanumeric code, barcode, or QR code displayed with the exercise device is captured.

6. The exercise machine system of claim 1, wherein the automatically providing the output or settings of the exercise device comprises providing the output to a server system, the output comprising at least one representation of the at least one additional parameter.

7. The exercise machine system of claim 1, wherein the automatically providing the output or settings of the exercise device comprises providing the output to the exercise device, the output configured to cause a display of the exercise device to provide instructions for the adaptive training program.

8. The exercise machine system of claim 1, wherein the automatically providing the output or settings of the exercise device comprises implementing the adaptive training program on the exercise device based on the settings to cause the exercise device to achieve the given parameter and the at least one additional parameter.

9. The exercise machine system of claim 1, wherein the particular type is an interval type exercise, and wherein the given parameters for the interval type exercise include one or more of: the number of intervals, the duration of the intervals, the power output during the intervals, the duration of the rest, the power output during the rest, or any combination thereof.

10. The exercise machine system of claim 1, wherein the particular type is a skip interval type exercise, and wherein the given parameters of the skip interval type exercise include one or more of: the number of intervals, the duration of peak work during an interval, the duration of short rest periods within an interval, the power output during peak intervals of an interval, the duration of rest between intervals, the power output during rest periods, or any combination thereof.

11. The exercise machine system of claim 1, wherein applying the given parameter and at least one additional parameter to an exercise function defined for the particular type of the workout comprises:

obtaining a predefined function for the particular type of the workout;

filling the given parameter in the predefined function; and

solving for the at least one additional parameter.

12. The exercise machine system of claim 11, wherein filling in the predefined function includes using one or more default values for one or more of the function parameters that are not included in the given parameter and that are not included in the at least one additional parameter.

13. The exercise machine system of claim 1, wherein the processing component is further configured to:

receiving a further measurement indicative of power output while performing the adaptive training procedure;

determining a further work value based on the further measurement value representative of power output;

updating the capability function to further fit to the further work done value;

updating one or more of the given parameter or the at least one additional parameter based on the updated capability function;

generating an updated adaptive training program based on the updated parameters; and

updating the output or settings of the exercise device based on the updated adaptive training program.

14. A method for providing an adaptive training program, the method comprising:

obtaining a measurement indicative of power output;

determining a work value for each particular window size of the plurality of window size durations in the measure indicative of power output by determining a maximum integral of the function specified by the measure indicative of power output for an interval matching the particular window size:

fitting a function to the work done values determined for the plurality of window size durations as a capability function;

calculating a value for at least one previously unspecified parameter for a workout such that a value for an exercise function using the previously unspecified parameter does not exceed a corresponding value for the competency function at any time during the duration of the workout;

generating the adaptive training program using the at least one previously unspecified parameter; and

providing an output or automatic exercise setting based on the adaptive training program.

15. The method of claim 14, wherein the measurement indicative of power output is obtained by one or more of:

manual input by a user;

exercise statistics obtained by the wearable fitness tracker;

an instrumentation system integrated in the exercise device; or

Any combination thereof.

16. The method of claim 14, wherein the first and second light sources are selected from the group consisting of,

wherein the method is implemented for a plurality of exercise machines connected over a network;

wherein the measurement indicative of power output is obtained from a first one of the networked exercise machines;

wherein a second set of measurements representative of power output is taken from a second one of the networked exercise machines, converted to additional work values for a corresponding window size, and weighted based on an age of the second set of measurements; and

wherein fitting the function to the work values determined for the plurality of window size durations further comprises fitting the function to weighted additional work values.

17. The method of claim 16, wherein the fitting the function to the work value and the additional work value comprises:

for each particular window size, selecting a maximum of the work value or the additional work value corresponding to the particular window size; and

fitting the function to the selected maximum value for the window size.

18. The method of claim 14, wherein the first and second light sources are selected from the group consisting of,

wherein the generation of the adaptive training program is in response to an identification that includes a code representing the user; and

wherein the code representative of the user is provided by a mobile device associated with a user of an exercise apparatus.

19. The method of claim 14, wherein the method is performed by a mobile device associated with a user of an exercise apparatus.

20. The method of claim 14, wherein providing the output or automatic workout settings comprises causing an output to be provided on a mobile device, the output being based on the at least one previously unspecified parameter.

21. The method of claim 14, wherein providing the output or automatic workout settings comprises providing the output to a server system or a mobile device, wherein the output is stored in association with a user profile comprising one or more of:

at least some of the determined work values;

the capability function;

statistics of the adaptive training program;

a measure of actual performance during the training session;

personal information; or

Any combination thereof.

22. The method of claim 14, further comprising:

determining a critical power and a limited work capacity of the user associated with the measurement based on the capacity function; and

modifying the capacity function to a linear and logarithmic function using a combination of the critical power and limited work capacity.

23. A computer-readable storage medium storing instructions that, when executed by a computing system, cause the computing system to perform operations for automatically providing an adaptive training program, the operations comprising:

acquiring given parameters of a training course;

obtaining a measurement indicative of power output;

generating the adaptive training program by:

determining a capability function or a critical power estimate based on the measurement indicative of power output; and

generating the training program using (a) the capability function or critical power estimate and (B) the given parameter, the training program including a value of at least one previously unspecified parameter; and

providing the adaptive training program.

24. The computer-readable storage medium of claim 23,

wherein the operations further comprise determining a work value for each particular window size of a plurality of window size durations representing the measure of power output,

wherein determining each particular work value for the particular window size comprises determining a maximum integral of a function specified by a measurement value representative of power output for an interval matching the particular window size.

25. The computer-readable storage medium of claim 23, wherein generating the adaptive training program is performed by calculating a value for each of the at least one previously unspecified parameter such that a value of an exercise function using the at least one previously unspecified parameter does not exceed a corresponding value of the competency function at any time during the course's duration.

26. The computer-readable storage medium of claim 23, wherein the operations further comprise calculating the value of the at least one previously unspecified parameter by:

obtaining a predefined exercise function;

populating the given parameter in the predefined exercise function; and

solving for the at least one previously unspecified parameter.

Background

Millions of people wish to train and maintain better conditions. It is quite difficult for many people due to the time or effort involved. Many systems have been developed to help people start training or maximize their training efforts. For example, people read a fitness magazine, attend an exercise program, attend a course, engage a personal trainer, and the like. While some of these programs are tailored to the individual, they often fail to maximize the potential of the individual or create frustration due to excessive exertion. One of the reasons for this is that many of these programs are not based on a measure of the potential of a person to exercise. Even for programs that customize the program for an individual using some previous methods, these methods are difficult to implement and the results are inaccurate. Furthermore, training programs developed based on these measurements fail to provide the correct intensity levels and durations.

For example, VO2 is a measurement system that determines the maximum amount of oxygen a person can use. VO2 was measured by dividing the amount of oxygen inspired per minute by the amount of oxygen expelled per minute. Therefore, the evaluation based on VO2 requires the user to connect to a device that can measure the amount of oxygen in the inlet and outlet gases and in the air. Furthermore, the VO2 measurements are generally static to one person, and there is no explicit way to convert the VO2 measurements to a trained duration or intensity level. Techniques have been developed to provide exercise guidance based on heart rate measurements. However, these still require dedicated heart rate monitors connected to the person, are inaccurate, and cannot correctly estimate the limits of the time or intensity training indicators.

Disclosure of Invention

The present technology provides an adaptive training system and associated methods that overcome the shortcomings of the prior art and provide other benefits. In at least one example, the adaptive training system may generate a training program that is appropriate for a particular user based on the critical power and the varying exercise parameters. A person's power output is equal to their infinite capacity to produce power ("critical power") plus some finite capacity to exceed their critical power ("finite work capacity") for a given amount of time. A practical application of the critical power and limited work capacity of users is to use them to generate user-specific training programs. The training program may be a single training session or a series of training sessions with specified parameters determined based on the user's critical power or limited work capacity. The critical power based training procedure is accurate, does not require special heart rate or oxygen measurement devices, and can adapt to the user's ever changing capability level. Furthermore, conversion of critical power into training programs may be provided for various types of exercises and time ranges.

One or more example adaptive training systems include two aspects that apply critical power analysis: (1) determine limited work capacity and critical power of a particular user without the need for heart rate information or the use of invasive measurement devices, and (2) use these determinations to generate an adaptive training program specific to the user for any given set of exercise parameters. In determining the limited work capacity and the critical power of the user, the adaptive training system may receive statistical information from one or more of the user's current or previous exercises or segments of an exercise and determine the limited work capacity and the critical power of the user based only on the time interval and a measure indicative of the power output (e.g., running speed, wattage of a fixed bicycle output, number of repeated executions over a period of time, etc.). Further, these determinations of limited work capacity and determined critical power may be updated as the user records other exercises, and new or modified training programs may be generated for the user. In some implementations, newer workouts may have greater weight in determining these measurements than older workout statistics. For example, a scalar (scalar) decay function may be applied to the exercise data to weight it based on age.

The adaptive training system may determine the limited work capacity and critical power of a particular user by generating data points from one or more exercise statistics sets. Each data point may measure the maximum amount of work a user performs in an exercise over any time window of a particular length. Multiple data points may be acquired using different time window lengths for a particular exercise. Each data point may be a work value calculated by maximum integrating a function that provides power over time for a given time window size. Thus, the working data point will be the maximum area under the power function within any interval that matches the time window size of the data point. In the case of multiple workouts, the final workout statistics set may only retain the maximum work done value for each time window size in the multiple workouts. The adaptive training system may fit points from one or more exercise statistics sets to a capability function. The capability function may be used to determine a critical power corresponding to the slope of the capability function, and a limited work capacity corresponding to the y-intercept of the capability function. Alternatively, the adaptive training system may use the displayed work points in the final exercise statistics as boundary points for future training programs. Additional details regarding determining the user's capability function and/or limited work capacity and critical power are discussed below in connection with fig. 3-5.

Once the adaptive training system has determined the critical power and limited work capacity, the adaptive training system may use those determinations to generate an adaptive training program for a given set of exercise parameters. For any particular type of exercise, a number of parameters may describe the exercise in terms of work and time. For example, in an interval exercise with fixed intervals, the exercise may be defined according to five parameters: number of intervals, duration of intervals, power output during intervals, rest time, power output during rest. All but one of these parameters may be specified by the user or based on the characteristics of the exercise. For example, for exercise on a treadmill, a user may specify an interval duration and a rest duration, and the power output during the interval and the power output during the rest may be determined based on treadmill settings (e.g., speed and angle). The adaptive training system may then calculate final parameters based on the user's critical power and limited work capacity, such that a user-specific exercise plan may be generated that directs the user's exercise to approach but not exceed a fatigue threshold. For example, the number of intervals may be set such that the exercise-describing function based on the five parameters of the exercise/time map does not exceed the user's ability function. In various implementations, the capability function may be provided by the user's work capacity. In some implementations, as described above, the competency function may be a linear or non-linear function fitted to the exercise statistics set. The slope of the capability function may define the critical power of the user, and the y-axis intercept may define the limited work capability of the user. In some implementations, once the Critical Power (CP) and limited work capacity (W') are determined, the capacity function can be modified to account for real-world conditions, e.g., the work capacity of a user at a given zero time is also zero. Such modification may include changing the capability function to a combination of linear and logarithmic functions. For example, the capacity function may be specified as W CP t + W log (t +1), where W is the work capacity (dependent variable) and t is a given amount of time (independent variable). In some implementations, the ability function can be a set of exercise statistics that serve as boundaries for respective points of the training program. Additional details regarding the generation of a particular training program for a parameter-defined exercise type using a capacity function or critical power and limited work capacity are discussed below in conjunction with fig. 6 and 7.

In various implementations, the adaptive training system may be implemented at least in part as an integrated component of an exercise machine in a network of exercise machines that share information, as an "application" in a fitness tracker, as part of a server-based information system (e.g., accessed through a web page), or any combination thereof. For example, the adaptive training system may be integrated into an exercise device that is instrumented to perform work measurements that represent power output (e.g., resistance and revolutions per minute, time and distance, etc.). The adaptive training system may use these measurements to determine data points of work versus time. These data points can be used to calculate the critical power and limited work capacity of the user (e.g., by fitting them to a capacity function). The adaptive training system may then provide a training program configured to bring the user within a threshold amount, which is a fatigue point determined based on the critical power and the limited work capacity or capacity function, without exceeding. The training program may be provided as a visual output with suggested exercise parameters. Alternatively or additionally, a training program may be provided as an automatic adjustment to an exercise setting (e.g., treadmill speed). An example of this configuration is described below in conjunction with fig. 8A.

As another example, the adaptive training system may be implemented in a network of exercise machines. In this example, the adaptive training system may determine the user based on authentication data provided to the exercise machine or by the mobile device (e.g., via a website or application), by scanning a QR code or the like on the machine. Then, during subsequent exercises, data points from measurements on that machine may be added to data points from measurements previously made on other machines to maintain an updated critical power and limited work capacity or capacity function table. These may be used to generate a training program. The training program may include exercise recommendations, which may be provided on a networked machine or on a mobile device. Alternatively or additionally, the training program may include exercise machine settings that the adaptive training system may automatically apply to the machine. An example of this configuration is described below in conjunction with fig. 8B.

As yet another example, the adaptive training system may be implemented on a mobile device or other computing system, for example as an application, through a web page, or as a function of a smart watch or other fitness device. In some implementations, the adaptive training system may automatically collect data (e.g., distance, amount of time, speed, altitude change, etc.), or the user may manually input data (e.g., by entering distance and time after running). The adaptive training system may then provide a training program. In some implementations, the training procedure may include displaying further statistics, such as a change in critical power or limited work capacity over time. In some implementations, the training program may provide a suggested exercise program. The proposed exercise program may set aspects of the training program to meet the user's goals. In some implementations, the training program may include a guided exercise or other training recommendation or indication based on a capacity function or a threshold power and limited work capacity. An example of this configuration is described below in conjunction with fig. 8C.

The current art provides many benefits over the prior art. For example, the adaptive training system may determine the critical power and limited work capacity without the need for a heart rate monitor, oxygen device, or other invasive device connected to the user. In addition, a training program based on critical power or limited work capacity may provide a basis for exercise levels while not being affected by the inaccuracies of the heart rate monitoring method. Furthermore, in contrast to prior art systems that require a large amount of interrelated data to make training recommendations, adaptive training systems may be implemented using low power, low processing speed devices and require only "best recorded" data to be stored, thereby effectively reducing the required storage capacity.

In various implementations, the adaptive training techniques may be implemented as a method, system, or computer-readable storage medium. An exercise machine system for automatically providing an adaptive exercise program may include an exercise device that implements a particular type of workout with given parameters. The exercise machine system may also include an instrumentation system integrated with the exercise device that obtains a measurement indicative of the power output. The exercise machine system may also include a processing component configured to generate an adaptive training program.

Where the adaptive training technique is implemented as a method, it may comprise various operations, and where the adaptive training technique is implemented as a system or computer-readable storage medium, the processing components of the system or operations performed on the computer-readable storage medium may perform the various operations. These operations may include: a work value for each particular window size is determined over a plurality of window size durations representing measured values of power output. This may be accomplished by determining the maximum integral of the function specified by the measurement indicative of power output for an interval matching a particular window size. The operations may also include fitting a function to the work done values determined for the plurality of window size durations as a function of the capability. The operations may further include calculating a value of at least one previously unspecified parameter for the workout such that the value of the exercise function using the previously unspecified parameter does not exceed a corresponding value of the competency function at any time during the duration for the workout. The operations may also include generating an adaptive training program using at least one previously unspecified parameter. The adaptive training technique may provide output or automatic exercise settings based on an adaptive training program.

In some implementations, the adaptive training technique may include or implement operations that include obtaining a given parameter for a training session and obtaining a measurement representative of power output. The operations may also include generating an adaptive training program by: based on the measured value representing the power output, a capability function or a critical power estimate is determined. Generating adaptive training may further include generating a training program using (a) a capability function or a critical power estimate and (B) a given parameter. The training program may include values for at least one previously unspecified parameter. The operations may include providing the adaptive training program.

In various implementations, the adaptive training technique may obtain the measurement indicative of power output by a user manual input, by recorded exercise statistics acquired by a wearable fitness tracker, or by an instrumentation system integrated into the exercise device.

In various implementations, the adaptive training techniques may be implemented by a server system connected to multiple exercise machines, by one or more exercise machines, or by a mobile device associated with a user of an exercise device.

In various implementations, adaptive training techniques may be implemented with respect to multiple exercise machines connected via a network. Measurements indicative of power output may be taken from a first networked exercise machine, while a second set of measurements indicative of power output may be taken from a second networked exercise machine. A second set of measurements representing power output may be converted to additional work values for the corresponding window size and may be weighted based on the age of the second set of measurements. When the adaptive training technique fits a function to the work values for multiple window size duration determinations, it may be further achieved by fitting the function to additional work values. In some implementations, such fitting can include, for each particular window size, selecting a maximum of the work value and the additional work value corresponding to the particular window size; and fits the function to the selected maximum value of the window size.

In some implementations, the adaptive training technique may generate the adaptive training program in response to an identification that includes code representing a user or an exercise device. The identification may be provided by the user, a mobile device associated with the user, or an exercise device. In some implementations, a code representing the exercise device may be provided to the mobile device by an image capture system on the mobile device that captures an alphanumeric code, barcode, or QR code displayed with the exercise device.

The output or automatic workout settings provided by the adaptive training technique may be output to the server system, including a representation of the additionally determined parameters. Alternatively, an output may be provided to the mobile device, the output including a representation of at least one previously unspecified parameter. In some implementations, the output can be to a mobile device and include data to be manipulated by executing instructions on the mobile device. The execution may provide a display for a user to implement the adaptive training program. In some implementations, the output may be to an exercise device configured to cause a display of the exercise device to provide instructions based on an adaptive training program. The output may also include automatic exercise settings that cause the exercise device to automatically implement the adaptive training program. In some implementations, the output can be provided to a server system or a mobile device and stored in association with a user profile. The user profile may include a variety of information, such as: a determined work value, a competency function, statistics of an adaptive training program, a measure of actual performance of a training session, personal (biometric) information, or any combination thereof.

In some implementations, the adaptive training techniques may provide an internet-based interface that is accessible through a web browser or mobile device application. The internet-based interface may provide access to a user profile associated with a plurality of workouts performed by the user.

In various implementations, the measurement indicative of power output may include one or more of: speed, revolutions per minute, resistance, incline, distance, duration, weight, number of repetitions, or any combination thereof.

In some implementations, the capability function is a linear function.

In some implementations, the adaptive training technique may be implemented by a server system that obtains additional work done values stored in association with a user profile of a user and generates an adaptive training program, both of which may be responsive to user authentication.

In some implementations, a workout function may be defined for a skip interval type of workout (skip interval typeworkkout). The parameters of the exercise function for the interval exercise may include the number of intervals, the duration of the intervals, the power output during the intervals, the rest time, the power output during the rest, or any combination thereof. Parameters of an exercise function that skips interval exercises may include the number of intervals, the duration of peak work during an interval, the duration of brief rest during an interval, the power output during a peak of an interval, the duration of rest between intervals, the power output during a rest, or any combination thereof.

In some implementations, calculating the value of the at least one previously unspecified parameter may include: an exercise function is obtained from a set of predefined functions based on the type of exercise represented for the adaptive training program. The operation may then populate one or more given parameters in the exercise function and solve for at least one previously unspecified parameter. In some examples, generating the adaptive training program may include selecting data to display as instructions for a user to perform an exercise based on at least one previously unspecified parameter. The adaptive training program may also specify output or automatic exercise settings based on at least one previously unspecified parameter. In some implementations, populating the parameters in the predefined function can include using one or more default values.

In some implementations, when the user performs the adaptive training procedure, the adaptive training technique may also receive further measurements indicative of the power output when performing the adaptive training procedure. The adaptive training technique may determine a further work value based on a further measurement value indicative of the power output. Then, the adaptive training technique may update the capability function to further fit to further work values; updating one or more parameters of the exercise function based on the comparison of the exercise function to the updated competency function; generating an updated adaptive training program based on the updated parameters; and updates the output or automatic exercise settings based on the updated adaptive training program.

Brief description of the drawings

Fig. 1 is a block diagram illustrating an overview of a device on which some implementations may operate.

FIG. 2 is a block diagram illustrating an overview of an environment in which some implementations may operate.

Fig. 3 is a block diagram illustrating components that may be used in a system employing the disclosed technology in some examples.

Fig. 4 is a flow diagram illustrating a process used in some implementations for determining limited work capacity and critical power using time-based power output statistics.

5A-E are conceptual diagrams illustrating examples of windowed power output statistics to determine maximum work data points.

Fig. 5F is a conceptual diagram illustrating an example of a function fitted to a series of data points determined by windowing of time-based power output statistics.

Fig. 5G is a conceptual diagram illustrating an example of a function having a combined linear and logarithmic performance capability generated based on a determined limited work capacity and critical power.

FIG. 6 is a flow diagram illustrating a process used in some implementations for converting a determined fit function to a training program based on exercise parameters.

Fig. 7 is a conceptual diagram illustrating an example representation of an exercise function calculated by determining parameters that keep the exercise function below the fatigue point based on the fitting function parameters.

8A-C illustrate example system configurations implementing versions of the adaptive training system.

The techniques described herein may be better understood by referring to the following detailed description in conjunction with the accompanying drawings in which like reference numerals indicate identical or functionally similar elements.

Detailed Description

Turning now to the drawings, fig. 1 is a block diagram illustrating an overview of an apparatus upon which some implementations of the disclosed technology may operate. The apparatus may include hardware components of the apparatus 100 that may evaluate the critical power and use the evaluation to generate the adaptive training program. The device 100 may include one or more input devices 120 that provide input to the CPU(s) (processors) 110 to notify its events. These events may be managed by a hardware controller that interprets signals received from input devices and communicates information to CPU110 using a communication protocol. Input device 120 includes, for example, an instrument on the exercise device that measures a value representative of power output (e.g., number of turns, speed, inclination, resistance, etc.), an accelerometer, a pedometer, a touch screen, an infrared sensor, a wearable device input device, a camera or image-based input device, a microphone, a mouse, a keyboard, or other user input device.

CPU110 may be a single processing unit or multiple processing units in a device, or distributed across multiple devices. For example, CPU110 may be coupled to other hardware devices using a bus, such as a PCI bus or SCSI bus. CPU110 may be in communication with a hardware controller of the apparatus, for example, for controlling settings of the exercise machine or providing outputs to display 130. Display 130 may be used to display text or graphics. In various implementations, display 130 provides a training program as a feature of a suggested exercise on an exercise machine display, a telephone display, an exercise device display, or via a computer monitor display. In some implementations, such as when the input device is a touch screen or equipped with an eye direction monitoring system, the display 130 includes the input device as part of the display. In some implementations, the display is separate from the input device. Examples of display devices are: LCD display screens, LED display screens, projection, holographic, or augmented reality displays (e.g., head-up display devices or head-mounted devices), and the like. Other input/output ("I/O") devices 140 may also be coupled to the processor, such as a network card, video card, sound card, USB, firewire or other external device, camera, printer, speaker, CD-ROM drive, DVD drive, disk drive, or Blu-ray device. In some implementations, other I/os may include a haptic feedback system, such as vibrations through the mobile device or the exercise device, which may provide a representation of the training program. In some implementations, other I/Os may include connections, either directly or through a network, that provide automatic control and settings to be provided to the exercise machine based on the determined training program.

In some implementations, the apparatus 100 also includes a communication device capable of wireless or wired communication with the network node. The communication device may communicate with another device or server over a network using, for example, the TCP/IP protocol. Device 100 may utilize a communication device to distribute operations among multiple network devices.

The CPU110 may access memory 150 in the device or distributed among multiple devices. The memory includes one or more of a variety of hardware devices for volatile and non-volatile storage, and may include read-only and writable memory. For example, the memory may include Random Access Memory (RAM), CPU registers, Read Only Memory (ROM), and writable non-volatile memory, such as flash memory, hard disk drives, floppy disks, CDs, DVDs, magnetic storage devices, tape drives, device buffers, and the like. The memory is not a propagated signal separate from the underlying hardware; thus, the memory is non-transitory. Memory 150 may include a program memory 160 that stores programs and software, such as an operating system 162, an adaptive training system 164, and other application programs 166. Memory 150 may also include data storage 170, which may include power measurements, windowed data points, power threshold or limited work capacity determinations, parameterized conversions of work for a variety of exercises, adaptive exercise programs based on a capacity function, configuration data, settings, user options or preferences, etc., that may be provided to program storage 160 or any element of apparatus 100.

Some implementations may operate with many other computing system environments or configurations. Examples of computing systems, environments, or configurations that may be suitable for use with the technology include, but are not limited to, exercise machines, personal computers, server computers, hand-held or laptop devices, cellular telephones, wearable electronics, gaming machines, tablet devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.

FIG. 2 is a generalized block diagram illustrating an environment 200 in which some implementations of the disclosed technology may operate. The environment 200 may include one or more computing-enabled devices 205A-D, examples of which may include the device 100. For example, a computing-enabled device may include any of a mobile phone or wearable device 205A, a portable computer 205B, a desktop or server 205C, or an exercise device 205D, which may be stand-alone or networked and may be configured to collect exercise data. The computing-capable device 205 may operate in a networked environment using logical connections 210 to one or more remote computers (e.g., server computing devices) over a network 230.

In some implementations, server 210 may be an edge server that receives client requests and coordinates the implementation of those requests through other servers, such as servers 220A-C. Server computing devices 210 and 220 may comprise a computing system such as device 100. Although each server computing device 210 and 220 is logically shown as a single server, the server computing devices may each be a distributed computing environment containing multiple computing devices located at the same location or at different physical locations geographically. In some implementations, each server 220 corresponds to a group of servers.

The computing-capable device 205 and the server computing devices 210 and 220 may each act as a server or a client to the other server/client devices. The server 210 may be connected to a database 215. Servers 220A-C may each be connected to a corresponding database 225A-C. As described above, each server 220 may correspond to a group of servers, and each of these servers may share a database or may have their own database. Databases 215 and 225 may store (e.g., store) information such as previous exercise data, user profile data, exercise statistics, historical critical power and limited work capacity determinations, and the like. Although databases 215 and 225 are logically shown as a single unit, each of databases 215 and 225 may be a distributed computing environment containing multiple computing devices, may be located within their respective servers, or may be located in the same or geographically different physical locations.

The network 230 may be a Local Area Network (LAN) or a Wide Area Network (WAN), but may also be other wired or wireless networks. The network 230 may be the internet or some other public or private network. The computing-capable device 205 may be connected to the network 230 through a network interface, such as through wired or wireless communication. Although the connections between server 210 and server 220 are shown as separate connections, these connections may be any kind of local area network, wide area network, wired or wireless network, including network 230 or a separate public or private network.

Fig. 3 is a block diagram illustrating a component 300, which component 300 may be used in a system employing the disclosed technology in some implementations. The components 300 include hardware 302, general-purpose software 320, and application-specific components 340. As mentioned above, a system implementing the disclosed technology may use a variety of hardware, including a processing unit 304 (e.g., CPU, GPU, APU, etc.), a working memory 306, a storage memory 308 (either local or as an interface to a remote memory, such as memory 215 or 225), and input and output devices 310. In various implementations, the storage memory 308 may be one or more of: a local device, an interface to a remote storage device, or a combination thereof. For example, storage 308 may be a set of one or more hard disk drives accessible over a system bus (e.g., a Redundant Array of Independent Disks (RAID)), or may be a cloud storage provider, or other network storage (e.g., a Network Accessible Storage (NAS) device such as storage 215 or storage provided by another server 220) accessible over one or more communication networks. Component 300 may be implemented in a computing-capable device, such as computing-capable device 205, or a server computing device, such as server computing device 210 or 220.

General purpose software 320 may include a variety of applications including an operating system 322, native programs 324, and a Basic Input Output System (BIOS) 326. The specific-purpose components 340 may be subcomponents of the general-purpose software application 320, such as the native program 324. The specialized components 340 may include a Critical Power (CP) and limited work capability (FWC) analyzer 344, a training program generator 346, and components that may be used to provide a user interface, transmit data, and control the specialized components, such as interface 342. In some implementations, the component 300 may be in a computing system distributed across multiple computing devices, or may be an interface to a server-based application executing one or more application-specific components 340.

In some implementations, the critical power and limited work capacity analyzer 344 may receive the power output statistics of the user, e.g., through the interface 342, and may use them to determine the critical power and limited work capacity of the user. For example, where component 300 is part of an exercise machine, I/O310 may include an instrumentation system integrated with the exercise machine that takes measurements representative of power output. The I/O310 may then provide the measurement indicative of the power output as power output statistics to a critical power and limited work capacity analyzer 344 using an interface 342. As another example, where the assembly 300 is part of a mobile device, the I/O310 may include a user interface that receives user input of measurements indicative of power output (e.g., running time and distance). The I/O310 may then provide these as power output statistics to a critical power and limited work capacity analyzer 344 using an interface 342. In some implementations, the critical power and limited work capacity analyzer 344 may determine the critical power and limited work capacity by determining a maximum work data point. For any window of a given size, each maximum work data point may correspond to a maximum area under the power output statistic. Each data point may represent an amount of work that a user may perform within a given time frame. Critical power and limited work capacity analyzer 344 may then fit a function to the highest data point across each window size during the exercise over a range of work in the time domain. In some examples, the critical power and limited work capacity analyzer 344 may provide the fitted function in place of the explicit critical power or limited work capacity value. In some implementations where the fit function is linear, the critical power may be the slope of the fit function and the limited work capacity may be the y-intercept. In some implementations, once the Critical Power (CP) and the limited work capacity (W') are determined, the capacity function can be converted to a combination of linear and logarithmic functions. For example, the capacity function may be specified as W CP t + W log (t +1), where W is the work capacity (dependent variable) and t is a given amount of time (independent variable). Additional details of determining the critical power and limited work capacity based on power output statistics are discussed below in conjunction with fig. 4 and 5.

In some implementations, training program generator 346 may generate a user-specific training program with at least one exercise given a portion of the exercise parameters and the user's critical power and limited work capacity. In some implementations, the exercise parameters may be received through the interface 342, e.g., based on user input, default values, specified goals, etc. The critical power and limited work capacity of the user may be determined by critical power and limited work capacity analyzer 344. Training program generator 346 may determine a full set of exercise parameters to customize an exercise for a particular user by calculating missing parameters that keep the value of the function defining the exercise below the value of the function defining the user's ability (e.g., the function is fit to the data points by critical power and limited work capacity analyzer 344). Additional details regarding generating a training program using at least one user-specific exercise based on critical power and limited work capacity will be discussed below in conjunction with fig. 6 and 7.

Those skilled in the art will appreciate that the components shown in fig. 1-3 above, as well as the components in each of the flow diagrams discussed below, may be modified in a variety of ways. For example, the order of logic may be rearranged, sub-steps may be performed in parallel, the illustrated logic may be omitted, other logic may be included, and so on. In some implementations, one or more of the above-described components may perform one or more of the processes described below.

Fig. 4 is a flow diagram illustrating a process 400 used in some implementations to determine a limited work capacity and a critical power of a capacity function or user based on time-based power output statistics. The process 400 begins at block 402 and continues to block 404. In some implementations, the process 400 may be performed continuously, for example, exercise information may be input into the adaptive training system during an exercise session. In some implementations, the process 400 may be performed in advance, for example, based on a log of received user exercise data.

At block 404, the process 400 may obtain time-based power output statistics for a workout or a set of workouts. In various implementations, power output statistics may be automatically collected from instrumentation on an exercise device (e.g., a treadmill, elliptical, bicycle, fitness tracker, etc.), may be input through a user interface (e.g., input running time and distance), or may be a log of one or more previously recorded exercises. In some implementations, the power data may be based on a combination of metrics such as speed or distance and time, where a default force for the exercise type may be used to estimate work, i.e., power, per time. In some implementations, the force may also be measured, at least in part, for example, based on a resistance or tilt setting. In some implementations, user personal information such as height, weight, gender, and age is provided in a user profile. This user profile can be used to more accurately convert exercise measurements (e.g., distance run over a period of time) into power measurements. However, the process 400 may use some default values to determine a power measurement based on the user's exercise performance, thereby generating the user's critical power and limited work capacity without the user's personal information. This allows the user to use these versions of the system without having to perform a significant profile creation process, and therefore the user input system is very frustrating.

In the outer loop between blocks 406 and 418, the process 400 may iteratively divide the power output statistics into segments, or "windows," in the time domain, where the window size is increased by an increment in each iteration of the outer loop. For all windows of a particular size, the window with the largest determined integrated power (work) value in a particular iteration may result in a data point. The power value for a particular window may be calculated by taking the area under the power curve statistically defined by the power output in that time window. The largest of these work metrics is, for any window of a particular size, an estimate of the maximum amount of work that the user can perform within the amount of time defined by the window size. The resulting set of data points may be used to determine a capacity function, which in turn may be used to determine the critical power and limited work capacity of the user.

At block 406, the process 400 may set a window size and window increment. The window size may be a time interval from which individual data points may be extracted from the obtained power output statistics. For example, if the obtained power output statistics provide power output values in 30 minute exercise increments, the window size may be the size of various "windows" of the 30 minute data set. One window will produce stored data points from each set of windows that all have the same size. The window increment may be a value by which the beginning and end of a previous window may be incremented to obtain a next window. In some implementations, the windows may overlap, meaning that the window increment is set to a value less than the window size. In some implementations, the windows may be non-overlapping, meaning that the window size and window increment are set to the same value. In each iteration of the loop between blocks 406-418, the process 400 may generate a single data point corresponding to the window size used in that iteration. In each subsequent iteration, a new window size is selected at block 406. In some implementations, the window sizes may start at a particular size (e.g., 1 second, 5 seconds, etc.) and at each subsequent iteration of the loop, the windows are increased by a set amount or percentage. For example, the first window size may be 1 second, and the window size would increase by 10% in each subsequent iteration, so the first five window sizes would be 1 second, 1.1 seconds, 1.21 seconds, 1.33 seconds, and 1.46 seconds. As another example, the first window size may be 5 seconds, and the window size would be increased by 1 second in each subsequent iteration, so the first five window sizes would be 5 seconds, 6 seconds, 7 seconds, 8 seconds, and 9 seconds.

At block 408, the process 400 may set an initial window for the current window size by starting the window at the beginning of the obtained time-based power output statistics (e.g., at time _ zero) and ending the window at the beginning of the obtained time-based power output statistics plus the window size (e.g., time _ zero + window _ size). In the inner loop between blocks 410-414, the process 400 may slide the window for the current window size over the time-based power output statistics to determine (at block 416) at which point in the window size the area under the curve defining the power output statistics is largest. Although process 400 describes this by adding a start/end point for the window, other processes may be used to determine which area under the curve is largest for the window size interval. At block 410, the process 400 may record an integrated power (work) value, i.e., an integral or area under the curve of the obtained power/time graph based on statistics of power, from the current window. An example of this process is provided below in conjunction with fig. 5A-E. Each recorded value may be a point having a window size (e.g., seconds) as the x-axis and a completed work (e.g., joules) as the y-axis.

At block 412, the process 400 may determine whether the end of the current window is at least at the end of the obtained time-based power output statistics. If so, then each window in the current window size has been analyzed for entry into the time-based power output statistics, the inner loop between blocks 410 and 414 is completed, and the process 400 continues to block 416. If not, at least one window into the time-based power output statistics has not been analyzed, the inner loop between blocks 410 and 414 is not completed, and the process 400 continues to block 414. At block 414, the process 400 may increase the start and end of the current window by the window increment. This creates a new current window for the value to be recorded, at block 410.

At block 416, the process 400 may look at all values recorded for the current window size at block 410 and store the maximum value corresponding to the current window size. This value represents a measure of the maximum amount of work that a user can do in a given time. In some implementations, the stored value corresponding to the current window size may be the maximum of the recorded values, the average of the highest number of recorded values (e.g., the highest 5 or the highest 10%), or the highest value within some standard deviation of the median of the recorded values. In some implementations, once the value is stored at block 416, the memory storing the value recorded at block 410 may be released.

At block 418, the process 400 may determine whether additional window sizes exist in further iterations of the loop between block 406 and 418. For example, process 400 may use a specified number of window sizes, may increase the window size by an amount until a threshold is reached or until the window size is at least a specified percentage of the total time covered by the time-based power output statistics, or may use a specified set of window sizes. If there are additional window sizes to use, the process 400 continues back to block 406 where the next window size is set. Otherwise, process 400 continues to block 420.

At block 420, the process 400 may fit a function to the values stored at block 416. The function may have a window size (e.g., seconds) on the x-axis and work (e.g., joules) on the y-axis. In various implementations, the function may have a specified order, e.g., a first order function (linear), a second order function (squared), a third order (cubic), etc. In some implementations, the function may be fit to additional stored data points, such as other exercise statistics extracted from the window in a process similar to that described in block 404 and 418, in addition to the data points stored at block 416 for the obtained time-based power output statistics. In some implementations, the process 400 may fit a function to data points that are not from the windowing process. For example, where power output statistics are unknown at multiple points throughout an exercise, a measure of work versus time for a single exercise instance may be used as data points and the function fitted to the set of data points.

In some implementations, a variety of processes may be applied to adjust for age of the stored power output values or anomalies among the stored power output values. In some implementations, this adjustment may include smoothing the curve of the function, such as applying a gaussian kernel. In some implementations, the adjusting can include limiting the number of data points seen for a given window size. For example, only data points with a window size not exceeding six weeks are used, or only the last six data points are used. In some implementations, the value of each data point may be weighted (decayed) based on its age. Weighting may be accomplished using a variety of decay functions, such as exponential decay. For example, the value of each data point may be multiplied by.99 ^ (age _ in _ weeks). As another example, each data point may be multiplied by e ^ (V ^ age), where V may be a value less than 1, e.g., 0004, and age may be performed in various increments, e.g., days post exercise to generate the data point.

In some implementations, there are multiple data points (e.g., from different exercises) for a single window size, and the function is only fit to the maximum work data point (or maximum point after applying any weights) for each window size. In some implementations, once the function is fit to the stored data points, the memory storing data points that are not used as part of the fit may be freed, for example, because there are larger data points for the same window size.

A function fitted to the data points representing the maximum power output capability of the user over a time range may specify a Critical Power (CP) for the user. The fitted function may also specify a limited work capacity (W') for the user. The critical power may be the slope of the function, or in the case of a non-linear function, the slope of the function between two points. Thus, the critical power may represent an additional amount of work that the user may perform given any specified amount of additional time. The limited work capacity may be the y-intercept (work output, e.g., joules, value) of the function. Thus, the limited work capacity represents the initial amount of work that the user can perform without additional time.

In some implementations, the determined critical power and limited work capacity may be used to generate a new capacity function that more accurately defines the user's capacity, particularly in the early intervals of exercise, such as within the first 60 seconds. For example, the function may be more accurate in view of the real-world environment, such as the fact that at a given time, zero, the user's ability to perform work is also zero. In some implementations, the new capability function may be a combination of linear and logarithmic functions. For example, the capacity function may be specified as W CP t + W log (t +1), where W is the work capacity (dependent variable) and t is a given amount of time (independent variable). Using this new capability function can provide a more stable, more powerful fit optimization because it takes into account the curvature seen in the data over time.

The process 400 may return to these determined critical power or do-limited capability values and end at block 422. In some implementations, instead of determining and returning the critical power and do-limited power values, a function that fits to the data points may be returned.

5A-E are conceptual diagrams illustrating examples of windowed power output statistics to determine maximum work data points. These maximum work data points may be used to calculate a capacity function. Fig. 5A-E illustrate example implementations of the loop between blocks 406-418. FIG. 5A shows step 500 of this example, where the power output statistics for an exercise have been plotted as a function 502, and the window size has been set to 6 seconds. Under function 502, for a second window size of 6 seconds, it has been determined that a particular window 504 corresponds to a maximum area 506. The data point corresponding to this maximum area 506 is added to a work versus time graph 512 at the intersection of line 506(6 seconds-window size) and line 510(360 joules-area 506).

FIG. 5B shows step 515 of this example. The next window 518 has been determined to correspond to the maximum area 520 for the 10 second window size under function 502. The data point corresponding to this maximum area 520 is added to the work versus time graph 512 at the intersection of line 522(10 seconds-window size) and line 524(400 joules-area 520).

Fig. 5C shows step 530 of this example. The next window 534 has been determined to correspond to the maximum area 536 for the 12 second window size under function 502. The data point corresponding to this maximum area 536 is added to the work versus time graph 512 at the intersection of line 538(12 seconds-window size) and line 540(500 joules-area 536).

FIG. 5D shows step 545 for this example. The next window 548 has been determined as the maximum area 550 under function 502 for the 42 second window size. The data points corresponding to this maximum area 550 are added to the work versus time graph 512 at the intersection of line 552(40 sec-window size) and line 554(1667 joule area 550).

Fig. 5E shows step 560 of this example. The next window 562 has been determined as the maximum area 564 corresponding to the second window size for 84 seconds under function 502. The data points corresponding to this maximum area 564 are added to the work versus time graph 512 at the intersection of line 566(84 seconds-window size) and line 568(2065 joules-area 564).

Once the data points identified in FIGS. 5A-E are known, they can be used to define a capability function. In some implementations, the graph 512 of work versus time can be a function of the user's ability. In some implementations, the ability function may be a boundary specified by the data points, where the boundary may limit the maximum exercise parameter, as described in connection with fig. 6. In some implementations, another function can be fitted to the data points to define a function. In some implementations, the fitted function may then be used to determine the critical power and limited work capacity. Fig. 5A-E provide sample window sizes for a single exercise. In other examples, the window size may be larger or smaller or may be more or less numerous. An example is provided next in FIG. 5F, which uses other data points (with larger window sizes) from multiple workouts to generate a competency function.

Fig. 5F is a conceptual diagram illustrating an example 580 having a function fitted to a set of data points for determining the critical power and limited work capacity of a user. The function is calculated by determining a fit to a series of data points obtained by windowing of the time-based power output statistics, as shown in fig. 4. Fig. 5F shows work 582 (y-axis, in joules) versus time 584 (x-axis; in seconds).

Example 580 includes a set of data points, such as data points 586. Each data point is a maximum work done value data point from a set of possible work done value data points for the workout, each possible work done value data point corresponding to a particular window size. In the example 580, a set of possible data points (not shown) is acquired at a window size of 1150 seconds at block 410, and one data point representing the maximum amount of work done (i.e., the area under the power output curve) in the 1150 second window of the workout is stored as data point 586 at block 416. Examples of this process are provided in fig. 5A-E. Additional data points at the 1150 second mark above and below data point 586 are from statistics of other exercises.

In example 580, line 590 is the best fit for the largest data point for each window size in the plurality of exercises. In some implementations, the process 400, at block 420, may determine for the user after the initial threshold where the performance boundary is as a location where the values of further data points no longer increase with a relatively consistent slope. In example 580, the performance boundaries of this presentation are shown by dashed line segment 592. The fit of line 590 is to the largest data point for each window size before separation at the beginning of the performance boundary. The slope of line 590 serves as the critical power. Example 580 also shows a location where line 590 intersects y-axis 582 at 594, which serves as a limited work capacity.

Fig. 5G is a conceptual diagram illustrating an example of a combined linear and logarithmic performance capability function having a result based on a determined limited work capacity and critical power. In this example, the Critical Power (CP) and the limited work capacity (W') have been determined. These values are used to generate a new capability function 590 defined by the formula W CP t + W log (t +1), where W is the work-doing capability (dependent variable) and t is a given amount of time (independent variable). This new capability function 590 fits better to the performance boundary 592, especially in the first 60 seconds of the performance data.

FIG. 6 is a flow diagram illustrating a process 600 used in some implementations for determining a user-specific training program by determining an exercise parameter based on a user-determined threshold power or capacity function. In some implementations, the process 600 may be performed continuously, for example, as exercise information is input into the adaptive training system during an exercise. In some implementations, process 600 may be performed in advance, e.g., generating a workout for a user before the user begins exercising. The process 600 begins at block 602 and continues to block 604.

The adaptive training program may include one or more exercises, and each exercise may be defined by a set of parameters that map the exercise to a work value at a given time. For example, in defining a sprint exercise for a user, the parameters may be only the duration and power output of the sprint period. As another example, for interval exercises with fixed intervals, the parameters may be: number of intervals, duration of intervals, power output during intervals, rest time, and power output during rest time. As another example, for interval exercises with "skip intervals", the parameters may be: the number of intervals, the duration of peak work during an interval, the duration of a brief rest period within an interval, the power output during the peak of an interval, the duration of rest between intervals, and the power output during rest. In some implementations, the workout may also include a difficulty factor parameter that specifies how close the workout should bring to the user's maximum work capacity.

At block 604, the process 600 may receive a partial set of parameters for a workout. In some implementations, the parameters received at block 604 may be all but one of the parameters required for a specified workout. For example, for interval exercises with fixed intervals, all parameters except the defined number of intervals may be provided. In some implementations, one or more of the exercise parameters may be set by a variety of methods, such as by user input, using default values, using values established to further achieve certain goals (e.g., increasing critical power capabilities, increasing limited work capacity, increasing sprint capacity by having shorter and more strenuous exercises, or durability with longer, less strenuous exercises), etc. In some implementations, the exercise parameter may be limited to certain values, such as a number or duration of maximum or minimum times or intervals, or the like. These limits may be set so that the remaining parameters determined by the system are realistic (i.e., it is not recommended to perform two days or 12 seconds of exercise) or so that the exercise based on the parameters is easier to follow (e.g., interval length is an integer).

At block 606, the process 600 may use the received exercise parameters and user capability indicators including one or more of the following: a "fit function" defined by a function fitted to a set of exercise statistics for work versus time, or a set of exercise statistics for work versus time as a defined boundary, for a user's critical power and limited work function force values. In some implementations, the user capability indicator of the user can be calculated each time it is needed, for example, by performing process 400. In some implementations, instead of recalculating the user capability indicator from all available exercise data, a stored previous version of the user capability indicator may be updated to account for (account for) new exercise data obtained since the stored capability indicator was generated. For example, the stored user's ability indicators may be weighted based on the age of the underlying data and may be updated with each exercise set. In various implementations, this update may be performed to generate new user capability indicators at given intervals (e.g., daily, weekly, etc.) or based on available resources (e.g., in the evening, when server availability is typically high, based on current metrics for server resource availability, etc.) when new workout data is received, when a determination of a user's capability indicators is needed.

The process 600 may then use the exercise parameters and the user ability indicators to calculate parameters that define the exercise as lacking specific to the user. For each type of exercise, a transformation may be determined to map a function of the exercise defined (based on exercise parameters) from a work versus time perspective. The function defining the workout may be specified so that it does not exceed the user's "competency line" defined by the received user competency indicator. In various implementations, the capability line may be a capability function, a defined boundary, or a line determined by setting the critical power of the user to a slope and the limited work capacity of the user to a y-intercept. The point at which the exercise function intersects the ability line is the fatigue point, i.e., the point at which the user is deemed to no longer be able to perform any work at the same intensity level. Examples of such parameterization and comparison are provided below in connection with fig. 7 and the appendix. In some implementations, the capability line may be reduced (the y-intercept may be reduced with the same slope) so that the user is only expected to be within a threshold amount of the total fatigue point. In some implementations, a default y-intercept (e.g., 0) may be set. This can be done, for example, when only critical power is available for the user, or when this would be a particularly lengthy exercise.

At block 608, the process 600 may provide a user-specific training program based on the now complete set of exercise parameters. For example, a course may represent a workout duration, may cause a setting to be established on an exercise machine, may integrate a workout into a set of multiple workouts, and so on. In some implementations, the process 600 may continuously monitor power output during a user exercise, update the user's competency function for observed power output, and update exercise parameters accordingly. The process 600 may then provide further updates to the user, for example, suggesting that they slow down if they are expected to reach their fatigue point before the end of the exercise program; or suggest themselves to speed up if they do not expect to meet the goal.

FIG. 7 is a conceptual diagram illustrating an example 700 representation of an exercise function 702 for a user-specific exercise. The user-specific workout is calculated by determining a time parameter 704, which time parameter 704 maintains all values of the workout function 702 below the user's ability line 706 during the workout.

In example 700, for example, the user's critical power and limited work capacity are known, such as by performing process 400. User capability line 706 is generated by setting the critical power to slope 720 and the limited power to y-intercept 718.

In example 700, the workout is an interval workout having regular intervals. The durations of the rest period 710 and the high intensity period 712 are set by the user through the user interface, and the slope of the line segment 714 during the high intensity period is set to a first default value based on the expected running speed during these high intensity portions, and the slope of the line segment 716 during the remaining portion is set to a second default value based on another expected running speed during the remaining portion.

The adaptive training system determines the point of intersection between the user's line of ability and the function representing the exercise, i.e., the fatigue point 708. The time to fatigue value 704 is the time determined for this exercise to allow the user to reach her point of fatigue. Additional details regarding how the adaptive training system performs these operations are provided in the appendix.

8A-C illustrate examples 800, 820, and 860, which illustrate system configurations that implement versions of the adaptive training system. In FIG. 8A, example 800 illustrates a configuration in which an adaptive training system is integrated into an exercise machine 810. The example 800 begins with a measurement representing the power output (e.g., speed and incline) of a user, which is recorded during an exercise. At 804, circuitry in the exercise machine converts the power measurement to a value to do work. The circuitry then uses these values of work to determine a capability function for the user, and uses the capability function to generate a training program. In some implementations, step 804 may be accomplished using processes 400 and 600. For example, the exercise machine 810 may use the power measurements to determine work points and then fit the work points to a capacity line. The exercise machine may use the user's assigned power lines and parameters for the exercise to generate a training program that specifies other previously unknown exercise parameters, thereby keeping the user below their expected fatigue point. For example, the user may specify parameters such as duration and interval length, and the exercise machine may generate a training program that specifies a grade for each interval to keep the user below their expected fatigue point.

The exercise program may be used to automatically control the functions of the exercise machine at 806, such as by setting a speed, duration, or incline setting. Additionally or alternatively, at 806, an output may be provided on a display of the exercise machine or an associated device (e.g., a user paired mobile device) using the resulting exercise program. The output may display statistics about the exercise, instructions for performing a training program, and the like. While example 800 may end at the end of an exercise session, in some implementations, data from the exercise session may be stored in 808. For example, the data may include a determined maximum work point, a capacity function, exercise duration, speed, calories consumed, and the like. This data may be sent to the user's mobile device or server. The system may store this output in association with a user profile.

In FIG. 8B, example 820 illustrates a configuration in which an adaptive training system is implemented in a network of exercise machines, such as exercise machines 822 and 826. In example 820, the exercise machine is connected via server system 824. In example 820, the user previously used exercise machine 822. Exercise machine 822 may transmit the user's identification and data from the exercise to server system 824 at 842. For example, the data may include a determined maximum work point, a capacity function, exercise duration, speed, calories burned, and the like. At 844, the server system may determine a user competency function using the received workout data. In some implementations, step 844 can also include a training program determined for the user.

At step 846, the same user verifies himself or herself with another exercise machine 826. For example, the user may enter a code using her mobile device (e.g., mobile device 828), or scan a bar code on the exercise machine, or the exercise machine may read, e.g., scan a code provided by the user, determine the presence of the user's mobile device or FOB, etc. At 848, exercise machine 826 and server system 824 may communicate to determine a training program for authenticating the user. In some implementations, the exercise program may be the exercise program determined at 844, which may be further based on user profile information, such as preferred exercise parameters that may include duration, number of intervals, and so forth. In some implementations, the communication at 848 may include some parameters for the user's next workout that server system 824 may use to generate a training program so that the user approaches, but does not exceed, the fatigue point.

The exercise program may be automatically implemented by exercise machine 826 as the user executes the exercise program, or may be implemented via instructions provided to the user (not shown) on how to interact with the exercise machine, and additional measurements indicative of power output may be obtained at step 850. In some implementations, exercise machine 826 may autonomously update a training program or exercise parameters based on power measurements, similar to the functions performed by exercise machine 810 in example 800. In some implementations, the measurements can be provided to the server system 824 at 852. At 854, the server system may update the user-determined capability function. Also at 854, the server system may adjust the training program based on the updated user capability function. At 856, the server system may provide the updated training program or exercise parameters to exercise machine 826. At 858, exercise machine 826 may implement updated exercise parameters, for example, by providing an updated display on exercise machine 826 or on the user's mobile device 828, or by automatically performing settings on exercise machine 828, also at 858, as the exercise progresses or the exercise ends, exercise machine 826 may provide exercise data, similar to step 808 of example 800.

In fig. 8C, example 860 illustrates a configuration in which an adaptive training system is implemented on a mobile device 864. Example 860 begins when mobile device 864 receives an exercise statistic. In example 860, the exercise statistics are obtained from communication with the fitness tracker, but the exercise statistics may be obtained from other sources, such as from communication with another type of exercise machine, manual user input, logs stored on a server system, and so forth. At 872, mobile device 864 converts the exercise statistics (e.g., power measurements) into work, uses these to determine a competency function for the user, and uses the competency function to generate a training program for the user. In some implementations, step 874 may be accomplished using processes 400 and 600. For example, the mobile device 864 may use the power measurements to determine the work points and then fit the work points to the capability function. Using the capability function, the mobile device may generate a training program, for example, to determine a running duration or suggested speed, a length of an interval, and so on. In some implementations, step 874 can be accomplished using processing from a server system, such as server system 866.

The received exercise statistics, a transformation of these statistics, or the resulting training program may be stored by mobile device 864. While the example 860 may end here, for example, where the user data is stored entirely at the mobile device and the training program recommendations are provided by the mobile device, in some implementations, this data may be sent to the other device 866 at 876, for example, for further analysis (e.g., at the server system 866), for automatic control of the exercise device 870, or for viewing by the user, for example, through a network interface at the computing device 868. In various implementations, these interactions may be interrelated or facilitated through communications with other apparatuses, e.g., through communications 874.

In various implementations, aspects of the configurations from any of examples 800, 820, and 860 may be combined. For example, input 872 in example 860 may be based on outputs 808 or 858 in examples 800 and 820; the server 824 in example 820 may be replaced with the mobile device 864 in example 860; output 842 in example 820 may be based on output 808 in example 800 or may be output 876 in example 860. Additional configurations, combinations, substitutions, and additions are also contemplated. Although examples 800, 820, and 860 illustrate several types of devices, in some implementations, the functions performed by any of these devices may be performed by other devices or devices not expressly recited.

The following is a non-exhaustive list of additional examples of the disclosed technology.

1. An exercise machine system for automatically providing an adaptive training program, the system comprising:

an exercise device that implements a particular type of workout having given parameters;

an instrument system integrated with the exercise machine that obtains a measurement indicative of power output; and

a processing component configured to generate the adaptive training program by:

within the measurement representing power output, a work value for each particular window size of a plurality of window size durations is determined by:

determining a maximum integral of a function specified by the measurement indicative of power output for an interval matching the particular window size;

fitting a function to the determined work value as a capability function;

applying the given parameter and at least one additional parameter to an exercise function defined for the workout of the particular type such that a value of the exercise function does not exceed a value of the competency function at any time during the duration of the workout; and

generating the adaptive training program using the given parameter and at least one additional parameter;

wherein the output or settings of the exercise device are automatically provided based on the adaptive training program.

2. According to the exercise machine system of example 1,

wherein the exercise machine system further comprises a plurality of exercise machines connected via a network; and

wherein fitting a function to the work done values determined for a plurality of window size durations further comprises fitting the function to additional work done values determined for the plurality of window size durations based on a measurement representative of a power output taken on one of the networked exercise machines other than the exercise device.

3. The exercise machine system of example 2, wherein fitting the function to the work value and the additional work value comprises:

for each particular window size, selecting a maximum of the work value and the additional work value corresponding to the particular window size; and

fitting a function to the selected maximum value of the window size.

4. The exercise machine system of any of examples 1-3, wherein the processing component is a server system connected to the network.

5. The exercise machine system of any of examples 1-4, wherein the processing component generates the adaptive training program in response to an identification comprising:

code representing a user provided to the exercise or the processing component by a user or a mobile device associated with the user; or

Code representing the exercise device provided to the processing component by the user or the mobile device associated with the user.

6. According to the exercise machine system of example 5,

wherein the processing component generates the adaptive training program in response to an identification comprising code representing the exercise device; and

wherein the code representing the exercise device is provided to the mobile device by an image capture system on the mobile device that captures an alphanumeric code, barcode, or QR code displayed with the exercise device.

7. According to the exercise machine system of example 5,

wherein the processing component generates the adaptive training program in response to an identification comprising the code representing the user; and

wherein the code representing the user is provided to the exercise device by the mobile device via wireless communication.

8. The exercise machine system of any of examples 1-3 or 7, wherein the processing component is incorporated in the exercise device.

9. The exercise machine system of any of example embodiments 1-3 or 7, wherein the processing component is incorporated into a mobile device associated with a user of the exercise device.

10. The exercise machine system of any of examples 1-9, wherein the automatically providing the output or settings of the exercise device comprises providing the output to a server system, the output comprising at least one representation of the at least one additional parameter.

11. The exercise machine system of any of examples 1-10, wherein the automatically providing the output or settings of the exercise device comprises providing an output to a mobile device, the output comprising at least one representation of the at least one additional parameter.

12. The exercise machine system of any of examples 1-11, wherein the automatically providing the output or settings of the exercise device comprises providing the output to a mobile device, the output comprising data to be manipulated by executing instructions on the mobile device configured to provide a display to a user to implement an adaptive training program.

13. The exercise machine system of any of examples 1-12, wherein the automatically providing the output or settings of the exercise device comprises providing the output to the exercise device, the output configured to cause a display of the exercise device to provide instructions for the adaptive training program.

14. The exercise machine system of any of examples 1-13, wherein the automatically providing the output or settings of the exercise device comprises providing the settings to the exercise device, wherein the exercise device automatically implements the adaptive training program based on the settings to cause the exercise device to implement the given parameter and the at least one additional parameter.

15. The exercise machine system of any of examples 1-14, wherein the automatically providing the output or settings of the exercise device comprises providing the output to a server system or a mobile device, wherein the output is stored in association with a user profile containing one or more of:

at least some of the determined work values;

the capability function;

statistics of the adaptive training program;

a measure of actual performance during the training;

personal information; or

Any combination thereof.

16. The exercise machine system of any of examples 1-15, further comprising an internet-based interface accessible through a web browser or a mobile device application, wherein the internet-based interface provides access to a user profile associated with a plurality of exercises performed by a user.

17. The exercise machine system of any of examples 1-16, wherein the measurements indicative of power output include one or more of:

speed;

revolutions per minute;

resistance force;

inclining;

a distance;

a duration of time; or

Any combination thereof.

18. The exercise machine system of any one of examples 1-17, wherein the capacity function is a linear function.

19. The exercise machine system of any of examples 2 or 3,

wherein the processing component is a server system connected to the network; and

wherein the server system obtains, in response to authentication of the user, an additional work value stored in association with user configuration information for the user, and generates the adaptive training program.

20. The exercise machine system of any of examples 1-19, wherein the particular type is an interval type exercise.

21. The exercise machine system of example 20, wherein the given parameters for the interval type exercise include one or more of: the number of intervals, the duration of the intervals, the power output during the intervals, the duration of the rest, the power output during the rest, or any combination thereof.

22. The exercise machine system of any of examples 1-19, wherein the particular type is a skip interval type exercise.

23. The exercise machine system of example 22, wherein the given parameters of the skip interval type exercise include one or more of: the number of intervals, the duration of peak work during an interval, the duration of short rest periods within an interval, the power output during peak intervals of an interval, the duration of rest between intervals, the power output during rest periods, or any combination thereof.

24. The exercise machine system of any one of examples 1-23,

wherein applying the given parameter and at least one additional parameter to an exercise function defined for the particular type of the workout comprises:

obtaining a predefined function for the particular type of the workout;

filling the given parameter in the predefined function; and

solving for the at least one additional parameter, wherein the at least one additional parameter includes only one additional parameter; and

wherein generating the adaptive training program using the given parameter and at least one additional parameter comprises:

selecting display data to instruct the user to perform an exercise based on at least the given parameter and the solved at least one additional parameter; or

Specifying a setting for the exercise machine based on at least the given parameter and the solved at least one additional parameter.

25. The exercise machine system of example 24, wherein filling the given parameter in the predefined function includes using one or more default values for one or more of the function parameters that are not included in the given parameter and that are not included in the at least one additional parameter.

26. The exercise machine system of any one of examples 1-5, wherein the processing component is further configured to:

receiving a further measurement indicative of power output while performing the adaptive training procedure;

determining a further work value based on the further measurement value representative of power output;

updating the capability function to further fit to the further work done value;

updating one or more of the given parameter or the at least one additional parameter based on the updated capability function;

generating an updated adaptive training program based on the updated parameters; and

updating the output or settings of the exercise device based on the updated adaptive training program.

27. A method for providing an adaptive training program, the method comprising:

obtaining a measurement indicative of power output;

determining a work value for each particular window size of a plurality of window size durations representing a measure of power output by:

determining a maximum integral of a function specified by a measurement representative of power output for an interval matching the particular window size;

fitting a function to the work done values determined for the plurality of window size durations as a capability function;

calculating a value for at least one previously unspecified parameter for a workout such that a value for an exercise function using the previously unspecified parameter does not exceed a corresponding value for the competency function at any time during the duration of the workout;

generating the adaptive training program using the at least one previously unspecified parameter; and

providing an output or automatic exercise setting based on the adaptive training program.

28. The method of example 27, wherein the measurement indicative of power output is obtained by a user manual input.

29. The method of example 27, wherein the measurement indicative of power output is obtained via recorded exercise statistics taken by a wearable fitness tracker.

30. The method of example 27, wherein the measurement indicative of power output is obtained by an instrumentation system integrated into the exercise device.

31. The method of any one of examples 27-30,

wherein the method is implemented for a plurality of exercise machines connected over a network;

wherein the measurement indicative of power output is obtained from a first one of the networked exercise machines;

wherein a second set of measurements representative of power output is taken from a second one of the networked exercise machines, converted to additional work values for a corresponding window size, and weighted based on an age of the second set of measurements; and

wherein fitting the function to the work values determined for the plurality of window size durations further comprises fitting the function to additional work values.

32. The method of example 31, wherein the fitting the function to the work value and the additional work value comprises:

for each particular window size, selecting a maximum of the work value and the additional work value corresponding to the particular window size; and

fitting the function to the selected maximum value for the window size.

33. The method of any of examples 27-32, wherein the method is performed by a server system connected to a plurality of exercise machines.

34. The method of any of examples 27-33, wherein generating the adaptive training program is in response to an identification comprising:

code representing a user or an exercise device is provided by a user, a mobile device associated with the user, or by the exercise device.

35. According to the method as set forth in example 34,

wherein generating the adaptive training program is in response to an identification that includes the code representing the exercise device; and

wherein the code representing the exercise device is provided to the mobile device by an image capture system on the mobile device that captures an alphanumeric code, barcode, or QR code displayed with the exercise device.

36. According to the method as set forth in example 34,

wherein generating the adaptive training program is in response to an identification that includes the code representing the user; and

wherein the code representing the user is provided by the mobile device.

37. The method of any of examples 27-30 or 36, wherein the method is performed by an exercise machine.

38. The method of any of examples 27-30 or 36, wherein the method is performed by a mobile device associated with a user of an exercise apparatus.

39. The method of any of examples 27-38, wherein providing the output or automatic workout settings comprises providing the output to a server system, the output including at least one representation of the at least one additional parameter.

40. The method of any of examples 27-39, wherein providing the output or automatic workout settings comprises providing an output to a mobile device, the output comprising at least one representation of the at least one previously unspecified parameter.

41. The method of any of examples 27-40, wherein providing the output or automatic exercise settings comprises providing the output to a mobile device, the output comprising data to be manipulated by execution of instructions on the mobile device configured to provide a display for a user to implement the adaptive training program.

42. The method of any of examples 27-41, wherein providing the output or automatic exercise settings comprises providing the output to an exercise device, the output configured to cause a display of the exercise device to provide instructions for the adaptive training program.

43. The method of any of examples 27-42, wherein providing the output or automatic exercise settings comprises providing automatic exercise settings to an exercise device, wherein the exercise device automatically implements the adaptive training program based on the automatic exercise settings such that the exercise device performs the given parameter and at least one previously unspecified parameter.

44. The method of examples 27-43, wherein providing the output or automatic workout settings comprises providing the output to a server system or a mobile device, wherein the output is stored in association with a user profile comprising one or more of:

at least some of the determined work values;

the capability function;

statistics of the adaptive training program;

a measure of actual performance during the training session;

personal information; or

Any combination thereof.

45. The method of any of examples 27-44, further comprising: providing an internet-based interface accessible through a web browser or a mobile device application, wherein the internet-based interface provides access to a user profile associated with a plurality of workouts performed by a user.

46. The method of any of examples 27-45, wherein the measurement indicative of power output comprises one or more of:

speed;

revolutions per minute;

resistance force;

inclining;

the distance between the first and second electrodes,

a duration of time;

the weight of the patient is measured by the weight meter,

repeating; or

Any combination thereof.

47. The method of any of examples 27-46, further comprising:

determining a critical power and a limited work capacity of a user associated with the measurement based on the capacity function; and

modifying the capacity function to a linear and logarithmic function using a combination of the critical power and the limited work capacity.

48. The method of any one of examples 31 or 32,

wherein the method is performed by a server system connected to the network; and

wherein the server system obtains the additional work done value stored in association with a user profile of the user in response to authentication of the user, and generates the adaptive training program.

49. The method of any of examples 27-48, wherein the exercise function is defined for interval type exercises.

50. The method of example 49, wherein the given parameters of the interval type exercise function include at least three of: the number of intervals, the duration of the intervals, the power output during the intervals, the duration of the rest, the power output during the rest, or any combination thereof.

51. The method of any of examples 27-48, wherein the workout function is defined for skip interval type workouts.

52. The method of example 51, wherein the given parameters of the skip interval type exercise function include at least three of: the number of intervals, the duration of peak work during an interval, the duration of a brief rest period within an interval, the power output during peak intervals of an interval, the rest period between intervals, the power output during a rest period, or any combination thereof.

53. The method of any one of examples 27-52,

wherein calculating the value of the at least one previously unspecified parameter comprises:

obtaining the exercise function from a set of predefined functions based on the represented exercise type of the adaptive training program;

populating the predefined exercise function with one or more given parameters; and

solving for the at least one previously unspecified parameter, wherein the at least one previously unspecified parameter includes only one parameter; and

wherein generating the adaptive training program using the at least one previously unspecified parameter comprises:

selecting data to be displayed to instruct the user to perform an exercise based on at least the at least one previously unspecified parameter; or

The output or automatic workout settings are specified based on at least one previously unspecified parameter.

54. The method of example 53, wherein populating the one or more given parameters in the predefined function includes using one or more default values for one or more of the exercise function parameters that are not included in the given parameters and are not included in the at least one previously unspecified parameter.

55. The method of any of examples 27-54, further comprising:

receiving a further measurement representative of power output when the adaptive training procedure is executed;

determining a further work value based on a further measurement value representative of the power output;

updating the capability function to further fit the further work value;

updating one or more parameters of the exercise function based on the comparison of the exercise function to the updated competency function;

generating an updated adaptive training program based on the updated parameters; and

updating the output or automatic exercise settings based on the updated adaptive training program.

56. A computer-readable storage medium storing instructions that, when executed by a computing system, cause the computing system to perform operations for automatically providing an adaptive training program, the operations comprising:

acquiring given parameters of a training course;

obtaining a measurement indicative of power output;

generating the adaptive training program by:

determining a capability function or a critical power estimate based on the measurement indicative of power output; and

generating the training program using (a) the capability function or critical power estimate and (B) the given parameter, the training program including a value of at least one previously unspecified parameter; and

providing the adaptive training program.

57. The computer-readable storage medium of example 56, wherein the operations further comprise determining a work value for each particular window size of a plurality of window size durations representing a measurement of power output by determining a maximum integral of a function specified by the measurement representing power output for an interval matching the particular window size.

58. The computer readable storage medium of example 57, wherein determining the capacity function or critical power estimate comprises fitting a function to the work done values determined for the plurality of window size durations.

59. The computer-readable storage medium of example 57, wherein generating the adaptive training program is performed by calculating a value for each of the at least one previously unspecified parameter such that a value of an exercise function using the at least one previously unspecified parameter does not exceed a corresponding value of the competency function at any time during the course's duration.

60. The computer-readable storage medium of any of examples 56-59, wherein the measurement indicative of power output is obtained by a manual input by a user.

61. The computer-readable storage medium of any of examples 56-59, wherein the measurement representative of power output is obtained through recorded exercise statistics acquired by a wearable fitness tracker.

62. The computer readable storage medium of any of examples 56-59, wherein the measurement indicative of power output is obtained by an instrumentation system integrated into an exercise device.

63. According to the computer-readable storage medium of example 58,

wherein the computing system is coupled to a network connecting a plurality of exercise machines;

wherein the measurement indicative of power output is obtained by a first one of the networked exercise machines;

wherein a second set of measurements representative of power output is obtained by a second one of the networked exercise machines, the second set of measurements converted to additional work values for a corresponding window size; and

wherein fitting a function to the work values determined for the plurality of window size durations further comprises fitting the function to the additional work values as well.

64. According to the computer-readable storage medium of example 58,

wherein the computing system is coupled to a network connecting a plurality of exercise machines;

wherein said measurement representative of power output is taken by a first of said networked exercise machines;

wherein a second set of measurements representative of power output is obtained by a second one of the networked exercise machines, the second set of measurements converted to additional work values for a corresponding window size; and

wherein said fitting the function to the determined work values for the plurality of window size durations further comprises fitting the function to the additional work values as well; and

wherein said fitting the function to the work value and additional work values comprises:

for each specific window size, selecting the maximum value of the work value and the additional work value corresponding to the specific window size; and

fitting the function to a selected maximum value of the window size.

65. The computer-readable storage medium of any of examples 56-64, wherein the operations are performed by a server system connected to a plurality of exercise machines.

66. The computer-readable storage medium according to any one of claims 56-65, wherein the adaptive training program is generated in response to an identification comprising:

code representing the user or the exercise device is provided by the user, by a mobile device associated with the user, or by the exercise device.

67. According to the computer-readable storage medium of example 66,

wherein the generating of the adaptive training program is in response to an identification that includes code representing the exercise device; and

wherein the code representing the exercise device is provided to the mobile device by an image capture system on the mobile device that captures an alphanumeric code, barcode, or QR code displayed with the exercise device.

68. According to the computer-readable storage medium of example 66,

wherein the generating of the adaptive training program is in response to an identification that includes the code representing the user; and

wherein the code representing the user is to provide a communication of the code to the exercise device through the mobile device.

69. The computer-readable storage medium of any of examples 56-64, wherein the operations are performed by an exercise machine.

70. The computer-readable storage medium of any of examples 56-64, wherein the operation is performed by a mobile device associated with a user of an exercise apparatus.

71. The computer-readable storage medium of any of examples 56-70, wherein providing the adaptive training program includes providing an output to a server system, the output including at least one representation of the at least one previously unspecified parameter.

72. The computer-readable storage medium of any of examples 56-71, wherein providing the adaptive training program includes providing an output to a mobile device, the output including at least one representation of the at least one previously unspecified parameter.

73. The computer-readable storage medium of any of examples 56-72, wherein providing the adaptive training program comprises providing an output to a mobile device, the output comprising data to be operated on by executing instructions on the mobile device configured to provide a display to a user to implement the adaptive training program.

74. The computer-readable storage medium of any of examples 56-73, wherein providing the adaptive training program includes providing an output to an exercise device, the output configured to cause a display of the exercise device to provide instructions for the adaptive training program.

75. The computer-readable storage medium of any of examples 56-74, wherein providing the adaptive training program includes providing automatic exercise settings to an exercise device, wherein the exercise device automatically implements the adaptive training program based on the automatic exercise settings.

76. The computer-readable storage medium of any one of examples 56-75, wherein the operations further comprise providing output to a server system or a mobile device, the output stored in association with a user profile, the user profile comprising one or more of:

at least some of the determined work values;

the capability function;

counting self-adaptive training courses;

a measure of actual performance during the training session;

personal information; or

Any combination thereof.

77. The computer-readable storage medium of any one of examples 56-76, wherein the operations further comprise: providing an internet-based interface accessible through a web browser or mobile device application, wherein the internet-based interface provides access to a user profile associated with a plurality of exercises performed by a user.

78. The computer-readable storage medium of any one of examples 56-77, wherein the measurement indicative of power output includes one or more of:

speed;

revolutions per minute;

resistance force;

inclining;

distance and duration;

body weight and number of repetitions; or

Any combination thereof.

79. The computer-readable storage medium of any one of examples 56-78, wherein the capability function is a linear function.

80. The computer-readable storage medium of any one of examples 56-79,

wherein the operations further comprise calculating the value of the at least one previously unspecified parameter by:

obtaining an exercise function from a set of predefined functions based on the represented exercise type of the adaptive training program;

filling the given parameter in the exercise function; and

solving for the at least one previously unspecified parameter, wherein the at least one previously unspecified parameter includes only one parameter; and

wherein generating the adaptive training program comprises:

selecting data to be displayed to instruct the user to perform an exercise based on at least the at least one previously unspecified parameter; or

An automatic workout setting is specified based on the at least one previously unspecified parameter.

81. The computer-readable storage medium of example 53, wherein populating the one or more given parameters in the predefined function includes using one or more default values for one or more of the exercise function parameters that are not included in the given parameters and that are not included in the at least one previously unspecified parameter.

82. The computer-readable storage medium of any one of examples 56-81, wherein the operations further comprise:

receiving a further measurement representative of power output when the adaptive training procedure is executed;

determining a further work value based on a further measurement value representative of the power output;

updating the capability function to further fit the further work value; and

an updated adaptive training program is generated based on the capability function.

83. A method performed by a mobile device for providing an adaptive training procedure, the method comprising:

obtaining a measurement indicative of power output;

determining a work value for each particular window size of a plurality of window size durations representing the measure of power output by:

determining a maximum integral of a function specified by a measurement representative of power output over an interval matching the particular window size;

fitting a function to the work done values determined for the plurality of window size durations as a capability function;

calculating a value for at least one previously unspecified parameter for a workout such that the value of an exercise function using the previously unspecified parameter does not exceed a corresponding value of the competency function at any time during the duration of the workout;

generating the adaptive training program using the at least one previously unspecified parameter; and

sending an automatic exercise setting to an exercise device based on the adaptive training program, wherein the exercise device automatically implements the adaptive training program based on the automatic exercise setting.

Several implementations of the disclosed technology are described above with reference to the accompanying drawings. A computing device on which the techniques may be implemented may include one or more central processing units, memory, input devices (e.g., keyboard and pointing devices), output devices (e.g., display devices), storage devices (e.g., disk drives), and network devices (e.g., network interfaces). The memory and storage devices are computer-readable storage media that may store instructions that implement at least a portion of the described techniques. In addition, the data structures and message structures may be stored or transmitted via a data transmission medium, such as a signal on a communications link. A variety of communication links may be used, such as the internet, a local area network, a wide area network, or a point-to-point dial-up connection. Thus, computer-readable media may include computer-readable storage media (e.g., "non-transitory" media) and computer-readable transmission media.

Reference in the specification to "an implementation" (e.g., "some implementations," "one implementation," "an implementation," etc.) means that a particular feature, structure, or characteristic described in connection with the implementation is included in at least one implementation of the present disclosure. The appearances of such phrases in various places in the specification are not necessarily all referring to the same implementation, nor are separate or alternative implementations mutually exclusive of other implementations. In addition, various features are described which may be exhibited by some implementations rather than by others. Similarly, various requirements are described which may be requirements for some implementations but not other implementations.

As used herein, above a threshold means that the value of the item in the comparison is higher than other values specified, the item in the comparison is among some specified number of items having the greatest value, or the item in the comparison is within a specified highest percentage value. As used herein, below a threshold means that the value of the item in the comparison is below the other values specified, the item in the comparison is among some specified number of items having the smallest value, or the item in the comparison has a value within a specified bottom percentage value. As used herein, within a threshold means that the value of the item in comparison is between two specified other values, the item in comparison is between a specified number of items in the middle, or the item in comparison has a value in a specified percentage range in the middle. Relative terms, such as high or not important, if not otherwise defined, may be understood as assigning a value and determining how the value compares to an established threshold. For example, the phrase "selecting a quick connection" may be understood to mean selecting a connection having an assigned value corresponding to its connection speed above a threshold value.

As used herein, the word "or" refers to any possible permutation of a group of items. For example, the phrase "a, B, or C" refers to at least one of a, B, C, or any combination thereof, such as any of: a; b; c; a and B; a and C; b and C; a, B and C; or multiples of any item, such as a and a; b, B, and C; a, A, B, C, and C; and so on.

Although the subject matter has been described in language specific to structural features or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the specific features or acts described above. Specific examples and implementations have been described herein for purposes of illustration, but various modifications may be made without deviating from the scope of the examples and implementations. The specific features and acts described above are disclosed as example forms of implementing the claims. Accordingly, examples and implementations are not limited except by the appended claims.

Any of the patents, patent applications, and other references mentioned above are incorporated herein by reference. Aspects can be modified, if necessary, to employ the systems, functions, and concepts of the various references described above to provide yet further implementations. In the event of a conflict between a statement or subject matter in a document incorporated by reference and a statement or subject matter of this application, this application controls.

47页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:信息处理设备、分析设备和信息处理系统

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!