METHOD AND A MEDIUM FOR COGGING COMPENSATING A MOTOR DRIVING SIGNAL
20220288776 · 2022-09-15
Inventors
Cpc classification
B25J9/1633
PERFORMING OPERATIONS; TRANSPORTING
H02K29/03
ELECTRICITY
B25J9/1641
PERFORMING OPERATIONS; TRANSPORTING
G05B19/404
PHYSICS
B25J9/102
PERFORMING OPERATIONS; TRANSPORTING
B25J9/163
PERFORMING OPERATIONS; TRANSPORTING
B25J9/1653
PERFORMING OPERATIONS; TRANSPORTING
International classification
B25J9/10
PERFORMING OPERATIONS; TRANSPORTING
Abstract
Given a method for driving an electric motor in a direct drive environment, it is an objective of the present invention to smoothen the effect of cogging torque. The objective is solved by the method comprising calibration steps: a) control the motor to run at a first velocity in a first direction and, while miming the motor in the first direction, measure first current values for a plurality of motor positions, the first current values indicating currents required to run the motor at the first velocity at each of the plurality of motor positions; b) control the motor to run at a second velocity in a second direction and, while running the motor in the second direction, measure second current values for the same plurality of motor positions as determined in step a), the second current values indicating currents required to run the motor at the second velocity at each of the plurality of motor positions; c) for each motor position of the plurality of motor positions, calculate an average of the first and the second current measurements to generate averaged current measurements values for the plurality of motor positions; and d) store a map between the plurality of motor positions and corresponding averaged current measurements values; the method further comprising motor driving steps: e) receive a desired driving current; f) receive a signal indicating a motor position at a present time; g) use the map to determine a delta current for the motor position at the present time; h) add the delta current to the desired driving current to generate a compensated driving current; and i) drive the motor using the compensated driving current.
Claims
1. A method for cogging compensating a driving signal for an electric motor in a direct drive environment, the method comprising calibration steps: a) control the motor to run at a first velocity in a first direction and, while running the motor in the first direction, measure first current values for a plurality of motor positions, the first current values indicating currents required to run the motor at the first velocity at each of the plurality of motor positions; b) control the motor to run at a second velocity in a second direction and, while running the motor in the second direction, measure second current values for the same plurality of motor positions as determined in step a), the second current values indicating currents required to run the motor at the second velocity at each of the plurality of motor positions; c) for each motor position of the plurality of motor positions, calculate an average of the first and the second current measurements to generate averaged current measurements values for the plurality of motor positions; and d) store a map between the plurality of motor positions and corresponding averaged current measurements values; the method further comprising motor driving steps: e) receive a desired driving current; f) receive a signal indicating a motor position at a present time; g) use the map to determine a delta current for the motor position at the present time; h) add the delta current to the desired driving current to generate a compensated driving current; and i) drive the motor using the compensated driving current.
2. The method of claim 1, wherein the first velocity is identical to the second velocity and substantially constant; wherein in step a), the motor is run at least a full rotation; wherein in step b), the motor is run at least a full rotation; wherein the motor comprises at least one position sensor to derive the position of the motor.
3. The method of claim 1, wherein the direct drive environment includes a using of the electric motor to drive a robot joint and/or a robot wheel with a gear ratio below 1:8, below 1:4, below 1:2 or preferably a gear ratio of 1:1, while maintaining a smooth rotation velocity.
4. The method of claim 1, wherein a well-tuned position / velocity controller, preferably a PD controller is used in step a) and/or in step b) to run the motor at substantial constant velocity along a triangular reference trajectory.
5. The method of claim 1, wherein a speed of running the motor in the first direction and in the second direction is preferably based on motor momentum and cogging force, and / or preferably lower than 0.5 rad/s.
6. The method of claim 1, wherein the driving current translates into a torque of the motor.
7. The method of claim 1, wherein the method is used to compensate for cogging torques in the motor.
8. The method of claim 1, wherein step a) and/or step b) is preferably carried out for a plurality of full rotations of the motor, preferably for 7 radians in each direction.
9. The method of claim 1, wherein generate averaged current measurements values in step c) includes subsample and /or filter the averaged current measurements values.
10. The method of claim 1, wherein generate averaged current measurements values in step c) includes subsample averaged current measurements values to between 256 and 8192 sample points, preferably to 512 sample points.
11. The method of claim 1, wherein store a map in step d) preferably includes learn and/or create a look-up table, and wherein use the map to determine a delta current for the motor position at the present time in step g) includes looking up at least one value in the look-up table.
12. The method of claim 11, wherein use the map to determine a delta current for the motor position at the present time in step g) includes an interpolation, preferably spline interpolation, polynomial interpolation, or linear interpolation between two or more values in the look-up table.
13. The method of claim 1, wherein the first current values of step a) and second current values of step b) are preferably filtered, preferably using zero phase filter, before calculating an average in step c).
14. The method of claim 1, wherein the number of the first current values and the number of the first current values for each rotation is above 32768, preferably 524288.
15. The method of claim 1, wherein the electric motor is a synchronous motor, preferably a brushless motor.
16. A computer-readable medium comprising instructions which, when executed by a computer, cause the computer to carry out the steps of the method of claim 1.
Description
[0042] In the following, embodiments of the invention are described with respect to the figures, wherein
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
[0051] Cogging torque in an electric motor is an internal motor torque generated by the interaction between the permanent magnets of the rotor and the stator slots. Depending on the rotational position of the rotor, the distance between the magnets and the stator slots, and so the magnetic force and the corresponding torque varies. The Cogging torque is therefore varying with the rotational position of the rotor compared to the stator.
[0052] The cogging torque magnitude dependence on the rotational position of the rotor is dependent on several factors, including the number and strength of magnets and the number of stator slots.
[0053] Cogging torque in electric motors may be known, but in the field of humanoid robotics, cogging torque is generally not problematic due to the high rotation speed of the motor, and the high gear ratio of driving the robot, rendering the impact of the cogging torque on the movement of the robot negligible.
[0054] The present disclosure relates to a direct (or with low gear ratio) drive motor for driving humanoid robot joints or wheels. In such direct drive setting, the cogging torque may have an impact on the movement of the robot and result in jerky movements of joints of wheels. An example of a high torque, direct drive, humanoid robot motor is described in WO 2018/149499 A1.
[0055] The impact cogging torque could be addressed by using feedback signals from a rotor position sensor and a control loop to adjust for any jerky movements. Such control may have to operate at high sample rate and may need a complex implementation to take into consideration the current operation of the motor. Further, the motor is controlled by the current flowing through the motor, and alternating the current at high speed may lead to undesirable AC effects.
[0056] The control of the motor is further facilitated if the motor torque is linear (first order) with input current, and independent of motor position.
[0057] The present disclosure relates to a feed forward of cogging compensation current in order to achieve smooth operation humanoid robot joints or wheels driven with direct drive motor. The feed forward of cogging compensation may be in the form of a look-up table, where the amount of compensation current can be read based on a known rotor position.
[0058] A feed forward model may be generated by first spin the motor with a stiff velocity controller and an absolute encoder. The motor is controlled to travel through the entire range of motor orientations in both directions at the same speed. The measured currents in the both directions may then be are averaged. Based on the averaged current, a lookup table may be built and to used as a feedforward current term to compensate for cogging torque.
[0059] A position and/or velocity controller may be used to run the motor at a slow constant speed. This may be accomplished by using a PD Controller and by ensuring that the gains are tuned to provide as little noise in the sensed velocity and while at the same time making sure that the motor's static friction and cogging torques is overcome.
[0060]
[0061]
[0062] Traveling 7 radians (slightly more than a single rotation) may be important in order for the velocity and current loops to settle after the trajectory changed direction, before traveling in the target areas. Control gains can be unpractically high as long as the velocity signal is smooth.
[0063]
[0064] The motor is preferably run at low or with no external load. The DC value of the signal in
[0065]
[0066] The two filtered current signals in a first and a second direction may represent the cogging torques, viscous damping and coulomb frictions, along with other real-world imperfections. Assuming the viscous damping, coulomb friction, bearing friction and other known or unknowns imperfections are symmetric with respect to motor direction, averaging the two signals retains the currents required to overcome the cogging torque.
[0067] The averaged measured current signal can be subsampled, filtered, learned, or exported directly to a lookup table. Depending on the number of magnets and stator slots in the motor, a preferable subsample of the average measurement data may be 512 points for a lookup table.
[0068] Since temperature might have an impact on cogging torque, the look-up table may be generated for a plurality of motor, magnet, and/or stator temperatures to further improve the precision of the cogging compensation at different motor, magnet, and/or stator temperatures.
[0069] When the motor spins over a certain rotation speed, the controller may not be able to correctly compensate for cogging torque. A solution might be to decrease, or turn off, the cogging compensation, as the rotation speed of the motor increases. The cogging torque may primarily be an issue at low rotation speeds.
[0070]
[0071] The steps may further include e) receive 810 a desired driving current; f) receive 812 a signal indicating a motor position at a present time; g) use 814 the map to determine a delta current for the motor position at the present time; h) add 816 the delta current to the desired driving current to generate a compensated driving current; and i) drive 818 the motor using the compensated driving current.
[0072] The above described method allows to take an input current for driving the motor (corresponding to a desired motor torque), and a known rotor position of the motor at a present time, and instantaneously adjust for the cogging torque at each point generating a smooth movement of the robot limbs and/or wheels. The torque to input current ratio is substantially independent of rotor position.
[0073] Due to slight difference in each motor, a cogging compensation table as described herein may be generated for each motor as a step during manufacturing. The cogging compensation may also be performed at certain intervals to address aging of the motor, or in response to certain performance degrades or failure in the motor (i.e. jerky movements of limbs or wheels).