LOCUS GENERATION APPARATUS, CONTROL METHOD FOR LOCUS GENERATION APPARATUS, CONTROL PROGRAM, AND STORAGE MEDIUM
20180095451 ยท 2018-04-05
Assignee
Inventors
Cpc classification
G05B19/4141
PHYSICS
G05B19/416
PHYSICS
G05B2219/43045
PHYSICS
G05B19/371
PHYSICS
International classification
Abstract
An apparatus includes an input reception unit for receiving a designated driving time, and a locus unit that generates a torque locus with a maximum value at its minimum by adjusting a switching timing and a maximum value under the conditions that the torque locus is a rectangular wave, the absolute values of the maximum value and the minimum value of torque are equal, and switching between the maximum value and the minimum value of the torque occurs once.
Claims
1. A locus generation apparatus for generating an input locus to be used in control of an apparatus, comprising: an input reception unit configured to receive a designated driving time, which is an amount of time until a control target moves to a predetermined position from an initial position; a torque locus generation unit configured to generate a torque locus corresponding to the designated driving time, the torque locus having a maximum value that is at its minimum, by adjusting a switching timing and the maximum value, under the conditions that: the torque locus is a rectangular wave, absolute values of the maximum value and a minimum value of torque are equal, and switching between the maximum value and the minimum value of the torque occurs once; and an input locus unit configured to generate the input locus from the torque locus.
2. The locus generation apparatus according to claim 1, wherein based on the torque locus, the input locus generation unit generates at least one of a velocity locus indicating a relationship between time and velocity of the control target and a position locus indicating a relationship between time and position of the control target as the input locus.
3. The locus generation apparatus according to claim 2, wherein the input locus generation unit uses a high-order characteristic model as a characteristic model of the control target to generate at least one of the velocity locus and the position locus as the input locus.
4. The locus generation apparatus according to claim 2, wherein as the input locus, the input locus generation unit generates a locus resulting from performing correction using a moving average on at least one of the velocity locus and the position locus generated based on the torque locus.
5. The locus generation apparatus according to claim 4, wherein the input locus generation unit generates the input locus by deriving at least one of a calculated velocity locus and a calculated position locus corresponding to a calculation driving time obtained by subtracting a shortened time from the designated driving time in at least one of the velocity locus and the position locus, and calculating a moving average of a locus obtained by adding a locus for the shortened time to at least one of the calculated velocity locus and the calculated position locus.
6. The locus generation apparatus according to claim 4, wherein the input locus generation unit derives at least one of a calculated velocity locus and a calculated position locus corresponding to a calculation driving time obtained by subtracting a shortened time from the designated driving time in at least one of the velocity locus and the position locus, obtains a moving average based on a moving average calculation locus obtained by adding a locus for the shortened time to the front and rear of at least one of the calculated velocity locus and the calculated position locus, and subtracts the shortened time from the result of obtaining the moving average to obtain a locus, which is generated as the input locus.
7. The locus generation apparatus according to claim 1, wherein the torque locus generation unit calculates the switching timing and the torque values according to which the maximum value of the torque reaches its minimum through a numerical value analysis method, and generates the torque locus.
8. A control method for a locus generation apparatus for generating an input locus to be used in control of an apparatus, comprising: receiving a designated driving time, which is an amount of time until a control target moves from an initial position to a predetermined position; generating a torque locus corresponding to the designated driving time, the torque locus having a maximum value that is at its minimum, by adjusting a switching timing and the maximum value, under the conditions that: the torque locus is a rectangular wave, absolute values of the maximum value and a minimum value of torque are equal, and switching between the maximum value and the minimum value of the torque occurs once; and generating the input locus from the torque locus.
9. A computer-readable storage medium storing a control program for causing a computer to function as the locus generation apparatus according to claim 1, and for causing a computer to function as the torque locus generation unit and the input locus generation unit.
10. The locus generation apparatus according to claim 3, wherein as the input locus, the input locus generation unit generates a locus resulting from performing correction using a moving average on at least one of the velocity locus and the position locus generated based on the torque locus.
11. The locus generation apparatus according to claim 2, wherein the torque locus generation unit calculates the switching timing and the torque values according to which the maximum value of the torque reaches its minimum through a numerical value analysis method, and generates the torque locus.
12. The locus generation apparatus according to claim 3, wherein the torque locus generation unit calculates the switching timing and the torque values according to which the maximum value of the torque reaches its minimum through a numerical value analysis method, and generates the torque locus.
13. The locus generation apparatus according to claim 4, wherein the torque locus generation unit calculates the switching timing and the torque values according to which the maximum value of the torque reaches its minimum through a numerical value analysis method, and generates the torque locus.
14. The locus generation apparatus according to claim 5, wherein the torque locus generation unit calculates the switching timing and the torque values according to which the maximum value of the torque reaches its minimum through a numerical value analysis method, and generates the torque locus.
15. The locus generation apparatus according to claim 6, wherein the torque locus generation unit calculates the switching timing and the torque values according to which the maximum value of the torque reaches its minimum through a numerical value analysis method, and generates the torque locus.
16. The locus generation apparatus according to claim 11, wherein the torque locus generation unit calculates the switching timing and the torque values according to which the maximum value of the torque reaches its minimum through a numerical value analysis method, and generates the torque locus.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0034]
[0035]
[0036]
[0037]
[0038]
[0039]
[0040]
[0041]
[0042]
[0043]
[0044]
[0045]
[0046]
[0047]
[0048]
[0049]
[0050]
DETAILED DESCRIPTION
Embodiment 1
[0051] Hereinafter, embodiments will be described in detail. With a control system according to Embodiment 1, in a control apparatus (corresponds to control apparatus 1 in
[0052] Also, in the input locus generated by the control apparatus, the peak value of the torque can be suppressed. Furthermore, by suppressing the peak value of the torque, if the same driving apparatus as the driving apparatus in which the peak value in the conventional configuration is dealt with is used, the conveying weight can be made larger compared to the conventional technique. Similarly, if a driving apparatus that is the same as the conventional driving apparatus is used, it is possible to shorten the conveying time.
[0053] The input locus generated by the control apparatus may be a torque locus, a velocity locus, or a position locus. A torque locus is a locus indicating a relationship between a provided torque value and time. Also, a velocity locus is a locus indicating a relationship between the velocity of the control target and time. Also, a position locus is a locus indicating a relationship between the position of the control target and time.
[0054] Note that in Embodiment 1, although description will be given taking, as an example, a servo driver as an input destination of the input locus generated by the control apparatus, the input destination of the input locus generated by the control apparatus is not limited to being a servo driver. The input destination of the input locus may be any apparatus that performs control using a locus. For example, it may be a temperature adjustment apparatus or the like.
Overview of Control System
[0055] First, an overview of the control system will be described with reference to
[0056] As shown in
[0057] The control apparatus 1 sets the command value for controlling a control target such as a machine or equipment, and includes a CPU unit 13 (
[0058] The storage means is used to store control programs and system programs for controlling the execution of the control programs and the input and output of input data and output data. The microprocessor executes system programs and control programs stored in the storage means.
[0059] The communication circuit transmits the output data and receives the input data. As communication circuits, the control apparatus 1 includes a first communication circuit that performs transmission of the output data and reception of the input data through a control apparatus system bus, and a second communication circuit that performs transmission of output data and reception of input data through a field network 2 (
[0060] More detailed description will be given with reference to
[0061] The control apparatus 1 includes a CPU unit 13 that executes main calculation processing, one or more IO units 14, and a special unit 15. These units are configured to be able to exchange data with each other via a PLC system bus 11. Also, a power source with a suitable voltage is supplied to the units by a power source unit 12. Note that since the units constituting the control apparatus 1 are provided by a control apparatus manufacturer, in general, the PLC system bus 11 is developed and used uniquely by the control apparatus manufacturer. In contrast to this, with the field network 2, the standard and the like are often publicly available so that products of different manufacturers can be connected.
[0062] The IO unit 14 is a unit relating to general input and output processing, and controls input and output of binarized data indicating an on state and an off state. That is, the IO unit 14 collects information about being in a state in which a sensor such as the sensor 6 has detected some target object (on) or a state in which a sensor such as the sensor 6 has not detected any target obect (off). Also, the IO unit 14 outputs one of a command (on) for activation and a command (off) for deactivation to an output destination such as a relay 7 or an actuator.
[0063] The special unit 15 has a function that is not supported by the IO unit 14, such as the input and output of analog data, temperature control, and communication by means of a specific communication scheme.
[0064] The field network 2 transmits various types of data to be exchanged with the CPU unit 13. Typically, various types of industrial Ethernet (registered trademark) can be used as the field network 2. As the industrial Ethernet, for example, EtherCAT (registered trademark), Profinet IRT, MECHATROLINK (registered trademark)-III, Powerlink, SERCOS (registered trademark)-III, CIP Motion and the like are known, and any of these may be employed. Furthermore, a field network other than industrial Ethernet may be used. For example, if motion control is not performed, DeviceNet, CompoNet/IP (registered trademark), and the like may be performed. With the control system according to Embodiment 1, a configuration in the case in which EtherCAT, which is industrial Ethernet, is typically employed as the field network 2 will be described as an example.
[0065] Note that the control apparatus 1 may have a configuration in which the CPU unit 13 is provided with the function of the IO unit 14 and the function of the servo driver 3, and thereby the CPU unit 13 controls a direct control target without the intervention of the IO unit 14, the servo driver 3, or the like, in a range that can be provided by this kind of built-in function.
[0066] The servo driver 3 is connected to the CPU unit 13 via the field network 2 and the servo motor 4 is driven in accordance with the command value from the CPU unit 13. More specifically, the servo driver 3 receives command values (input loci) such as a position command value, a velocity command value, and a torque command value with a constant period from the control apparatus 1. Also, the servo driver 3 acquires an actually-measured value relating to the operation of the servo motor 4, such as the position, velocity (typically calculated based on a difference between the current position and the prior position), and torque, from a detector such as a position sensor (rotary encoder) or a torque sensor connected to the axis of the servo motor 4. Also, the servo driver 3 sets the command value from the CPU unit 13 to a target value and performs feedback control using an actually-measured value as a feedback value. In other words, the servo motor 3 adjusts the current for driving the servo motor 4 such that the actually-measured value approaches the target value. Note that the servo driver 3 is also called a servo motor amplifier in some cases.
[0067] Note that
[0068] A remote IO terminal is furthermore connected to the field network 2 of the control apparatus system shown in
Hardware Configuration of Support Apparatus 8
[0069] Next, a support apparatus 8 for creating a program to be executed by the control apparatus 1, performing maintenance of the control apparatus 1, and the like will be described.
[0070] As shown in
[0071] The support apparatus 8 further includes a keyboard 85 and a mouse 86 that receive instructions from a user and a monitor 87 for presenting information to the user. Furthermore, the support apparatus 8 includes a communication interface (IF) 89 for communicating with a control apparatus 1 (CPU unit 13).
[0072] Various programs to be executed by the support apparatus 8 are distributed by being stored on a CD-ROM 9. The programs stored on the CD-ROM 9 are read by a CD-ROM (Compact Disk Read Only Memory) driver 88 and stored in a hard disk (HDD) 84 and the like. Alternatively, it is possible to use a configuration in which the programs are downloaded through a network from an upper-level host computer or the like.
[0073] Note that in Embodiment 1, the control apparatus 1 and the support apparatus 8 are described as separate apparatuses, but they may be constituted by the control apparatus 1 as one apparatus, and in this case, the hardware configuration of the support apparatus 8 is the hardware configuration of the control apparatus 1 as-is.
[0074] Details of Control Apparatus 1
[0075] Next, details of the control apparatus 1 will be described with reference to
[0076] As shown in
[0077] The input reception unit 100 receives an instruction from a user via the support apparatus 8 and notifies the locus unit 200. The content of the received instruction is driving time, initial position, initial velocity, end position, and end velocity, for example. Also, in the case of employing the method described in later-described Embodiment 3, moving average time is also received.
[0078] The locus unit 200 generates an input locus that is instructed to the servo driver 3. Specifically, the locus unit 200 generates at least one of the torque locus, the velocity locus, and the position locus as the input locus. Also, as described above, the locus unit 200 includes a torque locus generation unit 201 and a locus generation unit 204.
[0079] The torque locus generation unit 201 generates a torque locus using the driving time, initial position, initial velocity, end position, and end velocity, of which notification was given via the input reception unit 100. Also, the input locus generation unit 202 is notified of the generated torque locus. Also, the torque locus generation unit 201 performs notification of the moment-by-moment velocity information and position information derived during generation of the torque locus to the input locus generation unit 202.
[0080] More specifically, the torque locus generation unit 201 generates a torque locus with a maximum torque value that is at its minimum by adjusting the switching timing and the maximum value of the torque under the conditions that the torque locus is a rectangular wave, the absolute values of the maximum value and minimum value of the torque are equal, and switching between the maximum value and the minimum value of the torque occurs once. Adjustment of the switching timing and the maximum value of the torque can be performed using a numerical value analysis method. The numerical value analysis method may be performed using a heuristic search algorithm (a heuristic algorithm) or using a convergent calculation such as Newton's law.
[0081] The input locus generation unit 202 generates an input locus based on the torque locus of which notification was given by the torque locus generation unit 201. If the input locus is a torque locus, the torque locus of which notification was given is used as the input locus. Also, if the velocity locus or the position locus is used as the input locus as in later-described Embodiments 2 and 3, the velocity locus or the position locus is generated based on the notified moment-by-moment velocity locus or position locus and used as the input locus.
[0082] The operation instruction unit 300 transmits a command to the servo driver 3 in accordance with the input locus generated by the locus unit 200.
[0083] Flow of Processing in Control Apparatus 1
[0084] Next, a flow of processing for generating a torque locus as an input locus in the control apparatus 1 will be described with reference to
[0085] As shown in
[0086] Next, the torque locus generation unit 201 sets the torque values of the torque locus and the switching time (S102). The torque values and the switching time will be described with reference to
[0087] Next, the torque locus generation unit 201 derives the position and velocity of the control target at the end time in the case of using the torque locus with the torque values and switching time set in step S102 as the input locus (S103). The end time is the time at which the designated driving time ends. Also, the torque locus generation unit 201 determines whether or not the position and velocity of the control target at the derived end time are within threshold values (S104). Specifically, it is determined whether or not the position and velocity of the control target at the end time are in a range that can be said to be equivalent to the designated end time and the end velocity.
[0088] If the derived position and velocity of the control target at the end time are not within the threshold values (NO in S104), the processing returns to step S102 and steps S102 to S104 are repeated.
[0089] On the other hand, if the derived position and velocity of the control target at the end time are within the threshold values (YES in step S104), the torque locus generation unit 201 determines the torque value at that time and the switching time to be the torque value and switching value for generating the torque locus, and generates the torque locus (S105). Also, the input locus generation unit 202 generates a torque locus that is used as an input locus using the torque locus generated by the torque locus generation unit 201 (S106, torque locus generation step).
[0090] The foregoing description was of a flow of processing for generating a torque locus in the control apparatus 1. As described above, in Embodiment 1, the torque value and the switching time are derived using a heuristic search algorithm, such as repeating steps S102 to S104 until the position and velocity of the control target at the end time enter the range of being within the threshold values. Note that as described above, the derivation of the torque value and the switching time is not limited to a heuristic search algorithm, and any kind of numerical value analysis method may be used. For example, it may be performed using a convergent calculation such as Newton's law.
Embodiment 2
[0091] Another embodiment is described as below with reference to
[0092] Overview
[0093] In Embodiment 1, torque values and a switching time were set so as to obtain a torque locus, which was used as an input locus. However, with an actual apparatus, a model error occurs, and therefore even if control is performed using a torque according to a command, there is a possibility that the control target will not have reached the end position and the end velocity at the end time.
[0094] Specifically, description will be given with reference to
[0095] Here, in Embodiment 2, in the configuration of Embodiment 1, at least one of the velocity locus and the position locus are derived from the velocity and position of the control target derived moment-by-moment in the process of deriving the torque locus, and these are used as the input locus.
[0096] With the velocity control or position control performed using the velocity locus or the position locus, it is possible to more accurately set the control target to the target velocity at the target position at the end time.
[0097] Flow of processing in the case of using the velocity locus and the position locus
[0098] Next, a flow of processing for generating a velocity locus and a position locus as an input locus in the control apparatus 1 will be described with reference to
[0099] As shown in
[0100] In step S201, the locus unit 200 derives the moment-by-moment velocity information and position information at the time of generating the torque locus. The velocity information and position information are additionally derived at the time of generating the torque locus.
[0101] Next, the input locus generation unit 202 generates the velocity locus and the position locus from the velocity information and position information derived in step S201, and uses at least one of them as the input locus (S202, input locus generation step).
[0102] The foregoing description was of a flow of processing for generating a velocity locus and a position locus in the control apparatus 1.
Embodiment 3
[0103] Another embodiment is described as below with reference to
[0104] Overview
[0105] With the method of using the velocity locus and the position locus described in Embodiment 2, it is possible to set the control target to the target velocity at the target position at the end time. However, due to model error, there is a possibility that the torque will peak. As the method of reducing the model error, it is conceivable to include a model as a table without being made into a mathematical expression, to create a high-dimension model with dead time such as a tracking delay added, and the like. However, these methods have adverse effects such as requiring a high degree of technology and being extremely time-consuming, and thus are not practical.
[0106] Here, in general, a second-order model indicated below is used as a characteristic model for a control target. Note that this does not mean that it is not possible to use a higher-order model, such as a third-order model or higher.
MX+DX+C=F
Here, M indicates the mass of the control target, D indicates the friction generated due to the velocity of the control target, and C indicates friction that is always generated.
[0107] However, the above-described model has an adverse effect such as not being able to express the friction of the low-velocity portion. Also, since the gain of the driver is set to 1, there is also an adverse effect of not being able to add the tracking delay of the driver. Accordingly, if the above-described model is used, a problem occurs in that a large torque will be generated at the time of starting driving, and a problem occurs in that a large negative torque will be generated at the time of stopping driving.
[0108] Specifically, description will be given with reference to
[0109] As shown in
[0110] This is because of the following reason. As shown in
[0111] In view of this, in Embodiment 3, the input locus is generated using a moving average, and thereby the influence of the model error is reduced, and the case of the torque peaking is suppressed. Specifically, first, the velocity locus or the position locus at the time (hereinafter also referred to as calculation driving time) obtained by subtracting the moving average time (shortened time) from the driving time is derived. Next, a locus for the moving average time is added to the derived velocity locus (calculated velocity locus) or position locus (calculated position locus) to find the moving average for the entirety of the locus (moving average calculation locus), and the input locus is set. Accordingly, the locus can be made smoother, and the torque peaks can be suppressed.
[0112] Also, since the moving average is calculated using the locus obtained by adding the moving average time, the input locus according to which the control target can be set to the designated velocity at the designated position at the designated driving time is reached.
[0113] Flow of Processing in the Case of Using the Moving Average
[0114] Next, the flow of processing for generating an input locus using the moving average in the control apparatus 1 will be described with reference to
[0115] As shown in
[0116] Steps S102 to S104 are similar to Embodiments 1 and 2. The input locus generation unit 202 adds a locus for the moving average time to the position locus and the velocity locus derived from the position information and the velocity information derived in step S201 (S303). Then, the moving average is obtained for the entirety of the locus resulting from the addition, and the input locus is generated (S304).
[0117] A method for deriving an input locus using a moving average will be described with reference to
[0118] First, a position locus 1201 derived based on a calculation driving time tf is shown in
[0119] Result of Using the Moving Average
[0120]
[0121]
[0122] Result of Embodiment
[0123] The result of one or more embodiments will be described with reference to
[0124]
[0125] As shown in
[0126]
[0127] Also,
[0128] If the maximum values of the torque locus 1502 and the torque locus 1611 are made equal as shown in
[0129] This shows a case in which if the maximum value of the torque is made equal to the conventional maximum value, or in other words, if a motor with the same capacity as the conventional motor is used, a conveying time for moving the same driving distance can be made about 25% shorter by using the input locus of one or more embodiments.
[0130] Example of Functional Block
[0131] Another example in which the control apparatus 1 according to one or more embodiments is indicated as a functional block will be described with reference to
[0132] In the functional block (peakcut) shown in
[0133] Note that in the example shown in
[0134] Example Realized Using Software
[0135] The control block of the control apparatus 1 (in particular, the locus portion 200 (torque locus generation unit 201, input locus generation unit 202), and the operation instruction unit 300) may be realized through a logical circuit (hardware) formed in an integrated circuit (IC chip) or the like, or may be realized through software using a CPU (Central Processing Unit).
[0136] In the latter case, the control apparatus 1 includes a CPU that executes commands for a program, which is software that executes functions, a ROM (Read Only Memory) or a storage apparatus (these are called storage media) that stores the above-described program and various types of data in a manner of being readable by a computer (or a CPU), a RAM (Random Access Memory) for expanding the above-described program, and the like. Also, the computer (or CPU) reads the above-described program from the above-described storage medium and executes it. As the above-described storage medium, a non-temporary tangible medium such as a tape, a disk, a card, a semiconductor memory, or a programmable logic circuit can be used. Also, the above-described program may be supplied to the above-described computer via any transmission medium (a communication network, a broadcasting wave, or the like) that can transmit the program. Note that one or more embodiments can also be realized in the form of a data signal embedded in a broadcasting wave in which the above-described program is realized through electronic transmission.
[0137] The present invention is not limited to the above-described embodiments and can be modified in various ways within the scope indicated in the claims, and the technical scope of the present invention encompasses embodiments obtained by combining technical means disclosed in different embodiments.