Patent Publication Number: US-2023149762-A1

Title: Redundant control circuit for an exercise device

Description:
CROSS-REFERENCE TO RELATED APPLICATION 
     This application is related to and claims priority under 35 U.S.C. § 119(e) from U.S. Patent Application No. 63/279,634, filed Nov. 15, 2021, entitled “Redundant Control Circuit for an Exercise Device,” the entire contents of which is incorporated herein by reference for all purposes. 
    
    
     TECHNICAL FIELD 
     The present disclosure relates to an exercise device, and in particular, to a control circuit of an exercise device that includes redundant control over the operation of the device. 
     BACKGROUND 
     The benefit of regular exercise is undisputed. Nonetheless, beginning and maintaining a successful exercise regimen is a challenge for many individuals for a variety of reasons. With busy schedules, simply finding the time to begin an exercise program is a challenge. Then, finding an exercise, or more preferably exercises, is a challenge when folks have insufficient knowledge as to different types of exercises, the benefits of different exercise, and how to perform those exercises. Moreover, with time constraints and a lack of knowledge, it may be challenging to properly track and analyze performance and progress. As a result, there is an ongoing need to develop efficient exercise devices, and it is important to provide ways to easily perform exercises correctly and with an optimal resistance to maximize their results during the limited time available. In an ever-busy world, exercising at home improves the likelihood of staying within an exercise regime. However, exercise equipment is often large and cumbersome, making home-based equipment unappealing to many potential users. 
     It is with these observations in mind, among others, that aspects of the present disclosure were concerned and developed. 
     SUMMARY 
     Embodiments of the disclosure concern a method for controlling an exercise device. The method may include the operations of receiving a sensor measurement of an aspect of the exercise device, receiving an instruction for controlling a motor controller in electrical communication with a motor, and determining, based on either the measurement or the instruction, a malfunction of a component of the exercise device. The method may further include generating, in response to the determined malfunction, a first control signal to disconnect a power source from the motor controller, and generating, in response to the determined malfunction, a second control signal to a power inhibit input to the motor controller, wherein activation of the inhibit input removes a power signal to the motor. 
     Another embodiment of the disclosure concerns a control circuit for an exercise device comprising a motor controller in electrical communication between a power source and a motor, the motor translating a power signal from the power source to cause the motor to generate a force on a cable of the exercise device, a power gating device in electrical communication between the power source and the motor controller, the power gating device comprising a switch to remove, in response to a disconnect signal, disconnect the power source from the motor controller, and a second controller comprising a processor and a computer-readable medium storing instructions. When those instructions are executed, the processor may determine, based on either a measurement associated with an output of the motor or an instruction transmitted to the motor controller from a circuit controller, a malfunction of the exercise device and generate, in response to the determined malfunction, a first control signal to the power gating device to disconnect the power source from the motor controller and a second control signal to a power inhibit input to the motor controller to inhibit a power signal to the motor from the motor controller. 
     Yet another embodiment of the disclosure concerns a controller of an exercise device executing instructions to provide redundant control of the exercise device. The controller may determine a malfunction operation of a component of the exercise device, generate, in response to the determined malfunction operation, a first control signal to disconnect a power source from a motor controller in electrical communication with and providing a power signal to a motor, and generate, in response to the determined malfunction operation, a second control signal to a power inhibit input to the motor controller, wherein activation of the power inhibit input removes the power signal to the motor. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The foregoing and other objects, features, and advantages of the present disclosure set forth herein should be apparent from the following description of particular embodiments of those inventive concepts, as illustrated in the accompanying drawings. The drawings depict only typical embodiments of the present disclosure and, therefore, are not to be considered limiting in scope. 
         FIG.  1 A  is a front perspective view of an exercise device, in accordance with various embodiments. 
         FIG.  1 B  is a perspective view of the exercise device of  FIG.  1 A  with a housing partially removed to illustrate internal components of the exercise device, in accordance with various embodiments. 
         FIG.  1 C  is a diagram of an operating environment including the exercise device of  FIG.  1 A  in which functions of the exercise device are supported by a user computing device and a remote fitness platform, in accordance with various embodiments. 
         FIG.  2    is a block diagram of a control circuit for controlling the motor of the exercise device, the control circuit including a redundant circuit, in accordance with various embodiments. 
         FIG.  3    is a block diagram of a redundant controller of an exercise device to provide redundant control of a motor of the exercise device, in accordance with various embodiments. 
         FIG.  4    is a flowchart of a method for providing redundant control to control of a motor of an exercise device, in accordance with various embodiments. 
         FIG.  5    is a system diagram of an example computing system that may implement various systems and methods discussed herein, in accordance with various embodiments. 
     
    
    
     DETAILED DESCRIPTION 
     Aspects of the present disclosure involve systems, circuit, devices, and methods for redundant monitoring and control of a motor associated with an exercise device. In particular, an exercise device may utilize a motor to provide resistive force or movement that a user counteracts in order to exercise. In one possible arrangement, the exercise device and motor control may simulate the forces provided from a conventional cable driven weight-stack. Regardless, a motor of an exercise device of the present disclosure may be controlled by a microcontroller or other control circuitry to apply a resistive force or retraction movement that is countered by a user pulling against the retraction force of the motor. Generally speaking, a cable is spooled about a motor axle, and the motor applies a retraction force against a user pulling on the cable. As is described in further detail below, the motor is positioned within a housing and the cable extends from the housing, the cable attached to a handle or other piece of equipment through which a user may apply a counterforce against whatever force is being provided by the motor. For example, the microcontroller may execute a program that applies a force of 50 pounds. When a user opposes the force with 50 pounds or more to overcome the force from the motor, the cable is withdrawn. 
     Since the system is controlled by various electrical and computational components, it may experience problems typical of any other electrical or computing environment. Thus, in order to maintain operations within known valid operating conditions, the exercise device may include redundant monitoring and operational systems. In one example, the redundant systems are configured to confirm proper operation of the device and automatically alter operation when improper operation is detected or the system cannot confirm proper operation. For example, the system may detect when a commanded force from the motor controller does not match a set force or a user requested force. The mismatch may be caused by any number of possible errors or failures in the system, and the redundant system will take action based on the mismatch and by implicitly assuming that a mismatch is reflective of an improper operating condition. 
     The exercise device may therefore include a redundant monitoring and control circuit integrated within or otherwise in communication with various components of the exercised device, including a primary control circuit or microcontroller and various aspects of the motor, to detect and act on real or possible improper operation of the exercise device. The redundant system may also monitor different attributes of the primary control system so that it is able to detect improper operation even when proper control signals are generated. In one implementation, the control circuit may include a redundant controller, such as a microcontroller or other control circuit, that executes one or more programs or applications that prevents an improper operating condition of the exercise device. The redundant controller may monitor operating parameters of the motor and/or other components of the exercise device to determine an output of the motor. In some instances, the redundant controller may utilize one or more physics models to determine the effect on the cable in response to the output of the motor. For example, the redundant controller may receive a current in and/or current out of the motor from one or more current sensors of the control circuit. With the current in, current out, and known parameters of the motor, the redundant controller may determine or calculate an estimated output force on the cable of the exercise device. The output force may then be compared to the commanded output force to determine a potential difference between the commanded output force and the estimated output force. In another example, the redundant controller may receive a power source voltage to the motor from a voltage sensor and, from the power source voltage and other circuit measurements, calculate a power into and/or power provided by the motor, and compare the derived values against those commanded. In another instance, the redundant controller may determine or receive a length or extension of the cable and compare the same to what was commanded. The system may similarly compute the rate at which the cable is being extracted. In still other instances, the redundant controller may determine a frequency and/or magnitude of force changes applied by the motor. Large changes in the force applied by the motor or frequently occurring changes in the forces applied by the motor may indicate a malfunctioning control system due to any out of normal operating condition, including but not limited to an improperly operating component, a lost signal, a faulty sensor, inability to accurately read a condition, etc. 
     The redundant controller may, based on a determination of a potentially out of specification operating condition of the exercise device, transmit one or more control signals to alter (e.g., reduce or remove) power to the motor of the exercise device. In one example, the redundant controller may provide a control signal to a motor power gating device to remove power transmitted to the motor from a power source. In another example, the redundant controller may enable an inhibitor line of a motor controller to disconnect main power from the motor. In still other examples, the redundant controller may control the motor power gating device and enable the inhibitor line of the motor controller to remove power to the motor. Controlling the motor power gating device and the inhibitor line may ensure that power is removed from the motor even when a conflicting signal from another system (e.g., a main system controller or the motor controller) is being transmitted to the motor. Control of the motor power gating device and/or the inhibitor line may be based on an output of the physics model executed by the redundant controller indicative of a potentially out of specification operating condition of the exercise device. In another example, control of the motor power gating device and/or the inhibitor line by the redundant controller may be based on a detected operation of the motor and/or exercise device that is different from an expected operation of the motor. For example, based on control signals generated by the main system controller and snooped or otherwise received by the redundant controller, an expected output of the motor may be generated or determined. In circumstances in which a measured output of the motor differs from an expected output of the motor beyond a particular threshold (thereby indicating an out of specification operating condition), the redundant controller may control the motor power gating device and/or the inhibitor line to remove power from the motor preventing the unspecified operating condition. In this manner, the redundant controller may provide a redundant control feature to the control of the exercise device to prevent or minimize a potential injury to the user of the device during use. 
     Aspects of this disclosure include exercise devices for use in performing various resistance-based exercises. The exercise devices include a step-style housing having a top through which a motor-driven cable extends. A user can equip the end of the cable with a grip, collar, belt, or similar component to facilitate performance of different exercises. During operation, the motor supplies resistance by counteracting extension of the cable by the user and/or forcibly retracting the cable against the user. The exercise device may include or be in communication with computing elements configured to control the motor. 
     The motor replaces weights, bands, and other resistance elements found in conventional exercise equipment. However, the motor can be actively controlled to provide greater variety and flexibility as compared to such resistance elements. For example and among other things, the exercise device may control the motor to supply resistance that automatically varies over a given range of motion (e.g., applying a different resistance during the concentric versus eccentric phase of an exercise) or provides a constant resistance that eliminates inertial effects common with conventional resistance elements. 
     The exercise device may include or be communicably coupled to various devices for controlling the exercise device and providing feedback to a user. For example, the exercise device force may connect to and communicate with a computing device, such as a smartphone, tablet, laptop, smart television, etc. to enable the user to select a workout and/or exercise, adjust exercise parameters (e.g., a range of motion of the exercise, a speed of the exercise, a load, or any other similar parameter), view historical performance data, and the like. In certain implementations, such computing devices may also facilitate streaming of video or other multimedia content (e.g., classes) to guide a user&#39;s exercise or to facilitate participation in streaming or real-time interactive classes and competitions. In still other implementations, the exercise platform may be used in conjunction with a gaming platform or other computing device capable of running games or similar interactive software. 
     Exercise devices of this disclosure may connect to and communicate with each other or to other computing devices over a network, such as the Internet. In one implementation, a cloud-based platform may interact with exercise devices of this disclosure and associated user computing devices (e.g., a user&#39;s smartphone) to distribute resistance profiles for exercises, store and update user information, and present tracking information to users and personnel such as gym facility managers, personal trainers, physiotherapists, and others who may be working with a user. The cloud-based computing platform further enables the generation, updating, and storage of content for use with the exercise device including, but not limited to, resistance profiles, workout plans, multimedia content, and the like. 
       FIG.  1 A  is a perspective view of an exercise device  100  according to one implementation of the present disclosure.  FIG.  1 B  is a perspective view of exercise platform  100  with an exterior housing  102  and other external components removed to illustrate the internals of exercise platform  100 . 
     Referring to  FIG.  1 A , exercise platform  100  includes a housing  102  having a top  104  through which a cable  106  passes. In certain implementations, top  104  includes an aperture  120  within which a fairing  122  or similar guide element is disposed to permit multi-directional retraction and extension of cable  106 . As shown, cable  106  may end in a handle  108 ; however, in other implementations, cable  106  ends in a strap, grip, belt, rope loop, or similar component to facilitate performance of different exercises. During performance of an exercise, a user extends cable  106  and/or resists retraction of cable  106  with resistance provided by a motor  110  (shown in  FIG.  1 B ) disposed within housing  102  and coupled to cable  106 , e.g., by a cable pulley  112  (also shown in  FIG.  1 B ). 
     Exercise platform  100  may include a control system (including, e.g., a motor controller, a motor drive, a microprocessor, and/or other related components) for controlling motor  110  and the resistance provided by motor  110 . Exercise platform  100  may further include various sensors for providing feedback to the control system to facilitate control of motor  110 . For example, in certain implementations, exercise platform  100  may include one or more of a current sensor, a position sensor (e.g., an encoder), an accelerometer, or other sensors for measuring parameters related to motor performance, which can be used in the control and operation of motor  110 . In certain implementations, force sensors (e.g., load cells, strain gauges, etc.) incorporated into exercise platform  100  may also supply additional feedback for controlling motor  110 . 
     Motor  110  and the associated motor control components may provide a variety of different resistance profiles depending on the exercise being performed, settings provided by the user, a workout plan of the user, and the like. For example, motor  110  may provide constant resistance over a complete range of motion for an exercise. As another example, motor  110  may provide a first resistance during a first phase of an exercise (e.g., a concentric phase of the exercise) and a second, different, resistance during a second phase of the exercise (e.g., an eccentric phase of the exercise). As yet another example, motor  110  may vary resistance over any or all phases of an exercise. 
     By way of example, a user of exercise platform  100  may perform a squat motion while holding handle  108  in front of his or her body and standing on top  104 . In one example, motor  110  may supply constant resistance (e.g., 100 lb of resistance) during both the eccentric (descending) and concentric (ascending) phases of the squat. In another example, motor  110  may supply a first resistance (e.g., 50 lb of resistance) during the eccentric phase of the squat but subsequently increase resistance (e.g., to 100 lb) during the concentric phase of the squat, thereby emphasizing the concentric phase. In yet another example, motor  110  may supply relatively low resistance when the user is at depth but supply increased resistance as the user reaches an upright position. Among other things, such varying of resistance may encourage a full and safe range of motion by reducing load in typically problematic points of the exercise. As a final and non-limiting example, motor  110  may supply a random or otherwise dynamically varying resistance (e.g., a “noisy” load that ranges from 40 lb to 60 lb) over some or all of the squat motion, thereby forcing the user to recruit a broader range of stabilizing muscles than if a constant resistance were to be applied by motor  110 . 
     As illustrated in  FIG.  1 A , exercise platform  100  may include various other features. For example, housing  102  may include a grip  124  or similar feature to facilitate transportation of exercise platform  100 . Exercise platform  100  may also include an electronics panel  126 . Among other things, electronics panel  126  may include one or more ports to facilitate communication between exercise platform  100  and other computing devices, a display (e.g., an LED or LCD screen) for providing information to a user, one or more lights to indicate status or operation of exercise platform (e.g., an “ON/OFF” light indicator), one or more switches (e.g., a power switch), and the like. In at least certain implementations, exercise platform  100  may include a power source such that exercise platform  100  may be optionally operated without being plugged into a wall outlet or similar power source. In such cases, exercise platform  100  may further include a charging port or similar plug (not illustrated) to facilitate charging of the power source or otherwise powering exercise platform  100 . 
     Referring to  FIG.  1 B , an isometric view of exercise platform  100  is provided with portions of housing  102  removed for clarity and to reveal internal components of exercise platform  100 . As previously discussed, exercise platform  100  includes motor  110 , which may be coupled to and drive a cable pulley  112  to control retraction and extension of cable  106 . 
     Exercise platform  100  includes an internal frame  114  that provides structural integrity to exercise platform  100  and structure for coupling to and supporting internal components of exercise platform  100 . As illustrated, internal frame  114  includes a web  116  extending transversely through base  102 . In at least certain implementations, motor  110  is coupled to and supported by web  116  such that cable pulley  112  aligns with aperture  120  of top  104 . Internal frame  114  may include additional elements, such as transvers member  118  to provide additional structural integrity and/or mounting locations for other components of exercise platform  100 . 
       FIG.  1 C  illustrates an example operation environment  150  including exercise platform  100 . In at least certain implementations, exercise platform  100  communicates with one or more external computing devices, such as computing device  152 . Although illustrated as a smartphone, computing device  152  may be any suitable computing device capable of connecting to and communicating with a communication module or similar communication component of exercise platform  100  through a wired or wireless connection. 
     Computing device  152  may execute an application for interfacing with and controlling exercise platform  100 . For example, the application executed on computing device  152  may permit a user of computing device to change a resistance of exercise platform  100  or a resistance profile executed by exercise platform. In other implementations, the application may allow the user to select an exercise or workout routine the automatically reconfigures exercise platform  100  as the user progresses through the exercise or workout routine. During operation, exercise platform  100  may transmit data, such as position data for cable  106 , such that the application may track successful completion of exercises and workout routines by the user. 
     One or both of exercise platform  100  and computing device  152  may further communicate with a fitness platform  154  over a network  156 , such as the Internet. Among other things, fitness platform  154  may provide a portal, website, application data, etc. through which a user of computing device  152  may access information and content related to use of exercise platform  100 . For example, fitness platform  154  may include a repository or similar source of video, text, or other content directed to use of exercise platform  100  and/or fitness and exercise more generally. As another example, fitness platform  154  may support user accounts such that a user of the computing device  152  and/or the exercise platform  100  may track their historic exercise performance and improvement, create and track workouts and fitness plans, participate in leaderboards, and other community-related features, and the like. In at least certain implementations, fitness platform  154  may facilitate real-time classes, competitions, and/or similar group activities that simultaneously support multiple users of exercise devices. For example, in the context of a class, a live streamed video of an instructor may be provided by fitness platform  154  to multiple users and each exercise device (or a related/connected computing device) may in turn provide exercise data (e.g., resistance level, speed, rep completion, etc.) for maintaining and populating a class leaderboard or similar display of participant performance. 
       FIG.  2    is a block diagram of a control circuit  200  for controlling a motor  208  of an exercise device, the control circuit including a redundant control circuit portion. In particular, the control circuit  200  includes a motor  208  that is mechanically connected to the cable  106  to apply a force on the cable to simulate a weight stack, as described above. The motor  208  may be powered by a power source  202 , which may be a conventional wall outlet. Alternatively or additionally, the power source  202  may be a battery or any other type of power source. One or more controllers or other components of the circuit  200  may be configured to control the amount of power that is provided to the motor  208 . For example, a motor controller  206  may electrically connect to the motor  208  to control operation of the motor through one or more control signals and/or by providing a power signal, including providing a requested power signal to the motor to cause the motor to disconnect from the power source  202 . In some instances, the motor controller  206  may receive one or more signals from a main controller or main MCU  210 . The functions of the main controller and main MCU  210  may be embodied in the same processing unit or in distinct units. Similarly, the functions of a redundant controller  220  may be integrated in the same processing unit; however, for redundancy, the redundant controller is in a distinct processing unit from the others. The main MCU  210  may be a microcontroller or other type of integrated circuit (IC) device. The main MCU  210  may execute one or more programs to determine a requested output of the motor  208  and provide signals to the motor controller  206  to generate the requested output. For example, the main MCU  210  may receive, such as through a user interface or user device, a request for an output of the motor  208  corresponding to a  50  lb. resistance on the cable. The main MCU  210  may generate and transmit one or more signals to the motor controller  206  indicating the requested output of the motor  208 . The motor controller  206  may, in response to the one or more signals, control a power signal from the power source  202  to the motor  208  to generate the requested output. For example, a particular voltage and/or current (together referred to the as a power signal) that causes the motor to generate an output corresponding to  50  lbs. of resistance may be provided by the motor controller  206  to the motor  208  in response to the request by the main MCU  210 . Higher or lower power signals to the motor  208  may similarly be requested by the main MCU  210  through the motor controller  206  in response to other inputs received at the main MCU. In this manner, the main MCU  210  may control the motor controller  206  to generate a requested or expected output of the motor  208  to operate the exercise device. 
     In one implementation, a motor power gate  204  may be electrically connected between the power source  202  and the motor controller  206  and may be configured to, based on one or more input signals, connect or disconnect the power source  202  to the motor controller  206 . The motor power gate  204  may be a switching device, such as a field effect transistor (FET) or other type of transistor, that is toggled from an open position (to disconnect the power source  202  from the motor controller  206 ) to a closed position (connecting the power source to the motor controller). In conjunction with the motor controller  206 , the motor power gate  204  may be controlled to disconnect the motor  208  from power source  202 . Use of the motor power gate  204  to connect or disconnect the power source  202  from the motor controller  206  is discussed in more detail below. 
     Through the circuit  200 , power to the motor  208  (and thus control over the output of the motor and resistance on the cable of the exercise device) is managed by the main MCU  210  and the motor controller  206 . However, a malfunction to the main MCU  210 , the motor controller  206 , or other components of the control circuit  200  of the exercise may cause an out of specification or otherwise improper operating condition. For example, microcontrollers can become deadlocked, may get stuck in an execution loop, may include code errors in executed programs, etc. that may cause the microcontroller to malfunction. Improper operation of the exercise device due to such errors may have various results. For example, a malfunction of the main MCU  210  may cause one or more signals to the motor controller  206  to improperly increase or decrease the output of the motor  208 , resulting in an unexpected resistance force. In another example, the motor controller  206  may malfunction and provide a higher than requested power signal to the motor, resulting in some form improper operation of the exercise device. Thus, the control circuit  200  may include one or more redundant features, including a redundant controller  220  to prevent or minimize the likelihood of an improper operation of the motor  208 . 
     In one implementation, the redundant controller  220  may be a microcontroller, other IC controller device, or any type of computing device or circuit that may execute one or more instructions of a program. In general, the redundant controller  220  may execute the one or more instructions to respond to a detected or measured potentially improper operation of the exercise device and remove a power signal from the power source  202  to the motor  208 . For example, the redundant controller  220  may be electrically connected to and control the motor power gate  204  to remove the power source  202  from connection to the motor controller  206 . In one implementation, the redundant controller  220  and the main MCU  210  may connect to the motor power gate  204  through a AND logic gate device  214 . In this implementation, the redundant controller  220  and the main MCU  210  must both provide a control signal to the motor power gate  204  to cause connection of the power source  202  to the motor controller  206  such that a disconnect signal from either the main MCU or the redundant controller operates to remove the power source  202  from the motor controller  206 . In still another implementation, a power button  212  or switch may also be connected as an input to the logic AND gate device  214  as a third control of the motor power gate  204 . In such an implementation, each of the power button  212 , the redundant controller  220 , and the main MCU  210  must be in agreement on the connection of the power source  202  to the motor controller  206  through the motor power gate  204 . If any of the power button  212  (through an activation by a user of the exercise device), the main MCU  210  (in response to an input from a user or a detected operational state of the device), or the redundant controller  220  (in response to a detected potentially improper operating condition) transmit a control signal to the motor power gate  204 , the power source  202  may be disconnected from the motor controller  206  such that the motor  208  may not receive a power signal from the power source. 
     In some instances, however, the motor power gate  204  may also malfunction such that the power source  202  remains connected to the motor controller  206  despite one or more of the power button  212 , the main MCU  210 , or the redundant controller  220  controlling the motor power gate  204  to open and disconnect the power source  202  from the motor controller  206 . Therefore, the redundant controller  220  may also be connected to an inhibitor line or input of the motor controller  206  over which an inhibitor signal  218  may be provided to the motor controller. When enabled, the inhibitor signal  218  may cause the motor controller  206  to inhibit the power signal to the motor  208 , effectively disconnecting the motor from the power signal of the power source  202 . Enabling the inhibitor signal  218  may be performed by the redundant controller  220  in response to a detected improper operating condition of the exercise device. For example, the redundant controller  220  may receive one or more instructions from the main MCU  210 , such as the instructions provided to the motor controller  206  to control the power signal to the motor  208 . Based on the received instructions, the redundant controller  220  may determine an expected output of the motor  208 . In addition, the redundant controller  220  may receive measurements from one or more components of the control circuit  200 , such as current meter  216  connected to the output of the motor  208  and measuring the output current of the motor. Through an analysis of the received circuit measurements (which may also include current into the motor, voltage of the power signal from the power source  202 , voltage into and out of the motor  208 , and the like), the redundant controller  220  may determine that the motor is creating a potentially improper operating condition of the exercise device and, concurrently or separately, cause the motor power gate  204  to disconnect the power source  202  from the motor controller  206  and enable the inhibitor signal  218  to the motor controller. Either or both of these features may disconnect the power source  202  from the motor  208 , thereby operating the exercise device in a proper condition despite one or more of the components of the circuit  200  malfunctioning. 
       FIG.  3    is a block diagram of the redundant controller  220  of the control circuit  200  discussed above to provide redundant control of a motor  208  of the exercise device. In some instances, the redundant controller  220  may include a redundant controller program  306  executed to perform one or more of the operations described herein. For example, the redundant controller  220  may be a microcontroller or other computing device onto which the redundant controller program  306  may be loaded and executed. In particular, the redundant controller program  306  may include computer executable instructions stored in a non-transitory computer readable media  304  (e.g., memory) and executed on a processing system  302  of the redundant controller  220  or other type of computing system, such as that described below. By way of example and not limitation, non-transitory computer readable medium  304  comprises computer storage media, such as non-transient storage memory, volatile media, nonvolatile media, removable media, and/or non-removable media implemented in a method or technology for storage of information, such as computer readable instructions, data structures, program modules, or other data. 
     The redundant controller program  306  may also utilize a data source  334  of the computer readable media  304  for storage of data and information associated with the redundant controller  220 . For example, the redundant controller program  306  may store threshold values or expected exercise device operational values for use in determining an improper operating condition. In general, any data or information utilized by the redundant controller program  306  may be stored and/or retrieved via the data source  334 . 
     The redundant controller program  306  may include several components to perform one or more of the operations described herein. For example, the redundant controller program  306  may include a physics modeler  308  that receives measurements or conditions of the exercise device and calculates one or more physics-based operating conditions of the motor  208  of the device. To facilitate the physics modeler  308 , the redundant controller program  306  may include a motor sensors receiver  310  that receives one or more measurements of the motor  208  of the exercise device. For example, the motor sensors receiver  310  of the redundant controller program  306  may receive an output current measurement  312  from current sensor  216  illustrated in  FIG.  2   . A similar current sensor may be located at the input to the motor  208  such that an input current  312  to the motor  208  may be obtained. Other motor-based measurements may also be transmitted to the motor sensors receiver  310  from other sensors of the control circuit  200 , such as input and/or output voltage to the motor, input and/or output power to the motor, a torque on a driveshaft associated with the motor, and the like. In general, any motor performance measurement may be obtained and provided to the redundant controller program  306  through motor sensors receiver  310 . In a similar manner, measurements associated with the power source  202  of the control circuit  200  may be obtained, through various sensors, and provided to the redundant controller program  306  through a power source sensors receiver  314 . For example, an output voltage  316  and/or an output current from the power source  202  may be obtained from one or more sensors connected to the output of the power source and provided to the power source sensors receiver  314 . Other sensors and measurements of the power source  202 , the motor  208 , or any other component of the control circuit  200  may be obtained and provided to the redundant controller program  306  in a similar manner. 
     The physics modeler  308  may utilize the circuit measurements received through the motor sensors receiver  310 , the power source sensors receiver  314 , and/or any other circuit measurement receiver to calculate or otherwise determine one or more operating conditions of the motor and circuit. For example, the physics modeler  308  may utilize the current and voltage transmitted to the motor  208  to estimate an input power to the motor as the input power equals the input current * input voltage. In a similar manner, an output power of the motor  208  may be calculated. From the input power and the output power, an applied torque of the motor on a driveshaft may be calculated through equation: 
       τ=( I*V*E* 60)/(rpm*2π)
 
     with I equal to the input current, V equal to the input voltage, and E equal to the efficiency of the motor  208 . The efficiency of the motor  208  may be calculated from the output power/input power or may be provided to the physics modeler  308  through an input to the redundant controller program  306 . Other physics-based calculations of the operation of the motor  208  may also be determined from the received circuit measurements, such as output force of the motor, rotation speed of the drive shaft, and the like. 
     The redundant controller program  306  may also include an encoder receiver  314  to receive a cable position indicator  320  corresponding to a starting position of the cable of the exercise device. In particular, the exercise device may include an encoder that tracks a position of the cable (or a length of extension of the cable from the platform). The exercise device may provide for a user to extend the cable to a particular height with a minimum amount of force on the cable for certain exercises (such as a standing curl exercise). To track the extension of the cable from the pulley, an encoder may be in communication with the pulley and track a relative position or rotation of the pulley as it corresponds a length of extension of the cable of the device. Other techniques for determining a length of extension of the cable of the exercise device may also or alternatively be provided to the redundant controller program  306 . Through the encoder receiver  318 , therefore, the redundant controller program  306  may determine a relative position of the cable to the base of the exercise device. 
     The physics modeler  308  may also utilize the cable position  320  to calculate or otherwise determine other physical characteristics of the operation of the exercise device. For example, with the calculated output power of the motor  208  determined above and the cable position  320 , the physics modeler may estimate an energy output of the motor on the cable of the exercise device. This output energy on the cable may be compared to one or more threshold values to determine if the applied energy on the cable exceeds a safe threshold value. In another example, the physics modeler  308  may estimate that the motor  208  is applying a force on the cable that exceeds the starting position of the cable for a selected exercise. The redundant controller program  306  may determine an applied force on the cable past the starting position for the exercise may indicate a malfunction of the device or a type of improper operating condition for the device. Although discussed herein as utilizing motor performance measurements  312 , power source performance measurements  316 , and cable position  320 , the physics modeler  308  may use any measurement of the operation of the exercise device to determine or calculate any characteristic or operational condition of the exercise device in order to determine a potential dangerous condition of the device. 
     In yet another example, the redundant controller program  306  may receive one or more commands  324  or other transmissions from the main MCU  210  at a main MCU commands receiver  322 . In one implementation, the main MCU  210  may transmit commands, such as commands to the motor controller  206 , on a shared communication bus of the control circuit  200 . The redundant controller  220  may connect to the shared communication bus and snoop the commands  324  from the main MCU  210  placed on the bus through the main MCU commands receiver  322 . In another implementation, the main MCU may be configured to transmit commands  324  to the motor controller  206  or any other component of the control circuit  200  to the main MCU commands receiver  322 . Regardless, the redundant controller program  306  may receive one or more of the control commands  324  issued by the main MCU  210 . As explained in more detail below, the redundant controller program  306  may utilize the received main MCU commands  324  to determine an expected motor  208  output. For example, the redundant controller program  306  may receive a main MCU command  324  requesting the motor controller  206  to generate a motor  208  output corresponding to  50  lbs. of force. As such, the redundant controller program  306  may include instructions or programs similar to those of the motor controller  206  to translate the receive main MCU commands  324  into instructions. In general, any command  324  issued by the main MCU  210  may be received at the redundant controller program  306  through main MCU command receiver  322 . 
     In addition to receiving measurements and signals associated with the control circuit  200 , the redundant controller program  306  may also generate one or more control signals. For example, the redundant controller program  306  may include a motor power gate controller  326  configured to generate a control signal for the motor power gate  204 . As explained above, the motor power gate  204  may be operated to connect or disconnect the power source  202  from the motor controller  206 . Circumstances in which the redundant controller program  306  determines that an improper operating condition is possible may cause the motor power gate controller  326  to transmit a motor power gate signal  328  to disconnect the power source  202  from the motor controller  206  through control of the motor power gate  204 . In a similar manner, the redundant controller program  306  may include a power inhibitor controller  330  configured to generate a control signal  332  for the inhibitor line of the motor controller  206 . The motor controller  206  may include an inhibitor line that, when enabled, causes the motor controller to cease providing a power signal to the motor  208 . Circumstances in which the redundant controller program  306  determines that an improper operating condition is possible may cause the power inhibitor controller  330  to transmit a power inhibitor signal  332  to remove power to the power source  202  and return the exercise device to a safe operating condition. 
     Turning now to  FIG.  4   , a method  400  for providing redundant control of a motor  208  of an exercise device is illustrated. In some instances, the operations of the method  400  may be executed or otherwise performed by the redundant controller  220  of the control circuit  200  for the exercise device. In other instances, some of the operations may be performed by other components of the control circuit  200 , such as the main MCU  210  or the motor controller  206 . The operations may be performed through execution of one or more instructions stored with the components or separate from the components. In one particular implementation, the components may include a circuit designed to perform one or more of the described operations of the method. 
     Beginning in operation  402 , the redundant controller  220  may determine one or more operation parameters of the motor  208  based on instructions provided by the main MCU  210 . For example, the redundant controller  220  may receive main MCU commands  324  via main MCU commands receiver  322  and interpret the commands to determine a requested operational output of the motor  208 . For example, the main MCU commands  324  may indicate the main MCU is requesting the motor controller  206  to cause the motor  208  to generate  50  lbs. of force on the cable of the exercise device and/or retract the cable at a certain rate. In some instances, the main MCU commands  324  may also correspond to a position of the cable as indicated by the position encoder of the exercise device. The position encoder value  320  may also be received at the redundant controller  220  to determine a starting position of the cable at which the requested force on the cable is to be applied by the motor controller  206 . In one implementation, the main MCU commands  324  and/or the position encoder value  320  may be obtained from a shared communication bus (e.g., a CAN bus) between two or more of the components of the control circuit  200 . 
     Through the main MCU commands  324  and/or cable position information  320 , the redundant controller  220  may determine expected motor output parameters or performance characteristics in operation  404 . For example, the redundant controller  220  may determine an expected output current of the motor  208  based an expected input current to generate the requested force on the cable. The controller may also determine an efficiency of the motor. In another example, the physics modeler  308  of the redundant controller  220  may generate an expected output force from the motor  208  and/or an output energy applied to the cable based on the MCU commands  324  and/or the cable position information  320 . In this manner, the redundant controller  220  may establish a benchmark of an expected motor  208  performance for use in comparing to a measured motor performance for detecting potentially improper operating conditions. 
     In operation  406 , the redundant controller  220  may calculate or otherwise determine the effect of a motor  208  output on the cable or other components of the exercise device. For example, the motor controller  206  may provide a controlled power signal to the motor  208  to control the motor in response to the requested force. This may occur during use of the exercise device by a user to provide a requested force on the cable of the device  100 . One or more sensors of the control circuit  200  may provide measurements of the control circuit operation and, in particular, the output of the motor  208 . In one example, one or more current and/or voltage sensors may be integrated into the control circuit  200  to provide the various circuit measurements. The redundant controller  220  may receive the measured values through the motor sensors receiver  310 , the power source sensors receiver  314 , or through any other receiver of the redundant controller. In another example, the main MCU  210  may receive one or more of the circuit measurements or otherwise be in communication with one or more sensors of the circuit. The redundant controller  220  may, in such circumstances, obtain the circuit measurements from the main MCU  210 , directly, from the communication bus of the circuit  200 , or through another communication technique. Further, the redundant controller  220  may, utilizing the physics modeler  308  as described above, calculate one or more effects on the exercise device based on the received circuit measurements. For example, based on a measured input current and/or output current to the motor  208 , the redundant controller  220  may calculate a force applied to the cable of the device by the motor. In another example, the physics modeler  308  may calculate or otherwise estimate kinetic energy supplied by the motor  208  to the cable. 
     In operation  408 , the redundant controller  220  may determine if an output of the physics modeler  308  indicates an improper operation of the exercise unit based on the measured performance of the motor  208  and/or control circuit  200 . For example, the redundant controller  220  may store one or more threshold values corresponding to an improper operating condition of the exercise unit. The threshold values may or may not correspond to an actual requested force from the main MCU  210  but may alternatively be related to the various different values discussed above. An improper operating condition may be determined if an output of the physics modeler  308  exceeds a stored threshold value. For example, the redundant controller  220  may store an upper output force threshold value of 200 lbs. on the cable as an improper operating condition for the exercise unit. So, if the redundant controller detects that more than 200 pounds of force is being commanded, the power being sent to power the motor is indicative of more than 200 pounds, etc., then, the redundant controller detects an improper operating condition. The system may set a threshold and also allow for some error in the threshold, where for example 205 pounds exceeds the threshold but is considered within specification if 5 pounds of error is acceptable. In another example, based on the received measurements from the operation of the control circuit  200  (such as output current from the motor  208 ), the physic modeler  308  may indicate that the motor is applying 250 lbs. of force on the cable of the exercise device. By exceeding the threshold value for force applied to the cable, the calculated force based on the measured performance of the motor  208  indicates an improper operation of the unit. In another example, an input energy to the motor  208  from the power source  202  may be calculated by the physics modeler  308  and compared to an output energy from the motor based on the measurements obtained from the control circuit  200 . If a difference between the input energy and the output energy exceeds a particular threshold value, the redundant controller  220  may determine the operation of the exercise device is improper. 
     Even if the redundant controller  220  determines that the physics model output does not indicate an improper operation of the exercise device, the controller may determine in operation  410  if the measured performance of the motor is improper compared to the expected performance determined above. For example, although a measured output of the motor  208  may not exceed a stored threshold value for a proper operation of the device, a difference between the measured output and an expected output may exceed a threshold percentage. In one instance, the redundant controller  220  may determine an expected output current value from the motor  208  based on the main MCU commands  324 . However, the measured output current value from the motor  208  may exceed the expected value by some threshold percentage (e.g., 50%), exceeding a threshold percentage (e.g., 20%) for output current. In another example, cable position information  320  may be received at the redundant controller from position encoder and a threshold position value may be set based on a determined starting position. However, during operation of the exercise device, the position information may indicate that the operation of the motor  208  is causing the cable position to exceed the starting position, generating a potential improper operating condition. In yet another example, a calculated output force on the cable from the physics modeler  308  may exceed a requested force on the cable to an extent that operation of the exercise device may be considered improper for some users. 
     If the redundant controller  220  determines an improper operation of the exercise device either through a physics modeler output or through a determined difference in measured output versus expected output of the motor  208 , the redundant controller may transmit a control signal to the main power gate  204  in operation  412 . As discussed above, the main power gate  204  may be activated to disconnect the power source from the motor controller  206  and avoid the improper operating condition of the exercise device. Further, in operation  414 , the redundant controller  220  may enable the inhibit line of the motor controller  206  by energizing the inhibitor signal  218 , either in conjunction with or separate from the control of the motor power gate  204 . Activation of the inhibitor line may cause the motor controller  206  to cease providing a power signal to the motor  208  or reduce the power signal to some preset value, which may happen immediately or ramp down. Reduction or ramp down may be based on the state of the exercise. For example, the system may reduce the power whenever the total resistance force is below some value, e.g., 50 pounds. In another example, the system may ramp down whenever the total resistance force falls within some range—e.g., 100 to 150 pounds—ramp down reducing the resistance to 10 pounds over a second or some other time frame or other rate. 
     Through the control of the motor power gate  204  and the inhibitor line of the motor controller  206 , a redundant feature may be included in the control circuit  200 . In particular, the redundant controller  220  may identify potential improper operating conditions, either through the physics modeler  308  or based on an expected operation of the motor  208  from instructions obtained from the main MCU  210 . In response to the determined improper operating condition, the redundant controller  220  may disconnect the power source power signal from the motor  208  through control of the motor power gate  204  and the motor controller  206  to provide a redundant measure. If the redundant controller  220  determines, in operation  410 , that an improper operating condition is not detected, the redundant controller may return to operation  404  to continue monitoring the operation of the control circuit to detect an improper condition. 
     The redundant controller  220  may also be configured to detect other operating conditions that may be improper for certain users. For example, the redundant controller  220  may detect rapid changes in the output of the motor based on measurements obtained from the control circuit  200 . Changes to the output of the motor  208  may be measured or determined by the redundant controller to occur at a particular frequency or rate of occurrence. In one implementation, changes that exceed a threshold value, such as a change in output current at or exceeding 5 amps, may be noted by the redundant controller  220  as a change in the output of the motor and changes in the output of the motor that are below the threshold may not be considered as a change in operation by the redundant controller. The redundant controller  220  may determine that a high rate of occurrence, such as changes occurring at a faster rate than every 5 seconds, may indicate an improper operating condition for the exercise device  100 . The thresholds for a change in motor  208  output qualifying as a noted change in operation and the rate of change occurrence that results in a determined improper operating condition may be adjustable by the redundant controller  220  or other aspect or component of the device  100 . For example, a user of the exercise device  100  may select a program that varies the forces upon the pulley. In such a circumstance, the redundant controller  220  may adjust the threshold values for detecting an improper condition according to the requested program. Such information may be determined through the main MCU  210  instructions received at the redundant controller  220 . In this manner, the redundant controller  220  may monitor the circuit operation for rapid changes to the motor output  208  and enact one or more procedures in response while providing for proper exercise programs that may utilize some rapid changes in the motor output. 
       FIG.  5    an example computing system  500  that may implement various systems and methods discussed herein. The computer system  500  includes one or more computing components in communication via a bus  502 . In one implementation, the computing system  500  includes one or more processors  504 . The processor  504  can include one or more internal levels of cache (not depicted) and a bus controller or bus interface unit to direct interaction with the bus  502 . Main memory  506  may include one or more memory cards and a control circuit (not depicted), or other forms of removable memory, and may store various software applications including computer executable instructions, that when run on the processor  504 , implement the methods and systems set out herein. Other forms of memory, such as a storage device  508  and a mass storage device  512 , may also be included and accessible, by the processor (or processors)  504  via the bus  502 . The storage device  508  and mass storage device  512  can each contain any or all of an electronic document. 
     The computer system  500  can further include a communications interface  518  by way of which the computer system  500  can connect to networks and receive data useful in executing the methods and system set out herein as well as transmitting information to other devices. The computer system  500  can include an output device  516  by which information is displayed. The computer system  500  can also include an input device  520  by which information is input. Input device  520  can be a scanner, keyboard, and/or other input devices as will be apparent to a person of ordinary skill in the art. The system set forth in  FIG.  5    is but one possible example of a computer system that may employ or be configured in accordance with aspects of the present disclosure. It will be appreciated that other non-transitory tangible computer-readable storage media storing computer-executable instructions for implementing the presently disclosed technology on a computing system may be utilized. 
     In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are instances of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the methods can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order and are not necessarily meant to be limited to the specific order or hierarchy presented. 
     The described disclosure may be provided as a computer program product, or software, that may include a computer-readable storage medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A computer-readable storage medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a computer. The computer-readable storage medium may include, but is not limited to, optical storage medium (e.g., CD-ROM), magneto-optical storage medium, read only memory (ROM), random access memory (RAM), erasable programmable memory (e.g., EPROM and EEPROM), flash memory, or other types of medium suitable for storing electronic instructions. 
     In the present disclosure, the methods disclosed may be implemented as sets of instructions or software readable by a device. Further, it is understood that the specific order or hierarchy of steps in the methods disclosed are instances of example approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps in the method can be rearranged while remaining within the disclosed subject matter. The accompanying method claims present elements of the various steps in a sample order, and are not necessarily meant to be limited to the specific order or hierarchy presented. 
     The described disclosure may be provided as a computer program product, or software, that may include a non-transitory machine-readable medium having stored thereon instructions, which may be used to program a computer system (or other electronic devices) to perform a process according to the present disclosure. A machine-readable medium includes any mechanism for storing information in a form (e.g., software, processing application) readable by a machine (e.g., a computer). The machine-readable medium may include, but is not limited to, magnetic storage medium, optical storage medium; magneto-optical storage medium, read only memory (ROM); erasable programmable memory (e.g., EPROM and EEPROM); flash memory; or other types of medium suitable for storing electronic instructions. 
     Embodiments of the present disclosure include various steps, which are described in this specification. The steps may be performed by hardware components or may be embodied in machine-executable instructions, which may be used to cause a general-purpose or special-purpose processor programmed with the instructions to perform the steps. Alternatively, the steps may be performed by a combination of hardware, software and/or firmware. 
     Various modifications and additions can be made to the exemplary embodiments discussed without departing from the scope of the present invention. For example, while the embodiments described above refer to particular features, the scope of this invention also includes embodiments having different combinations of features and embodiments that do not include all of the described features. Accordingly, the scope of the present invention is intended to embrace all such alternatives, modifications, and variations together with all equivalents thereof. 
     While specific implementations are discussed, it should be understood that this is done for illustration purposes only. A person skilled in the relevant art will recognize that other components and configurations may be used without parting from the spirit and scope of the disclosure. Thus, the following description and drawings are illustrative and are not to be construed as limiting. Numerous specific details are described to provide a thorough understanding of the disclosure. However, in certain instances, well-known or conventional details are not described in order to avoid obscuring the description. References to one or an embodiment in the present disclosure can be references to the same embodiment or any embodiment; and, such references mean at least one of the embodiments. 
     Reference to “one embodiment” or “an embodiment” means that a particular feature, structure, or characteristic described in connection with the embodiment is included in at least one embodiment of the disclosure. The appearances of the phrase “in one embodiment” in various places in the specification are not necessarily all referring to the same embodiment, nor are separate or alternative embodiments mutually exclusive of other embodiments. Moreover, various features are described which may be exhibited by some embodiments and not by others. 
     The terms used in this specification generally have their ordinary meanings in the art, within the context of the disclosure, and in the specific context where each term is used. Alternative language and synonyms may be used for any one or more of the terms discussed herein, and no special significance should be placed upon whether or not a term is elaborated or discussed herein. In some cases, synonyms for certain terms are provided. A recital of one or more synonyms does not exclude the use of other synonyms. The use of examples anywhere in this specification including examples of any terms discussed herein is illustrative only, and is not intended to further limit the scope and meaning of the disclosure or of any example term. Likewise, the disclosure is not limited to various embodiments given in this specification. 
     Without intent to limit the scope of the disclosure, examples of instruments, apparatus, methods and their related results according to the embodiments of the present disclosure are given below. Note that titles or subtitles may be used in the examples for convenience of a reader, which in no way should limit the scope of the disclosure. Unless otherwise defined, technical and scientific terms used herein have the meaning as commonly understood by one of ordinary skill in the art to which this disclosure pertains. In the case of conflict, the present document, including definitions will control. 
     Additional features and advantages of the disclosure will be set forth in the description which follows, and in part will be obvious from the description, or can be learned by practice of the herein disclosed principles. The features and advantages of the disclosure can be realized and obtained by means of the instruments and combinations particularly pointed out in the appended claims. These and other features of the disclosure will become more fully apparent from the following description and appended claims, or can be learned by the practice of the principles set forth herein.