Prosthesis current management
Patent Information
- Authority / Receiving Office
- EP · EP
- Patent Type
- Applications
- Current Assignee / Owner
- TASKA PROSTHETICS LTD
- Filing Date
- 2023-08-31
- Publication Date
- 2026-07-08
AI Technical Summary
Prostheses with multiple electrically powered components, such as motors, user interfaces, and sensors, face challenges in managing current effectively to prevent excessive power consumption, damage to components, and uneven operation of prosthetic parts.
A prosthesis system that includes control circuitry to manage current by determining aggregate current draw and applying both motor-specific and aggregate current constraints to motor control signals, ensuring that each motor operates within its designated current limit while maintaining overall system efficiency.
This approach effectively regulates current usage across multiple components, preventing overcurrent conditions, extending battery life, and ensuring coordinated and natural operation of prosthetic parts.
Smart Images

Figure NZ2023050088_06032025_PF_FP_ABST
Abstract
Description
[0001] Prosthesis current management
[0002] FIELD
[0003] This invention relates to prosthesis and a method for managing current in a prosthesis.
[0004] BACKGROUND
[0005] Prostheses are commonly used in place of body parts that have been lost or are undeveloped. For example, a prosthetic hand may be used in place of a natural hand.
[0006] Prostheses can include motors for driving movement of parts of the prothesis. For example, prosthetic hands can include motors to drive movement of digits, phalanges, or wrist joints.
[0007] Prostheses can also include other electrically powered components such as user interfaces, screens, sensors, lights, control circuitry such as onboard microcontrollers, and electronic communication interfaces.
[0008] The motors and other electrically powered components can be supplied with electrical energy by one or more electrical power sources such as batteries. The batteries may be internal or external to the prosthesis.
[0009] SUMMARY
[0010] According to one example embodiment there is provided a prosthesis comprising: a first set of electrically powered components, the first set of electrically powered components comprising a plurality of motors; and control circuitry configured to: a) for each of the plurality of motors, receive a respective motor control signal; b) for the first set of electrically powered components, determine a first aggregate current representing a current draw of the first set of electrically powered components in aggregate; c) for each the plurality of motors, subject the respective motor control signal to a plurality of current constraints to produce a constrained motor control signal, wherein the plurality of current constraints for each motor comprises: i) a motor current constraint that constrains a current drawn by the motor based on a respective motor current limit; and ii) a first aggregate current constraint that constrains the aggregate current drawn by the first set of electrically powered components based on a first aggregate current limit; and d) output the constrained motor control signals; wherein the first aggregate current constraint for each of the plurality of motors is a function of the determined first aggregate current.
[0011] Embodiments of the of the prosthesis may be provided according to any one of the dependent claims 2-16.
[0012] According to another example embodiment there is provided a method of managing current for a prosthesis having a first set of electrically powered components, the first set of electrically powered components comprising a plurality of motors, the method comprising: a) for each of the plurality of motors, receiving a respective motor control signal; b) for the first set of electrically powered components, determining a first aggregate current representing current draw of the first set of electrically powered components in aggregate; c) for each of the plurality of motors, subjecting the respective motor control signal to a plurality of current constraints to produce a constrained motor control signal, wherein the plurality of current constraints for each motor comprises: i) a motor current constraint that constrains a current drawn by the motor based on a respective motor current limit; and ii) a first aggregate current constraint that constrains the aggregate current drawn by the first set of electrically powered components based on a first aggregate current limit; and d) providing the constrained motor control signals to the motors; wherein the first aggregate current constraint for each of the plurality of motors is a function of the determined first aggregate current.
[0013] Embodiments of the method may be implemented according to any of the dependent claims 18-26.
[0014] It is acknowledged that the terms "comprise", "comprises" and "comprising" may, under varying jurisdictions, be attributed with either an exclusive or an inclusive meaning. For the purpose of this specification, and unless otherwise noted, these terms are intended to have an inclusive meaning - i.e., they will be taken to mean an inclusion of the listed components which the use directly references, and possibly also of other non-specified components or elements.
[0015] Reference to any document in this specification does not constitute an admission that it is prior art, validly combinable with other documents or that it forms part of the common general knowledge.
[0016] BRIEF DESCRIPTION OF THE DRAWINGS
[0017] The accompanying drawings, which are incorporated in and constitute part of the specification, illustrate embodiments of the invention and, together with the general description of the invention given above and the detailed description of embodiments given below, serve to explain the principles of the invention.
[0018] Figure 1 is a block diagram of an automated hand according to one example;
[0019] Figure 2 illustrates a method of operating an automated hand according to one example;
[0020] Figure 3 illustrates an exemplary control loop for implementing the method of Figure 2;
[0021] Figure 4 is a block diagram of an automated hand according to another example;
[0022] Figure s illustrates another exemplary control loop for implementing the method of Figure 2;
[0023] Figure 6 expands on one step of the control loop of Figure 5; and
[0024] Figure 7 expands on another step of the control loop of Figure 5.
[0025] DETAILED DESCRIPTION
[0026] Figure 1 illustrates prosthesis 100 according to an example embodiment.
[0027] In the examples discussed below, the prosthesis 100 can be a prosthetic hand. Prosthetic hands can be used by people who lack natural hands. Prosthetic hands can be configured as full hands (i.e. to replace entire natural hands) or partial hands (i.e. to replace missing parts of natural hands).
[0028] In other examples, the prosthesis 100 could be any of a range of other suitable prostheses. For example, the prosthesis could be a combination of a hand prosthesis with a forearm or full arm prosthesis. In other examples, the prosthesis could be a lower limb prosthesis. The prosthesis 100 includes a plurality of motors 120a-120f. The motors can be any suitable type of motor. In some examples, the motors 120a-120f are DC motors, e.g. brushless DC (BLDC) motors. Although there are 6 motors in the prosthesis of Figure 1, prostheses can have more or fewer motors than this depending on their requirements. The methods and configurations described herein are not limited to prostheses with any particular number of motors or any particular selection of other electrically powered components. The motors 120a- 120f may have associated motor control circuitry (not shown in Figure 1) that converts control signals from control circuitry 110 into electrical signals suitable for driving the motors. The motor control circuitry could be dedicated circuitry such as motor integrated circuits (ICs). Alternatively, the control circuitry 110 may include motor control circuitry such that it could output electrical signals directly to the motors to drive the motors.
[0029] The motors can be used to drive movement of moving parts of the prosthesis 100. For example, in applications in which the prosthesis is an automated hand the motors may drive movement of digits or individual phalanges of the automated hand. In particular, one or more of the motors may be arranged in the hand to drive rotation of an articulated joint connecting a phalanx to a palm of the hand orto another phalanx. One or more of the motors may be arranged to move other parts, for example to drive flexion and extension or rotation of an articulated wrist joint. In examples in which the prosthesis includes a forearm or full arm prosthesis, one or more of the motors may be arranged to operate other joints such as an elbow or a shoulder joint.
[0030] Each motor 120a-120f may be associated with sensing circuitry 130a-130f. The sensing circuitry 130a-130f can include various types of suitable sensors for sensing operating parameters of the motors 120a-120f. In the example shown in Figure 1, the sensing circuitry includes current sensors 132a-132f for sensing the current drawn by respective motors 120a-120f. The sensing circuitry can include other sensors, for example speed sensors such as Hall-effect sensors or encoders for sensing the position or angle of moving parts driven by the motors 12Oa-12Of.
[0031] The motors can drive movement of movable parts of the prosthesis 100 in response to control signals from an input device 140. The input device 140 can be any suitable form of input device responsive to any suitable form of input. For example, the input device 140 may include electromyography (EMG) sensors responsive to electrical signals from the user's muscles. Alternatively or additionally, the input device 140 may receive inputs from a user interface such as a touchscreen or one or more buttons. The user inputs may be used to select predetermined grips or other prosthesis movements.
[0032] In addition to the motors 120a-120f, the prosthesis 100 can have other electrically powered components. For example, the prosthesis 100 can have an output device 160 such as a display screen or one or more lights.
[0033] The prosthesis 100 can include an electrical power source 150. The power source 150 can be any suitable type of power source, for example one or more batteries. In use, the motors 120a-120f draw current from the power source 150 to produce a torque and ultimately drive movement of moving parts of the prosthesis 100. It may be useful or necessary to manage the current drawn by each of the motors individually. For example, excessive current draw by motors may damage the motors, the power source or other sensitive components of the hand 100. Alternatively or additionally, excessive current draw may deplete the charge of the electrical power source 150 undesirably quickly or may reduce the amount of current available to other electrically powered components. A current sensor 152 can be provided to monitor the current provided by the battery 150.
[0034] In addition to managing current drawn by motors individually, it may also be advantageous to manage the current drawn by a plurality of components of the prosthesis. This provides a second layer of current control in addition to control at the level of individual devices. For example, the motors 12Oa-12Of, the input device 140, the output device 160, the control circuitry 110 and the sensors 130a- 130f and 152 may all draw current from the battery 150 in use. Managing the aggregate current by all or a subset of these devices may provide control over the current drawn from the battery 150 by several devices at once. This may help to avoid damage to the battery 150, excessive consumption of stored energy, and / or excessive heating of the battery 150.
[0035] Several electrically powered components of the prosthesis 100 can be grouped into a set and the current drawn by all of the members of the set in aggregate (referred to as the aggregate current) can be managed by controlling operation of members of the set. In some examples, all of the components that draw current from the battery 150 can be grouped as a set and the aggregate current can be the total current drawn by all of the components. This may allow management of the total current provided by the battery to all electrically powered components. In other examples, the set of electrically powered components could be any of various suitable combinations of components in the prosthesis. For example, the set could be all of the motors 120a-120f, a subset of the motors 120a-120f, all of the motors in combination with one or more other (non-motor) components, or a subset of motors in combination with one or more of the other (non-motor) components. In some examples, there may be one or more additional sets of electrical components and aggregate current drawn by each of the one or more additional sets may also be managed. One or more additional sets may be hierarchically arranged such that one set can include all of the members of another set along with additional electrically powered components. One or more additional sets may be distinct from the set without any members in common and / or may be partially overlapping.
[0036] The control circuitry 110 is communicatively coupled to the motors 120a-120f to provide drive signals to the motors. The control circuitry can also be communicatively coupled to one or more other electrically powered components to provide control signals to them and / or to receive sensed information from them. For example, the control circuitry could provide control signals to the output device 160 to display information to a user. The control circuitry could be communicatively coupled to the input device 140 to receive control signals for operating the prosthesis 100. The control circuitry 110 could be communicatively coupled to the sensors 130a-130f and / or 152 to receive information from them such as sensed current. The control circuitry 110 could be communicatively coupled to the motors 120a-120f to provide control signals to the motors or to motor control circuitry of the motors (such as motor control ICs).
[0037] Various suitable types of control signals may be used to drive the motors 120a- 120f. In one example, the control signals could be pulse-width modulation (PWM) signals in which PWM signal values correspond to duty cycles of the electrical signals applied to the motor and the PWM signal values can be varied to vary the speed of the motor. The example herein is described in the context of PWM control signals, but the invention is applicable to systems using other forms of control signal. For example, in alternative implementations the amplitude of a voltage applied to the motor may be varied to vary the speed of the motor and the control circuitry 110 may output signals representing the voltage amplitude to be applied to the motor.
[0038] The prosthesis 100 can be configured to implement any of the methods described herein. This can include suitable configuration of the control circuitry, such as by suitable programming of one or programmable controllers.
[0039] Figure 2 shows in block form a method 200 of controlling a prosthesis according to one example. The method 200 may be used to control the prosthesis 100 of Figure 1 and may be implemented using the controller 110 of the prosthesis 100. The method 200 can form a control loop and entail repeated iteration through the steps of the method to actively control the motor control signals as inputs to the control loop change.
[0040] The method begins at step 202 when a requested control signal for a motor is received. This could be received by the controller 110 of the prosthesis 100, for example. Various different types of control signals may be suitable. For example, this signal could be a PWM signal. In some examples, the control signal may have a predefined value such as a fixed PWM value. In other examples, the control signal may be a variable value, for example a value received from another control loop.
[0041] Current constraints may be applied at both the level of the individual motors and at the level of a set of several electrically powered components including a plurality of motors. For example, the motors 120a-120f, the input device 140, the output device 160, the control circuitry 110 and the sensors 130a-130f and 152 of the prosthesis 100 of Figure 1 could together all form a first set of electrically powered components.
[0042] The method also includes a step of determining an aggregate current 210. The aggregate current is a current draw associated with all of the electrically powered components of the first set. This could be an actual measured current, e.g. as measured by the current sensor 152, or an estimated or predicted current. In the case of measured current, the aggregate current could be determined based on a sum of measured current provided to the respective components of the set. In the case of a predicted current, this could be predicted based on an empirically determined or predefined relationship between the control signal for each electrically powered component and the current drawn by that component when controlled by that control signal. Given the known relationship between control signal and current for each component of the set, the aggregate current can be predicted based on the sum of the currents associated with the respective control signals. In the case of an estimated current, this could be estimated from the determined current of only a subset of the components of the set. For example, the current draw of the motors 12Oa-12Of could be estimated or predicted. The aggregate current could then be determined based on the current draw of the motors 12Oa-12Of, for example by adding a constant value to the current draw of the motors or by using the current draw of the motors 12Oa-12Of as the aggregate current. In some cases, a suitable combination of two of more measured, predicted and / or estimated currents may be used to determine the aggregate current.
[0043] The aggregate current determined in step 210 is used as an input to all of the aggregate current constraints 224 for all of the motors of the set. This may be beneficial over systems that manage motor currents in a fully distributed manner because it does not require a separate calculation or measurement of the aggregate current to be done for each motor. It may also allow for co-ordinated or correlated control of plural motors by way of the commonly used determined aggregate current, for example by allowing all motors to scale down their control signals (and hence current draws) in a similar way. In the context of a prosthetic hand, for example, this may result in all fingers reducing their speed or grip strength by a similar factor, enabling them to still operate in a natural and coordinated manner. Other co-ordinated / correlated control strategies could be implemented, for example reducing the current drawn by one of more of the motors more aggressively than one or more of the other motors, for example by reducing the current of the motors that are drawing the most current more aggressively than the motors that are drawing less current. In another example, some motors may be treated as higher priority than others and current to these motors may be reduced less aggressively (or not at all) compared to other, lower priority motors. Fully distributed motor current management systems may require each motor to communicate to all of the other motors what its own current limit is. Each of the motors would then have to subtract all of the other motors' current limits from the aggregate current limit to see how much (if any) current is available to them. This would require each motor to repeatedly transmit messages to all the others. This could require a lot of communication channels to be maintained and potentially a lot of communications to be conducted, especially if there are a lot of motors or if the motor control signals are updated frequently. It may also not be particularly suitable for implementing co-ordinated or correlated adjustment of the motor control signals, because each motor sets its own current limit independently. The motors would effectively "vie" for available current, with each motor in turn reserving as much current as its control signal requires until all of the available current has been reserved. If there were not enough current available for a particular motor to draw the amount of current requested by its control signal, it would just be limited to however much current was available. This may result in undesirable effects such as some fingers moving at full speed and one finger moving very slowly or not at all.
[0044] The method 200 includes a step 220 of subjecting the motor control signal for each motor of the set of components to current constraints. The current constraints include a motor current constraint 222 and an aggregate current constraint 224.
[0045] The aggregate current constraint can compare the aggregate current drawn (or predicted / estimated to be drawn) by the set of components to an aggregate current limit. If the aggregate current draw is greater than (or is predicted or estimated to be greater than) the aggregate current limit, the method can adjust the control signals for one or more of the motors such that the motor(s) will draw less current. This may act to prevent the aggregate current drawn by the set of components as a whole from exceeding the aggregate current limit or bring the aggregate current back to a level equal to or below the aggregate current limit if it is exceeded. The aggregate current limit may be a fixed value or a variable value. One example of a variable aggregate current limit is described later with respect to Figure 4. In that example, the aggregate current limit for the set of electrically powered components may be based on the current drawn by one or more other electrically powered components of a second set of components. In some examples, the aggregate current limit may be set based on the state of charge and / or voltage of the one or more batteries. The aggregate current limit may be reduced when battery state of charge or voltage decreases. Battery voltage can decrease when supplying large currents (known as "voltage drop"). Some batteries will shut down when their voltage is below a threshold. In some examples, the electrically powered components could be controlled to draw less current and maintain the observed battery voltage above the threshold. This may be done by setting the aggregate current limit to a lower level, which will ultimately lead to the current drawn by each motor being constrained to a lower level and the aggregate current drawn by the set of electrically powered components being constrained to a lower level.
[0046] By reducing the motor control signal (i.e. adjusting the motor control signal to one that is expected to cause the motor to draw less current) when the aggregate current exceeds an aggregate current limit, the method subjects the motor control signal to the aggregate current constraint 224.
[0047] As described in more detail below, the aggregate current constraint 224 can act to reduce the aggregate current drawn by adjusting a parameter of the motor current constraint for each of one or more of the plurality of motors.
[0048] In addition to the aggregate current constraint 224, a motor current constraint 222 is also applied to the motor control signal for each motor. Although only one box is shown in the figure, the motor current constraint 222 would be applied to each of the plurality of motors in the set, e.g. there would be a plurality of instances of the motor current constraint, one for each motor. The motor current constraint constrains the current drawn by each motor based on a respective motor current limit. The motor current limits for the different motors may be the same as each other or different.
[0049] In one example, the motor current constraint involves comparing a received motor control signal for the motor to a control signal limit for the motor. If the received motor control signal is greater than the limit, it can be reduced. For example, it can be set to a value equal to or less than the control signal limit. The control signal limit can be based on the current limit for the motor. In particular, the control signal limit can be based on a comparison of the last current draw associated with the motor to the current limit. If the last current draw of the motor exceeds the motor current limit, the control signal limit can be reduced. If the last current draw of the motor is less than the motor current limit, the control signal limit can be increased. This is effectively predicting the effect of the control signal on the current draw. It may allow the motor control signals to be predictively controlled to avoid the motor exceeding the respective motor current limit.
[0050] By reducing the motor control signal (i.e. adjusting it to a value that is expected to draw less current) when it is greater than a control signal limit (which is in turn based on a motor current limit), the method subjects the control signal to the motor current constraint 222.
[0051] The value of the current drawn by the motor can be determined using the current sensor associated with the respective motor. When the aggregate current drawn by the set of electrically powered components is not greater than the aggregate current limit, the sensed value of the motor current may be used to set the control signal limit in the motor current constraint 222, in particular by reducing the control signal limit if the motor current draw is greater than the motor current limit and increasing the control signal limit if the motor current draw is less than the motor current limit. However, when the aggregate current is determined to be greaterthan the aggregate current limit, a quantity that is based on the amount by which the aggregate current draw exceeds the aggregate current limit can be used to set the control signal limit, in particular by reducing the control signal limit. In this way, the aggregate current constraint 224 can act to reduce the aggregate current by modifying a parameter of the motor current constraint 222.
[0052] Subjecting the motor control signals to the current constraints in step 220 results in constrained motor control signals. The constrained motor control signals are then output for the respective motors in step 230.
[0053] Figure 3 sets out in detail an example control loop 300 used to manage the current use of electrically powered components of the prosthesis. Specifically, the control loop 300 applies current constraints to received motor control signals to constrain the motor current to comply with two different constraints - the motor current constraint that restricts the current drawn by the individual motor and an aggregate current constraint that restricts the aggregate current drawn by all of the members of a set of devices that includes the motor along with other devices.
[0054] This control loop 300 can be implemented in software running on one or more digital devices, such as microcontrollers or other programmed computing devices. In alternative implementations, the control loop or an equivalent process could be implemented by suitably configured hardware such as one or more integrated circuits or other control circuitry.
[0055] In this example, the motor control signals are pulse-width modulation (PWM) signals. In the example of Figure 3, the PWM signals are vectors ranging from a maximum negative PWM level to a maximum positive PWM level, e.g. -100% to +100%. The vector values can conveniently represent both magnitude and sign / direction of the control signals within the control loop 300. Depending on the requirements of the motor drive circuitry, the output PWM signals may be decomposed into separate magnitude and sign / direction signals before being provided to the motor drive circuitry. For example, motor drive circuitry may be configured to receive separate PWM magnitude (ranging from 0-100%) and direction (positive or negative / "forward" or "backward") and convert these into electrical signals to drive the motor with a duty cycle specified by the PWM magnitude signal and a direction specified by the sign / direction signal. In this case, the PWM signal output from the control loop 300 can be decomposed into separate magnitude and sign / direction signals before being provided to the motor drive circuitry.
[0056] The control loop 300 will be discussed in the context of a single motor. Similar control loops can be executed for all of the motors of the prosthesis or a subset of the motors of the prosthesis. In some cases, the control loops may differ for different motors. For example, the control loops for different motors may have different values of Motor Current Limit. In other cases, the control loops for some or all of the motors may be the same.
[0057] At the beginning of each iteration of the control loop 300 in step 304, a value of the variable "Aggregate Current Factor" is calculated. Aggregate Current Factor represents the ratio of the aggregate current of a set of electrically powered components to which the motor belongs to a current limit for the set. In this example, the current limit for the set of components is referred to as "Aggregate Current Limit". The Aggregate Current Limit can be a predefined value that sets an upper limit for the amount of current drawn by the components as a whole to meet certain requirements or preferences. For example, the Aggregate Current Limit could be set to a value corresponding to the maximum current that is permitted to be drawn from a battery for any extended period of time. This may help to avoid damage to the battery and / or excess consumption of energy from the battery. Aggregate Current Limit need not be an actual hard ceiling that the aggregate current drawn by the first set of components can not exceed at all. The aggregate current constraint can be a "reactive" constraint that determines that the aggregate current drawn has exceeded the current limit and in response causes the aggregate current to be reduced.
[0058] The Aggregate Current Factor is calculated as: Aggregate Current / Aggregate Current Limit. "Aggregate Current" is a variable that represents the real-time or most recent value of the determined current draw of the set of components as a whole. Aggregate Current can be measured by one or more sensors. For example, the sensor 152 could take real-time measurements of the current drawn from the battery 150 and the control circuitry could continually update the value of Aggregate Current according to these measurements. In another example, separate current sensors for the components of the set of components could measure current consumption of the individual devices and these could be summed to produce a value of Aggregate Current.
[0059] The Aggregate Current Factor will be a value between 0 and 1 when the Aggregate Current Draw of the set of components is less than the Aggregate Current Limit, a value greater than 1 when the Aggregate Current Draw is greater than the Aggregate Current Limit, or 1 when the Aggregate Current Draw is equal to the Aggregate Current Limit.
[0060] In step 306 the Aggregate Current Factor is checked to see if it is greater than 1. If Aggregate Current Factor is greater than 1, the aggregate current drawn by the set of components that includes the motor is above the current limit set by Aggregate Current Limit and should be reduced. In this case, the control loop 300 moves to step 308 and the value of "Motor Current" is set to the product of the "Motor Current Limit" and the Aggregate Current Factor.
[0061] "Motor Current Limit" is a current limit for the individual motor. Motor Current Limit can be a predefined value that sets an upper limit on the amount of current drawn by the motor to meet certain requirements or preferences. For example, the Motor Current Limit could be set to a value corresponding to the maximum current that should be drawn from the battery by the motor. This may avoid spikes in the current drawn by the motor. It may also help to avoid the motor consuming excessive energy from the battery or diverting current away from other electrically powered components. Alternatively or additionally, the value of Motor Current Limit may be selected to prevent damage to the motor or other sensitive components due to overcurrent.
[0062] Motor Current is a variable that represents the real-time or most recent current drawn by the motor. The value of Motor Current can be based on real-time measurements of current drawn by the motor. For example, Motor Current can be based on measurements made by a current sensor (e.g. one of 132a-132f) associated with the respective motor. However, as described above with reference to step 308, Motor Current can also be set to a value other than the actual measured current. In particular, Motor Current can be set to a value higher than Motor Current Limit.
[0063] As will be described below, setting Motor Current to a value higher than the Motor Current Limit will ultimately cause the motorto draw less current than it otherwise would and will reduce the aggregate current drawn by the set of components as a whole.
[0064] On the other hand, if the Aggregate Current Factor is not greater than 1 step 308 is not performed and the value of Motor Current can represent the actual current drawn by the motor.
[0065] In step 310, a "Motor Current Error" term is calculated based on the difference between the values of Motor Current and Motor Current Limit. The difference can be scaled by multiplying it by the coefficient K to produce a value of Motor Current Error. The value of Motor Current Error can be restricted within a certain range to ensure that subsequent calculations work as intended. For example, Motor Current Error can be restricted to a maximum value of Motor Current Limit / 2.
[0066] If the Aggregate Current Factor is not greater than 1 and the Motor Current is less than Motor Current Limit, Motor Current Error will be negative.
[0067] If Motor Current is greater than Motor Current Limit, Motor Current Error will be positive. If the Aggregate Current Factor is not greater than 1 (i.e. step 308 is skipped), this will occur when the measured value of Motor Current is greater than Motor Current Limit.
[0068] If Aggregate Current Factor is greater than 1, Motor Current will necessarily be greater than Motor Current Limit because it is set to Motor Current Limit*Aggregate Current Factor in step 308 and Motor Current Error will necessarily be positive.
[0069] In step 312 a check is performed to see if the magnitude of "PWMLast" (represented as | PWMLast | ) is less than a defined lower limit "Min Calc PWM". If so, | PWMLast | is set to the value of Min Calc PWM. This is to ensure that the subsequent calculations in the control loop 300 function as intended. As will be described with reference to step 325, PWMLast represents the previous value of the constrained motor control signal "PWMOut" output in the previous iteration of the control loop.
[0070] In step 314 a "Feedback Factor" is produced based on the Motor Current Error. The Feedback Factor is a variable that represents Motor Current Limit as a proportion of the sum of Motor Current Limit and Motor Current Error. When the Motor Current Error is positive (because Motor Current exceeds Motor Current Limit) the Feedback Factor will be less than 1. When the Motor Current Error is negative or zero (because Motor Current does not exceed the Motor Current Limit) the Feedback Factor will be greater than 1 or 1, respectively. The Feedback Factor is used to determine the value of PWMLimit in step 316 by multiplying the magnitude of PWMLast by the Feedback Factor. PWMLimit is variable that acts as an upper limit for the magnitude of PWM control signals for the motor. PWMLimit will be increased if the Feedback Factor is greater than 1 (i.e. if the Motor Current is less than the Motor Current Limit) to allow the motor to be driven with a higher-magnitude PWM signal to draw more current. PWMLimit will be decreased if the Feedback Factor is less than 1 (i.e. if the Motor Current is greater than the Motor Current Limit) to constrain the motor to a lower- magnitude PWM signal limit that will draw less current.
[0071] If the result of step 316 is that PWMLimit is set to a value greater than the maximum available PWM magnitude "Max PWM" (e.g. greater than 100%), PWMLimit is set to "Max PWM" in step 318.
[0072] In step 319, the variable "PWMOut" is set to the latest value of "PWMRequested". PWMRequested is the received control signal for the motor. This could be a fixed value or a variable value. In one example, PWMRequested is a variable value received from a speed control loop. The speed control loop is not necessary in a PWM-controlled mode. PWMRequested may be filtered, for example by application of a low-pass filter function.
[0073] In step 320, the magnitude of PWMOut (represented as | PWMOut | ) is compared to PWMLimit. As described with reference to step 319, the value of PWMOut has been set to the requested control signal for the motor PWMRequested. In other words, the requested control signal is compared to the limit for the control signal to ensure that it is not greater in magnitude than the limit.
[0074] If | PWMOut | is greater than PWMLimit, | PWMOut | is set to PWMLimit in step 322.
[0075] If | PWMOut | is not greater than PWMLimit, step 322 is not performed. At step 324, PWMOut is output.
[0076] The output value of PWMOut is based on the requested control signal "PWMRequested" but is constrained by two current constraints, one that is based on the individual motor current limit "Motor Current Limit" and one that is based on the set-wide current limit "Aggregate Current Limit".
[0077] In step 325, the value of PWMLast - which will be used in steps 312 and 316 in the next iteration of the control loop 300 - is set to the value of PWMOut that was output in step 324.
[0078] The control loop 300 can then be iterated again.
[0079] It will be recognised that the particular control loop 300 illustrated in Figure 3 is just one example and that various changes could be made. For example, additional steps may be included, some steps may be omitted or combined as appropriate, and the order of some steps may be changed.
[0080] One alternative control loop 500 is shown in Figures 5 to 7.
[0081] The control loop 500 takes into account battery voltage drop in addition to the motor current and aggregate current constraints. Voltage drop refers to a decrease in voltage between the terminals of a battery in response to an increase in current supplied by the battery. Excessive drop may affect the performance of the battery and may be associated with undesirable heating of the battery. Some batteries may shut down if drop exceeds a threshold. It may be advantageous to constrain the operation of electrically powered devices based on battery voltage drop to avoid or alleviate excessive drop.
[0082] In step 502, an "Aggregate Current Factor" for a set of devices is determined in a similar manner to step 304 of the control loop 300. In step 504, a "Voltage Drop Factor" is determined as a ratio of "Voltage Drop" to a "Voltage Drop Limit". Voltage Drop may be based on measurements of voltage across the terminals of the battery and the estimated or measured open circuit voltage.
[0083] At step 506, a "Correction Factor" is determined as the greater of the Aggregate Current Factor and the Voltage Drop Factor. Selecting the greater of these two variables ensures that the more restrictive constraint is applied to the motor control signals.
[0084] In step 510, a "Motor Current Limit" is determined. Determination of the Motor Current Limit is explained in more detail below with reference to Figure 6.
[0085] In step 530, a value of "PWMOut" is determined. Determination of PWMOut is explained in more detail below with reference to Figure 7.
[0086] In step 580, PWMOut is output. PWMOut can be supplied to a motor as a motor control signal.
[0087] In step 582 the value of "PWMLast" - which will be used in step 530 in the next iteration of the control loop 500 - is set to the value of PWMOut that was output in step 580.
[0088] The control loop 500 can then be iterated again.
[0089] Figure 6 expands on the determination of Motor Current Limit of step 510 of the control loop 500. In step 512, a "Scaled Correction Factor" is calculated from the Correction Factor and a scaling coefficient Kcorrectionas:
[0090] Scaled Correction Factor = Kcorrection*(Correction Factor - 1) + 1 Scaling the correction reduces the strength of the response to voltage drops or aggregate currents differing from their respective limits. This may improve stability of the control loop 500.
[0091] In step 514, a "Base Limit" is calculated as the ratio of the Motor Current for the respective motor to the Scaled Correction Factor. The Base Limit is an estimate of the current limit based on past current consumption and the Scaled Correction Factor.
[0092] In step 516, an "Adjusted Average" is calculated from an "Average Current" divided by the Scaled Correction Factor. Average Current is the average current used by a set of electrically powered devices. In some examples, it is the average current consumed by a plurality of active motors of the set of devices. For example, it may be the Aggregate Current Limit divided by the number of active motors in the set. The Adjusted Average is an estimate of what the Average Current will be after all motor current corrections have been applied.
[0093] In step 518 a "Distribution Factor" is calculated by multiplying the Correction Factor by a value KdjStributjon- The Distribution Factor sets the strength of "current sharing" - i.e. the amount by which an individual motor's current is adjusted based on the greater of the Aggregate Current Factor and Voltage Drop Factor. Because the Distribution Factor is proportional to the Correction Factor, the strength of current sharing will be proportional to the size of the greater of the Aggregate Current Factor and Voltage Drop Factor. The current sharing function detailed further below forces motors that are using more than the average current to consume slightly less, allowing motors that are drawing less current than the average to increase their current draw if needed, despite any active current restrictions. The use of the Distribution factor prevents the current sharing function from unnecessarily hindering the rate at which current rises in times of low aggregate current draw. This may improve performance of the motors when starting up.
[0094] In step 520, a value for the Motor Current Limit is determined by modifying the Base Limit by the Adjusted Average and Distribution Factor. Specifically, the Adjusted Average is first subtracted from the Base Limit to evaluate the variable "Delta". The Delta is then multiplied by the Distribution Factor to evaluation the variable "Share". Share is then subtracted from the Base Limit to determine Motor Current Limit. The end result is to cause each current-consuming motor to "share" current with the others of the set by moving its own consumption towards the Adjusted Average with a strength that depends on the Distribution Factor.
[0095] In step 522, it is checked if Motor Current Limit calculated in step 520 exceeds the value of "Max Motor Current". Max Motor Current may be a fixed value representing the maximum current desired to be provided to the motor. If Motor Current Limit exceeds Max Motor Current, Motor Current Limit is set to equal Max Motor Current. The final value of Motor Current Limit is then used in the remainder of control loop 500 - in particular to determine PWMOut in step 530.
[0096] Figure 7 expands on the determination of PWMOut in step 530.
[0097] In step 532, it is checked if Motor Current Limit is less than "Min Motor Limit". If so, Motor Current Limit is set to equal Min Motor Limit. Min Motor Limit is a set value that represents the lowest value to which current is desired to be limited. This may ensure desirable operation of the motors and the control loop.
[0098] In step 534, values of "Sign Last" and "Sign Requested" are determined. These represent the sign of the variables "PWMLast" and "PWMRequested", respectively, and therefore also the direction of rotation of the motor. As with the control loop 300, PWMRequested is requested PWM control signal for the respective motor. It may be received from a speed control loop, or it may be a requested PWM value, for example. It may be filtered as discussed with respect to the control loop 300.
[0099] In step 536, it is checked if PWMRequested equals zero. If so, the control loop moves to step 568. If not, the control loop moves to step 538.
[0100] At step 538, it is checked if PWMLast equals zero. If so, the control loop moves to step 568. If not, the control loop moves to step 540.
[0101] At step 540, it is checked if the Sign Last is not equal to Sign Requested, implying that the motor is slowing down or changing direction. If so, the control loop moves to step 568. If not, the control loop moves to step 542.
[0102] At step 542, "PWMLimitest" is determined from the Motor Current Limit, PWMLast and the Motor Current by the equation:
[0103] PWMLimitest= / Motor Current Limit / * / PWMLast / / / Motor Current /
[0104] Where | Motor Current Limit |, | PWMLast | and | Motor Current | are the magnitudes of Motor Current Limit, PWMLast and Motor Current, respectively.
[0105] The magnitude of PWMLast is then compared to the magnitude of PWMLimitestin step 544. If | PWMLast | is smaller than | PWMLimit |, the control loop follows steps 546 to 554 which allow a controlled increase in the requested PWM control signals. If not, the control loop follows steps 556 to 564 to reduce the PWM control signals toward the estimated limit.
[0106] At step 546, a value of "PWM Range" is determined as the magnitude of PWMLimitestminus the magnitude of PWMLast. PWM Range represents the amount that the PWM control signals for the motor can increase by before reaching the PWM that is estimated to result in the motor drawing the Motor Current Limit. At step 548, "PWM Req Delta" is determined as the magnitude of PWMRequested minus the magnitude of PWMLast. The represents the amount by which the requested PWM has changed from the last iteration of the control loop.
[0107] At step 550, a "Correction Factor Max" is determined as the ratio of the magnitude of PWM Range to the magnitude of PWMLimitest.
[0108] At step 552, "PWM Correction Max" is determined as the magnitude of PWM Range multiplied by the Correction Factor Max. The effect of this is to limit the size of PWM corrections by the closeness of the motor current / motor PWM control signals to their limits. This may improve performance and / or stability of the control loop by avoiding overshoot and / or oscillations.
[0109] At step 554, it is checked if PWM Req Delta is greater than PWM Correction Max. If so, PWMRequested is set to the magnitude of PWMLast plus PWM Correction Max. The control loop then moves to step 568.
[0110] At step 556, which is moved to if the answer to the comparison in step 544 is no, it is checked if the magnitude of PWMRequested is greater than the magnitude of PWMLast. If so, PWMRequested is set to equal PWMLast.
[0111] In step 558, it is checked if the magnitude of PWMRequested is smaller than the magnitude of PWMLimitest- If it is, the control loop moves to step 568. If not, it moves to step 560.
[0112] In step 560, "PWM Range Error" is determined as the magnitude of PWMRequested minus the magnitude of PWMLimitest. This represents how much the requested PWM control signal exceeds the estimated PWM control signal limit by-
[0113] "PWM Correction" is then determined as the PWM Range Error multiplied by a scaling coefficient KPWM. In step 564, the magnitude of PWM Requested is adjusted by subtracting PWM Correction to set a new value of PWMRequested. The control loop then moves to step 568.
[0114] At step 568, it is checked if the magnitude of PWMRequested is greater than "Max PWM", which is a maximum PWM value, e.g. 100%. If so, the magnitude of PWMRequested is set to the value of Max PWM.
[0115] At step 570, the magnitude of PWMRequested is multiplied by Sign Requested to undo any change to the sign of PWMRequested that might have occurred since step 534.
[0116] At step 572, "PWMOut" is set to equal the value of PWMRequested determined in the previous steps. This value of PWMOut is used in the remaining steps 580 and 582 of the control loop 500.
[0117] The control loops discussed herein could be executed centrally. For example, a single controller or other control circuitry could execute the control loops for all of the motors. In such an example, the controller or control circuitry could iterate through the control loop 300 or 500 once for one motor, then once for the next motor and so on until it has been performed for all of the motors, after which this process would repeat. The control loops for the different motors would be different instances in that they would operate on different control signals, use different values of their respective variables and output different constrained control signals - each for its own motor. With reference to the components of Figure 1, for example, the control circuitry 110 could execute the control loop 300 or 500 separately for each of the motors 120a-120f. The control loops for the different motors could be considered separate instances 300a-300f or 500a-500f. These would receive different motor control signals PWMRequestedato PWMRequestedf and output different constrained motor control signals PWMOutato PWMOutf. In other examples, the control loops could be executed locally for each motor. For example, a dedicated controller or other control circuitry could be provided for each motor and the dedicated control circuitry would execute an instance of the control loop for its own motor.
[0118] In either case, the aggregate current draw of the set of components would be determined commonly for the different instances of the control loop. In this way, the aggregate current constraints on the motor control signals are all functions of the same determined aggregate current. For example, measurements of the aggregate current drawn by the electrically powered components of the set can be used to produce the variable "Aggregate Current", and the same Aggregate Current can be used by all instances of the control loop. In another example, measurements of the aggregate current drawn by the electrically powered components of the set could be used to produce analogue signals for the different instances of the control loop. The different instances of the control loop could then separately determine their own values of Aggregate Current from the analogue signals. In this case, the different instances of the control loop may separately evaluate the variable Aggregate Current, all based on the common measurement of the aggregate current draw of the set of components.
[0119] Figure 4 shows an alternative example of a prosthesis 400 that has more than one set of electrically powered components. Like the prosthesis 100, the prosthesis could be any of various suitable types of prosthesis. In the example discussed below, the prosthesis 400 can include a prosthetic hand and a prosthetic arm.
[0120] The prosthesis 400 in this example has three sets of electrically powered components - a first set 401, a second set 402 and a third set 403. The prosthesis 400 also includes an input device 440, a first battery or set of batteries 450 and a second battery or set of batteries 452. The first set 401 can include motors 420 and other electrically powered components 460, for example including an output device. Current management for the first set 401 can be performed by any of the procedures already described with reference to Figures 1-3 and 5-7.
[0121] The second set 402 is a "higher-level" set that includes the components 420 and 460 of the first set as well as another component 470, which could for example be another motor. In the implementation where the prosthesis 400 includes a prosthetic hand and arm, the component 470 could be a motor driving rotation of a wrist joint between the hand and the arm, for example. Components in the second set 402 can be restricted in the amount of current that they draw in the aggregate. A second aggregate current constraint may therefore be applied to control signals of components in the second set to constrain the aggregate current draw of the second set 402 based on a second aggregate current limit. The second aggregate current constraint can act via components of the first set 401. For example, the current drawn by motors 420 of the first set 401 can be constrained by the second current constraint, in addition to the first aggregate current constraint for the first set 401 and the motor constraints for the respective motors 420.
[0122] The second aggregate current constraint can be provided to reduce the aggregate current drawn by the second set 402 as a whole when an aggregate current draw of the second set 402 is determined to exceed the second aggregate current threshold. This may be done in a manner similar to the first aggregate current constraint. For example, the second aggregate current constraint could cause the value of Motor Current used in the motor current constraint for each of one or more of the motors to be set to a value greater than the respective motor current limit. In one example, the members of the second set 402 of electrically powered components could all be powered by the same battery or set of batteries 450. In this case, the second aggregate current constraint can restrict the current drawn from the battery or batteries 450 by all of the components of the second set 402. For example, when the motor 470 is operating to rotate the wrist the current drawn by the motors 420 may be reduced to keep the current drawn by the second set 402 as a whole at or below the second aggregate current limit.
[0123] Some of the electrically powered components may be given higher priority than other components in terms of current allocation depending on which set(s) they are members of. For example, if the second aggregate current associated with the second set 402 exceeds the second aggregate current limit, current drawn by the components 420 of the set 401 may be reduced more aggressively than current drawn by the component 470.
[0124] To give an illustrative example, set 401 may comprise motors 420 for moving digits of a prosthetic hand (along with other components 460). Component 470 may be a motor for driving rotation of the prosthetic hand at a wrist joint. The digit motors 420 and wrist motor 470 can draw current from the same battery 450. The wrist motor 470 may be given higher priority than the digit motors 420 when managing aggregate current drawn by the second set 402 from the battery 450. When simultaneously rotating a hand prosthesis at the wrist and moving the digits, it may be preferable to allow the wrist motor to draw current with minimal restrictions, or at least lesser restrictions than the digit motors. This may allow the wrist to rotate freely until it has reached the desired orientation, without its motion being restricted based on the movement of the digits. Instead, the motion of the digits may be restricted when the aggregate current draw of the wrist motor and digit motors reaches or exceeds the maximum that can be supplied by the battery 450. The second set 402 can be constrained to not draw a current exceeding the rated current of the battery. This may be done by setting the aggregate current limit for the second set to the current rating of the battery 450. If the aggregate current of the second set reaches or exceeds the aggregate current limit for the second set, the control signal(s) for one or more of the digit motors 420 can be reduced to a value that will reduce the current drawn by the respective digit motor(s) 420, for example by reducing it to a level that will result in the aggregate current of the second set 402 being equal to or less than the second aggregate current limit.
[0125] This may be implemented in various ways.
[0126] In one example, the control loop for each of the digit motors 420 may include a step of determining a second Aggregate Current Factor based on a comparison of the second Aggregate Current to the second Aggregate Current Limit. This would be similar to step 304 of Figure 3. If the Aggregate Current Factor were greater than 1, it could be multiplied by the Motor Current Limit to produce a new value of Motor Current in a process similar to steps 306 and 308 of Figure 3. If the Aggregate Current Factors for both the first set 401 and the second set 402 both exceeded 1, the larger of the two could be used to set the new value of Motor Current and ultimately used to limit the current drawn by the respective motor.
[0127] In another example, the current draw of the wrist motor 470 could be subtracted from the Aggregate Current Limit of the second set 402. The result would represent the remaining current available to other components after the high- priority wrist motor 470 has drawn its required current. The remaining current could be used to determine the Aggregate Current Limit for the first set 401 of devices. For example, the Aggregate Current Limit could be set to equal the remaining current, or it could be the remaining current minus a margin or multiplied bya scaling factor of less than 1. This mayallow the higher priority wrist motor 470 to draw as much current as it needed (subject possibly to some constraints, such as a maximum current for the individual motor 470) and only allocate to the lower-priority devices of the first set 401 whatever current is left available to draw without exceeding the rated current of the battery 450.
[0128] It will be appreciated that various devices may be considered higher priority than other devices depending on the implementation and the example of a high- priority wrist rotator and lower-priority digit motors 420 is only one illustrative example. In other implementations, the higher-priority component(s) may be one or more of a wrist flexor motor, an elbow motor, a shoulder motor, control circuitry, a user interface, one or more digit motors etc. Similar, in some implementations one or more of these components may be the lower-priority components.
[0129] The third set 403 can be separate from the first and second sets 401, 402 and not have any common members. The third set 403 can effectively run in parallel to the first and second sets as far as current management is concerned and can also implement any of the current management procedures already described with reference to Figures 1-3 and 5-7. The third set 403 could include one or more motors 480 and one or more other electrically powered components 490. In the implementation in which the prosthesis 400 has a prosthetic hand and arm, the third set could include components of the arm including a motor 480 for rotating an elbow joint of the arm and a user interface 490.
[0130] The third set 403 can be powered by the battery or set of batteries 452, separate from the battery / batteries 450. The aggregate current constraint of the third set 403 (the "third aggregate current constraint") could be the same as, or different from, the aggregate current constraint of the first set 401 or the second set 402. The third aggregate current constraint for the third set of electrically powered components can be set to restrict the current provided by the battery / batteries 452 to a suitable level for these batteries, which may differ from the batte ry / batte ries 450. The motor(s) 480 of the third set can be similar to different from the motors of the other set(s) and may be subject to similar or different motor current constraints. For example, in the example of the motor 480 being an elbow motor, the elbow motor 480 may be allowed to draw a different (e.g. higher) level of current than the digit motors 420 by setting its respective "Motor Current Limit" to a higher value.
[0131] While the present invention has been illustrated by the description of the embodiments thereof, and while the embodiments have been described in detail, it is not the intention of the Applicant to restrict or in any way limit the scope of the appended claims to such detail. Additional advantages and modifications will readily appear to those skilled in the art. Therefore, the invention in its broader aspects is not limited to the specific details, representative apparatus and method, and illustrative examples shown and described. Accordingly, departures may be made from such details without departure from the spirit or scope of the Applicant's general inventive concept.
Claims
CLAIMS:
1. A prosthesis comprising: a first set of electrically powered components, the first set of electrically powered components comprising a plurality of motors; and control circuitry configured to: a) for each of the plurality of motors, receive a respective motor control signal; b) for the first set of electrically powered components, determine a first aggregate current representing a current draw of the first set of electrically powered components in aggregate; c) for each the plurality of motors, subject the respective motor control signal to a plurality of current constraints to produce a constrained motor control signal, wherein the plurality of current constraints for each motor comprises: i) a motor current constraint that constrains a current drawn by the motor based on a respective motor current limit; and ii) a first aggregate current constraint that constrains the aggregate current drawn by the first set of electrically powered components based on a first aggregate current limit; and d) output the constrained motor control signals; wherein the first aggregate current constraint for each of the plurality of motors is a function of the determined first aggregate current.
2. The prosthesis of claim 1 further comprising one or more current sensors configured to sense current drawn by one or more of the first set of electrically powered components.
3. The prosthesis of claim 2 wherein the control circuitry is configured to determine the first aggregate current based on one or more measurements made by the one or more current sensors.
4. The prosthesis of claim 1 or claim 2 wherein the control circuitry is configured to determine the first aggregate current based on a prediction of current to be drawn by the first set of electrically powered components.
5. The prosthesis of any one of claims 1 to 4 wherein the control circuitry is configured such that, for each motor, subjecting the motor control signal to the motor current constraint comprises: a) determining if the motor control signal for the respective motor is greater in magnitude than a motor control signal limit; and b) if the motor control signal for the respective motor is determined to be greater than the respective motor control signal limit, reducing the magnitude of the motor control signal.
6. The prosthesis of claim 5 wherein the control circuitry is configured such that reducing the magnitude of the motor control signal comprises: setting the motor control signal magnitude to the motor control signal limit.
7. The prosthesis of any one of claims 1 to 6 wherein the control circuitry is configured such that subjecting the motor control signals to the first aggregate current constraint comprises: a) determining if the determined first aggregate current exceeds the first aggregate current limit; and b) if the determined first aggregate current exceeds the first aggregate current limit, setting the motor control signal or signals for one or more ofthe motors to a value or values that correspond(s) to the first set of electrically powered components drawing a lower first aggregate current.
8. The prosthesis of claim 7 wherein the control circuitry is configured such that adjusting the motor control signal(s) for one or more of the motors to a value or values that correspond(s) to the first set of electrically powered components drawing a lower first aggregate current comprises: setting the motor control signal(s) for the one or more of the motors to a value or values that correspond(s) to the first set of electrically powered components drawing a first aggregate current equal to or less than the first aggregate current limit.
9. The prosthesis of claim 7 or 8 when dependent on claim 5 or claim 6 wherein adjusting the motor control signal(s) for one or more of the motors to a value or values that correspond(s) to the first set of electrically powered components drawing a lower first aggregate current comprises: reducing the magnitude of the respective motor control signal limit(s).
10. The prosthesis of any one of claims 1 to 9 wherein the control circuitry is configured such that applying the first aggregate current constraint comprises adjusting the motor control signals for two or more of the motors in a co-ordinated or correlated manner.
11. The prosthesis of claim 10 wherein adjusting the motor control signals for two or more of the motors comprises adjusting both of the motor control signals based on an amount by which the determined first aggregate current exceeds the first aggregate current limit.
12. The prosthesis of any one of claim 1 to 11 wherein the first set of electrically powered components comprises, in addition to the plurality of motors, one or more other electrically powered components.
13. The prosthesis of any one of claims 1 to 12 comprising a second set of electrically powered components, the second set of electrically powered components comprising the first set of electrically powered components and one or more additional electrically powered components, wherein the control circuitry is further configured to: a) for the second set of electrically powered components, determine a second aggregate current representing a current draw of the second set of electrically powered components in aggregate; and wherein the plurality of current constraints for each motor further comprises: i) a second aggregate current constraint that constrains the aggregate current drawn by the second set of electrically powered components based on a second aggregate current limit.
14. The prosthesis of any one of claims 1 to 13 wherein the control circuitry is configured such that the motor current constraint comprises: a) determining a motor current for each motor; b) comparing the motor current for each motor to the motor current limit for the motor; and c) adjusting the motor control signal for the motor to a value that is associated with a lower motor current if the determined motor current for the motor exceeds the motor current limit for the motor.
15. The prosthesis of claim 14 wherein the control circuitry is configured to set the determined motor current for each of one or more of the motors of the first set of components to a value greater than the motor current limit for the respective motor upon determining that the first aggregate current exceeds the first aggregate current limit.
16. The prosthesis of any one of claims 1 to 15 further configured to, for each motor, subject the respective motor control signal to a battery voltage constraint that constrains the current drawn by the motor based on determined battery voltage drop.
17. A method of managing current for a prosthesis having a first set of electrically powered components, the first set of electrically powered components comprising a plurality of motors, the method comprising: a) for each of the plurality of motors, receiving a respective motor control signal; b) for the first set of electrically powered components, determining a first aggregate current representing current draw of the first set of electrically powered components in aggregate; c) for each of the plurality of motors, subjecting the respective motor control signal to a plurality of current constraints to produce a constrained motor control signal, wherein the plurality of current constraints for each motor comprises: i) a motor current constraint that constrains a current drawn by the motor based on a respective motor current limit; and ii) a first aggregate current constraint that constrains the aggregate current drawn by the first set of electrically powered components based on a first aggregate current limit; and d) providing the constrained motor control signals to the motors; wherein the first aggregate current constraint for each of the plurality of motors is a function of the determined first aggregate current.
18. The method of claim 17 wherein determining the first aggregate current comprises measuring the current drawn by the first set of electrically powered components.
19. The method of claim 17 or claim 18 wherein subjecting each motor control signal to the respective motor current constraint comprises: a) comparing the motor control signal to a motor control signal limit; and b) if the motor control signal for the respective motor exceeds the motor control signal limit, setting the motor control signal to the motor control signal limit.
20. The method of any one of claims 17 to 19 wherein subjecting the motor control signals to the aggregate current constraint comprises: a) determining if the determined first aggregate current exceeds the first aggregate limit; and b) if the determined first aggregate current exceeds the first aggregate current limit, setting the motor control signal(s) for one or more of the motors to a value or values that correspond(s) to the first set of electrically powered components drawing a first aggregate current equal to or less than the first aggregate current limit.
21. The method of claim 20 when dependent on claim 19 wherein setting the motor control signal(s) for one of the motors to a value or values that correspond(s) to the first set of electrically powered components drawing a first aggregate current equal to or less than the first aggregate current limit comprises: adjusting the motor control signal limit for each of the motors.
22. The method of any one of claims 17 to 21 wherein the first set of electrically powered components comprises one of more other electrically powered components, wherein the method comprises: providing control signals to the one or more other electrically powered components without subjecting the control signals for the other electrically powered components to the plurality of current constraints.
23. The method of any one of claims 17 to 22 wherein the prosthesis comprises a second set of electrically powered components, the second set of electrically powered components comprising the first set of electrically powered components, wherein the method further comprises: a) for the second set of electrically powered components, determining a second aggregate current representing a current draw of the second set of electrically powered components in aggregate; b) subjecting one of more of the electrically powered components of the second set to a second aggregate current constraint based on a second aggregate current limit.
24. The method of any one of claims 17 to 23 comprising: a) determining a motor current for each motor; b) comparing the motor current for each motor to the motor current limit for the motor; and c) adjusting the motor control signal for the motor to a value that is associated with a lower motor current if the determined motor current for the motor exceeds the motor current limit for the motor.
25. The method of claim 24 comprising setting the determined motor current for each of one or more of the motors of the first set of components to a value greater than the motor current limit for the respective motor upondetermining that the first aggregate current exceeds the first aggregate current limit.
26. The method of any one of claims 17 to 25 further comprising, for each motor, subjecting the respective motor control signal to a battery voltage constraint that constrains the current drawn by the motor based on determined battery voltage drop.