The present invention relates to a method of determining a failure of a motor-driven robot, particularly of an articulated robot.
In recent years, the need has been increasing for reducing production lead time. However, in an articulated (vertical or horizontal) robot used for welding or handling, the production needs to be stopped for several hours to replace a faulty mechanism element such as a motor and speed reducer for driving the robot, becoming a major problem.
When an element such as a motor and speed reducer becomes faulty, the frictional force rises to increase the motor drive force in most cases. Under the circumstances, if an unusual condition of the motor drive force can be recognized before the robot becomes completely inoperable, a mechanism element such as a motor can be replaced while the production line is nonoperating (e.g. on a day off, in the nighttime), thus reducing the effects on the production.
Thus, a method is known of detecting a failure of a robot focusing attention on fluctuation of a velocity waveform of a motor caused by a failure (refer to patent literature 1 for example). Another method is known of detecting a failure of a robot focusing attention on the difference between a power at the drive side (motor output power) and a power at the load side (a power obtained by a motion equation of a robot (refer to patent literature 2 for example).
The former method of determining a failure from fluctuation of a velocity waveform has the following problems. The first one is that velocity waveform data in a normal state as reference data needs to be measured and stored for each robot. The second one is that a robot needs to be operated with a reference operation pattern to determine a failure. Accordingly, failure determination naturally cannot be performed while the production line is operating because velocity waveform data of a motor while the production line is operating is different from that for failure determination. Meanwhile, even if the production line can afford time to perform failure determination (e.g. nonoperating production line), a robot needs to be operated with a reference operation pattern only for failure determination, which results in a cost for worker-hours for failure measurement. In a production field where the production line operates for a long time and severely in cutting cost, it is practically difficult to perform the above two points only for determining a failure of a robot.
In the latter method of determining a failure from the difference in power, the former problem is solved; reference data does not need to be measured or stored; and determination is possible while the production line is operating. However, a power at the load side cannot be necessarily calculated accurately although a power at the drive side can be. This is because calculation of a power by a motion equation of a robot produces an error unless parameters (e.g. mass, barycenter position, inertia) of a load (e.g. welding torch, handling tool, workpiece) are accurate. In patent literature 2, a load torque value is calculated from a motion equation, angle, angular velocity, and angular acceleration for a mass point model of the mechanism element including an attached load, and then the load torque value is multiplied by the angular velocity to determine a power at the load side.
For an industrial robot of recent years, accurate load parameters are requested for optimizing acceleration and deceleration and for a higher degree of precision in collision detection. Accordingly, a lot of robots are found equipped with a device for inputting load parameters or a function of automatically measuring load parameters. However, whether load parameters are input or an automatic measurement function is used depends on a user, and accurate load parameters are not necessarily input. A large difference between a set parameter and its actual parameter for a load results in a large error in a power at the load side, which can cause erroneous decision as a failure.
A power at the drive side increases not only because a friction increase due to a failure of a motor or speed reducer driving the robot increases the motor drive force. That is also because the motor drive force increases or decreases responding to an external force in a case such as where the robot contacts another object and a tensile force is exerted on a cable attached to the robot. However, in the former case where friction increases, the motor drive force increases as well to compensate the increased friction energy. Meanwhile, in the latter case where an external force is exerted, a power at the drive side does not necessarily increase. For example, a tensile force increase of the cable bears the gravitational force of the robot to possibly decrease a power at the drive side. Even in such a case, the difference between a power at the drive side and that at the load side increases, which can cause erroneous decision as a failure even if caused by other than a mechanism failure.
In
At this moment, a user often places, for example, jig 112 for hanging torch cable 111 from above for ensuring the feeding performance by maintaining the shape of welding wire 101, and for avoiding interference with surrounding objects. Here, torch cable 111 moves according to operation of robot 109. Consequently, jig 112 is usually made of an elastic body such as a spring and rubber. Accordingly, a force pulling upward is exerted on welding torch 104 and robot 109 holding it as well through torch cable 111 to bear the gravitational force of robot 109. Particularly, the tip of a robot to which welding torch 104 is attached is loaded with a motor with a small capacity, and thus such a change in tensile force of torch cable 111 is nonnegligible. Such jig 112 is selected, mounted, and exchanged by a user. Hence, using, mounting, or exchanging jig 112 can cause erroneous decision as a failure.
The present invention provides a method of determining a failure of a robot in which reference data does not need to be measured or stored; determination is possible while the production line is operating; and the possibility of erroneous decision as a failure is reduced even if accurate load parameters are not input or an external force is exerted.
The present invention includes a step of determining while a robot is operating whether or not a motor output torque average value (i.e. an average value of N (N is a positive integer) pieces of motor output torque values exceeds a first failure determination reference value (a value produced by adding a first given value to a motor output torque average reference value obtained from given N pieces of motor output torque average values); a step of determining while a robot is operating whether or not an external force torque estimated average value (i.e. an average value of N pieces of external force torque estimated values) exceeds a second failure determination reference value (a value produced by adding a second given value to an external force torque average reference value obtained from given N pieces of external force torque estimated average values); and a step of determining as a failure if the motor output torque average value exceeds the first failure determination reference value, and the external force torque estimated average value exceeds the second failure determination reference value.
Such configuration does not require measuring or storing reference data and allows determining a failure while the production line is operating. Further, the possibility of erroneous decision as a failure is reduced even if accurate load parameters are not input or an external force is exerted.
Hereinafter, a description is made of the present invention using the related drawings. However, the present invention is not limited to this description.
Here, the method of determining a failure of a robot described in the embodiment is applicable to a welding system similarly to a conventional one shown in
In
Hereinafter, a detailed description is made of operation in the block diagram of
Velocity control unit 10 generates motor current instruction Im on the basis of a value of difference between velocity instruction ωcom and motor angular velocity ωm fed back.
Motor/external force torque unit 18 includes welding torch 104 and a motor rotating welding torch 104. At motor/external force torque unit 18, motor output torque value τm generated by the motor, external force torque value τdis exerted on welding torch 104, and moving friction torque value τμ occur. Motor/external force torque unit 18 outputs motor angular velocity ωm for controlling motor velocity on the basis of these torque values and feeds back motor angular velocity ωm to position control unit 6 and velocity control unit 10. Motor/external force torque unit 18 is a load driven by the control system and indicates how actual angular velocity ωm changes by motor output torque value τm generated from motor current instruction Im.
External force torque estimating unit 30 estimates external force torque value τdis sensorlessly, namely outputs external force torque estimated value τdiso (i.e. an estimated value of external force torque value τdis).
Meanwhile, as a method of estimating an external force torque value sensorlessly, dynamics operation method and disturbance estimation observer method are known. Dynamics operation method determines an external force torque value by subtracting a dynamics torque value of a robot determined by inverse dynamics operation for the robot, from a speed reducer output torque value (a value produced by subtracting a torque value lost due to inertia and friction of the motor and speed reducer, from a torque value generated from a drive current of the motor) (refer to nonpatent literature 1). Disturbance estimation observer method determines a collision force using a disturbance estimation observer. In this embodiment, a description is made of a case where the former dynamics operation method is used as an example.
In
τm=Kt×Im (expression 1-1)
τm=τdyn+τdis+Jm×αm+D×ωm+τμ (expression 1-2)
Kt: motor torque constant
Im: motor current
ωm: motor angular velocity
αm: motor angular acceleration (a derivative of motor angular velocity ωm)
Jm: motor inertia (rotor+primary side of speed reducer)
D: viscous friction coefficient
τμ: dynamic friction torque value
τdyn: dynamics torque value (the sum of gravitational force torque value, inertial force, centrifugal force, and Coriolis force)
τdis: external force torque value
Dynamic friction torque value τμ can be calculated by expression 2 shown below.
τμ=Kμ×sgn (expression 2)
Kμ: strength of dynamic friction
sgn=1 (ωm>0), 0 (ωm=0), −1 (ωm<0)
External force torque value τdis at the right-hand side of expression 1-2 can be determined by expression 3 deformed from expression 1-1 and expression 1-2.
τdis=Kt×Im−(Jm×αm+D×ωm+Kμ×sgn+τdyn) (expression 3)
In expression 3, (Kt×Im−Jm×αm−D×ωm−Kμ×sgn) is a torque value that the motor outputs to the speed reducer.
In
In external force torque estimating unit 30, dynamics torque estimated value τdyno is determined by dynamics torque operating unit 26 executing inverse dynamics operation using feedback of motor angular velocities ωm for all the axes composing the robot and using machine parameters of the robot. Motor output torque estimated value τmo is calculated by expression 1-1 using motor current instruction Im. External force torque estimating unit 30 uses dynamics torque estimated value τdyno and motor output torque estimated value τmo to determine external force torque estimated value τdiso from expression 3, resulting in external force torque estimated value τdiso and motor output torque estimated value τmo to be output to failure determination device 32.
Unit-time averaging unit 35 calculates motor output torque average value τmA and external force torque average value τdA, which are unit-time average values of the absolute values of motor output torque estimated value τmo and external force torque estimated value τdiso, output from external force torque estimating unit 30, respectively.
This calculation method is shown in the flowchart of
In
In step S302, calculation is made of integrated value τmS of absolute values |τmo| of motor output torque estimated values, and integrated value τdS of absolute values |τdiso| of external force torque estimated values, and accumulated number of times i.
After that, in step S303, determination is made whether accumulated number of times i has reached average number of times num preliminarily determined. In step S303, if accumulated number of times i has reached average number of times num (Y in step S303), the process proceeds to step S304; otherwise (N in step S303), the process is terminated.
In step S304, integrated values τmS, τdS are divided by average number of times num to calculate motor output torque average value τmA and external force torque average value τdA, which are unit-time average values of robot operation, respectively.
For example, if the unit time of robot operation is set to 1 hour, and if motor output torque estimated value τmo and external force torque estimated value τdiso have been calculated every 10 milliseconds, then the average number of times num=360,000 times.
Next, motor output torque average value τmA and external force torque average value τdA, which are unit-time average values (e.g. average values for 1 hour), are accumulated in data accumulating unit 36. Motor output torque average value τmA of jth unit time (e.g. jth hour if the unit time is 1 hour) is defined as τmA[j]. If the present time is xth unit time and the accumulated quantity until xth time is N pieces (N is a positive integer), data from motor output torque value τmA[x−N+1] to τmA[x] are accumulated.
For example, if the present time is 1000th unit time (x=1000) and the data accumulated quantity is 48 pieces (N=48), data from motor output torque value τmA[953] to τmA[1000] are being accumulated. If the unit time is 1 hour, data for 48-hour robot operation time are to be accumulated. This situation is similar to external force torque average value τdA[j].
Moving averaging unit 37 determines present moving averages τmAA[x] and τdAA[x] of N pieces of data accumulated in data accumulating unit 36 for a motor output torque average value of xth unit time and an external force torque average value of xth time by expression 4-1 and expression 4-2, respectively.
Failure determination reference value setting unit 38 determines whether data from τmA[x−NN+1] (NN is a positive integer) to τmA[x] (τmA is an average value of motor output torque value in a unit time) fall within a certain range of variation, with moving average value τmAA[x] of N pieces of unit times as a reference, on the basis of the flowchart of
Hereinafter, the flowchart of
In step S402, determination is made whether the absolute value of the difference between average value τmA[x−k] of motor output torque values and moving average value τmAA[x] is smaller than threshold τmth1 for determining variation in unit-time average. If the absolute value of the difference between average value τmA[x−k] of motor output torque values and moving average value τmAA[x] is smaller than threshold τmth1 (Y in step S402), the process shifts to step S403; otherwise (N in step S402), the process is terminated. Here, threshold τmth1 can be preliminarily determined experimentally for example. In this embodiment shown in
In step S403, 1 is added to operation step count k. In step S404, determination is made whether operation step count k has reached NN times (variation determination quantity). In step S403, if operation step count k has reached NN times (Y in step S403), determination is made as the control system is stable, and the process shifts to step S405. If operation step count k has not reached NN times (N in step S403), determination is made as the control system is still unstable, and the process returns to step S402.
In step S405, motor output torque failure determination reference value τmh is calculated on the basis of moving average value τmAA[x] when NN pieces of motor output torque average values τmA[x] are within a certain variation range. Further, external force torque failure determination reference value τdth at this moment is calculated; 1 is set to failure determination reference value set flag fth; and the process is terminated. Here, motor output torque failure determination reference value τmh is produced by adding added value τmth2 (first given value) for setting a motor output torque failure reference value to moving average value τmAA[x]. External force torque failure determination reference value τdth at this moment is produced by adding added value τdth2 (second given value) for setting an external force torque failure determination reference value to moving average value τdAA[x]. Here, added value τmth2 (for setting a motor output torque failure reference value) and added value τdth2 (for setting an external force torque failure determination reference value) can be preliminarily determined experimentally for example. In this embodiment shown in
Waveforms for describing the process so far are shown in
As proved from
In other words, if all the N pieces of continuous motor output torque average values τmA range within ±τmth1, it means the reference value of a motor output torque average value has been obtained.
As described above, motor output torque failure determination reference value τmth and external force torque failure determination reference value τdth are calculated at the time when variation of average value τmA of motor output torque values is reduced at the condition judgement in step S402 of
Failure determining unit 40 in
In step S802, judgement is made whether moving average value τmAA of motor output torque values is larger than motor output torque failure determination reference value τmth. In step S802, if moving average value τmAA[x] of motor output torque values is larger than motor output torque failure determination reference value τmth (Y in step S802), the process proceeds to step S803; otherwise (N in step S802), the process is terminated.
In step S803, judgement is made whether moving average value τdAA of external force torque values is larger than external force torque failure determination reference value τdth. In step S803, if moving average value τdAA[x] of external force torque values is larger than external force torque failure determination reference value τdth (Y in step S803), the process proceeds to step S804; otherwise (N in step S803), to step S805.
In step S804, 1 is set to failure determination flag fL and the process is terminated. In step S805, 0 is set to failure determination reference value set flag fth and the process (the flowchart of
Waveform charts for illustrating the process of
In
In step S802 and step S803, why determination is made by both increases of moving average value τmAA of motor output torque values and moving average value τdAA of external force torque value is as follows. That is, in some cases, while moving average value τdAA of external force torque values increases, moving average value τmAA of motor output torque values decreases. The reason is to avoid erroneous decision in such a case. An example where an increase of tensile force of a cable bears the gravitational force of a robot falls under such a case.
Further, while moving average value τmAA of motor output torque values increases, moving average value τdAA of external force torque values does not sometimes increase. To avoid erroneous decision in such a case, judgement is made by both increases of moving average value τmAA of motor output torque values and moving average value τdAA of external force torque value in step S802 and step S803. For example, when process details of a robot change and the robot program is rewritten by a user, motor output torque average value τmAA can increase. However, external force torque average value τdAA does not increase when parameters of an attached load have been input correctly because an external force does not especially increase.
Meanwhile, the present invention enables the probability of erroneous decision about failure determination to be decreased even if parameters of an attached load have not been input correctly.
External force estimated torque value τdiso calculated by expression 3 does not become 0 because even if actual external force torque value τdis is 0, calculation of dynamics torque value τdyn produces an error if parameters of an attached load contain an error. Assuming that a dynamics torque value containing an error is τdyn_err, and this estimated error is Δτdis, expression 5 holds.
Δτdis=Kt×Im−(Jm×α+D×ωm+Kμ×sgn+τdyn_err) (expression 5)
If the friction torque value increases by Δτμ due to an actual failure with this dynamics torque operation containing an error, external force torque estimated value τdiso is calculated by expression 6.
In expression 6, if |Δτμ|>|Δτdis|, that is to say, when an error is contained in dynamics torque operation, if an increase of a friction torque value due to a failure exceeds the estimated error caused by the error contained in the dynamics torque operation, the absolute value of external force torque estimated value τdiso can be expressed by expression 7-1 and expression 7-2 regardless of the sign of Δτdis.
|τdiso[+]|=Δτdis+Δτμ (expression 7-1)
|τdiso[−]|=−Δτdis+Δτμ (expression 7-2)
|τdiso[+]|: the absolute value of an external force torque estimated value while a motor is rotating in the forward direction
|τdiso[−]|: the absolute value of an external force torque estimated value while a motor is rotating in the reverse direction
Here, assuming that the unit-time averages of Δτdis and Δτμ are ΔτdA and ΔτμA, respectively, unit-time average τdA of absolute values of external force torque estimated values τdiso can be expressed by expression 8-1 and expression 8-2.
τdA[+]=ΔτdA+ΔτμA (expression 8-1)
τdA[−]=−ΔτdA+ΔτμA (expression 8-2)
τdA[+]: the unit-time average of absolute values of external force torque estimated values while a motor is rotating in the forward direction
τdA[−]: the unit-time average of absolute values of external force torque estimated values while a motor is rotating in the reverse direction
Here, the operation angle of an industrial robot is finite, at the most approximately ±360 degrees, and thus a motor driving the robot does not continue rotating in only one direction. The difference between a rotation angle in the forward direction and that in the reverse direction is 720 degrees at a maximum. For example, the total rotation angle exceeds several tens of thousands of degrees in most cases if the unit time for failure determination is 1 hour, and thus the rotation angle in the forward direction may be considered nearly the same as that in the reverse direction.
Hence, unit-time average τdA of external force torque estimated values can be calculated by averaging τdA[+] and τdA[−] and thus expressed by expression 9.
Expression 9 proves that friction torque value increase ΔτμA caused by a failure can be correctly determined even if accurate load parameters are not input and dynamics torque operation contains an error, if friction torque value increase ΔτμA caused by a failure exceeds estimated error ΔτdA caused by the error.
That is to say, when accurate load parameters are not input, a case where the condition in step S803 in the flowchart of
In this embodiment, the description is made of a case where a motor output torque value is prioritized. However, failure determination can be made with an external force torque value prioritized by changing the order of failure determination for a motor output torque value and an external force torque value.
Specifically, determination is first made while a robot is operating whether external force torque estimated average value τdAA (an average value of N pieces of external force torque estimated values τdA) exceeds second failure determination reference value τdth (a value produced by adding second given value τdth2 to external force torque estimated average reference value τdAA obtained from given N pieces of external force torque estimated average values τdA). Next, determination is made while a robot is operating whether motor output torque average value τmAA (an average value of N pieces of motor output torque values τmA) exceeds first failure determination reference value τmth (a value produced by adding first given value τmth2 to motor output torque average reference value τmAA obtained from given N pieces of motor output torque average values τmA). Consequently, determination is made as a failure if external force torque estimated average value τdAA exceeds second failure determination reference value τdth2 and motor output torque average value τmAA exceeds first failure determination reference value τmth.
In this case, external force torque estimated average value τdAA when the difference between N pieces of external force torque estimated values τdA and external force torque estimated average value τdAA is smaller than given value τmth1 preliminarily determined is set as reference value τdAA of the external force torque estimated average value, and motor output torque average value τmAA at this moment is set as reference value τmAA of the motor output torque average value.
Failure judgement process may be performed by another way. That is, when an external force torque estimated moving average value exceeds a failure determination reference value, but a motor output torque moving average value does not exceed a failure determination reference value, the process (the flowchart of
In this embodiment, the example is shown where added value τmth2 for setting a motor output torque failure determination value to N pieces of moving average values τmAA of absolute values of motor output torque values, to calculate a motor output torque failure determination value, and then determination is made whether N pieces of moving average values τmAA of absolute values of subsequent motor output torque values exceed the motor output torque failure determination value to determine a failure. However, determination may be made whether the difference between a motor output torque moving average value and the motor output torque moving average reference value exceed a given value to determine a failure. Here, the given value can be preliminarily determined experimentally for example.
In this embodiment, the example is shown where added value τdth2 for setting an external force torque failure determination value to N pieces of moving average values τdAA of absolute values of external force torque values to calculate an external force torque failure determination value, and then determination is made whether N pieces of moving average values τdAA of absolute values of subsequent external force torque values exceed the external force torque failure determination value to determine a failure. However, determination may be made whether the difference between an external force torque moving average value and the external force torque moving average reference value exceeds a given value to determine a failure. Here, the given value can be preliminarily determined experimentally for example.
Further, in this embodiment, calculation is first made of another average value τmA of motor output torque values τmo within a unit time, and then motor output torque average value (moving average value) τmAA is determined from other N pieces of average values τmA. However, motor output torque average value (moving average value) τmAA can be determined from motor output torque value τmo without requiring to determine the above-described another average value τmA. This fact applies to a case of determining external force torque estimated average value τdAA as well.
In this embodiment, failure judgement is made for one arbitrary motor. However, for an articulated robot equipped with plural motors, failure judgement is made for all the motors or a specific motor in the same way as in this embodiment.
A robot of this embodiment includes a servomotor for example, and failure determination is made for this servomotor.
The present invention does not need to measure or store reference data; is able to determine while the production line is operating; and reduces the probability of erroneous decision when accurate load parameter are not input or an external force is exerted, and thus is useful as a method of determining a failure of a robot in operation.
Number | Date | Country | Kind |
---|---|---|---|
2008-132783 | May 2008 | JP | national |
Filing Document | Filing Date | Country | Kind | 371c Date |
---|---|---|---|---|
PCT/JP2009/002215 | 5/20/2009 | WO | 00 | 3/10/2010 |