Motor controller and method for controlling a motor

By using a force-based motor control method, combining the motor encoder signal, integral saturation force signal, and effective correction force signal, the correction force calculation of the motor controller is optimized, solving the problem of robots dealing with sudden collisions in unstructured environments and improving shock resistance and control stability.

CN122498095APending Publication Date: 2026-07-31MCKESSON INT AG
View PDF 0 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
MCKESSON INT AG
Filing Date
2024-12-20
Publication Date
2026-07-31

AI Technical Summary

Technical Problem

Existing technologies are insufficient to effectively address the problem of robots dealing with sudden collisions in unstructured environments. In particular, service robots may experience excessive collision energy due to ground uncertainties during their movement, potentially damaging objects or themselves. Furthermore, existing strategies such as speed limiting, lightweight design, low-inertia motors, and high-overload structures are conflicting.

Method used

A force-based motor control method is adopted, which quickly detects collisions and corrects external control forces by combining motor encoder signals, integral saturation force signals and effective correction force signals. Scalar functions and filter techniques are used to optimize the correction force calculation of the motor controller, reducing design pressure.

Benefits of technology

It improves the robot's impact resistance in collision situations, reduces the trade-offs between performance, structural stability, and weight, and enhances the stability and efficiency of motor control.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122498095A_ABST
    Figure CN122498095A_ABST
Patent Text Reader

Abstract

Force-based motor control is used to reduce the impact energy to be dealt with in the event of a collision or impact. That is, force-based control is used as the basis: a setpoint force is obtained by correcting an external control force using a correction force; this setpoint force is limited to obtain an effective setpoint force; and then the effective setpoint force is converted from a force to a current to determine the current to be applied to the motor. The correction force is determined using not only the motor encoder signal from the motor encoder but also the formed integral saturation force signal and the effective correction force signal.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application relates to motor control.

[0002] For robots designed for unstructured environments (referred to as service robots in this paper), collisions are a regular occurrence. While speed is largely limited by components and control strategies for industrial robots, the speed of service robots is primarily determined by the impact energy they can withstand. For example, a walking robot can move at low or high speeds, but the impact of its feet on the ground varies depending on its walking speed because the ground position is not precisely known. Furthermore, service robots must contend with situations where objects on the ground may not be detected by the robot's sensors, leading to collisions with higher energy. Therefore, the walking speed of such robots is effectively limited by the impact energy expected from such collisions. A robot moving too fast is prone to damaging objects or itself, or even destroying itself due to such collisions. Essentially, most of the robot's kinetic energy is transferred over a short time interval, resulting in damage or destruction; the shorter this interval, the greater the force exerted by a collision on the robot. Different strategies exist to keep this force within acceptable limits: 1. Limit the robot's speed.

[0003] 2. The robot's structure adopts a lightweight design.

[0004] 3. Use a low-inertia motor.

[0005] 4. Use structures and gears with high overload capacity.

[0006] 5. Use series elastic elements.

[0007] The aforementioned strategies have been thoroughly validated, but some conflicts exist between them: for example, using structures with high overload capacity contradicts the goal of designing lightweight robots. These conflicts are difficult to resolve.

[0008] Therefore, there is an urgent need for a concept that complements or optimizes the above strategies and enables motor-driven objects or systems (such as robots) to cope more efficiently with sudden or unavoidable collisions, thereby reducing the dilemma of making trade-offs between robot performance, structural stability, flexibility, and weight.

[0009] Therefore, the object of the present invention is to provide a concept that allows motor-driven objects to respond more efficiently to sudden or unavoidable collisions, an object achieved by the motor controller and the method for control as described in the claims of this application.

[0010] The core idea of ​​this application is to use force-based motor control to reduce the impact energy to be dealt with in the event of a collision or impact. That is, force-based control is used as the basis: a setpoint force is obtained by correcting an external control force using a correction force; the setpoint force is then limited according to physical constraints such as those of the motor, gears, and motor controller to obtain an effective setpoint force; and the effective setpoint force is then subjected to a force-current conversion to determine the current to be applied to the motor. According to the inventors, in determining the correction force, in addition to using the motor encoder signal of the motor encoder, a formed integral saturation force signal and an effective correction force signal are also used. The effective correction force signal can be obtained by combining two or more of the external control force, correction force, setpoint force, and effective setpoint force (e.g., a linear combination), and is used to characterize the force correction generated by the motor controller. The integral saturation force signal can be obtained by combining the effective setpoint force with one or more of the external control force, correction force, and setpoint force (e.g., a linear combination). The core idea is as follows: based on the motor encoder signal, collisions and related abrupt changes in the trend of the motor encoder signal can be quickly detected. The integral saturation force signal enables the avoidance of motor control instability problems that would otherwise be caused by limiting the correction force. The effective correction force signal can then be directly analyzed recursively for effective force correction, and also helps to distinguish between expected and unexpected changes in the trend of the motor encoder signal. In other words, the motor control of this invention is force-based because all internal operational parameters are related to force, namely the external control force, the set force, the effective set force, the integral saturation force signal, and the effective correction force signal, as well as the last but not least, the correction force. This reduces the overall design pressure for achieving shock resistance or collision resistance, for example, reducing the design pressure on the motor, gears, and / or other components of the motorized structure that integrate motor control.

[0011] According to one embodiment of this application, the motor is a rotary electric motor, such as an electric motor configured to convert electrical energy supplied by an electric current into a force in the form of torque applied to the shaft of the motor, and that force is torque. For example, the motorized structure can be a leg or arm, such as the leg or arm of a robot.

[0012] The correction force can be solved by substituting templates of the latest (or most recent) sampled values ​​of the motor coded angle signal, the integral saturation force signal, and the effective correction force signal into a scalar function. The scalar function can be formed by a linear or nonlinear function. In particular, the scalar function can be implemented by a machine learning prediction model. For example, a neural network can be used. To train the machine learning prediction model or neural network, a cost function can be used, the calculation of which can be based on one or more of the following metrics: uncompensated collision energy, correction force duration, current ripple increment caused by the correction force, and system sensitivity to changes in mechanical design parameters.

[0013] According to one embodiment, the calculation process for the correction force is divided into three branches, each fed by one of three inputs: the motor encoder signal, the integral saturation force signal, and the effective correction force signal. In these independent branches or modules, a first correction force component signal characterizing acceleration is generated using the motor encoder signal, a second correction force component signal is generated using the effective correction force signal, and an anti-instability signal is generated using the integral saturation force signal. The first correction force component signal, the second correction force component signal, and the anti-instability signal are then synthesized to obtain the correction force. Each branch or module can use linear or nonlinear mappings. For example, a neural network can be used in each of these branches / modules.

[0014] According to one embodiment, a first filter is used to filter the motor encoder signal to obtain a first correction force component signal; a second filter is used to filter the integral saturation force signal to obtain a second correction force component signal; and a third filter is used to filter the effective correction force signal to obtain an anti-instability signal. The filters can be FIR filters. This measure reduces the workload of algorithm implementation and model training while still achieving sufficient vibration reduction and / or collision avoidance effects.

[0015] According to one embodiment, the filter core sizes are different, with the core size of the first filter exceeding that of the second and third filters. This allows for a damping effect by creating a tail at the end of the impulse response of the first FIR filter, suppressing the inherent instability of the direct inertia compensation scheme. Furthermore, this enables the motor control to exhibit energy-consuming characteristics in the short term while maintaining unbiased speed characteristics over the long term. Similarly, the above size relationship still applies even when the branches or modules are formed using methods other than FIR filters. That is, the latest sampled value template of the motor encoder signal fed to the scalar function of the first branch can have more sampled values ​​and / or form a longer time interval compared to the latest sampled value templates corresponding to the integral saturation force signal and the effective correction force signal, respectively.

[0016] According to one embodiment, an FIR filter is used to filter the motor encoder signal. The FIR filter is designed such that a predetermined FIR filter tap coefficient of the first filter is equal to the negative of the sum of all coefficients of the first filter excluding the predetermined FIR filter tap coefficient. This results in either the sum of all coefficients of the first filter being zero, or the absolute value of the sum of all coefficients of the first filter being less than 1% of the absolute value of the coefficient with the largest amplitude in the first filter coefficients. Furthermore, the first moment of the coefficients of the first filter about the predetermined FIR filter tap is zero, or the absolute value of the first moment of the coefficients of the first filter about the predetermined FIR filter tap is less than 1% of the absolute value of the coefficient with the largest amplitude in the first filter coefficients. This ensures that the first correction force component signal possesses position and velocity invariance, and allows the first filter to be an FIR filter whose coefficients do not require any training while still enhancing stability. The predetermined FIR filter tap can be a zero-delay filter tap. Additionally, the coefficients of the single-tap delay FIR filter taps can be assigned values ​​to inversely compensate for the first moment of the coefficients of the first filter other than those of the single-tap delay FIR filter taps with respect to predetermined FIR filter taps. The coefficients of the double-tap delay FIR filter taps and the zero-delay FIR filter taps can have the same sign and opposite signs to those of the single-tap delay FIR filter taps, so that the impulse response is substantially proportional to the second derivative. The absolute value of the sum of the coefficients of the double-tap delay FIR filter taps, the zero-delay FIR filter taps, and the single-tap delay FIR filter taps can be less than 10% of the absolute value of the coefficients of the single-tap delay FIR filter taps. Apart from the coefficients of the double-tap delay FIR filter taps, the single-tap delay FIR filter taps, and the zero-delay FIR filter taps, the sum of the absolute values ​​of the coefficients of the first filter is less than 10% of the absolute values ​​of the single-tap delay FIR filter tap coefficients. In other words, these other coefficients form a "tail" in the FIR filter's impulse response function and can correspond to a constant function or a function that monotonically decays toward the tail of the FIR filter core, such as forming a linear, quadratic, or exponential function, or any other preferably monotonic or strictly monotonic function.

[0017] According to one embodiment, the aforementioned signal fusion of the first correction force component signal, the second correction force component signal, and the anti-instability signal can be achieved by summing these signals. This summation simplifies the training process of the branch / module functions, especially the functions of the second and third branches / modules implemented using the FIR filters discussed above for motor encoder signals. For example, it can support training using gradient descent methods.

[0018] Further details of this application are the subject of the dependent claims, wherein preferred embodiments of the application are described below with reference to the accompanying drawings, wherein: Figure 1 A block diagram illustrating an embodiment of a motor controller and an example of its integration into a motorization system is shown. Figure 2 A graph of the FIR filter coefficients for implementing a corrected force solver according to one embodiment is shown. Figures 3a to 3h Some simulation waveforms are shown to demonstrate Figure 1 The embodiments generate various signals under exemplary collision conditions to illustrate the concept and advantages of this application; and Figure 4 Another embodiment of the motor controller is shown, along with a block diagram of an example of its integration into a motorization system, where a combination of IIR and FIR filters is used to generate a first force correction component.

[0019] Even if they appear in different figures, in the following description, the same or equivalent elements or elements having the same or equivalent functions are represented by the same or equivalent reference numerals.

[0020] In the following description, numerous details are set forth to provide a more thorough explanation of embodiments of the invention. However, it will be apparent to those skilled in the art that embodiments of the invention may be practiced without these specific details. In other instances, well-known structures and devices are shown in block diagram form rather than in detail to avoid obscuring embodiments of the invention. Furthermore, unless otherwise specifically stated, features of the different embodiments described below may be combined with each other.

[0021] This will now be a brief review of the content discussed in the introduction of the instruction manual. In particular, the disadvantages of the strategies discussed in the introduction are: 1. Limited speed, which in turn limits the robot's availability.

[0022] 2. Lightweight design within the robot structure is reasonable, but it is subject to limitation 4.

[0023] 3. Using motors with finite inertia is very helpful, but there are technical limitations.

[0024] 4. Using structures and gears with high overload capacity often increases costs and the weight of the entire structure (e.g., a robot).

[0025] 5. The use of series elastic elements also incurs associated costs: the cost and size of such series elastic elements are proportional to the energy to be absorbed. These elements often also lead to a decrease in control accuracy.

[0026] The above ideas led to embodiments of this application, which limit collision energy through motor inertia compensation. Typically, this requires acquiring the second derivative of the motor position, such as the motor rotation angle in the case of a rotary motor. Such concepts are known in robotics. See, for example, reference [1]. However, known algorithms are either slow or unstable. The ETCH algorithm in reference [1] can be used to reduce forces caused by the patient, but its response speed is far from sufficient for real collisions.

[0027] According to the embodiments described below, the problem of more efficiently achieving shock / collision resistance is solved by using force / torque-based motor control, where the correction force / torque is determined based on the formed integral saturation force signal and the effective correction force signal, in addition to the motor encoder signal. In fact, the calculation process of the correction force is recursive because the correction force corresponding to the external control force sampling point at the next moment is determined based on one or more latest sampled values, including the effective set force, which is generated by the correction force. The calculation of the correction force also requires the latest motor encoder signal reading / sampled value, which is influenced by the correction force through the correlation of the effective set force.

[0028] Figure 1 An embodiment of the motor controller 10 for the example is shown, wherein the motor controller 10 is embedded in the motorization system 12; however, it should be clearly stated that... Figure 1 All component details belonging to the motorization system 12 and external to the motor controller 10 are optional for the motor controller 10, and the motor controller 10 can also be used with other motorization systems 12 or integrated into other motorization systems. Furthermore, although... Figure 1 The motorization system 12 is depicted as including legs 14 driven by a motor 18 via gears 16, but this should not be interpreted as... Figure 1 The motor controller 10 is not limited in its applicability. Instead, the motor controller 10 can also be used in other motorized systems 12, such as systems where the motor 18 drives other objects (such as an arm). For example, the motorized system 12 can be a robot.

[0029] Furthermore, the embodiments described below assume that motor 18 is a rotary motor, such that the motor encoder signal corresponds to the angular position of the shaft of motor 18. However, it should be noted that regarding... Figure 1 All the details described can be easily transferred to linear motion actuators, in which case the motor encoder signal will be related to the linear position, and... Figure 1 The torque mentioned in the description will be a linear force.

[0030] In order to complete the Figure 1 As can be seen in the figure, the system 12 also includes a position-speed-torque (PVT) controller 20, which outputs a torque signal τ to the motor controller 10 based on a specific control algorithm, for example, analyzing signals from one or more sensors. PVT 22. In addition to the optional sensor signals just mentioned, the PVT controller 20 also uses the rotational position φ of the motor 18 to characterize the position of the motor 18. mot The motor encoder signal 24 and the rotational position φ representing the gear 16 or the leg 14 respectively. out The gear position signal 26. Based on the input signal, the controller 20 determines the external control torque τ. PVT twenty two.

[0031] It should be noted that the controller 20, which is assigned a higher-level control task, can operate at a lower sampling rate than the motor controller 10. More precisely, while the motor controller 10 can operate at the sampling rate of the motor encoder signal 24, the controller 20 can operate at a rate, for example, even one-fifth or one-tenth lower than the sampling rate of signal 24. The sampling rate of the gear position signal 26 can also be lower than that of signal 24, and can, for example, be the same as or greater than the processing rate of the controller 20.

[0032] The motor controller 10 is used to appropriately determine the current I to be applied to the motor 18. mot 28 controls motor 18, and the above appropriate determination is based on the external control torque τ. PVT Appropriately determined. Motor 18 moves leg 14 via gear 16 and is energized according to the aforementioned current 28. As just mentioned, both motor 18 and gear 16 output position signals 24 and 26, where motor encoder signal 24 is another input to motor controller 10.

[0033] Based on the current sampled values ​​of the external control torque 22 and the motor encoder signal 24, and the internally determined correction torque τ corr Based on the current sample value of 30, motor controller 10 determines current 28, and motor 18 reaches its position based on this current using the next sample value of motor encoder signal 24, and so on. As described above, due to the low processing rate of controller 20, external control torque 22 can be changed at a lower rate.

[0034] Figure 1The internal structure of the motor controller 10 is as follows. The corrector 32 corrects the external control torque 22 using a corrective torque 30, where, for example, the corrector 32 can simply add the corrective torque 30 to the external control torque 22. Of course, subtraction can also be used. The corrector 32 obtains the set torque 34, τ. set As output, the set torque is fed into torque limiter 36, which limits the set torque 34 relative to a first specific maximum torque in one motor direction and optionally a second specific maximum torque in the opposite motor direction to obtain an effective set torque 38. The magnitudes of the first and second maximum torques may be equal to or different from each other. Furthermore, they may depend on certain parameters related to the current state of the motor 18 in terms of gear backlash, as outlined in more detail below. In other words, limiter 36 performs amplitude limiting. Torque 34 is limited when it exceeds the first maximum torque and is limited when it is below the second maximum torque. The effective set torque 38 is fed into torque-to-current converter 40, which converts the input torque 38 into current 28. That is, converter 40 determines current 28 and outputs said current to motor 18. It should be noted that the current 28 determined by converter 40 is a signal and may not be the actual current applied to motor 18. Instead, the latter current may originate from... Figure 1 A current source or amplifier is not shown. Furthermore, the motor current can be an abstract quantity to be decomposed into multiphase currents (typically three-phase). Similarly, torques 22, 30, 34, and 38 are also signals characterizing the corresponding torques. An example of the conversion is described in more detail below. In principle, it is a mapping from the effective set torque 38 to the current 28 according to some mapping function, which is then adapted to the environment, i.e., the motorizing system 12, such as the motor 18 and possibly the gears 16 and legs 14, in terms of relevant design parameters such as stiffness, inertia, friction, and motor efficiency.

[0035] In addition to the components of the motor controller 10 described above, the motor controller 10 also includes a corrected torque solver 42. This solver 42 determines the aforementioned torque correction 30 and outputs it to the corrector 32, and receives the external set torque 22, the effective set torque 38, and the motor encoder signal 24 as inputs. Internally, the solver 42 includes an effective correction signal solver 44, an integral saturation signal solver 46, and a determination module 48. The solver 44 determines the effective corrected torque signal 50 based on the external control torque 22 and the effective set torque 38, for example, by subtraction. For example, the solver 44 can be implemented as a subtractor that receives the torque 22 at its positive input and the effective set torque 38 at its negative input. The solver 46 determines the integral saturation torque signal 52 based on the difference between the effective corrected torque signal 50 and the corrected torque 30. For example, solver 46 can be specifically implemented as a subtractor that receives the correction torque 30 as its positive input and the effective correction torque signal 50 at its negative input, and vice versa. Determining module 48 receives motor encoder signal 24, integral saturation signal 52, and effective correction torque signal 50, and determines the correction torque 30 based on these.

[0036] Figure 1 An embodiment of the internal structure of solver 48 is also shown. This is the module responsible for determining the correction torque 30 to help reduce the energy to be dealt with in cases such as accidental mechanical shocks due to unforeseen or unavoidable collisions during operation. In particular, although different embodiments exist to implement solver 48, Figure 1The illustrated embodiment divides the determination of the current torque 30 into three branches or sub-modules 48a, 48b, and 48c based on three inputs: the motor encoder signal 24, the integral saturation signal 52, and the effective correction signal 50. The first branch or sub-module 48a receives the motor encoder signal 24 and determines a first corrected torque component signal 54a based on it. The second branch or sub-module 48b receives the effective correction signal 50 and determines a second corrected torque component signal 54b based on it. The third branch or sub-module 58c receives the integral saturation signal 52 and determines an anti-instability signal 54c based on it. The three signals 54a, 54b, and 54c are combined by the combiner 56 of module 58 to obtain the corrected torque 30. As outlined in more detail below, individual submodules 48a to 48c can be specifically represented as FIR filters, and the combination of combiners 46 can be specifically represented by summation. However, even here, there are alternative schemes, as discussed further below, such as forming each individual submodule 48a to 48c as a different linear function, or as a nonlinear function or neural network, or, for example, forming each submodule in submodules 48b and 48c as a machine learning function, such as a neural network, while using FIR on submodule 48a, and as discussed below. Figure 1 Other variations include embodying the entire module 48 as a scalar function or a neural network, which can be linear or nonlinear.

[0037] In description Figure 1 It should be noted that alternative solutions exist in many aspects, including, for example, the formation of signals 50 and 52. For instance, in the above embodiment, it has been described that the effective correction torque signal 50 is determined based on the difference between the external control torque 22 and the effective set torque 38, and the integral saturation torque signal 52 is determined based on the difference between the correction torque 30 and the effective correction torque signal 50. Therefore, the effective correction torque signal 50 here corresponds to a linear combination of the external control torque 22 and the effective set torque 38, and the integral saturation torque signal 52 corresponds to a linear combination of the correction torque 30, the external control torque 22, and the effective set torque 38. However, other linear combinations are also possible. For example, the integral saturation signal 52 can be formed based on the difference between torques 34 and 38, while the effective correction signal 50 is determined based on the difference between such an integral saturation signal and the correction signal. Further variations are conceivable, such as forming a weighted average among the variations mentioned above.

[0038] The overall concept will now be briefly described, followed by a description of the basic ideas that form the embodiments of this application, and regarding... Figure 1 Further details on the individual (sub)modules and design possibilities for solver 48.

[0039] Specifically, typically, the PVT controller 20 is used to control the movement of the entire motorization system 12 by appropriately moving the leg 14 via the motor 18. For this purpose, the controller 20 outputs a desired torque, i.e., an external control torque 22. The motor controller 10 is used to achieve this torque at the motor 18, however, by reducing and compensating for energy caused, for example, mechanical shock due to a collision of the leg 14 with the environment. It should be noted that the torque limiter 36, connected in series between the controller 20 and the motor 18, does not limit the torque applied to it by the motor 18 or experienced externally. Instead, the torque limiter 36 only limits the set torque resulting from the correction of the external control torque 22 using the correction torque 30, and thus primarily limits infeasible or undesirable overreactions in response to collisions. Therefore, the corrective torque solver 42 is designed to appropriately determine the corrective torque 30 such that: if there is no collision, the motor 18 moves the leg 14 as expected by the external control torque 22; and if a collision occurs, the collision energy is compensated or dissipated as quickly as possible by appropriately controlling the motor 18, so that the controller 20 does not need to urgently detect the collision, and can react appropriately once a collision is detected, such as by entering the corresponding collision or contact mode, attempting an alternative movement, moving backward, using a brake to stop the shaft of the motor 18, or combinations thereof. In the embodiment described in more detail below, the corrective torque solver 42 is even able to respond to the controller 20, which stops the motor shaft once a collision is detected, because the control loop implementing the motor controller 10 will not cause excessive or surging current behavior in the current 28 due to a sudden stop. For this purpose, the solver 48 uses two additional signals besides the motor encoder signal 24 itself to appropriately determine the corrective torque 30, namely, the aforementioned integral saturation signal 52 and the effective corrective torque signal 50. The latter provides information or indication as to whether any acceleration of the motor shaft is intentional, while the former signal enables the avoidance of instabilities that might otherwise occur without using the signal.

[0040] In other words, the motor controller 10 and the host or master controller 20 form a motor controller system for controlling the motor 18, wherein the motor controller 10 controls the motor 18 while compensating for excess torque caused by impact based on the external control torque 22, and the controller 20 determines the external control torque 22 based on the expected movement of the object moved by the motor 18 (i.e., the motorizing system 12). Therefore, this motor controller system is a dual-loop controller that controls, for example, the motor angle / position and the output angle of gear 16 or leg 14 using an implicit or explicit gear / spring model, and the controller 20 can effectively control one or more of the position, speed, and torque simultaneously. Figure 1 The abbreviation PVT was used.

[0041] As described above, the motorization system 12 can form a robot comprising one or more legs or arms, each leg or arm capable of rotation via gears, wherein for each such leg or arm, the robot includes a motor for moving the corresponding leg or arm via a corresponding gear. A motor controller or motor controller system can then control the motors, as described above, while compensating for excess forces caused by impacts acting on the gears.

[0042] In already described Figure 1 Following the embodiments for motor controllers and motorization systems, the following will continue to describe the factors contributing to the implementation of... Figure 1 An explanation or description of the specific implementation of the idea.

[0043] Actuators designed for robots follow different concepts or design strategies. For example, a spring can be used for impedance control by measuring torque and comparing encoder readings before and after the spring. However, a low-inertia motor, moderate gear reduction, and a certain degree of compliance of the robot's legs can also be used. Comparing these two concepts, for example, while a spring constant of approximately X Nm / rad might be used for the former impedance control, an equivalent spring constant of approximately 3X Nm / rad would be suitable for the latter. However, with this increased stiffness, even a actuator with reduced inertia cannot cope with sudden impacts without experiencing significant excess torque. Therefore, while using a low-inertia motor may be preferred, this would only reduce, not completely eliminate, the excess torque applied to the motor in the event of a collision. Embodiments of this application address this problem by measuring motor acceleration and mitigating this excess torque through some form of "inertia compensation algorithm."

[0044] Technically, what is required is a negative D. 2 In position control, term P is equivalent to a spring constant because it generates a torque proportional to the displacement from the desired position, thus creating an "electronic spring." Term D corresponds to a damper because it generates a force proportional to the position difference between two consecutive readings, an approximation of the angular velocity, which corresponds to a velocity-dependent torque, equivalent to a damper. 2 The term corresponds to inertia because D 2 The term generates a force proportional to the second derivative with respect to time, which simulates inertia. The term D itself is problematic because it involves "differentiation," which in practice means taking the difference between two consecutive noise encoder values, thus increasing system delay and significantly increasing noise. Taking D... 2 In this case, the problem also exhibits a squared effect: doubling the delay increases the noise level quadratically. This is D. 2One of the main reasons this is rarely used in industrial applications. Nevertheless, the prospect of peak torque reduction and all its potential impacts on gear and system design make attempts to address these issues extremely valuable, and the embodiments described in this application are capable of addressing these problems. Specifically, according to this application, not only motor encoder readings are used, but also an integral saturation signal 52 and an effectively corrected torque / force signal 0. Again, the reader is reminded that this description is preliminary (especially regarding...). Figure 1 The description focuses on rotary motors and torque rather than force, but by substituting force for torque, position for angle, and so on, all these statements in the description can be easily transferred to non-rotating motors.

[0045] A naive implementation of the inertia compensation algorithm will only estimate D 2 This could be achieved, for example, by using a 3-tap FIR filter with an FIR coefficient sequence of 1, -2, 1, or by using a Kalman filter; however, this would increase the system delay. The filter would be multiplied by a factor intended to increase the motor current proportional to the filter output. However, this naive implementation has the following drawbacks: 1.D 2 The term does not dissipate energy from the system. Considering the unavoidable system delay caused by obtaining the readings of three consecutive encoders, the system will inevitably become unstable without an external damper.

[0046] 2. Once the algorithm is applied to the motor, it will change the acceleration it is calculating. Therefore, the algorithm will have the opposite effect.

[0047] 3.D 2 The noise level is extremely high, and a high-resolution encoder is required. "Filtering" will not work because it will increase system latency.

[0048] 4. Consequently, such algorithms rely on accurate torque estimation.

[0049] Therefore, the following key points are derived from the above-mentioned shortcomings, ultimately leading to the embodiment proposed in this paper: 1. The algorithm should have some kind of dissipation term, but... a) The algorithm should possess speed invariance. Figure 1 In the example, this means that the underlying function of solver 48 should be speed invariant, or in the case of a 3-branch implementation, the function of branch 48a (e.g., an FIR filter) should be speed invariant (because the other two branches 48b and 48c will also automatically satisfy speed invariance). If a short-term-long-term approach is used, it is even easier to achieve these two goals: short-term dissipation and long-term speed invariance.

[0050] b) The algorithm should also be position invariant. That is, the underlying function of solver 48 should be position invariant, or if a 3-branch implementation is used, the underlying function of branch / module 48a should be position invariant (because the other two branches 48b and 48c will also automatically satisfy position invariance).

[0051] 2. The algorithm should also consider its own impact. There should be some kind of "compensation for compensation" mechanism.

[0052] a) As a corollary, when designing the underlying functions of solver 48, the actual limitations of the motor, such as current limits and operating conditions, should be considered. In particular, these should be taken into account to avoid "slew rate instability," which is a serious adverse effect caused by system delay due to integral saturation.

[0053] b) Therefore, the compensation implemented by the motor controller 10 should also include some "anti-integral saturation" terms, which is why the solver 48 uses the integral saturation signal 52 in addition to the motor encoder signal 24.

[0054] 3) The algorithm's "set value" should not be current, but torque / force. Figure 1 In module 40, current is derived through a simple conversion from torque to current. Physical effects such as temperature and operating conditions can be taken into account during the conversion.

[0055] Obviously, when determining the function of solver 48, the gain of the underlying FIR filter, such as in the case of using an FIR filter implementation, should be chosen to be high enough to be effective and low enough to avoid excessive motor current noise.

[0056] In other words, to summarize the above, the only sensor signal used by the motor controller 10 is actually the signal 24 from the motor encoder, i.e., the signal that measures the current position of the motor 18 (such as its motor shaft in the case of a rotary motor 18). To keep the complexity manageable, it may be advantageous to implement the solver 48 in a manner that makes it purely linear (i.e., makes the function of the solver 48 linear). In this regard, in terms of complexity, a specific implementation using FIR filters 48a to 48c may be advantageous, where combiner 48 combines the FIR filtered signals 54a to 54c in combiner 56.

[0057] Therefore, in the specific implementation using an FIR filter, the underlying algorithm of the motor controller 10 is itself a set of vector multiplications. Specifically, the vector multiplication embodied in the FIR filter is represented by the midpoint ·.

[0058] Furthermore, the above ideas also lead to the embodiments presented in this paper. Suppose a higher-level algorithm (such as...) Figure 1 The controller 20 sets the torque (which is generally a force, not limited to rotary motors), i.e., signal 22, and temporarily refers to this value as the target torque. We will correct this torque 22 via torque correction (i.e., 30). Of course, the motor torque is limited to ± the maximum torque, i.e., by limiter 36. For ease of understanding, it is assumed here that the maximum torque is equal in both motor directions, and finally, we obtain the torque correction setting value, i.e., 38. The effective correction is the difference between the target torque and the torque correction setting value; this difference measures the deviation between the effective set torque, or the applied torque, and the actual desired torque. This effective correction corresponds to... Figure 1 Signal 50 in the middle. Any integral saturation can be detected by calculating the difference between the effective correction and the torque correction, which corresponds to... Figure 1 Signal 52 in the middle.

[0059] With this naming, everything is now ready. According to... Figure 1 In the specific implementation using FIR filters in a separate branch, several sampled values ​​of the aforementioned variables need to be multiplied by several "fixed" FIR vectors. These can be CAN (Controller Area Network) objects or objects from another fieldbus system. Changing them during operation may be risky, but it is feasible. There are three FIR vectors, or in other words, three different FIR filters: FIR filter 48a, which is represented here as the motor position FIR; FIR filter 48b, which is represented here as the correction compensation FIR; and FIR filter 48c, which is referred to here as the integral saturation FIR.

[0060] As a result, the FIR filter lengths of FIR filters 48b and 48c can be chosen to be shorter than that of FIR filter 48a. In a specific example, the FIR filter length of filter 48a is chosen to be 43 filter taps, while the filter lengths of the other filters 48b and 48c are chosen to be eight filter taps. Further statements and explanations regarding the coefficients will be given below. More generally, the FIR filter length n of FIR filter 48a... a (In terms of maximum tap span) is likely the filter length (called n) of FIR filters 48b and 48c. b and n c (or the average filter length is more than 3 times, i.e., n) a >3 / 2 * (n b + n cThe subsequent FIR filters 48b and 48c may differ slightly in their FIR filter lengths, such that the length of one filter is at most twice the length of the other, i.e., |n b - n c | ≤ min(n b , n c Furthermore, the core of the FIR filter may have a "gap," or in other words, the taps function similarly to an FIR coefficient of zero. Of course, in the actual implementation of the FIR filter, such multiplication with zero coefficients can be skipped. Regarding the filter length of the FIR filters in modules 48b and 48c, it may be advantageous to set it between one-tenth and half of the natural frequency period of the series connection of motor 18, gear 16, and leg 14, for example, this natural frequency period specifically manifests as, after time 120, as... Figure 3b The oscillation of the motor encoder signal under the described collision condition is, for example, the time distance from the collision time 120 until the external control torque is zero and the torque correction 30 is set to zero, when the time 120 returns to the motor encoder sample value for the second time to the motor position.

[0061] Now, more formally: Torque Correction 1 = Motor Position FIR · (Last n) a (Electronic encoder readings) Torque correction 2 = Correction compensation FIR · (last n) b (Number of valid correction values) Torque correction 3 = Integral saturation FIR · [(last n c (Number of torque correction values) - (Last n) c [One effective correction value] Torque correction = Torque correction 1 + Torque correction 2 + Torque correction 3 Torque correction setpoint = max(min((target torque + torque correction), maximum torque), -maximum torque) Effective correction = Torque correction setpoint – Target torque Figure 2 and Figures 3a to 3h Examples based on Figure 1 The specific implementation of the embodiments is illustrated by simulation test examples, and in particular, the use of having Figure 2 The FIR filter coefficients of the FIR filter are shown in the motor controller 10. Specifically, from top to bottom, Figure 2Examples of filter coefficients for filter 48a, FIR filter 48b, and filter 48c are shown. Specific examples of the filter lengths just mentioned have been used. As discussed in more detail below, the first three prelead tap filter coefficients of filter 48a essentially correspond to second-derivative calculations, while the FIR filter coefficients at the tail of the filter are relatively small and form an averaging mechanism. The coefficients of filter 48a are not trained, while the FIR filter coefficients for the integral saturation FIR and correction-compensated FIR in branches / modules 48c and 48b are the result of training.

[0062] In particular, Figure 2 In the diagram, the FIR filter coefficients of the FIR filter in branch / module 48a are shown as dots and bars, while curves represent those used for the other two FIR filters, as well as branches 48b and 48c. The filter tap positions of the filter coefficients are characterized along the horizontal axis. Note that for each FIR filter, these tap positions are numbered, starting from 1 (the highest delay tap) to the zero-delay tap position. Therefore, for filter 48a, the zero-delay tap position is at 43, and for filters 48b and 48c, the zero-delay tap position is at 8.

[0063] The filter coefficients of all FIR filters are shown as zero-delay tap filter coefficients recorded on the right-hand side. That is, the zero-tap coefficient 100 of the motor position FIR of branch 48a is within the filter core and is related to the most recent or current motor encoder signal sample value 101 (see...). Figure 1 Multiply by . In short, Figure 2 The motor position FIR filter here has an exemplary n a =43 coefficients, such that zero-tap filter coefficient 100 is characterized as being at the forty-third position, or the filter tap position. Directly below, the zero-tap FIR filter coefficient 104 of the integral saturated FIR of branch 48c is characterized as being at the eighth filter tap position, because this FIR filter has eight filter coefficients. Similarly, directly below, the zero-tap filter coefficient 102 of the correction-compensated FIR of branch 48b is also characterized as being at the eighth filter tap position. Coefficient 102 is within the filter core of the correction-compensated FIR and is related to the most recent sampled value 103 of signal 50 (see... Figure 1 The most recently sampled value is then multiplied, and the result is obtained using or depending on the torque correction 30 generated by FIR filtering calculations related to the previous filter core position, for which, for example, the FIR filter core of the motor position FIR has zero-tap filter coefficients 100, which are registered to the motor encoder signal sample value, which is FIR filtered using the FIR filter of module 48b such that when coefficient 102 is multiplied by sample value 103, it is positioned at... Figure 1 The single-tap delay position is represented by position 107 in the diagram. For the most recent sample value of signal 52, 105 (see...) Figure 1 The coefficient of the integral saturated by multiplication of FIR 48c is 104, and similar statements are also correct.

[0064] When the external control torque 22 is zero, that is, when the external controller or the main controller wants the leg 14 to swing freely, as shown in Figures 3 to 4, the following conditions apply. Figure 3h The simulation was used and evaluated Figure 2 The FIR filter. That is, before leg 14 hits an object, i.e. before the impact or collision occurs, signals 22, 34 and 38 are initially zero. Figure 3a A diagram of signal 38 is shown. For Figures 3a to 3h In all the plots, the x-axis corresponds to the time axis in units of sample duration. The y-axis of each plot shows the corresponding signal in arbitrary units. Figures 3a to 3h The following are shown in the order described: torque correction setpoint 38, motor encoder signal 24, torque correction 1 54a, effective correction 50, torque correction 2 54b, torque correction - effective correction (corresponding to signal 52), torque correction 3 54c, and torque correction 30. The time axes in these figures are horizontally aligned with each other. At a certain time point 120, leg 14 impacts the object, i.e., a collision occurs. This point is... Figure 3b As can be seen in the motor encoder signal diagram: before time 120, the motor encoder signal changes, here increasing. From this time onward, physical structural characteristics (such as motor inertia and motor / gear / outrigger stiffness) cause the motor to maintain a substantially constant rate of movement for a certain period of time, roughly and exemplary represented in the diagram as 122. Relatively shortly after collision 120, the motor position FIR of module 48a begins to produce large (in an absolute sense) values, which characterize the torque applied by motor 18 in the direction of reducing the collision energy of the entire system. Therefore, Figure 3h The torque correction signal changes rapidly, making Figure 3d The effective correction signal takes a non-zero value because, in this example, since the externally supplied torque 22 is zero, the latter signal corresponds to... Figure 3h Torque correction. Therefore, the correction compensation FIR filter starts at the same level as the torque provided by the motor position FIR. Figure 3c Torque correction 1 in the same sense or in the same direction Figure 3h The torque correction signal contributes, such as Figure 3e As depicted. Finally, the integral saturation FIR of module 48c is achieved via... Figure 3f The signal 52 shown is torque correction - effective correction obtains information about the effective effect or impact of the torque limiter 36, and generates... Figure 3g The signal shown serves as another combined signal for the final torque correction, designed to avoid instability.

[0065] In addition, it has already been done to Figures 3a to 3h A simulation was conducted for the following scenario: after a period of time, exemplarily approximately 360 sampling periods in this case, the main controller decides to activate either a brake or Coulomb friction to effectively stop motor 18; however, motor controller 10 does not exhibit over-response and maintains a steady state. Only minor fluctuations occur in the torque correction setpoint.

[0066] When designing the motor position FIR that forms a branch or module 48a, the following considerations may be helpful. As mentioned above, the motor position FIR should satisfy three conditions: position invariance, i.e., no hidden P term; speed invariance, i.e., no hidden D term; and moderate noise.

[0067] Regarding position invariance, the operating mode of motor controller 10 should be position invariant, meaning it should exhibit the same behavior regardless of the initial position of motor 18. Otherwise, a hidden P-term will exist, belonging to any higher-level control loop rather than the torque control handled by motor controller 10. In terms of the weights or coefficients of the motor position FIR, this means the sum of all FIR coefficients for the motor position FIR should be zero, because only in this way will any constant position deviation not generate additional torque.

[0068] This zero-sum condition can be achieved by making one of the FIR coefficients of the motor position FIR the same as all the other FIR coefficients of the motor position FIR. This is achieved by using the negative of the sum. In one embodiment, a zero-delay tap FIR coefficient of 100 can be used for this purpose.

[0069]

[0070] Regarding speed invariance, the operating mode of the motor controller 10 should also possess speed invariance. This is because, otherwise, it will introduce a hidden D term, which belongs to the position control algorithm, not torque control. The long-term torque should equal the desired set torque.

[0071] The speed invariance can be illustrated using the following thought experiment: A motor with a constant speed will have a constant difference between successive encoder readings (i.e., consecutive samples of the motor encoder signal 24). Without loss of generality, we can assume that this difference is one (or any other constant term). Therefore, in this thought experiment, we multiply all the taps or coefficients of the FIR filter by the vector [1, 2, 3, …, n], where n is the length of the FIR filter, and sum them, and the resulting scalar product should be zero.

[0072] The straightforward way to ensure this condition embodies the beauty of technical mechanics: the above condition implies that the first moment of the filter taps or filter coefficients should be zero, which is equivalent to the zero torque condition. Such a zero torque condition can be ensured without much computation. For example, we can use any reference point. From the position-invariant condition, we derive a pre-determined coefficient for the taps (such as 100) as the negative of the sum of the previous taps. To avoid circular references, we can present the tap coefficients as the reference point. We now choose the coefficient of another tap (such as the coefficient of an adjacent tap) to ensure the zero torque condition for n. a For a tapped FIR filter, the zero-torque condition can be expressed as:

[0073] Again, in Figure 2 middle, It is 43.

[0074] Furthermore, the motor position FIR filter achieves double differentiation, as through three front-end FIR filter coefficients (i.e., zero-delay FIR filter coefficient 100 for achieving position invariance, single-tap delay FIR filter coefficient 106 as outlined above for achieving speed invariance, and...). Figure 2 The alternating signs of the coefficients 108 of the dual-tap delay FIR filter in the figure are shown. Among these coefficients, coefficients 100 and 108 have the same sign, while coefficient 106 in between has the opposite sign. For maximum shock mitigation, these terms or coefficients will become extremely large, which will have two practical drawbacks: the motor controller 10 (or more precisely, the solver 48, or even more precisely, module 48a and its FIR filter implementation, i.e., the motor position FIR) will multiply the encoder noise by exactly those extremely large weights / coefficients, and will lose robustness due to over-reliance on the fact that "constants" (such as motor inertia or torque constant) are constant.

[0075] This can be remedied by limiting the FIR filter coefficients. One practical approach is to set the coefficient 108 to a predetermined value, such as 100. For example, the coefficient could be set to a value between the following:

[0076] Where M is the number of bits in the integer multiplication of the FIR filter performed at module 48a.

[0077] Therefore, at least coefficients 100, 106, and 108 of the FIR filter in module 48a can be designed as described above, thereby reducing the workload of further coefficient or parameter optimization in modules 48a to 48c. However, it should be noted that while coefficient 100 may be equal to the negative of the sum of all coefficients of the motor position FIR except for coefficient 100, making the sum of all coefficients of the first filter zero, this can naturally be relaxed to a certain extent, i.e., the absolute value of the sum of all coefficients of the motion position FIR remains less than 1% of the absolute value of the coefficient with the largest amplitude among the coefficients of the first filter. Similarly, the determination of coefficient 106 can be relaxed to a certain extent, i.e., the first moments of these coefficients about coefficient 100 are less than 10% of the absolute value of the coefficient with the largest amplitude among the coefficients of the first filter, or alternatively, 5% or even 1%. Even under this relaxed state, the first corrected torque component signal 54a can achieve sufficient position and speed independence.

[0078] Furthermore, as clearly seen above, the absolute value of the sum of coefficients 108 of the dual-tap delay FIR filter tap, coefficient 100 of the zero-delay FIR filter tap, and coefficient 106 of the single-tap delay FIR filter tap is not zero, because the remainder is the sum of the remaining coefficients 110 that form the "tail" of the motor position FIR. The sum of these coefficients 110 can be chosen such that it is less than 10% of the absolute value of the coefficients of the single-tap delay FIR filter tap.

[0079]

[0080] The coefficient 110 forms a "tail" of the FIR filter impulse response function for the motor position FIR, and can correspond to a constant function or a function that decays toward the tail 112 of the FIR filter core, such as forming a linear function, a quadratic function, or an exponential function, or something similar. Figure 2 Any other monotonic or strictly monotonic function described at position 114.

[0081] In other words, to briefly summarize and reiterate the above: module 48a primarily forms the second derivative of its input (i.e., signal 24), while also possessing a certain negative low-pass filter component. For example... Figure 2 As described, the integral saturated FIR can exhibit certain low-pass filtering characteristics because all its non-zero coefficients have the same sign, such as a negative sign.

[0082] To check if the dimensional design is correct, simulation can be performed using a certain ENOB (effective number of bits for encoder resolution), such as 13 bits.

[0083] In fact, inertia compensation algorithms inherently contain instabilities, and motor controller 10 is no exception. However, to evaluate its stability, simulations and verifications can be performed in a minimum viable product (MVP) based on the specific motor design of motor 18. The following robustness criteria, or one or more of them, can be tested against the following: First, robustness to changes in rotor mass inertia and torque constant should be examined. If, for some reason, the motor mass inertia changes, or if, for some other reason, the motor torque constant changes, the effect will be similar: the relationship between current command and rotor acceleration will be affected.

[0084] There are two ranges of variation: 1. "Normal" variations during production, as well as normal operational errors, such as temperature transients not accurately reflected by the motor model. These variations total approximately ±10% and can be simulated using hypothetical analysis, in which the rotor mass inertia varies accordingly, and where the total vibrational energy after a certain settling time is measured to characterize stability.

[0085] 2. The “fundamental” change is due to product redesign. Here, the FIR parameters need to be renormalized. This can be simulated by linearly scaling the parameters of the FIR curve across the entire motor position. Without re-optimizing the correction compensation FIR, the following scenario can be simulated: even with ±10% post-production variation, the rotor inertia can still change within the range of 15% to 200% without causing instability. Therefore, after conducting some dynamic tests revealing the torque constant and rotor moment of inertia, it is highly recommended to renormalize the FIR coefficients during production.

[0086] Therefore, the coefficients or parameters (such as neural network weights) of the FIR filter in the scalar functions of modules 48a and 48b, or, in the case of a fairly general implementation of the scalar functions in solver 48, the parameters (such as neural network weights) of the scalar functions of solver 48, can be optimized using a cost function that depends on an index of sensitivity to changes in mechanical design parameters, or can be optimized in other ways, but any intermediate optimization results need to be examined to satisfy a minimum level of insensitivity to changes in mechanical design parameters.

[0087] Secondly, regarding robustness against Coulomb friction, the following points need clarification. Unlike damping, Coulomb friction poses a significant challenge to torque control because, due to the absence of motion within a specific current range, it is equivalent to a motor with infinite stiffness. This can lead to unpleasant, audible oscillations before reaching that current range. Therefore, a "zero acceleration phase," such as... Figures 3a to 3h As shown (after time marker 400). During this phase, the current should not surge. These unwanted oscillations can be included as part of the optimization criteria, i.e., the criteria can be used as a criterion for optimizing the coefficients within the solver 48.

[0088] Therefore, the coefficients or parameters (such as neural network weights) of the FIR filter in the scalar functions of modules 48a and 48b, or, in the case of a fairly general implementation of the scalar function in solver 48, the parameters (such as neural network weights) of the scalar function of solver 48, can be optimized using a cost function that depends on a metric for robustness to Coulomb friction, such as measuring the sway height after the motor stops at a predetermined alert speed as described above, or can be optimized in other ways, but any intermediate optimization results need to be checked to ensure that no instability occurs under such Coulomb friction conditions. It should be noted that, alternatively, the motor controller 10 may have some bypass or gating functionality to disable the effective corrective torque 30 if the motor 18 becomes slower than a predetermined limit for the noise of the motor encoder; in this case, optimization can be relaxed in this respect.

[0089] Third, robustness against high impact energies is also necessary. The system may fall into instability caused by slewing rate. Therefore, the FIR coefficients, especially the anti-integral saturation part, should be tuned accordingly. The motor controller 10 can be simulated for impacts up to a certain expected or permissible maximum speed (e.g., 18 rad / s).

[0090] Therefore, the coefficients or parameters (such as neural network weights) of the FIR filter in the scalar functions in modules 48a and 48b, or the parameters (such as neural network weights) of the scalar function in solver 48 in the case of a fairly general implementation of the scalar function, can be optimized by checking any intermediate optimization results, but ensuring that the criterion is met.

[0091] Fourth, robustness to encoder nonlinearity should also be considered. Encoder noise has already been mentioned above. Encoder nonlinearity is a different problem because it is reproducible, thus introducing spurious acceleration signals. For example, integral nonlinearity (INL) with high harmonic content has been found to be unacceptable, even if its absolute value is relatively low.

[0092] Therefore, the coefficients or parameters (such as neural network weights) of the FIR filter in the scalar functions in modules 48a and 48b, or the parameters (such as neural network weights) of the scalar function in solver 48 in the case of a fairly general implementation of the scalar function, can be optimized by checking any intermediate optimization results, but ensuring that the criterion is met.

[0093] The coefficients or parameters (such as neural network weights) of the FIR filters in the scalar functions of modules 48a and 48b, or, in the case of a fairly general implementation of scalar functions in solver 48, the parameters (such as neural network weights) of the scalar functions of solver 48, may additionally or alternatively be optimized using a cost function that depends on at least one or more of the following: an index of uncompensated collision energy, an index of the duration before the corrective torque disappears, and an index of the increase in current noise imposed by the corrective torque. In other words, the coefficients of filters 48a and 48b can be machine-learned using the cost function, which depends on at least one or more of the following: an index of uncompensated collision energy, an index of the duration before the corrective force disappears, an index of the increase in current noise imposed by the corrective force, an index of sensitivity to changes in mechanical design parameters, an index of robustness to Coulomb friction, and an index of robustness to motor encoder nonlinearity. Optimization may attempt to minimize the cost function, which may increase with one or more of the mentioned indices.

[0094] If a robot is used as the motorization system 12, elastic elements can be used to facilitate the operating modes of the motor controller, and this optimization can take elasticity into account. That is, the aforementioned FIR coefficients or parameters can be optimized to accommodate all elasticities, such as accommodating zero elasticity to avoid instability due to Coulomb friction.

[0095] The above description focuses primarily on the internal components of the motor controller 10, but the converter 40 and its potential collaboration with the main controller 20 have not yet been described in more detail. The following description now focuses on the latter issue.

[0096] Since the following description focuses particularly on details concerning components outside the motor controller 10, such as details concerning the motor, gears, and controller 20, some initial statements will be made.

[0097] As described above, while the motor controller 10 of this application can be used in relation to any type of motor (such as a linear actuator of a rotary motor), the following description focuses on an example of a rotary electric motor (typically a so-called torque motor) with a sub-millisecond mechanical time constant, specifically motor 18. This type of motor 18 includes a rotor but does not include bearings considered part of gear 16. Gear 16 may be, for example, a two-stage planetary gear. The term actuator may refer to a combination of motor 18 and gear 16, and accordingly includes corresponding electronics, sensors, connectors, and housings. The terms "actuator" and "[robot] joint" are used interchangeably.

[0098] Other aspects involve notation. A positive q current represents a current that, if large enough, would produce a positive acceleration at the position of motor 18, and similarly, a positive motor torque represents a torque that, if large enough, would apply a positive acceleration to motor 18 relative to the motor encoder signal. Positive acceleration can be defined as the second derivative of the motor encoder signal 24. The motor encoder reading (or in other words, the sampled value of the motor encoder signal 24) can be measured in units such as increments, where n increments correspond to one full motor revolution for the currently assumed applicable rotary motor 18. For example, 10,240 increments per motor revolution can be applied, i.e., 2560cpt = 10 x 256. This roughly corresponds to 13 bits. The gear encoder reading (or in other words, the sampled value of the gear position signal 26) can be measured in increments with lower precision compared to the motor position signal 24 (e.g., 4096 increments per output revolution of gear 16, corresponding to, for example, 12 bits). In the description below, some parts refer to the actuator or motor in a specific state, i.e., in one or four quadrants. These descriptive sections relate to a coordinate system, where the horizontal or x-axis corresponds to the speed of motor 18, and the vertical or y-axis corresponds to the torque of motor 18, such that the first quadrant Q1 corresponds to the case where the speed of motor 18 is positive (as does the torque), the second quadrant Q2 corresponds to the case where the speed of motor 18 is negative and the torque is positive, the third quadrant Q3 corresponds to the case where the speed is negative (as does the torque), and the fourth quadrant Q4 corresponds to the case where the speed is positive and the torque is negative.

[0099] It is also worth noting that although the motor controller 10 relates to motor torque control, which refers to finding the correct current setting to achieve a specific motor torque, including, for example, viscous friction c5, but excluding static friction M... VA Actuator torque control is about finding the correct motor torque setting to obtain the desired joint output torque. As will be clear from the following description, these two control loops must be distinguished, and although motor control involves nominally motor torque control, the latter, actuator torque control, actually falls under the scope of tasks related to the PVT controller 20.

[0100] As described above, the converter 40's task is to map the incoming torque command (i.e., the effective set torque 38) to the current 28 to be applied to the motor 18. This mapping can be represented by a function I(M). Deriving the formula for I(M) (where M represents the motor torque) is much easier than deriving M(I) because the former diverges, while the latter remains bounded. Formulas with divergent properties are actually easier to describe using, for example, polynomials. In fact, they are much more accurate than the complex functions currently used as alternatives.

[0101] To calculate the motor torque command T mot Motor current I, a function of mot The following should be considered in this order: First, due to the motor's Coulomb friction MVA mot and viscous friction C 5mot The resulting additional torque is secondarily due to the negative number T. Cmagn The description includes the magnet temperature drift, followed by the saturation curve.

[0102] It should be noted that the definitions here are the standard definitions of the Park and Clarke transformations, and the implicit transformation factor used in motor controllers to give the equivalent block commutation current. Furthermore, in SI units, a frictionless motor at 25°C would require the following current to achieve torque T. 25 :

[0103] Where k V It is the speed constant, i.e., the reciprocal of the torque constant, and k2..k5 are its higher-order terms. T 25 Adjustments are needed for temperature and friction, also in SI units:

[0104] Here, T mot It is a torque command, that is, to be mapped to current I. mot Torque on MVA mot This refers to the static friction of the motor. sgn (the sign function) is a function that outputs the sign of its independent variable. ω mot This is the speed of the motor encoder signal, i.e., the first derivative. As summarized above, c 5mot It's the viscous friction of motor 18. (T) Cmagn As mentioned above, this is due to the temperature drift of the magnet inside motor 18. It is the temperature of motor 18.

[0105] The simple c5 term in the above formula has some drawbacks, which are addressed by using a refined model of c5 for viscous friction, as follows: 1. Viscous friction is torque-dependent. Therefore, one way to solve this problem is to make c5 a constant and add a linear torque-dependent term.

[0106] 2. Viscous friction has eddy currents, which cause the motor to be less efficient in reverse mode.

[0107] Therefore, the formula above is revised, and c5 is divided into 4 coefficients, as shown below:

[0108] Here, in addition to the parameters discussed above, c 53 c 54 and c 51 These are certain viscosity parameters.

[0109] In the formula above, the motor speed It is multiplied by a fairly small c5, so the accuracy requirement is not too high. Depending on the control mode, it can be obtained from the last speed reading, i.e., the most recent or current sampled value of the motor encoder signal 24, or more precisely, the difference between the last two encoder readings or motor encoder signal sampled values ​​divided by the cycle time. It should be noted that the converter 40 can also be used in another control loop, which, for example, bypasses the motor controller 10, as explained herein, the motor controller responsible for establishing motor torque control. In the case of such alternative modes or control loops, specific instructions can be provided. Such modes can be joint position-speed-torque control modes.

[0110] That is, return to Figure 1 The converter 40 can map the incoming valid set torque signal 38 to the motor current I. mot When above, make T in the last formula mot This is equivalent to the input command, i.e., signal 38, and on the one hand, it sets other parameters in the formula according to predefined values ​​specifically set for the structure of the surrounding components of the motor control 10, for example, and on the other hand, it sets them in the manner just described (i.e., by deriving an estimate of the current speed based on the motor encoder signal 24). Therefore, the variable T is determined, especially based on the motor temperature and the effective set torque. 25 And the motor current is calculated using a polynomial function of the variable (such as the fifth-order function mentioned above).

[0111] It should be noted that any higher-level control component of the motorization system 12 (such as the PVT controller 20) may be interested in, or may use, information about the effective motor torque applied to the leg 14 by the motor 18 via the gear 16. For this purpose, it is necessary not only to determine the actual motor torque but also its angular acceleration α. motDue to the limited motor inertia Θ mot This angular acceleration will consume a portion of the torque. The basic formula is:

[0112] Here, T mot The effective set torque is also 38. α mot The method is determined as outlined in more detail below. The converter 40 is responsible for informing the controller 20 or any other module of the motorization system 12 of the effective motor torque T. feff .

[0113] On the one hand, α mot and T mot The noise level is quite high. On the other hand, the position control frequency of the motor controller 10 is much higher than the frequency of the host controller 20, for example, more than five times the latter. For instance, the position control frequency could be 2.5 kHz, with a time interval Δ... t The processing frequency is 500 microseconds, while the controller 20 can process at most 400 Hz, which means the frequency difference between the two could be greater than 5, or even greater than 6. This allows for smoothing of torque and acceleration readings: we can take the last six set torque T values. mot (As just explained, it is equal to) zeff The average of 38) and the average of the last six accelerations, and for the latter, we can use a clever method. As the sequence of the final motor encoder readings 24, in SI units, where This is the most recent reading. Then, the estimate of the most recent acceleration will be...

[0114] Therefore, the average of the last n acceleration estimates is

[0115] Therefore, the averaged acceleration It can be used as the acceleration in the formula above for calculation. This is equivalent to the difference between two velocity readings separated by n sampling values ​​divided by their time difference n*Δt. Therefore, a specific implementation of the above formula can be shown below:

[0116] Another approach is to use an IIR exponential filter or an averaging filter that is "reset" by a corresponding signal. These averaging filters can be applied to both acceleration and set torque.

[0117] As outlined above, controller 20 is actually more focused on controlling leg 14, or in other words, on controlling gear 16 rather than motor 18. This joint torque control can be essentially broken down into two steps: determining the correct quadrant and then using the correct formula.

[0118] More precisely, when determining the external control torque 22, the controller 20 actually bases it on the desired joint torque T to be obtained. joint To determine the torque 22, the controller 20 considers the current "state" of the motor 18, i.e., which quadrant the motor or actuator is currently in. This will be explained in more detail below.

[0119] Joint torque control includes gear 16 and is therefore highly dependent on the quadrant in which joint 16 operates. The quadrant currently used for joint torque control is determined as follows: the sign of speed is determined by comparing the last two motor position readings (i.e., the last two sampled values ​​of the motor encoder signal 24), while the sign of joint torque is determined solely by examining the sign of the desired joint torque (i.e., a parameter or value appearing internally within the joint torque control of controller 20). It should be noted that during transitions between torque signs, the relationship between the gear and motor position may jump due to gear backlash.

[0120] As a basis, the following points need to be explained. The motor encoder in motor 18 is more accurate than the encoder at gear 16. Therefore, motor speed is more suitable for evaluating the gear. Gear 16 has relatively high stiffness, so changes in motor speed will propagate extremely quickly through gear 16. As for the torque sign, it is used to evaluate the desired motor torque and current, and it is reasonable to "make the same assumptions," that is, the desired torque will actually be achieved with the expected sign. Due to the extremely high torque bandwidth, the timing of sign reversal will match torque control well.

[0121] The most important factor is gear efficiency. If gear 16 is in Q2 or Q4, it is called reverse operation. The inherent "maximum" gear efficiency differs for forward and reverse operation, where the estimation formula for reverse efficiency is:

[0122] This is the gear efficiency in reverse mode (i.e., under Q2 or Q4), while It is the gear efficiency in forward mode (i.e., Q1 or Q3).

[0123] It is still recommended to assign a separate measurement-based value to the inverse efficiency, rather than simply calculating it.

[0124] The tricky part is that if friction is introduced, the quadrant in which the gear is positioned may change depending on how it is observed. For the more efficient gears we are using, the resulting error is negligible, so for gear 16 with a reduction ratio of i, the following simplified formula can be used (where c5 is combined with c5 for the motor):

[0125] Here, MVA gear This refers to the static friction of the gears, as observed from the output end of the gear. Estimating the effective joint torque is quite challenging because the relationship between motor torque and joint torque is not continuous. Worse still, Coulomb friction exists at every stage, making it difficult to determine the correct quadrant. Therefore, we must accept that there is a certain "vacuum zone" between quadrants, the size of which depends directly on all friction terms.

[0126] Therefore, a less-than-ideal compromise is to determine its sign based on the set value of the joint torque.

[0127] The estimated value of the joint torque is

[0128] It is an estimate of the effective motor torque, and this estimate can be obtained by averaging the acceleration and the torque as described above.

[0129] Therefore, summarizing the above, position control and torque control are envisioned. Position control is purely positional, without speed setting, and operates at a frequency of 50Hz, so each of the eight sampled values ​​has the same position. Therefore, the relatively low position gain helps to avoid cogging squeal.

[0130] In summary, these embodiments enable collision detection by monitoring motor / rotor movement. Specifically, the corrected torque signal 30 induces an additional current whose direction aligns with the direction of the impact. This is accomplished using a solver 48, which can be implemented using FIR filters. One of these FIR filters can assess the trend of change in motor position.

[0131] By extending the FIR filter and appropriately selecting coefficients to establish additional damping, the inherent instability of simple mass compensation is stabilized.

[0132] In addition, an additional FIR filter can be used in the solver 48, which takes into account the effect of torque compensation on motor position and generates a corresponding correction component 48b.

[0133] Another FIR filter is introduced to avoid instability caused by the torque limiter.

[0134] Determinable coefficients enable the achievement of one or more of the following objectives: Stability is maintained for all possible stiffnesses below the selected leg stiffness. Therefore, if the robot leg collides with a soft object or if the leg swings freely, this should never lead to instability.

[0135] In addition, it should have stability against Coulomb friction: torque control should not become unstable even if the motor moves under static friction.

[0136] Furthermore, the noise amplification should be tolerable: the calculation of the second derivative of the motor position signal inherently involves significant noise. The design specifications of the solver 48 or the filters therein should ensure that, using the given accuracy of the motor encoder, the additional noise imposed by the current correction is minimal, thereby resulting in relatively low additional heat generation. A possible target value is, for example, the RMS value of the noise, which is one-tenth of the nominal moment; however, this implies that the additional heat generation is less than 1% of the nominal power loss.

[0137] As described above, the converter 40 should provide good torque feedforward. This includes efficient determination of the material limits, and therefore includes taking friction and gear efficiency into account. This may help avoid instability.

[0138] In summary, based on the above description and presentation of certain embodiments, the following aspects / embodiments have been specifically described above, and additional features described in the above embodiments may be combined, individually and in combination, with these subsequently described aspects and embodiments (and vice versa) to produce even further embodiments of this application.

[0139] According to aspect 1, a motor controller 10 for controlling a motor in the event of compensating for excess force caused by an impact has been described. The motor controller includes: 1) a corrector 32 configured to correct an external control force 22 using a corrective force 30 to obtain a set force 34; and 2) a force limiter 36 configured to limit the set force 34 to obtain an effective set force 38. This limit can be used to take into account the physical limitations of the motor, in other words, to correct the set force 34 to a force that can be actually achieved by the motor, wherein this force is referred to as the effective set force 38. Furthermore, the motor controller includes: 3) a force-to-current converter 40 configured to determine the current 28 to be applied to the motor 18 based on the effective set force 38b; and 4) a correction force solver 42 configured to determine the correction force 30 based on: A) a motor encoder signal of the motor encoder of the motor 18; B) an effective correction force signal 50 corresponding to a combination (e.g., linear or nonlinear, generally analytical or mathematical) of two or more of a) external control force 22, b) correction force 30, c) set force 34 and d) effective set force 38, the effective correction force signal 50 characterizing the force correction caused by the motor controller; and C) an integral saturation force signal 52 corresponding to a combination (e.g., linear or nonlinear, generally analytical or mathematical) of the effective set force 38 and one or more of α) external control force 22, β) correction force 30 and γ) set force 34. The integral saturation force signal 52 may have the function of providing an index of the deviation between the set force 34 and the effective set force 38 generated by the force limiter 36. For example, the deviation measure, and therefore the integral saturation force signal 52, may be based on the difference between the set force 34 and the effective set force 38, or more generally, on a (e.g., linear or nonlinear) combination of the set force 34 and the effective set force 38, to characterize integral saturation. In other words, the integral saturation force signal 52 makes it possible to detect, or characterize, any integral saturation. According to aspect 2, in addition to aspect 1, the motor controller may be configured to form the effective correction force signal 50 based on the difference between the external control force 22 and the effective set force 38, and / or to form the integral saturation force signal 52 based on the difference between the correction force 30 and the effective correction force signal 50. According to aspect 3, in addition to aspect 1 or 2, the correction force solver 42 may be configured to determine the correction force 30 by substituting a template of the most recently sampled values ​​of the motor encoder signal 24, the integral saturation force signal 52, and the effective correction force signal 50 into a scalar function. According to aspect 4, except for any of aspects 1 to 3, the corrective force solver can be configured to determine the corrective force (τ) in the following manner. corr): 1) Individually - determine a first correction force component signal (54a) from the motor encoder signal (24), the first correction force component signal representing acceleration; - determine a second correction force component signal (54b) from the effective correction force signal (50); and - determine an anti-instability signal (54c) from the integral saturation force signal (52); and 2) combine the first correction force component signal (54a), the second correction force component signal (54b) and the anti-instability signal (54c) to obtain a correction force (30).

[0140] According to aspect 5, in addition to aspect 4, the motor controller can be configured to: determine a first correction force component signal 54a from the motor encoder signal 24 using a first filter; determine a second correction force component signal 54b from the effective correction force signal (50) using a second filter; and determine an anti-instability signal 54c from the integral saturation force signal 52 using a third filter. Optionally, the first filter, the second filter, and the third filter may be or may include FIR filters. The first filter may have a larger filter core size than the second and third filters. According to aspect 6, in addition to aspect 4 or 5, the motor controller may be configured to determine the first correction force component signal 54a from the motor encoder signal 24 using a first filter, wherein the first filter is an FIR filter and is designed such that: the coefficient 100 of a predetermined FIR filter tap of the first filter is equal to the negative of the sum of all coefficients of the first filter excluding the predetermined FIR filter tap coefficient 100, such that the sum of all coefficients of the first filter is zero, or deviates sufficiently small from the negative of the sum of all coefficients of the first filter excluding the predetermined FIR filter tap coefficient 100, such that the absolute value of the sum of all coefficients of the first filter is less than 1% of the absolute value of the coefficient with the largest amplitude among the coefficients of the first filter, and the first moment of the coefficients of the first filter about the predetermined FIR filter tap is zero, or the absolute value of the first moment of the coefficients of the first filter about the predetermined FIR filter tap is less than 10% of the absolute value of the coefficient with the largest amplitude among the coefficients of the first filter. According to aspect 6, in addition to aspect 6, the predetermined FIR filter tap may be a zero-delay filter tap. According to aspect 8, in addition to aspect 7, the coefficient 106 of the single-tap delay FIR filter tap of the first filter can be set to the negative of the first moment of the coefficients of the first filter other than the coefficients of the single-tap delay FIR filter tap with respect to the predetermined FIR filter tap. According to aspect 9, except for aspect 8, the coefficients 108 of the double-tap delay FIR filter tap and the coefficients 100 of the zero-delay FIR filter tap of the first filter may have equal signs and opposite signs relative to the coefficients 106 of the single-tap delay FIR filter tap, wherein the absolute value of the sum of the coefficients 108 of the double-tap delay FIR filter tap, the coefficients 100 of the zero-delay FIR filter tap, and the coefficients 106 of the single-tap delay FIR filter tap is less than 10% of the absolute value of the coefficients 106 of the single-tap delay FIR filter tap, and the coefficients of the first filter other than the coefficients 108 of the double-tap delay FIR filter tap, the coefficients 106 of the single-tap delay FIR filter tap, and the coefficients of the zero-delay FIR filter tap form a monotonic function that monotonically decreases as it moves away from the coefficients 108 of the double-tap delay FIR filter tap.However, since the calculation of long FIR filters is both cumbersome and memory-intensive, an alternative approach is adopted: the first filter is constructed as a combination of an FIR filter and an IIR filter, rather than using only pure FIR to form the first filter. The FIR filter component of the first filter corresponds to the coefficients of the first three FIR filter taps described herein, i.e., corresponding to aspects 7 to 9. However, the FIR filter component of the first filter will only have a length of 3. The second component will be a single-tap IIR filter that performs IIR filtering on the motor encoder signal 24, where the output is added to the output signal of the FIR component. That is, the first FIR filter and IIR filter component will be connected in parallel, and their filtered output signals will be added, where the FIR filter component performs the task outlined above, and the IIR filter component assumes the role of the original FIR filter tail, i.e., it approximates the quadratic formula of the original tail of the motor position FIR. Therefore, in the above description, torque correction becomes Torque Correction = Motor Position FIR · (Last 3 motor encoder readings) + Correction Compensation FIR · (Last 8 valid correction values) + Integral Saturation FIR · [(Last 8 torque correction values) - (Last 8 valid correction values)] + Motor Position IIR, where Motor Position IIR = IIR_amplitude * Latest motor encoder reading + (1 - Motor Position IIR weight) * Motor Position IIR, where the weight can be between 1 / 6 and 1 / 20, such as 1 / 11. Naturally, an x-tap IIF filter with x>1 can be used alternatively. Furthermore, as mentioned above, the FIR filter components of the first filter can correspond to the coefficients of the first three FIR filter taps described herein, i.e., corresponding to aspects 7 to 9, but slight variations may occur to account for the IIR term. For example, ... It is the sum of IIR components or terms. Therefore, since the motor position FIR has three coefficients, the coefficients of the zero-order FIR filter taps, motor position FIR[2], will be calculated as motor position FIR[2] = -IIR amplitude / motor position IIR weight - motor position FIR[1] - motor position FIR[0], where the IIR amplitude is the amplitude of the IIR filter used to multiply with the most recent motor encoder signal sample value, and the motor position IIR weight is the weight used to weight the previous IIR filter output obtained for the previous motor encoder signal sample value before adding the corresponding product (weight multiplied by the previous IIR filter output) to the product of the amplitude and the current or most recent motor encoder signal sample value. A similar adaptation can be made to implement the first-order moment rule implemented by the coefficients of the single-tap delay FIR filter taps. To account for the additional effects of IIR, we weight the IIR coefficients with the time of the IIR coefficients (i.e., their index). Using the identity We can calculate the amount to be reduced by taking the terms when n=1 and n=infinity. Therefore, the new zero torque condition is:

[0141] It should be noted that the motor position FIR[2] can be calculated before calculating the motor position. . It can be set first, and then based on what is characterized. , and To calculate Then, based on what is characterized , , and To calculate . and It may need to be trained or heuristically determined to take over the task of the original FIR filter tail. Figure 4 It is shown that when a single-tap IIR filter component 48a2 of the first filter 48a is used in addition to the FIR filter component 48a1 with only 3 taps, the result is similar to... Figure 1 In contrast, the adder 402 combines the outputs of the IIR filter and the FIR filter. The IIR filter 48a2 receives the motor encoder signal 24 and feeds its output to another input, instead of the input fed by the FIR filter output signal. Internally, the IIR filter calculates its output motor position IIR according to the following formula: Motor position IIR = IIR_amplitude * Latest motor encoder reading + (1 - Motor position IIR weight) * Motor position IIR, where in the figure, the latest motor encoder reading is the currently input motor encoder signal sample value, the IIR_amplitude is represented by A, and the motor position IIR weight is represented by w.

[0142] According to aspect 10, except for any one of aspects 5 to 9, the coefficients of the first filter and the second filter can be machine-learned using a cost function that depends on at least one or more of the following: an index of uncompensated collision energy, an index of the duration before the correction force disappears, an index of the increase in current noise caused by the correction force, an index of sensitivity to changes in mechanical design parameters, an index of robustness to Coulomb friction, and an index of robustness to motor encoder nonlinearity. According to aspect 11, except for any one of aspects 4 to 10, the correction force solver 42 can be configured to combine the first correction force component signal, the second correction force component signal, and the anti-instability signal by summing the first correction force component signal, the second correction force component signal, and the anti-instability signal. According to aspect 12, except for any one of aspects 1 to 11, the force-to-current converter 40 can be configured to determine the current to be applied to the motor based on an effective set force using a polynomial function of a force variable that depends on the motor temperature and the effective set force. According to aspect 13, in addition to any one of aspects 1 to 12, the motor can be a rotary electric motor, the excess force caused by the impact can be the excess torque caused by the impact, the external control force 22 can be the external control torque, the correction force 30 can be the correction torque 30, the effective setting force 38 can be the effective setting torque, and the motor encoder signal can characterize the angle of the rotor position of the motor. According to aspect 14, a motor controller system for controlling a motor has been described, the motor controller system comprising: a motor controller 10 according to any one of aspects 1 to 13, the motor controller being used to control the motor in the event of compensation for the excess force caused by the impact according to the external control force 22; and a host controller configured to determine the external control force based on the expected movement of an object moved by the motor. According to aspect 15, a motorized system has been described, comprising: a motor 18; and a motor controller 10 according to any one of aspects 1 to 13, the motor controller being used to control the motor in compensating for excess force caused by impact, or a motor controller system according to aspect 14; and according to aspect 16, a robot has been described, comprising: a leg or arm capable of rotation via gears; a motor for moving the leg or arm via gears; and a motor controller according to any one of aspects 1 to 13, the motor controller being used to control the motor in compensating for excess force caused by impact acting on the gears, or a motor controller system according to aspect 14.

[0143] The above description is explained as follows. Given the near-ideal point symmetry of the I(M) curve, the even-degree terms of the polynomial are likely to have little effect. Therefore, the formula above... It can be modified to force point symmetry, so that the above formula will be modified to:

[0144] in

[0145] Although some aspects have been described in the context of the apparatus, it is clear that these aspects also represent descriptions of the corresponding methods, where blocks or devices correspond to method steps or features of method steps. Similarly, aspects described in the context of method steps also represent descriptions of corresponding blocks, items, or features of the corresponding apparatus.

[0146] In particular, the above description reveals the following and can be used for further clarification: A method for controlling a motor while compensating for excess force caused by an impact, the method comprising: The external control force 22 is corrected by using a correction force (30) in order to obtain a set force 34; The setting force 34 is restricted in order to obtain an effective setting force (38); The current 28 to be applied to the motor 18 is determined based on the effective set force 38; and The correction force 30 is determined based on the following: The motor encoder signal of motor 18. An effective correction force signal 50, which corresponds to a (e.g., linear) combination of two or more of the following: -External control force 22, -Correction force 30, -Setting force 34, and -Effective setting force 38 This effective correction force signal characterizes the force correction caused by the motor controller, and The integral saturation force signal 52 corresponds to (e.g., a linear) combination of the following: - Effective setting force 38 and one or more of the following: -External control force 22, - Correction force 30, and -Setting force 34, and A computer program that has program code that, when run on a computer, performs methods such as those just defined.

[0147] Depending on certain specific implementation requirements, embodiments of the present invention may be implemented in hardware or software. This implementation may be executed using a digital storage medium, such as a floppy disk, DVD, CD, ROM, PROM, EPROM, EEPROM, or flash memory, storing electronically readable control signals that cooperate (or are capable of cooperating with) a programmable computer system to execute the corresponding method.

[0148] Some embodiments of the invention include a data carrier having an electronically readable control signal that is capable of cooperating with a programmable computer system to perform one of the methods described herein.

[0149] Typically, embodiments of the present invention can be implemented as a computer program product having program code that, when run on a computer, is operable to perform one of the methods. The program code may, for example, be stored on a machine-readable medium.

[0150] Other embodiments include a computer program stored on a machine-readable medium for performing one of the methods described herein.

[0151] In other words, embodiments of the method of the present invention are therefore computer programs having program code that, when run on a computer, performs one of the methods described herein.

[0152] Therefore, another embodiment of the method of the present invention is a data carrier (or digital storage medium, or computer-readable medium) comprising a computer program recorded thereon for performing one of the methods described herein. The data carrier, digital storage medium, or recording medium is typically tangible and / or non-transitory.

[0153] Therefore, another embodiment of the method of the present invention represents a data stream or signal sequence for a computer program used to perform one of the methods described herein. For example, the data stream or signal sequence may be configured to be transmitted via a data communication connection (e.g., via the Internet).

[0154] Another embodiment includes a processing component, such as a computer or programmable logic device, configured or adapted to perform one of the methods described herein.

[0155] Another embodiment includes a computer having a computer program installed on it for performing one of the methods described herein.

[0156] Another embodiment of the invention includes an apparatus or system configured to transmit (e.g., electronically or optically) a computer program for performing one of the methods described herein to a receiver. The receiver may be, for example, a computer, a mobile device, or a memory device. The apparatus or system may include, for example, a file server for transmitting the computer program to the receiver.

[0157] In some embodiments, a programmable logic device (e.g., a field-programmable gate array) may be used to perform some or all of the functionality of the methods described herein. In some embodiments, the field-programmable gate array may cooperate with a microprocessor to perform one of the methods described herein. Generally, these methods are preferably performed by any hardware device.

[0158] The apparatus described herein may be implemented using hardware devices, a computer, or a combination of hardware devices and a computer.

[0159] The apparatus described herein, or any component thereof, may be implemented, at least in part, in hardware and / or software.

[0160] The methods described herein can be performed using a hardware device, a computer, or a combination of a hardware device and a computer.

[0161] The embodiments described above are merely illustrative of the principles of the invention. It should be understood that modifications and variations of the arrangements and details described herein will be readily apparent to those skilled in the art. Therefore, the invention is limited only by the scope of the appended claims and not by the specific details presented through the description and explanation of the embodiments herein.

[0162] References [1] Fabian Just, Kilian Baur, Verena Klamroth-Marganska, RobertReiner and Geog Router: Motor Inertia Compensation of the ARMinRehabilitation Robot, ETCH, Zurich, 2016.

Claims

1. A motor controller (10) for controlling a motor by means of compensating for excess force caused by an impact, the motor controller (10) comprising: A calibrator (32) is configured to calibrate an external control force (22) by using a calibrating force (30) to obtain a set force (34). Force limiter (36), the force limiter (36) is configured to limit the set force (34) in order to obtain an effective set force (38); A force-to-current converter (40) configured to determine the current (28) to be applied to the motor (18) based on the effective set force (38); and A corrective force solver (42) is configured to solve for the corrective force (30) based on the following: The motor encoder signal of the motor (18), An effective correction force signal (50), the effective correction force signal (50) corresponding to a combination of two or more of the following: -The external control force (22). -The corrective force (30). -The set force (34), and -The effective setting force (38). The effective correction force signal (50) characterizes the force correction caused by the motor controller, and The integral saturation force signal (52) corresponds to a combination of the following: -The effective setting force (38) is consistent with one or more of the following: -The external control force (22). -The corrective force (30), and -The set force (34).

2. The motor controller according to claim 1, wherein the motor controller is configured to: The effective correction force signal (50) is formed based on the difference between the external control force (22) and the effective setting force (38), and The integral saturation force signal (52) is formed based on the difference between the correction force (30) and the effective correction force signal (50).

3. The motor controller according to claim 1 or 2, wherein the correction force solver (42) is configured to solve the correction force (30) by substituting a template of the latest sampled value of the motor encoder signal (24), the integral saturation force signal (52) and the effective correction force signal (50) into a scalar function.

4. The motor controller according to any one of claims 1 to 3, wherein the correction force solver is configured to determine the correction force (τ) in such a way as... corr ): Determine separately: A first correction force component signal (54a) is determined based on the motor encoder signal (24), and the first correction force component signal (54a) represents acceleration; The second correction force component signal (54b) is determined based on the effective correction force signal (50); and The anti-instability signal (54c) is determined based on the integral saturation force signal (52); and The first correction force component signal (54a), the second correction force component signal (54b), and the anti-instability signal (54c) are combined to obtain the correction force (30).

5. The motor controller according to claim 4, wherein the motor controller is configured to: The first correction force component signal (54a) is determined based on the motor encoder signal (24) by using the first filter; The second correction force component signal (54b) is determined based on the effective correction force signal (50) using a second filter; and The instability prevention signal (54c) is determined by using a third filter based on the integral saturation force signal (52). The first filter, the second filter, and the third filter are FIR filters, and the first filter has a larger filter kernel size than the second filter and the third filter.

6. The motor controller according to claim 4 or 5, wherein the motor controller is configured to: The first correction force component signal (54a) is determined based on the motor encoder signal (24) using the first filter. The first filter is an FIR filter and is designed such that: 1) The coefficient (100) of the predetermined FIR filter tap of the first filter is equal to the negative of the sum of all coefficients of the first filter other than the predetermined FIR filter tap coefficient (100), such that the sum of all coefficients of the first filter is zero, or deviates sufficiently from the negative of the sum of all coefficients of the first filter other than the predetermined FIR filter tap coefficient (100), such that the absolute value of the sum of all coefficients of the first filter is less than 1% of the absolute value of the coefficient with the largest amplitude among the coefficients of the first filter, and 2) The first moment of the coefficients of the first filter with respect to the predetermined FIR filter tap is zero, or the absolute value of the first moment of the coefficients of the first filter with respect to the predetermined FIR filter tap is less than 10% of the absolute value of the largest amplitude coefficient among the coefficients of the first filter.

7. The motor controller according to claim 6, wherein The predetermined FIR filter tap is a zero-delay filter tap.

8. The motor controller according to claim 7, wherein The coefficients (106) of the single-tap delay FIR filter tap are set to be the negatives of the first moment of the coefficients of the first filter other than those of the single-tap delay FIR filter tap with respect to the predetermined FIR filter tap.

9. The motor controller according to claim 8, wherein The coefficients (108) of the dual-tap delay FIR filter tap and the coefficients (100) of the zero-delay FIR filter tap have the same sign and the opposite sign to the coefficients (106) of the single-tap delay FIR filter tap, wherein the absolute value of the sum of the coefficients (108) of the dual-tap delay FIR filter tap, the coefficients (100) of the zero-delay FIR filter tap, and the coefficients (106) of the single-tap delay FIR filter tap is less than 10% of the absolute value of the coefficient (106) of the single-tap delay FIR filter tap, and... The coefficients of the first filter, excluding the coefficients (108) of the double-tap delay FIR filter tap, the coefficients (106) of the single-tap delay FIR filter tap, and the coefficients of the zero-delay FIR filter tap, form a monotonic function. The monotonic function decreases monotonically as it moves away from the coefficients (108) of the double-tap delay FIR filter tap.

10. The motor controller according to any one of claims 5 to 9, wherein The coefficients of the first filter and the second filter are obtained by training using a cost function machine learning approach, wherein the cost function is constructed based on at least one or more of the following: The index of uncompensated collision energy. The index of the duration before the corrective force disappears. The index of the current noise increment caused by the correction force. An index for sensitivity to changes in mechanical design parameters. Indicators for robustness to Coulomb friction, and Indicators for robustness to the nonlinear characteristics of motor encoders.

11. The motor controller according to any one of claims 4 to 10, wherein The corrective force solver (42) is configured to synthesize the first corrective force component signal, the second corrective force component signal, and the anti-instability signal by adding the first corrective force component signal, the second corrective force component signal, and the anti-instability signal.

12. The motor controller according to any one of claims 1 to 11, wherein The force-to-current converter (40) is configured to determine the current to be applied to the motor based on the effective set force, using a polynomial function of force variables related to the motor temperature and the effective set force.

13. The motor controller according to any one of claims 1 to 12, wherein the motor is a rotary electric motor, the excess force caused by the impact is the excess torque caused by the impact, the external control force (22) is the external control torque, the correction force (30) is the correction torque (30), the effective setting force (38) is the effective setting torque, and the motor encoder signal characterizes the position angle of the rotor of the motor.

14. A motor controller system for controlling a motor, the motor controller system comprising: According to any one of claims 1 to 13, the motor controller (10) controls the motor by compensating for excess force caused by an impact based on an external control force (22), and A host controller is configured to solve for the external control force based on the expected motion of the object driven by the motor.

15. A motorization system, the motorization system comprising: Motor (18), and The motor controller (10) according to any one of claims 1 to 13, wherein the motor controller (10) controls the motor by compensating for excess force caused by impact, or the motor controller system according to claim 14.

16. A robot, said robot comprising: A leg or arm, wherein the leg or arm is rotatable via gears; A motor, the motor being used to drive the leg or the arm via the gear; and The motor controller according to any one of claims 1 to 13 is used to control the motor by compensating for excess force caused by impacts acting on the gear, or the motor controller system according to claim 14.