GB2273176A - Actuator position control. - Google Patents

Actuator position control. Download PDF

Info

Publication number
GB2273176A
GB2273176A GB9326193A GB9326193A GB2273176A GB 2273176 A GB2273176 A GB 2273176A GB 9326193 A GB9326193 A GB 9326193A GB 9326193 A GB9326193 A GB 9326193A GB 2273176 A GB2273176 A GB 2273176A
Authority
GB
United Kingdom
Prior art keywords
actuator
speed
slope
path
move
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
GB9326193A
Other versions
GB2273176B (en
GB9326193D0 (en
Inventor
Richard Neil Danbury
Paul Philip Acarnley
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
BTG International Ltd
Original Assignee
British Technology Group Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from GB909004006A external-priority patent/GB9004006D0/en
Application filed by British Technology Group Ltd filed Critical British Technology Group Ltd
Priority to GB9326193A priority Critical patent/GB2273176B/en
Publication of GB9326193D0 publication Critical patent/GB9326193D0/en
Publication of GB2273176A publication Critical patent/GB2273176A/en
Application granted granted Critical
Publication of GB2273176B publication Critical patent/GB2273176B/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/19Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path
    • G05B19/21Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device
    • G05B19/23Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for point-to-point control
    • G05B19/231Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude
    • G05B19/232Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by positioning or contouring control systems, e.g. to control position from one programmed point to another or to control movement along a programmed continuous path using an incremental digital measuring device for point-to-point control the positional error is used to control continuously the servomotor according to its magnitude with speed feedback only
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/414Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller
    • G05B19/4142Structure of the control system, e.g. common controller or multiprocessor systems, interface to servo, programmable interface controller characterised by the use of a microprocessor
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B19/00Programme-control systems
    • G05B19/02Programme-control systems electric
    • G05B19/18Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form
    • G05B19/416Numerical control [NC], i.e. automatically operating machines, in particular machine tools, e.g. in a manufacturing environment, so as to execute positioning, movement or co-ordinated operations by means of programme data in numerical form characterised by control of velocity, acceleration or deceleration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37313Derive speed from position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/37Measurements
    • G05B2219/37612Transfer function, kinematic identification, parameter estimation, response
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/42Servomotor, servo controller kind till VSS
    • G05B2219/42128Servo characteristics, drive parameters, during test move
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43026Predict deceleration start from measured characteristics and actual performance
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43034Form of profile, ramp, trapezoid, S-curve, exponential
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43038Parabolic acceleration, constant speed, parabolic deceleration as function of position
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43041Prediction, look ahead deceleration control, calculate start deceleration
    • GPHYSICS
    • G05CONTROLLING; REGULATING
    • G05BCONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
    • G05B2219/00Program-control systems
    • G05B2219/30Nc systems
    • G05B2219/43Speed, acceleration, deceleration control ADC
    • G05B2219/43115Adaptive stopping

Abstract

A system for moving an actuator from a start position to a predetermined end position wherein a prediction of the deceleration characteristics of the actuator is made from position and velocity information whereby the actuator is decelerated when the actual velocity/position curve during acceleration intercepts the position/velocity curve predicted for deceleration so that it is brought to rest at the required position. The prediction of the deceleration characteristics may involve a test routine. Also disclosed is a method for determining the speed and position of the actuator and the slope of the speed position path of the actuator. <IMAGE>

Description

2273176 IMPROVEMENTS IN OR RELATING TO ACTUATOR CONTROL The present
invention relates to methods and apparatus for controlling an actuator system, for example, for the 5 point-to-point positioning of loads.
Actuators are often not used efficiently, and therefore more highly rated actuators than should be necessarv have to be used. Clearly, in such circumstances, more efficient use of the actuators would allow lower performance actuators to be utilised. "Bang-bang" control is capable of making full use of available actuator torque so that the time taken to perform point- to-point Dosition-Jng operations is minimised. In a "bc-ing-bang" control system, full actuator torque is applied initially to acceleraze the load, the full torque output being maintained until the last possible moment, at which time full deceleration torque is applied. If the moment o. switch over is chosen correctly, the load arrives at izs target position reliably and in a time optimal way. However, it is difficult to predict the correct instant to switch over from full accelerating torque to full decelerating torque.
The nresent invention seeks to provide methods and apparatus ensuring more efficient use of actuator systems.
According to a first aspect of the present invention there is provided a method of controlling an actuator system having an actuator, the method comprising the steps of performing at least one test move in which the state of the actuator is changed, determining specifi.ed characteristics for said system from the or each test move, said specified characteristics comprising the slope of its transition path, and subsequently performing one or more working moves in which the actuator changes from a first condition to a predetermined end condition, the actuator being controlled to change to said predetermined end condition along a switching curve, wherein, during a working move, switching of the actuator is controlled in dependence upon the previously determined specified characteristics of said system.
According to a fu rther aspect of the present invention there is provided a method of using a positioning system having an actuator for moving a lcad, the method comprising the steps of performing at least one test move in which the actuator is accelerated and then decelerated, determining fled characteristics for said positioning system from specif the or each test move, said s-pecified characteristics comprising the slope of its speed-position path, and subsequently performing one or mcre working moves in which a load is moved by said actuator from a first position to a predetermined end position, the actuator beina controlled to move said load to said predetermined end position by accelerating and then decelerating, wherein, during a working move, the actuator is controlled to switch from acceleration to deceleration in dependence upon the previously determined specified characteristics of the positioning system.
The invention also extends to a method of using a positioning system having an actuator for moving a load, the method comprising the steps of performing at least one test move in which the actuator is accelerated and then decelerated, determining specified characteristics for said positioning system from the or each test move, and subsequently performing one or more working moves in which a load is moved by said actuator from a first position to a predetermined end position, the actuator being controlled to move said load to said predetermined end position by accelerating and then decelerating, wherein, during a working move, a prediction as to the deceleration path to be described by the actuator is made from said determined specified characteristics and from the current performance of the positioning system, wherein the current performance of the positioning system comprises information relating to the slope of the actual acceleration path of the actuator, and wherein when said actual acceleration path intercepts the predicted deceleration path, the actuator is controlled to switch from acceleration to deceleration.
With the methods described above, the characteristics determined from the or each test. move are used to predict the moment at which there is switch over fror. acceleration to deceleration of the actuator. It has beer. found that with methods of the invention, an accurate prediction of the switching moment can be made so that the method produces near time optimal point-to-point positioning.
The or each test move may be performed with or without a load being moved by the actuator. In an embodiment, a first test move comprises running the actuator up to fullL speed and then decelerating the actuator to rest. The actuator may be unloaded, or may move a high inertia, low friction load.
During the or each test move, and/or during each working move, information relating to the speed of the actuator and to the slope of its speed-position path is recorded. A continually updated prediction as to the deceleration path to be described by the actuator may be made from said determined specified characteristics and from said speed and slope information.
The recorded information may be used to determine a specified characteristic of the positioning system known as the compound- slope function. This compound-slope function is the difference, at a common speed, between the slope of the speed- position path of the actuator during acceleration and the slope of the speed-position path of the actuator during deceleration. That is, the compound-slope function, :. -0 i 5 c(e), is à P'd Preferably, the specified characteristics used to determine the switching moment include not only the compound-slope function, but also any changes in inertia of the positioning system between a test move and a working move.
Ir- one embodiment, a working move includes a short tria]. deceleration from which an inertia ratio is determined. Specifically, full accelerating torque is applied to said actuator at the commencement of a working move, and information relating to the speed of the actuator and the slope of its speed-position path is recorded.
Subsequently, full decelerating torque is applied to the actuator for a short, usually predetermined, period and during this deceleration information about speed and the slope of the speedposition path of the actuator is similarly recorded. At the end of the trial deceleration, full accelerating torque is again applied to the actuator, and an inertia ratio is calculated. The inertia ratio is the difference in slope between the acceleration and deceleration paths, at a common speed, divided by the compound-slope function. That is, W JP= (- I t,a- do I r,dUC(O C) J de de e-5- In ef fect, with the method of the invention, the specified characteristics determined from one or more test moves and from any trial deceleration are used to predict a deceleration path for the actuator with its load. When this predicted deceleration path crosses the existing acceleration path, the accelerating torque applied to the actuator is immediately removed, and f ull decelerating torque is applied thereto.
In a preferred embodiment, to determine the specified characteristics it is necessary to record the speed of the atuatox. Preferably, information about the speed is ct obtained from an encoder coupled to the actuator and arranged to generate a train cl' pulses representative of the speed and position of said actuator. For example, where the actuator has a rotatable shaft, the encoder is coupled to the shaft and is arranged to generate a train of pulses such that the number of pulses indicates the angular rotation of the shaft.
In a preferred embodiment, the speed-position path described by the actuator is divided into a number of segments, each of which is sufficiently long to ensure tha-t any error in slope measurements are kept within acceptable limits. The change in speed over the segment is then divided by the length of the segment. The slope measurement may be calculated simply by calculating the difference in speed of the steps at each end of a segment, and dividing that speed change by the number of steps in the segment. Where the first and last step durations of the segment are tn and tmj, the slope is given by:- _ slope = ( 1 ---L) / (nm) tn tm Similarly, the slope can be shown to have occurred at a speed:- n-1 speed = (n-m) / ( 1 2 I=M In a preferred embodiment, to optimise the use of processing caDacity, the length of each segment is stored, together with the duration of the steps at the two ends of that segment, and together with the cumulative duration of the segment. In addition, the speed, or preferably a value 2/speed is also stored. The slope and speed values of the acceleration path are utilised to calculate a portion of the predicted deceleration patn. In particular, the contribution to the stopping distance at one speed, e22. -'S AE)21' which is defined as:A211= ( C.- C&, ii-ci -.1 - _2 C( 1) C'C' (n-.-) IT 012 In an embodiment, for each segment of the acceleration path described by the actuator, a contribution to the stopping distance, that is, to the predicted length of the deceleration path, is calculated. Each contribution calculated is added to the previously calculated - contributions to form a cumulative stopping distance. The cumulative stopping distance is added to the distance actually covered by the actuator to form a total predicted stopping distance which is continuously compared with the target distance. As soon as the total predicted stopping distance (cumulative stopping distance plus actual distance covered) is greater than or equal to the target distance, full decelerating torque is applied to the actuator.
The invention also extends to apparatus for controlling an actuator system comprising an actuator arranged to change from a first condition to a predetermined end condition, and control means for said actuator, wherein said control means comprises data handling means for obtaining and storing information relating to the transition of the actuator during its change, and drive means for selectively changing the condition c--F the actuator, and wherein said control means further comprises processing means arranged to predict from the transition information a switching curve for said actuator and to cause said drive means to switch the actuator to undergo a required transition.
-c The invention extends also to apparatus arranged position a load by way of a method as defined above.
According to a further aspect of the present invention there is provided apparatus for positioning a load comprising a positioning system having an actuator for moving a load from a first position to a predetermined end position, and control means for said actuator, wherein said control means comprises data handling means for obtaining and storing information relating to the speed and position of the actuator during a move, and drive means for selectively accelerating and decelerating said actuator, and wherein said control means further comprises processing means arranged to predict from the speed and position information a deceleration path for said actuator and to cause said drive means to decelerate said actuator when said predicted deceleration path intercepts an actual acceleration path of said actuator.
Said processing means is preferably arranged to determine information relating to the slope of the actuator's speed-position path from said speed and position information.
In an embodiment, the drive means for said actuator comprises a minor loop control circuit comprising a controller arranged to accelerate or decelerate said actuator, and sensor imeans arranged 'to provide speed and position information to said controller.
is Preferably, said control means comprises a major loop control circuit, comprising said data handling means and said processing means, wherein the data handling means of the major loop control circuit is arranged to receive position and speed information from said sensor means and to provide the information to said processing means.. and wherein said processing means is arranged to control said controller of the actuator.
In a preferred embodiment, the sensor means comprises an encoder coupled to the actuator and arranged to generate a train of pulses representative of the speed of the actuator. For example, where the actuator has a rotatable shaft, the encoder is coupled to said shaft and is arranged to generate a train of pulses upon rotation of the shaft such that the number of pulses is dependent upon the angular rotation of said shaft.
Preferably, said data handling means comprises an interrupt request generator arranged to receive the train of pulses from said encoder and to generate an interrupt request signal every time a predetermined number of said encoder pulses has been received. Preferably, the -g- interrupt request generator is used to clock an interrupt routine of said processing means. In a preferred embodiment, the actuator is a stepping motor and the interrupt request signal is generated each time the motor 5 moves one step.
In a preferred embodiment, said interrupt request generator comprises a counter connected to be loaded from a register preloaded with a predetermined number. Pulses from said encoder are fed to said counter and are arranged to decrement it. When the count of the counter reaches zero, it is arranged to immediately reloaC itself from said register and at the same time to outout said interruot request signal.
In a preferred embodiment, said data handling means comprises means for determining the speed of the actuator. Said speed determining means may include means to count the number of pulses generated by a fixed frequency reference source between the arrival of two encoder pulses such that the count is indicative of the encoder pulse period.
In a preferred embodiment, sald speed determining means comprises a counter arranged to receive pulses from a reference frequency source. The counter is connected to a first register loaded with zero and to a second register. The encoder pulses are applied to control logic coupled to said counter and arranged to transfer the contents of the counter to the second register upon the arrival of an encoder pulse and at the same time to load the counter with zero from the first register. Accordingly, the second register will retain a count which is representative of the duration between two successive encoder pulses.
In a preferred embodiment, the processing means comprises an interrupt routine processing area connected to -lo- a major-loop program area by way of memory containing data queues. The interrupt routine is arranged, upon the generation of each interrupt request signal, to place speed and position information in the data queues. In this respect, it is arranged that speed information and information about the slope of the actuator speed-position path is put into the data queues for use by the major-loop program when required.
io The -:nventicn also provides a method of acquiring information about the s-Deed and position of an actuator, the method comprising the steps of generating a train of pulses such that the frequency of the pulses is representative of the speed of the actuator and the number S of the pulses is representative of its position, determining speed information from said pulses, generating an interrupt request signal when a predetermined number of said pullses has been generated to provide position information, and causing the interrupt request signal to clock an interrupt routine which is arranged upon each appearance of an interrupt request signal to store the speed and position information in data queues.
In an embodiment, the speed information is determined by counting the number of reference frequency pulses generated between successive interrupt request signals.
In a preferred embodiment, where said actuator is a stepping motor, the information stored in the data queues comprises the duration of each step, the number of steps which have taken place, and the cumulative step duration.
The invention also extends to apparatus for acquiring speed and position information by the method defined above.
According to a further aspect of the present invention -il- there is provided a method of determining the slope of the speed-position path of an actuator, comprising the steps of generating a train of pulses such that the number of pulses is representative of the position of the actuator, counting the number of pulses which are generated and generating a step complete signal after each appearance of a predetermined number of said pulses, counting the number of step complete pulses, and further comprising determining the duration of each step from said pulses, and comparing the most recent step duration with that of a preceding step duration, and when the two compared step durations are sufficiently different, calculating the slope of the speed-position path by dividing the speed inf ormation f rom n - m steps by n - m.
In an embodiment, the duration of each step is determined by counting the number of reference frequency pulses generated between successive step complete signals.
Generally, the slope will be calculated as follows:- slope = ( 1 ---L) / (n-rn) t:n t:m The speed associated with that slope is given by:- n-1 Speed = (n-m) / ( 1 (ti+ ti-1)) 2 E I=M Alternatively, for convenience, a factor related to 2/speed can be calculated as follows:- n-i E (t:j- C,.,) =in The invention also extends to apparatus for determining the slope of the speed-pos-4tion path by a method as defined above.
Embodiments of the present invention will hereinafter 7 example, with - be described, by way o.-,L -eference to the accompanying drawings, in which:Figure la shows schematically an electromechanical apparatus which employs point-to-poinz positioning, Figure lb shows a graph of posizion demand signals for the apparatus of Figure la, Jtion demand signal to Figure 2a shows a graph of a pos L be applied to an actuator, and Figures 2b to 2d show graphs of the response of actuators with different loads, Figure 3a shows a graph of speed against position taken from a first move of an actuator with a first load, Figures 3b to 3e graphically show a second move of the same actuator as plotted in Figure 3a, but with a different load, these graphs also indicating in broken lines the path of the first move of Figure 3a, Figure 4a shows a sp-eedposition graph of a test move of an actuator, and Figure 4b illustrates graphically a compound-slope function determined from the speed-position graph, Figure 5a shows a speed-position graph of a working move of the actuator of Figure 4a, but with a different load and incorporating a trial deceleration, and Figure 5b shows a graph of speed against the predetermined compound-slope function illustrating the determination of 10 the inertia ratio, Figures 6a and 6b illustrate graphically the determination of the switching moment for the move of Figu.ce 5a, Figure 6a showing a prediction of a post-switching path, and Figure 6b showing the predetermined compound-slope function, Figure 7 shows schematically one embodiment of an apparatus for positioning a load according to the inventi on, Figure 8 illustrates data handling means and an exc-4tat-4on controller of the apparatus of Figure 7 configured on a single chip, Figure 9 shows a pulse diagram illustrating the operation of an interrupt request generator of the apparatus of Figure 7, Figure 10a shows a speed-time path for part of an actuator move, and Figure 10b shows the speed-position path corresponding to Figure 10a, Figure 11 illustrates a data queue of the apparatus of 35 Figure 7 showing the data it contains, Figure 12 shows part of a Plot of compound-slope function against speed, and illustrates interpolation between stored compound-slope values, Figure 13 shows the storage of compound-slope function values as a table of individual function values, Figure 14a shows the speed-position path of an actual test move of an actuator, and Figure 14b shows the slope 10 values calculated from the plot of Figure 14a, Figure 15 shows the main routine of a major-loop program run by the apparatus of Figure 7, is Figure 16 shows a test move rouzine of the major-loop program, Figure 17 shows a working move routine of the. major-loop program, and Figure 18 shows graphically the calculation of a contribution to a stopping distance from the slope of segment of a pre-switching path.
The present invention is concerned with the control of an actuator to perform point-to-point positioning of a load. Figure la shows schematically one example of an electro mechanical apparatus which uses such point-to-point positioning. In Figure la there is shown a drilling machine having a rotatable drill 12 which is to be controlled to drill holes 1, 2, 3 and 4 in a workpiece, generally indicated at 10. The workpiece 10 is mounted on a movable table (not shown), and actuators (not shown) are to be controlled to move the workpiece so that the holes 1, 2, 3 and 4 are drilled in sequence.
0 It is of course important that the drilling operation should be completed as quickly and as reliably as possible, and, in known manner, two separate actuators for moving the table 10 could be provided, one acting to move the table along an X axis, and the other acting to move the table along a Y axis. Figure la shows the drilling machine set up with the drill 12 positioned ready to drill the hole 4, the holes 1, 2 and 3 having been completed. Figure lb illustrates the position demand signals fed to the X and Y 10 actuators to position the workpiece relative to the drill 2 12 such that the holes 1, 2, A' and 4 can be drilled in sequence.
Clearly, the time taken to complete the drilling operation will depend upon the speed with which each individual hole can be drilled. However, the time taken to. correctly position the workpiece for each hole to be drilled is also significant, and if the positicning time can be reduced the throughput of the drilling machine can be correspondingly increased.
It is often the case that, in order to ensure thaz an actuator can cope with the heaviest loads, the actuator is chosen to have a performance rating which is greater than that which is normally used. In such circumstances, more efficient use of the actuators would allow lower performance actuators to be utilised. It is known that "bang-bang" control is capable of making full use of available actuator torque so that the time taken to perform point-to-point positioning operations is minimised. In a "bang-bang" control system utilised to move an object through a given distance, full actuator torque is applied initially to accelerate the object. The full torque output is maintained until the last possible moment, at which time full decelerating torque is applied. If the moment of switch over is chosen correctly, the object arrives at its target position reliably and in the minimum possible time.
The difficulty with "bang-bang" control is judging the instant at which to begin the deceleration. In this respect, Figure 2a shows a position demand signal to be applied to an actuator, and Figures 2b to 2d each show speed against time and speed against position graphs for an actuator having different loads, but generating equal positive and negative torques. Figure 2b shows the situation where the actuator has a load with low inertia and no friction and it will be seen that the deceleration here optimally begins at the halfway point. The same is true for Figure 2c which also shows a no friction case, but this time for a load with high inertia. However, when the is friction is high as shown in Figure 2d, deceleration needs to be commenced later so that advantage can be taken of the fact that the friction assists the deceleration. It will be appreciated that in each of the graphs of Figures 2b to 2d, the shaded area of the speed-time plot represents the distance d travelled.
Thus, in order to use "bang-bang" control effectively, it -1s imporzant to be able to take into account changes in the flollowing parameters of the system:- B. C.
A. Actuator torque, which may change with speed and environmental effects, inertia, particularly of the load, and Friction, which changes according to the load, speed and environment.
The new control scheme for an actuator described below has been developed to enable the time for switching between accelerating torque and decelerating torque to be determined in dependence upon the parameters of the system. At present, this control scheme is only able to deal with mechanical systems which are torsionally rigid, and therefore of the first order.
We have seen that it is important to begin the deceleration at the right moment, but we have also seen that the factors which effect the choice of the switching moment change and are therefore impracticable to measure.
Figure 3a shows a graph of speed against position during a single move of an actuator. which is accelerated along a pre- switching path a to a maximum speed. At point n. the actuator is switched to being decelerated so that L-he move continues along the post-switching path b. In the move illustrated in Figure 3a, there is substantially no friction.
Now, if the shape of a post-switching path b' of an actuator move could be determined in advance, deceleration of the actuator could be initiated where the pre-switching path a' crosses the post-switching path b', that is at a point c'. Both of the paths a' and b' are effected by the same system parameters, and because of this, it is possible to predict the shape of the post-switching path b' by examining the shape of the preswitching path a', and thereby determine the moment of switching.
Let us suppose that the characteristics and information revealed by the graph of Figure 3a are recorded during a first move of a load by an actuator. A second move of a different load, but using the same actuator, is then commenced. Figures 3b to 3e graphically show the second move, and in these Figures the paths a and b of the first move are indicated in broken lines. In the second move, it is required to move the load to a target position TG. Clearly, and as is shown in Figures 3b, 3c, 3d and 3e, as this second move progresses, the pre-switching path a' will emerge. Let us assume that in the second move illustrated in Figures 3b to 3e, the friction load has increased so that less of the motor torque is available to accelerate the inertia of the rotating parts. This becomes evident as the pre-switching path a' emerges as it is flatter than the path a of the first move. This information about the difference in the paths a and a' can be used to predict a corresponding steepening of the post-switching path b'. This is possible because, although the friction torque might change with speed, for any particular speed it will be the same during the deceleration as during the acceleration. Thus, the frictl.on torque will increase the deceleration rate to the same degree as it decreases the acceleration rate. With the scheme indicated in Figure 3, when the actual pre-switching path a' crosses the predicted post-switching path b', deceleration is started. If the prediction is accurate, the actuator and its load will follow the predicted path b' and come to rest at the target posit-4on TG.
Confirmation that accurate predictions can be made on the basis illustrated graphically in Figure 3 has been obtained from a mathematical treatment of the problem which is now set out. In this mathematical analysis, and throughout the specification and claims, the following variables are used:- e Angular position 30 Angular speed E)t The angular speed at which trial deceleration takes place Angular acceleration TAa(e) Actuator torque during acceleration (a 35 function of angular speed) TAd() Actuator torque during deceleration (a function of angular speed) T,() Friction torque (a function of angular speed) C() The compound-slope function (a function of angular speed) j Total inertia of rotating components j p Total inertia of rotating components during a previous move la Denotes a value of a variable during acceleration 16 Denotes a value ofa variable during deceleration lp Denotes a value of a variable during a previous move It Denotes the value of a variable when the instantaneous speed is ecual to the trial deceleration speed Both the actuator torque and the friction torque may be functions of speed; the former because of effects inherent in the design of -he actuator and the latter because of viscous effects. in some cases one, or both, may be constant, but these would simply be particular cases of the general approach taken here.
Initially, these torques, TAa() and TF), cause the inertia, J, to accelerate at a rate a 1 a:
J. a 1 ' = T' (6) -TF (0) (1) After switching, the actuator torque may be a different function of speed, TAd(6), so the inertia will decelerate according to:
j. ô 1 d= TAe (0) + TF (6) (2) The signs of the various terms in these equations (1) and (2) are consistent with the following definitions:
Angular acceleration is positive if speed is increasing, h) Torque is positive if it acts to increase speed.
is According to these definitions the values of TAa(b will be positive and the values of TAd() and of TF(e) will be nega tive. SO.6 1 a will have pos itive values (as long as the friction torque is not so large as to overcome the actuator torque) and eld will take on negative values.
Equations (1) and (2) can be rearranged to give the shapes of the pre-switching and post-switching paths in the speed/position plane i.e. to define paths a and b. Angular acceleration, U, can be written as 0. Ct so the two equations become:
?0 a 1 a= (TAa (0) + TF (6) / (j- e) (3) ffi and de 1 d = (TACI (0) +TF (6)) / (J 0) (4) de Equations (3) and (4) tell us the slopes, of the paths at any particular speed, 0. We want to use them to calculate the shape of the post-switching path, using measurements of the pre- switching path. This can be io done by combining equations (3) and (4) de =dOl._[(T Aa(0) -TAd(0)) / (J'81 (5) _jB_ 1 Ci de From equation (5), measurements of the pre-switching is 5101De, A 11 de can be used to calculate the post-switching slope, 1 d (28 at each speed. In order to do so the term in the square brackets (which is a function of speed) must be known, and this is where the information recorded from the previous move is used. This information gives the slopes of the pre-switching and post switching paths at each speed during this previous move, and subtracting one slope from the other gives:
A A g 1p, a- -2g 1p, d which is equal to Aa (6) -.',d 0).
The subscript p indicates values from the previous mov e.
The previous move may have taken place with different friction and inertia. The dif 4-erence in friction has no effect on the calculation of ',;" (U r.0" the friction torque has been eliminated from the calculations. But a difference in the inertia will have an effect. If the previous move took place with an inertia JP, then the values calculated for the term in the square brackets will be and not ( TAa (0) - 7Àd (0)) / (j p- 0) (TAa (0) - TACi (0)) / (J- 0) as we require in order to be able to use equation (5).
Where it is likely that the inertia has changed, a trial deceleration, that is a deceleration for a short time, can be carried out during the pre-switching path. This trial deceleration gives a preview of the slope 00 1 d Cffi at one particular speed, in this range:
is over a small range of speeds, and enables calculation of a value for (T. -T ^a (6) Ad()) 11 (j'6) 0 c ( Aa (0 -1) - TAd (0 C)) / ("7. "È C) 06 I,-.a- dO I r.d 09 C:e The information from the previous move allows us to calculate a value for (T,, -T Ad (0 c)) / (JP. 0) at that same speed:
(TAa (0 C) TAd (0 C) / (JP 0 d -- C?6 lp, C,a- do lp, C, d (7) ffi de (6) c Dividing equation (6) by equation (7) gives the ratio of the inertias in the previous and present moves:
(TAe (6 t) - TAd (0 t)) / (J 0 t) (TAa (0 C) - TAd (0 d) / (JP 0 d IC,a A (0 - -U 1 C, d) de 0 IP, C, d) ( Cl lp,t,a--CI de de JP - 8) J So we can use equation (5) to predict the slope of the post-switching path. Once the inertia ratio is known from equation (8), the values of (TAa (0) - TAd (6)) (JP - 0) can be adjusted for use in equation (5) by multiplying by the inertia ratio:
e P (TAa(e) -TAd(o) -ag & J or à1 d = _n 1 _ _iP_. [ _ IP',_ de 1 P. di (9) & d6 J de de Equations (8) and (9) clearly demonstrate the advantages of the control scheme. They show that the whole process can be performed using only measurements of the slopes of the various paths and of the speeds to which the slope values correspond. No direct measurements of the actuator torque, friction torque, or inertia are necessary.
Equation (8), which gives the inertia ratio, involves only these slope and speed values. This ratio can then be used in equation (9), which otherwise only involves slope and speed, to estimate the-slope of the post-switching path. As is explained herein below, speed and slope are both very 10 easily measured while the actuator is performing a move.
In both equation (8) and equation (9), the two quantities do de 1P, a and do 1 de P, d do not appear separately, but as a pair.
dO do 1 de 1Pla- do P,d So the quantity may as well be regarded as a single value, or rather a single function (of speed). Its value at a particular speed is the difference between the two state-plane slopes at that speed. It has therefore been called the "compound-slope function", C(b).
It is interesting to examine the significance of the function. The compound-slope is the value of dO dO -jg IP, a- -2g IP, d and we have shown that this value is equal to (T.Aa TAd (0) (J is which does not depend on the friction torque. So the -ed by the friction/speed compound-slope function is unaffect function. Furthermore the shaDe of the function is not affected by the inertia; the inertia simply scales its values. So the shape of the compound-slope function depends only on the two torque/speed characteristics of the actuator and is therefore itself a characteristic of the actuator. This is a characteristic which can be measured under any load conditions, and which carries all the :Information needed to make estimates of the post-switching paths- T- is therefore useful to write equations (8) and (9) J. -L in terms of the com-Dound-sloDe function, C():
_TP = ( _n 1 r, a- do J C) de Ir, d) / C (0 C:) k, 10) do - Id= _ 1, - _'_ - C (0) de àà J The mathematical treatment given above is illustrated in Figures 4, 5 and 6. An actuator is subjected to a "test" move, and information as to the speed and position of the actuator is recorded as is shown in Figure 4a. For every speed value, the slope y, of the post-switching path b is determined and is subtracted from the slope xl of the pre-switching path a. A graph showing the compound-slope function C(6t) against speed bt as illustrated in Figure 4b can thus be generated.
Then, as is illustrated in Figure 5a, a working move of the same actuator is initiated, probably with a different load. At a speed t, a small trial deceleration -10 A. as indicated at D is performed. The slope yt of the speed-position path during this trial deceleration is subtracted from the slope xt which the path a had immediately before the deceleration, the subtraction being taken for the same speed value t. The compound-slope is value C(6t) for the same speed is then obtained from the graph of compound-slope, as indicated in Figure 5b. The inertia ratio Jp can then be calculated from equation (10) Figure 6 shows the determination of the moment at which the actuator is to be switched from acceleration to deceleration. As the acceleration continues, the path a is developed. At each particular speed 2, the slope x2 of the actual pre-switching path a is determined and from this and from the compound-slope graph illustrated in Figure 6b, the slope Y2 of the estimated post-switching path b is determined. From equation (11), p Y2X2--- 'C(02) j The calculated slopes y allow an estimate of the post-switching path b to be built up from the target position TG as is shown by the dotted line in Figure 6a. When this dotted line b meets Ithe actual pre-switching path a, deceleration is started. If the estimate is accurate, the actuator and load will follow the path b and stop precisely at the target position TG.
Subsequent moves using the same actuator can be commenced immediately. There is no need to make any additional test runs as the compound-slope function remains valid.
The control scheme described can maintain nea- time-optimal control in all of the following situations:
a) b) c) d) e) f) g) If the actuator -ttorque is a function o-f speed. If the actuator torque is a different function of speed when the actuator is accelerating from when it is decelerating. If the actuator torque/speed functions. change. A new test move allows the nei.., compound-slope function to be found. If the friction torque is a function of' speed. If both the inertia and the friction/sDee.' function change between moves. If the demanded length of successive moves varies arbitrarily. If there is no upper limit on the demanded length of moves.
There are however, certain conditions which have to be met for the scheme to perform satisfactorily:
i) ii) The inertia and the friction-speed function must both remain constant during a move. External torques that are position dependent must not act on the mechanical system.
-29 It will therefore be seen that the control scheme outlined above is very straightforward in use. The necessary characteristics of the system to be controlled are measured by doing a single test run in which the actuator is accelerated to full speed and then decelerated to rest. During subsequent positioning operations, the system takes into account changes in inertia and friction by simply observing the way in which the moving parts accelerate. This means that every positioning operation is tailored to the particular conditions which apply when that operation takes place. Therefore, if a machine were to move several objects in turn, each one having a different mass, then each one would be moved, as fast as the caDabilities of the actuators allow.
It will be appreciated that with the drilling process illustrated in Figure 1, as metal is removed from the workpiece with each drilling operazion, the mass of the workDiece decreases. The actuators therefore drive a smaller and smaller inertia as the drilling process progresses. The reduction in inerz--a would mean that the table supporting the workpiece cculd be repositioned faster E the process than at the start, and in the later stages o the method of the present -inven-.-,'cn allows full advantage to be taken of -his possibility.
When a load is moved vertically upwardly, its weight opposes acceleration and assists deceleration. Therefore, during a positioning move, deceleration can be left until the load is near to the target position. During downward movements, the situation is reversed with the weight of the load assisting acceleration and opposing deceleration so that deceleration has to begin earlier. The control scheme outlined can optimise both movements as the weight forces are simply special cases of the general speed-dependent forces which are taken into account by the scheme in determining the deceleration point or moment of switching.
The control scheme outlined above reauires both that a trial move should be made, and that a trial deceleration should be undertaken during each working move. It will be recalled that the trial move enables the compound-slope function to bedetermined for use with subsequent working moves, whilst each trial deceleration enables the determination of the change of inertia in the system. if there is no variation in inertia of the system, the trial deceleration need not take place. Such a situation would occur where there is linear motion in a flowing viscous fluid. For example, wind tunnel experiments sometimes involve placing a movable probe in an air flow and then in quick succession.
taking readings at several posit. The control scheme could be used to control an actuator driving the probe parallel to the air f low. Movements J n the upstream direction would encounter high resis tance due to the flow, whereas downstream movements would encounter less resistance, or would even be assisted.
The theoretical treatment set out above is specifIc to a positioning system having an actuator moving a load, and in its references to angular acceleration and to torque, is exemplified with reference to a rotatable actuator such as a motor. However, the invention is applicable to actuators in general and may be used for controlling any actuator to change state.
Let us consider the case where the actuator is to control a variable y having v as its derivative. The actuator takes as its input an actuating signal, a, and generates a control signal, u. The control signal is related to the actuating signal by a function F(a, v), which is a function of both a and v. A disturbance, w, acts on the system. The disturbance is a function Fd of v.
The variable v is related to u and w by the equation:
J dv (12) -i-t: (U+ W) where J is a constant.
The actuating signal, a, has a limited range of possible values:
ae r-a,,, aj (-. 3 J The actuating signal, a, is generated by a controller which takes as its inputs y, v, and a reference signal, r.
The objective of the controller is to change the state [y v] of the system from an -initial state [y. 0] to a final is "target" state [r 0] in the minimum possible time.
An important class of such a system is a positioning system as discussed above. in such a positioning system y is the position, v is the velocity and J is the inertia.
The signal u is the torque or force generated by the actuator, and w is the friction torque or force. in positioning systems it is common for the friction torque or force to be a function of velocity. Also, it is common for the actuator torque or force to be a function of both an actuating signal and the velocity. Examples of actuators which fit this model are dc motors and stepping motors.
In positioning systems the transition from the initial state to the final state is a "move".
It can be shown that if a "switching curve,, y is (v) chosen correctly, time-optimal control of a system of the type defined can be achieved by using the control law a = aosgn(ys - y) (14) where the signum function is defined as:
+1, x>0 sgn(x)=f 0, x=0 (15) (-1, x<0 The olDtimum switching curve is made up of two trajectories. The first trajectory satisfies the condition:
a=-a., sgn(v)=+1,yl,_,,2.r The second trajectory satisfies the condition:
a=,a,, sgn(v)=-1, yJ,=z The technique described here allows an estimate of the optimum switching curve to be estimated during each state transition. Since a new switching curve is estimated for each transition, it is possible for time-optimal control to be achieved in consecutive transitions even if the constant, J, and the disturbance function, Fd, change between transitions.
The equation governing the state of the system is:
iv =F (a, v) +Fd (v) (16) it:
This can be written:
Hence for and for JVA-V =F (a, V) +Fd (V) (17) dy a=al where ae.: [-aol a,,]:
"TV dV L-ajF(all V) +Fd(V) (18) dY a=a2 where a2e [-a., a,,]:
JV-V 1 a - a. = F (a2, V) + Fd (V) (19) O.Y Equations 18 and 19 give:
dv dv 1 F(alfV)-F(a2IV) 2y- la-a,- jy- la-a,= -j 1 - V 1 (20) The term 1 F(alr v) -F (a2f V) 1 v is itself a function of a,, a2 and v, and will be referred to as C(al, a2, v). The function C is a characteristic of the actuator and is the "compound-slope function". Hence equation 20 becomes:
1 dv 2 1 (111) v la 21 f -p- la-a,.-. -aJ -"j C( a21 V) v CY Equation 21 shows that the function IC(a,, a.. v) J can be measured by performing an experiment in which values a=al and a=a2 are applied in turn to the input of the actuator, and the slope of the state plane trajectory is measured as a functicn of v for each of the two values of a. Such an experiment is called a "test move".
The experiment is normally performed so that values of C are obtained for as wide a range of v as possible.
When C (a, a2.. V) J is known, it is possible to use equation 21 to predict a state-plane trajectory for a=a2 from measurements of the trajectory for a=al.
Equation 14 gives the control law which must be used in order to achieve a time-optimal transition for state [yo 0] to state [r 0]. The optimum switching curve, ys, is initially unknown. This does not, however, prohibit the transition from being initiated since it is known that the transition should be initiated by applying al=+a,sgn(r-y.) to the actuator input. it is also known that after switching occurs the controller must apply a2-aosgn(r-yo) to the actuator. If it is known that J does not change between state transitions, but the function Fd may change, then eauaticn 10 can be used to estimate the optimum switching curve, ys:
V Y, = r - f 1 div (22) 0 CZY1a-a, -1c(al,a2' f) -yy- _ j "S where 4 is a dummy. variable.
v Equation 22 gives an estimate of the section of the switching curve which lies between zero velocity and the present velocity, v, only. This does not, however, prohibit equation (14) from being used since the control law is calculated only from values of y and ys at the present velocity.
If both the function Fd and J can change between state transitions then the technique is modified as follows. If J has changed since the test run to Jj.. then equation 21 becomes:
dv la-a j dv la-aj 1 C(al,a2.,V) (23) dy dy J1 or:
dv 1._ dv -IC(alf a21 V) (24) a dy dy J1 j As in the case of constant J, the value al=+aosgn(r-yo) is used to initiate the transition and the value a2=-aosgn(r-y.) is used after switching. However, in this case the actuating s-gnal is briefly switched from a, to an and back to a, before the optimum switching curve is reached. In position control systems this process is called a "trial deceleration". By this means it is possible to measure a value of dv dy for a particular value v. of v. Equation 13 can then be is used to calculate the ratio i/jj:
j = dv dv [ 1 C(al, c22, v.) 1 / [ jy- la.a.--jy- la-aj (25) J, j Subsequently, the switching curve can be calculated by using a modified version of equation 22:
v Y, (v) =.r+ dv j J [-2LC(a,,,a 0 dy la-a J1 j 2 f 'p) 1 1 - d^v (26) Because of the period when the actuating signal is switched to the value a2, in this case the control is not time optimal. However, because this period can be made short relative to the total time taken to make the state transition the time penalty is small.
We have considered above a method of the invention in theoretical terms both specifically for a positioning system, and for the more generalised case of controlling an actuator. Figure 7 shows one implementation of an apparatus for positioning a load in accordance with the method so far described.
The apparatus shown in Figure 7 comprises a positioning system including an actuatcr 20 for moving a load (not shown). In the embodiment illustrated in Figure 7, the actuator 20 is a motor which is coupled to move the load by any suitable means. In this respect, mechanical resonances can have a detrimental effect on the reliability of the method and therefore the mechanical coupling of the motor to its load should be as stiff as possible.
The actuator 20 is driven by a drive circuit 22. 0.10 course, the nature of the drive circuit will depend upon the nature of the actuator 20. Where the actuator 20 is a d.c. motor, for example, the drive circuit 22 could be a current amplifier circuit.
In a particularly preferred embodiment, the actuator 20 is a stepping motor driven by a suitable, transistorised drive circuit 22. The use of a stepping motor is particularly preferred because such motors have low inertia and are robust and reliable. Stepping motors also have digital characteristics which makes their use with a digital apparatus as shown in Figure 7 particularly convenient.
The positioning system of the apparatus also comprises control means for the actuator. The control means.of Figure 7 includes a minor loop circuit indicated at 24 for providing immediate control of the motor 20, and a major loop circuit indicated at 26 for controlling the minor loop. This approach enables efficient control of the actuator 20 so that it can perform to the full extent of its potential. In addition, and as will become apparent hereinbelow,. the particular impIementation illustrated, and the split chosen between the functions undertaken by hardware and those undertaken by seftware ensures that the method of the in-,.,ention, which is oxit'&--4ned above, can be reliably achieved in real tinte.
is For simp!-4ci-Cy, we will assume in the following description that the actuator 20 is a stepping motor. In order to control a steppiA-ng motor so that it gives maximum torque, it is necessary to switch the winding currents of the motor at particular positions of its rotor, that is at a predetermined switching angle. At low speeds the windings should be switched at a zero switching angle, but as the motor speed increases the switching angle has to be increased. Thus. the motor should be provided with excitation-change pulses which are dependent upon the angular position, or switching angle, of the motor and which are determined by the switching angle/speed function for the motor. That is, two switching angle/speed functions are provided for the motor, one to be used for accelerating torque and the other for decelerating torque. In the circuit of Figure 7, it is the minor loop circuit 24 which provides the excitation pulses when the rotor reaches certain positions and thereby provides for driving of the stepping motor 20 with its maximum possible torque at all times. It is the major loop circuit 26 which determines which of the two switching angle/speed functions the minor loop 24 is to use.
t -110- .P _ - It will be seen that the minor loop circuit 24 includes a position and speed sensor 28. This sensor may be, for example, a commercially available position sensor attached to the motor shaft and arranged to generate a train of pulses, each pulse indicating that the shaft has rotated through a small fraction of a step. Thus, counting the number of pulses generated will give an indication of the angular rotation of the motor and hence of the distance which has been moved by the load. Any suitable sensor can be used. High resolution optical encoders which provide several thousand pulses per revolution, for example, are particularly simple to use, but any other method of gaining information about the position of the motor could be employed.
is As we have seen, the minor loop circuit '24 requires information about the position and speed of the motor 20 so that the motor 20 can be driven in accordance therewith. Accordingly, the pulses or other signals received from the position and speed sensor 28 are fed back to a minor loop controller indicated at 30 arranged to control the operation of the drive circuit 22. The particular configuration of the minor loop controller 30 is outside of the scope of this application and will therefore only be briefly described. It comprises, as is illustrated, of a sequencer 32 arranged to determine the state of the transistors in the drive circuit 22. The minor loop controller 30 also includes an excitation controller 34 which is arranged, in response to the pulses from the sensor 28 to produce excitation pulses at appropriate times.
It will therefore be appreciated that the minor loop controller 30 is able to generate excitation pulses which depend upon the switching angle of the motor 20. However, and as discussed above, it is also necessary to alter the switching angle required in dependence upon the speed of the motor 20. Thus, there is a need to measure the speed of the motor 20, to check if the switching angle is at an optimum value for the speed, and if not, to alter that switching angle to one which is more appropriate. These functions are arranged to be performed, not by the minor loop 24, but by the major loop circuit 26. Furthermore, in the preferred implementation of Figure 7 these functions are performed by a combination of hardware and software as a result of which suitable commands are fed to the minor loop controller from a microprocessor 36 of the major loop circui-t 26 Let us look now at the major loop circuit 26 o4--- the apparatus of Figure 7. It is this circuit which has to perform the method procedures which we have described above. Thus, the tasks which the major loop 26 must perform are as follows:- For a test move:- Tell the minor loop controller 30 to accelerate the motor to full speed and then decelerate it to rest.
2.
During this acceleration and deceleration, continuously monitor the speed of the motor and determine the slope of the acceleration or deceleration path.
3. When the motor has stopped, calculate the compound-slope function.
for a workinq move:- 1. Tell the minor loop controller 30 to start the motor accelerating, and shortly after-wards tell it to perform the trial deceleration.
2. When the trial deceleration is complete, calculate the inertia ratio.
3. While the motor continues to accelerate, monitor the speed and the slope of the acceleration path, and continuously update the estimate of the stopping distance from a predetermined target position, basing the calculation on the stored compound-slope function- 4. Continuously compare the estimate of the stopping distance with the actual distance to the target, and., when thay are equal, tell the minor loop to begin the deceleration.
It will be appreciated from the above that the major loop circuit 26 must acquire and handle a great deal of information about the behaviour of the motor, and it must be able to perform calculations using that information.
Furthermore, it must be able to complete those calculations before the time at which switching from acceleration to deceleration is reached. This is achieved by the major loop circuit illustrated in that the data is acquired using hardware, and in that the software of the microprocessor 36 is arranged to employ both an interrupt routine and a queuing system for data to ensure that the main, major-loop program of the microprocessor 36 does not have to wait to receive data and is also able to use its time efficiently.
Let us look first at the manner in which the necessary data is acquired and stored for use by the microprocessor 36 when required. It will be appreciated from the above that a great deal of information will be needed by the main, major-loop program, of the microprocessor 36. This major-loop program is schematically illustrated by the area 38 of the microprocessor. It is this program 3t which will have to calculate a compound-slope function and an inertia ratio from the equations (10) and (11) given above, and then calculate a prediction of the stopping distance. Furthermore, the program will need to complete the inertia ratio and stopping distance calculations whilst the motor accelerates so that it will have calculated the deceleration point before it is reached. The system of Figure 7 is therefore configured so that the processor 36 can be allowed to devote as much time as is possible %to these calculations, and to spend as little time as possible on subsidiary tasks. One subsidiary task which could occupy too much time is that of obtaining information about the behaviour of the actuator 20, that is, the position, speed, and slope of the path of an actuator move. As we shall see, this data becomes available once for every step taken bv the motor 20.
Two measures are taken to optimise the timing. First of all, the software of the microprocessor 36 is arranged to include an interrupt routine, which is schematically illustrated as processing area 42, and which controls the flow of data from data handling means 40 of the major loop circuit 26 to the major- loop program 38 of the microprocessor 36. It will also be seen that the interrupt routine 42 is arranged to control the datapath from the major- loop program 38 to the minor loop controller 30. This interrupt routine 42 provides a means of relaying the necessary information to the major- loop program 38, whilst at the same time ensuring that no time is wasted by having the major-loop program 38 look frequently for information which is only occasionally present.
Communication between the interrupt routine 42 and the major-loop program 38 is arranged to make as few demands as possible on the major-loop program 38. For this reason, the interrupt routine 42 and the major-loop program 38 are not synchronised. in addition, the interrupt routine 42 is arranged to control a memory area 44 containing data queues. These ensure that it is never necessary for the major-loop program to waste processing time by having to wait in order to obtain information.
The memory area 44 is configured to include four data queues Ql, Q2, Q3 and Q4. The first three queues Ql to Q3 are arranged to pass data from the interrupt routine 42 to the major-loop program, whilst the fcurth queue structure Q4 passes commands from the major-loop program 38 to the interrupt routine 42. These commands are arranged to be removed from the queue Q4 by the interrupt routine and passed to the minor loop controller 30 whenever the interrupt routine executes.
There are three data queues Q1 to Q3 for passing data from the interrupt routine 42 to the major-loop program 38, and each of these is arranged to hold data for a respective phase of a move by the motor 20. Thus, queue Q1 holds data from an acceleration phase, Q2 from a deceleration phase, and Q3 from a trial deceleration phase. It is the interrupt routine 42 which is arranged to keep track of which phase is current and thereby place each item of incoming data in the appropriate queue. The major-loop program 38 can then tell which data relates to which phase of the move. As is indicated in Figure 7, the interrupt routine 42 places data at the bottom of the appropriate queue whenever that data becomes available. When the major-loop program 38 is ready for new data it takes the top most item from the appropriate queue. The interrupt routine 42 therefore interacts with the major-loop program 38 as little as possible and the major-loop program can therefore use all of the time available for useful processing.
In Figure 7 there is also indicated a supervisor 46 which communicates with the major-loop program 38. It is the supervisor 46 which decides when positioning operations by the actuator 20 are-required, and what the length and direction of these operations should be. Therefore, it is the supervisor 46 which generates the position demand signals. The supervisor 46 may be configured as a softwa-re routine communicating prestored, required positioning operations, or means may be provided for an operator to tell the supervisor 46 the positioning operations required.
It would also be possible for an operator to perform all of the functions of the supervisor 46.
We know tha-z: the data handling means 40 has to obtain information about. -the position and speed of the motor 20, and we have now seen that the interruDt routine 42 has to be executed periodically, for example once every step of the motor 20. Itt would be possible to use a speed sensor, -er to measur for example a tachome! I -e the speed of the motor directly. I- would also be possible to provide clock means for the interrupt routine 42. However, in a particularly preferred embodiment, the sensor 28 already provided in the minor loop circuit 24 is arranged to provide the necessary speed information and is also arranged to generate signals to clock the interrupt routine 42. Preferably, the sensor is a high resolution encoder. Furthermore, the data handling means 40 can be particularly usefully configured using a commercially available counter/timer integrated circuit, the AM9513 (Advance Micro Devices 1984) which is illustrated in Figure 8.
AS is shown in Figure 8, the counter/timer integrated circuit consists of five 16-bit counter circuits 8/1, 8/2, 8/3, 8/4, 8/5. Each counter circuit has a respective source input terminal S/1, S/2, S/3, S/4, S/5 and a respective output terminal 0/1, 0/2, 0/3,0/4, and 0/5. In addition, each individual counter circuit has a respective gate input G/1, G/2, G/3, G/4, G/5. Each counter circuit is arranged to communicate with an address, data and control bus 48, which is in communication with the micro=ocessor 36, by way of an appropriate interface I/1, 1/2, i/3, 1/4,!/S.
it will be seen from Figure 8 that each counter circuit 8/1, 8/2, 8/33, 8/4 and 8/5 comprises a respective counter, as C/1, which is connected by way ofa respective i5 control logic, as CL/l to the respective input S/1 and, by the appropriate interface I/l, to the bus 48. In the particular configuration illustrated, each counter C/l, C/2, C/3, C/4 and C/5, is a 16-bit counter and is associated with two 16-bit registers A and B. Each counter, as C/1, is also connected by way of a respective output control logic circuit, as OL/l, to the respective output terminal, as 0/1. In the particular embodiment illustrated, the first counter circuit 8/1 is arranged to form an interrupt request generator 50 of the data handling means 40. The countercircuits 8/2 and 8/3 configure the excitation controller 34 of the minor loop controller 30, and the counter circuit 8/4 configures a timer for data acquisition means 52 of the data handling means 40. In this particular embodiment, the fifth counter circuit 8/5 on the chip is not utilised.
Let us look now at the operation of the interrupt request generator 50 which is configured by way of the counter circuit 8/1. The request generator 50 is arranged to produce an interrupt request signal to clock the interrupt routine 42 each time the motor 20 moves by one step. Let us assume that the motor 20 and the encoder 28 are configured so that the encoder 28 provides 10 equally spaced pulses for each motor step. Thus, on initialisation, the counter C/1 of the counter circuit 8/1 is loaded with the number 1, whilst the register A to which it is connected is loaded with the number 10. In use, pulses from the encoder 28 are applied to the input S/1 of the circuit 8/1. The control logic CL/1 is arranged such that the counter C/1 decrements on each rising edge of the encoder signal ES as can be seen in F.1gure 9. When the count of counter C/1 reaches zero, the counter immediately reloads itself from the register A and at the same time provides a step complete signal SC which is applied to the output 0/1 by way of the output control logic OL/1. The rising edge of the step complete signal SC is arranged to trigger the interrupt routine 42 as is also indicated in Figure 9.
As previously discussed, the counter circuits 8/2 and 8/3 shown in Figure 8 are configured to supply the excitation pulses for the motor 20 and their operation is outside of the scope of this application.
The counter circuit 8/4 is configured to determine the speed of the motor 20 and forms part of the data acquisition means 52. The preferred method of determining speed is to determine the encoder pulse periods. For example, if a counter is arranged to count pulses from a fixed frequency source, and the count is set to zero at the beginning of each encoder pulse, the count which is accumulated before the beginning of the next encoder pulse will indicate the encoder pulse period. The reciprocal of this pulse period will be proportional to the average speed during this period.
Using this method, each encoder pulse yields a speed measurement. Rapid changes in speed present no problem because speed measurements become available many times more often than with other measurement methods. In addition, the speed measurements can be made very accurate by making the reference frequency high enough. However, where the actuator is a stepping motor 20, this speed determining method must be used very carefully. Stepping motors are known to give torque pulsations even if they are rotating continuously, and these pulsations repeat once per step, causing variations in the speed during each step. These problems can be avoided for a stepping motor by measuring the duration of each step rather than the duration of each encoder pulse- In this way, the effect of torque pulsations can be averaged out.
The counter circuit 8/4 has been configured to determine the sDeed of the motor 20 by measuring the duration of each step. In this respect, the source input - 8/4 is lef of the circuit Lt unconnected because the counter C/4 is arranged to count pulses from an internal frequency source FS. Preferably, the frequency source provides pulses at a reference frequency of 1MHz. During initialisation, the register A connected to counter C/4 is loaded with zero. The counter circuit 8/4 is arranged to receive on its gate input- G/4 the step complete pulses SC from the counter circuit 8/1. Each time a step complete pulse arrives at the gate input G/4, the contents of the counter C/4 are transferred into the register B, and the counter C/4 resets itself to zero by loading from the register A. Register B retains the count, which represents the duration of the most recent step, until it is read by the interrupt routine. The operation of the counter C/4 and of the interrupt routine 42 remain synchronised because the step complete signal SC controls both the execution of the interrupt routine and the operation of the counter C/4.
We have therefore seen that the signals from the encoder 28 can provide information as to the position of the stepping motor 20, and also information as to its average speed. We have seen from the above, for example from equations (10) and (11), that we also need to ascertain the slope of the speed-position path of the motor in order to determine the compound-slope function.
The simplest way to determine the speed-position slope would be to divide the change in speed of the motor between two adjacent steps, by its step length. However, although the individual speed measurements might be quite accurate, the small errors which are presp-nt can lead to large inaccuracies in slope measurements. It would also require a large amount of processing time to determine the slope for every step length. Accordingly, the slope is determined by dividing the speed- position path into segments, some of which may span several steps. Each segment is made sufficiently long that the error in measuring its slope is kept within acceptable limits. As well as making accurate slope measurements possible, this segmentation of the speed- position path reduces the amount of processing which has to be done by the major-loop program 38. Thus, instead of having to calculate an addition to the estimate of the post-switching path after the completion of each step, the major-loop program only has to make an estimate after each segment is completed.
The interrupt routine 42 is arranged to determine the required length of each segment according to the difference in the step durations at the two ends of the segment. The criterion is very simple: if the maximum fractional error in slope measurements is to be E, then the two step durations on which the calculation is based must differ by at least 2/E counts of the reference frequency. Figure 10b shows part of the speed-position path described by the 1 motor 20 during a move, and illustrates the calculation of the slope of that segment of the speed-position path whose first and last step durations are tm and tn- The segment spans a speed range of ( 1 - -1) t:n tin and its slope is given by C?O-( 1 - 1 de t:n I-M ) / (n-in) (27) As we have seen above, the major-loop program 38 relies on a knowledge of the relationship between the slope of the speed- position path and speed. The discussion of data acquisition has so far described how this path is broken down into segments, how the speeds at the ends of is each segment are measured, and how the slope of each segment is measured. But, it is also necessary to know to what speeds these slope values correspond. Figure 10a shows the speed-time path which corresponds to the speed-position path of Figure 10b. These paths would be followed if the actuator torque and the friction torque are constant. The speed-time path is a straight line (acceleration, e, is constant) whereas the speed-position path is parabolic, (J=@/e) dO i.e. slope is inversely proportional to speed. Figure 10b shows a segment whose ends lie in steps m and n of the move:
the calculated slope value is (--I- - 1) / (n-m) tn C1 We need to find the speed at which the parabola has the 5 same slope.
It can be shown, as Figure 10 suggests, that the speed can be calculated by dividing the distance (n - m) by the time between the half-way instants of szeps m and n, tnat 10 is, by the time calculated as the summation:
So, the slope:
+ t: m 1 '+' CM- 2 + - Cn-2 + C--, + slope = _dO = ( i - 1) / (. P2 -IM) (27) e- C:n c= occurs at a speed given by:
nl speed = (n-m) / (1 E ( 2 -i=m t, + Ci. I)) (28) Of course, the speed-position path will not be exactly parabolic because the actuator torque and friction torque change with speed. But the torques were found to be nearly 25 constant over each segment and so the speed/slope relationship given by equations (27) and (28) give good results.
Each speed/slope measurement may be based upon the durations of two consecutive steps, or may take several steps to complete. This will depend upon how fast the step durations are changing. The interrupt routine 42 reads the duration of each step as socn as the counter circuit 8/4 completes the measurement, and it is the job of the interrupt routine to compile all of the information needed to make each speed/slope measurement to pass it to the data queues Q1, Q2, Q3 only when the compilation is complete. The compilation works as follows. When the first step duration of a segment is read, it is stored by the interrupt routine 42. This is the value of tm, Subsequently, whenever the interrupt routine 42 executes, it increments a step counter register (not illustrated) which will eventually contain (n - m). The routine also adds the most recent step duration, and the step duration which preceded it, to a cumulative step duration register (not shown) which will eventually contain the value n-1 E ( t:, -1, Ci. 1) i=m The most recent step duration is also checked to find out if it is sufficiently different from tM to allow an accurate slope measurement to be made. When a step duration is found to be sufficiently different, it is stored as tn The information pertaining to the segment is now complete in that all of the necessary data is present for the speed and slope of the segment to be calculated according to equations (27) and (28).
However, the interrupt routine 42 does not do the calculations. Because it must execute often (after every step) it does not have time to perform the necessary multiplications and divisions. It therefore passes the data into the relevant queue Q1, Q2 or Q3 in its raw form as shown in Figure 11. It is left to the major-loop program 38 to convert the data in the queues Q1, Q2 and Q3 into speed and slope values.
We have seen how the speed-position path is split up 0 into straight line segments, and how measurements of individual step durations are used to calculate the speeds at the ends of each segment, the slope of each segment, and the speed to which the slope vallue corresponds. The major-loop program 38 makes use oil the speed and slope information in one of two ways, depending upon whether the move being performed is a test move or a working move. During a test move, the major- loop program 38 simply allows the Ql and Q2 data queues to fill with data. Only when the move is complete does it use the data in these queues to calculate the compound-slope function and store it for use during working moves. During a working move, the major-loop program 38 uses the data in the Ql queue to estimate the post-switching path while the system is accelerating. Initially it waits until the trial deceleration is complete, and when the data from the trial deceleration appears in the Q3 queue, it calculates the inertia ratio. Once this calculation has been done, the major-loop program 38 begins the calculations involved in estimating the post-switching path, basing the calculations on the data in the Ql queue.
It will be seen that none of the calculations which have to be made to determine the slope of the speed-position path, the inertia ratio or the stopping distance directly involves the speed values given by equation (28). In fact, speed information is only used to i define relationships between speed and slope, both in calculating the slope of the speed-position path and calculating the compound-slope function. This means that speed values do not need to be explicitly calculated, and that all that is required is a value which uniquely specifies the speed. So, instead of using equation which gives speed as n-1 (n-m) / ( 1 E (ti+ t:i,)) 2 J =rn the following calculation is used:
n-i (t:,+t,.,))1(n-m) (29) which is equal to (2/speed), and therefore yields a value which specifies the speed uniquely. The (2/speed) value is convenient to use for several reasons. Firstly, the factor of is not present. Secondly, (n - m) is sometimes equal to 1, in which case no division operation is necessary. Both of these factors serve to reduce the amount of real-time arithmetic which has to be done. Thirdly, the value of (2/speed) is never smaller than twice the step duration. The reference frequency of lMHz in the counter circuit 8/4 is chosen to give at least 100 counts even for the shortest of steps, so that the (2/speed) value has a magnitude which is never less than 200. Furthermore, the (2/speed) value can be rounded and stored as an integer, because the quantisation involved in rounding the value to an integer introduces a percentage error of only tO.5%. Much less memory is required to store an integer than is needed to store a real number.
As we shall see, a test move yields speed and slope values for each of the segments of the pre- and post-switching paths. Thereafter, compound-slope values are calculated for each of the segment speeds from the pre-switching path. These compound-slope values are stored in a table, alongside the corresponding (2/speed) values, for use during working moves. The table does not, io therefore, contain a compound-slope value for every possible (2/speed) value. So, curing a working move, the major-loop program 38 will find that it has to look uD compound-slope values for speeds which do not appear in the t-able. Some means is therefore needed for interpolating i5 between the stored compcund-slope values.
The interpolation can be conveniently done by assuming that acceleration rates vary linearly with speed between each pair of points. F-Lgure 12 shows how a compound-slope value, CO/ is calculated for a sDeed o, which lies between two speeds, l and 2 for which compound-slope values C 1 and C2, are known. CO Js given bv:
C,= (C 61) 1 (C,6,-clol)) /00 (30) (02- 1) Such a calculation (involving four multiplications, two divisions, three subtractions and one addition) would significantly increase the amount of processing which has to be done when predicting the slCopping distance. However, some parts of equation (30) can be calculated in advance.
In the following equation, which is equation (30) rewritten, the terms in the square brackets do not depend on 60 and so they can be calculated and stored prior to the C202-CI61 + 1 (Cl-C2) 6162 1/00 (31) 02-61 02-01 Just one division and one addition operation is involved in equation (31) giving a large saving in real-time processing.
A further improvement is possible, though. Earlier in this section it was shown that there are advantages in idant-Ifying the speed by calculating (2/speed). Equation (31) can be rearranged in terms of (2/speed):
CO= ( 2) - E - C1 - t-2 _] 00 61 02 is C2 ( 2) -C, ( 2) + [ - T -02 - 1 (32) ( 2) - ( 2) ij -1 " 2 Since (2/speed) is calculated directly as a single value, the interpolation now only involves one multiplication and one addition operation. Equation (32) takes less time to calculate than does equation (31) because multiplication operations generally take less time than divisions.
The compound-slope function is therefore stored as a table of values of the three individual functions of equation (32). Specifically the values of each of the three individual functions are stored in three columns:
Column 1 Column 2 Column 3 ( 2)_C ( 2 2 (Cl - C2) C2 01 1 02 02 2)_( 2 (_1) _ 2) 0 1 62 01 02 When the compound-slope value is required for a particular speed, bo.. the relevant row in the table is identified by searching column 1 for the first (2/speed) value which is smaller than 1 J.0 is ( 2). 60 The values from columns 2 and 3 of that row are then used in equation (33) (which is, in effect, the same as equation (32) to calculate the interpolated compound-slope value.
C(Oc)) = (21speed). (colunL,1 2 value) + (coluir-rl 3 value) (33) Figure 13 shows a table storing the three individual function values. In the example represented by Figure 13, the actual values have been generated for a test move as shown in Figure 14. In this respect, Figure 14a illustrates the speed-position path of a test move where the actuator has been accelerated to maximum speed, and then decelerated to rest. Figure 14b shows the slope values which have been calculated for each segment,-plotted against the appropriate segment speed. The calculated compound-slope values are also shown on Figure 14b. It will be seen that Figure 13 shows the interpolation process being done for a speed of 500 steps per second. This speed corresponds to a (2/speed) value of 4000 counts, and so the third row in the table is used in the interpolation.
This method of storing the compound-slope function also lends itself to extrapolation above the highest and below the lowest speeds for which compound-slope values are known. Extrapolation below the lowest speed (63, say) has to be done on the assumption that the acceleration rates are constant below this speed. To conform to this assumption the first row in the table is set up as shown below. The value of C3 is the compound-slope value which corresponds to 63 Column 1 Column 2 ( 2) C3 0 0, ( 2) 1 63 Column 3 Extrapolation for a speed 60 (lower than 63) then gives:
Cc= ( 2 C31 ( 2) +0 (34) 00 03 Extrapolation above the highest speed (e4, say) for which compound-slope is known, has to be done on the assumption that the acceleration rates are constant above that speed. So the last row of the table is set up as shown below, columns 1 and 3 being set to zero and column 2 being set to C4 / ( 2) 04 where C4 is the compound-slope value which corresponds to 4 Co'I umn 1 0 i5 Column 2 C4 ( 2) 04 Column 3 0 The extrapolated compound-slope value, CO, for a speed 0 greater than e4 will then be calculated as:
Co = ( 2) C 4 /( 2_)..() (35) 00 0 Figure 13 shows the table being used to calculate compound-slope values for speeds of 200 and 3200 steps per second.
Of course, in order to generate the compound-slope values in the first place, interpolation and extrapolation may have to be used to find the post-switching-slope values which correspond to the speeds of the preswitching segments. This interpolation is done in exactly the same way.
We have seen from the above how the data is acquired and subsequently ordered in memory queues Q1, Q2 and Q3 by the interrupt routine 42. We have then looked at how the major-loop program 38 calculates from the test data in the memory queues Q1 and Q2 a table of compound-slope values after a test move. It will be convenient at this point to look at the major-loop program 38 which is illustrated by way of the flow diagrams 15, 16, and 17.
Figure 15 shows the main routine of the major-loop program 38 which commences at a decision block D1 where the program waits to receive a command from the supervisor 46. It will be seen that the routine idles around the decision block D1 until a command is received.
As soon as a command is received, the routine passes to decision block D2 which identifies whether the command is to do a test move or to perform a working move. If the command is to perform a test move the routine moves on to the routine illustrated in Figure 16, whilst the command to perform a working move moves the program to the routine illustrated in Figure 17. At the end of either of these routines, the program returns to the main routine where the function block Fl puts the actuator 20 in a position holding mode. In this respect, it will be appreciated that when the actuator has come to rest at the end of either a test move or a working one, it must hold its final position even though external forces, for example such as gravity, seek to move it out of position. When using a stepping motor, it is sufficient to simply leave one phase of the motor excited. The motor will then exert a restoring force if its position is deflected. Other actuators may require position servo-control to hold their position. In such a case, the servo-control would be used only when the actuator is stationary. The control means for the actuator described herein would take over when a move is required or undertaken.
Figure 16 shows the test move routine. As can be seen, this commences with a function block F2 which causes full accelerating torque to be applied to the actuator 20. The subsequent function block F3 ensures that the current speed of the actuator is recorded together with the speed- position-slope data. in this respect, and as we have seen above, for example with reference to Figure 11, raw data which can be converted into speed and slope values is simply stored in the memory queues Q1 and Q2.
7t decision block D3 continuously asks if the actuator has reached its top speed. Whilst the answer is no, the aczuator is accelerating and speed and slope data is stored in the data queue Q1 only. When the top speed of the actuator is reached the routine moves on to funclb-&.cn block F4 which causes full decelerating torque to be applied to the actuator. Whilst the actuator is undergoing deceleration, function block F5 ensures that further speed and slope data is stored in the data queue Q2. During deceleration a decision block D4 continuously asks if the actuator has come to rest. While the answer is no, the data gathering of function block F5 is continued. When the actuator does come to rest, the test move routine moves on to function block F6 which causes the main-loop program to use the data in the queues Q1 and Q2 to calculate compound-slope values for each segment and to store a compound-slope table as described above. Once this table has been completed the test move routine is completed and the major-loop program returns to the main routine of Figure 15.
Figure 17 shows the working move routine of the major-loop program. As can be seen, this commences with a function block F7 which causes full accelerating torque to be applied to the actuator 20. The subsequent function block F8 ensures that the current speed of the actuator is recorded together with the speed-position-slope data. Again, and as we have seen above, with reference to Figure 11, whilst the actuator is accelerating raw data which can be converted into speed and slope values is simply stored in the memory queue Q1. It will be appreciated that in this respect, the function blocks F7 and F8 operate exactly as the function blocks F2 and F3 of the test move routine.
A decision block D5 continuously monitors the speed of the actuator, asking if the actuator has reached a speed which is high enough to do a trial deceleration. The speed must be sufficiently high to ensure that the actuator does is not come to rest during the triall deceleration. In addition, it is imperative, as is clear from Figure 5a, that the working move be continued for a sufficient time before the trial deceleration is commenced to ensure that slope information in respect of the accelerating path has 20 been obtained. It is also necessary to ensure that the slope of the deceleration path is measured at a speed for which an acceleration path slope is known. Once the decision block D5 finds that the speed of the actuator is high
enough, the routine moves on to function block F9 which causes full decelerating torque to be applied to the actuator. The next function block F10 ensures that the current speed of the actuator is recorded together with the speed-position-slope data. The raw data obtained during this trial deceleration is stored as speed and slope values in the memory queue Q3.
A decision block D6 continually asks if the trial deceleration is complete. For example, the decision block D6 could look to see if the motor has completed a preset number of steps under deceleration. Until the trial deceleration is deemed to be complete, the SDeed and slope data continues to be stored in the data queue Q3. Once the decision block D6 signals that the trial deceleration is complete, a function block F11 is arranged to calculate the inertia ratio from the information in the data queue Q3. A function block F12 then ensures that full accelerating torque is applied again to the actuator.
The next stage in the working move routine sees considerable activity by the major-loop program. Function block F13 ensures that the current speed of the actuator -is recorded together with the speed-position-slope data. Function block F14 takes the oldest raw speed and slope data from the memory queue Q1 and uses this informazion to calculate a contribution to the stopping distance, that is, to the predicted length of the deceleration path. As will be explained below, this calculation is based on the-slope equation (11) described previously. A subsequent function block F15 then adds the calculated contribution, which relates to one segment of the Dre-switching path, to previously calculated contributions to form a cumulative total stopping distance. The cumulative stopping distance is added to the distance covered todate to form a predicted total stopping distance, and a decision block D7 continuously asks if the predicted total stopping distance is greater than or equal to the target distance. While the answer is no the major- loop program continues by way of function blocks F13, F14, and F15 to calculate the total predicted stopping distance. As soon as the answer at decision block D7 is yes, the calculations cease and, by way of a function block F16, full decelerating torque is applied to the actuator. A decision block D8 checks that the actuator is brought to rest- The rest position-of the actuator should be accurately at the target position. The routine of Figure 17 then returns to the main routine of Figure 15.
As is made clear above, the trial deceleration is used to calculate the ratio of the inertia load in a working move to that in a test move. In theory, the trial deceleration need only be very short. However, in practice, torsional oscillations at the onset of deceleration make an accurate measurement of the trial deceleration slope impossible unless the measurement is delayed until the oscillations have died out. Of course, it is difficult to predict the number of steps which ought to be allowed to elapse before making the slope measurement because the rate at which the oscillation decays depends upon the load, which load is unknown at the time of the trial deceleratic.n.
When using a stepping motor, it is therefore preferred to perform the trial deceleration by applying full decelerating torque for one step and then removing the excitation from the motor windings. The excitation is reapplied to the motor windings at the end of the trial deceleration to thereby apply full accelerating torque to the motor. The slope of the deceleration pathis measured over the four steps of free running deceleration.
Performing the trial deceleration with all the motor phases unexcited overcomes the problem of inaccuracies which arise during driven deceleration because of oscillations and the like. However, this also means that the equation (10) given above cannot be used to calculate the inertia ratio. This equation could only be used if the decelerating torque/speed function, TAd(), were the same during trial deceleration as it was during the measurement of C( 2) 0 So a second test move has to be done, in which deceleration takes place with all phases unexcited. This test gives a second compound-slope function, CC (2) 0 which is then used to calculate the inertia ratio:
J11 0 lt,a (36) ( -!e - C16 1 C, d) /Cc j d6 d6.0c, It is this equation (36) which is thus used by the decisicn block F11 in order to calculate the inertia ratio We have seen that function block F14 needs to calculate the stopping distance and this is done, by applying the equation (11) to each of the segments of the pre-switching path. We have already seen, for example in equations (27) and (28) how a slope for each segment of the pre-switching path can be calculated together with the speed at which this slope occurs. Figure 18 shows that each pre-switching segment corresponds to a post- switching segment whose slope is given by the equation (11), that is:
dO = A p 2 (37) 121 ' 112 - -L C( Cle Cffi 17 012 This gives a 1,,= [ (-.L - 1) / (n - m) 1 - -ip- (--L) (38) 29 tn C1 j0 12 Each post-switching segment therefore makes a contribution, Ae, to the stopping distance. From equation (38), A021 is given by ( 1 - 1) tn tin Le =- - (39) 21 ( 1 - 1) t:n t:lm (n-m) SO, __JPC( 2) j 012 Ae21 ( LM- t,) - ( Lin- tl) JP 2 n-M j c M tn 12 (40, It is this equation (40) which will in fact be used by the function block F14 in the particular embodiment described to calculate the contribution to the stopping distance.
We have therefore seen that where the trial deceleration is to be done by applying full decelerating torque for one step and then removing the excitation from the motor windings, a second test move should be done which takes place with the motor unexcited. This second test move provides the compound-slope function which is to be used to estimate the inertia ratio, whilst the first test move, in which the motor is excited during deceleration, provides the compound-slope function with which the stopping distance is predicted.
Mechanical resonances have a detrimental effect on the prediction of the stopping distance, mainly' because they can cause the estimate of the inertia ratio to be inaccurate. One way of overcoming this is to make the mechanical systems as stiff as possible so that best use is made of the control scheme. It would also be possible to measure the inertia ratio in advance and then to tell the major-loop progam the exact value of the inertia ratio. I n this case, the major-loop program would not need information from a trial deceleration, and therefore there would be no need to perform a trial deceleration or a second test move.
The control scheme described above, and the apparatus described which utilises this control scheme is able to perform point-to-point positioning operations of any distance in a nearly time-optimal way. The apparatus has the advantage that the point at which deceleration begins is adjusted to take account not only of different target distances, but also of different loads. We have seen that the apparatus can learn all that it needs to know about the characteristics of the motor by doing at most two test moves in which the motor is run up to full speed and then decelerated to rest. In one test run the deceleration is driven, whilst in the second test run the deceleration is with the motor unexcited. No other setting up is necessary.
The new apparatus described above is not fully time-optimal because it wastes some time by doing a trial deceleration. However, it is still capable of performing the move faster than both an open loop linear-ramp scheme and a simple closed-loop scheme. Perhaps more importantly, the new apparatus can cope with any load conditions whilst also giving a speed improvement and not requiring any lengthy setting up procedure.
The apparatus described above is entirely digital in nature. The apparatus gains all the necessary information about. the speed and position of the mechanical system from an incremental shaft encoder, and no analogue sensor is needed. it will therefore be appreciated that any position sensor wh.ich provides incremental position information could be used. Research is being done to develop techniques by which the position of a stepping motor may be sensed without using a shaft-mounted sensor. Combining the apparatus described above with this technique would create a very attractive system, using only digital electronics and without any mechanical sensor. Such a system would be reliable, require no adjustment, and would not drift out of adjustment.
It will be appreciated that other variations and modifications to the apparatus as described above may be made within the scope of this invention.
1 1

Claims (32)

1. A method of controlling an actuator system having an actuator, the method comprising the steps of performing at least one test move in which the state of the actuator is changed, determining specified characteristics for said system from the or each test move, said specified characteristics comprising the slope of its transition -ly performing one or more working moves path, and subsequent in which the actuator changes from a first condition to a predetermined end condition, the actuator being controlled W change to said predetermined end condition along a switching curve, wherein, during a working move, switch-ing of the actuator is controlled in dependence upon the previously determined specified characteristics of said system.
2. A method of using a positioning system having an actuator for moving a load, the method comprising the s-e-ns of performing at least one test move in which the actuato-is accelerated and then decelerated, determining spec-J--;:-Je-, characteristics for said positioning system from the or each test move, and subsequently performing one or more working moves in which a load is moved by said actuator from a first position to a predetermined end position, the actuator being controlled to move said load to said predetermined end position by accelerating and then decelerating, wherein, during a working move, the actuator is controlled to switch from acceleration to deceleration in dependence upon the previously determined specified characteristics of said system.
3. A method of using a positioning system having an actuator for moving a load, the method comprising the steps i5 of performing at least one test move in which the actuator is accelerated and then decelerated, determining specified characteristics for said positioning system from the or each test move, and subsequently performing one or more working moves in which a load is moved by said actuator from a first position to a predetermined end position, the actuator being controlled to move said load to said predetermined end position by accelerating and then decelerating, wherein, during a working move, a prediction as to the deceleration path to be described by the actuator is made from said determined specified characteristics and from the current performance of the positioning system, wherein the current performance of the positioning system comprises information relating to the slope of the actual acceleration path of the actuator, and wherein when said actual acceleration path intercepts the predicted deceleration path, the actuator is controlled to switch from acceleration to deceleration.
4. A method as claimed in Claim 2 or 3, wherein a first. test move comprises running the actuator up to full speed and then decelerating the actuator to rest.
5. A method as claimed in Claim 4, wherein said first test move is performed with an unloaded actuator.
6. A method as claimed in Claim 4, wherein said first test move is performed with the actuator moving a high inertia, low friction load.
7. A method as claimed in any of Claims 2 to 6, wherein during the or each test move, information relating to the speed of the actuator and to the slope of its speed-position path is recorded.
8. A method as claimed in any of Claims 2 to 7, wherein during each working move, information relating to the speed of the actuator and to the slope of its speed-position path is recorded, and a continually updated prediction as to the deceleration path to be described by the actuator is made from said determined specified characteristics and from said speed and slope information.
9. A method as claimed in Claim 7 or 8, wherein a compound-slope function is determined, the compound-slope function being the difference, at a common speed, between the slope of the speed-posiLion path of the actuator during acceleration and' the slope of the speed-position path of the actuator during deceleration.
1C. A method as claimed in any of Claims 2 to 9, further comprising including a short trial deceleration in a working move whereby an inertia ratio may be determined.
11. A method as claimed in Claim 10, wherein, in said trial deceleration, full accelerating torque is applied to said actuator at the commencement of a working move, and information relating to the speed of the actuator and the slope of its speed-position path is recorded, subsequently, full decelerating torque is applied to the actuator for a short predetermined period, and during this deceleration information about speed and the slope of the speed-position path of the actuator is similarly recorded, and wherein at the end of the trial deceleration, full accelerating torque is again applied to the actuator, and an inertia ratio is calculated.
12. A method as claimed in Claim 10 or 11, wherein said inertia ratio is calculated by determining the difference in slope between the acceleration and deceleration paths, at a common speed, divided by a function dependent upon the slope of the speed-position path of the actuator.
13. A method as claimed in any of Claims 2 to 12, wherein information about the speed is obtained from an encoder coupled to the actuator and arranged to generate a train of pulses representative of the speed and position of said 5 actuator.
14. A method as claimed in any of Claims 2 to 13, wherein the acceleration path described by the actuator is divided into a number of segments, and for each segment a contribution to the stopping distance, that is, to the predicted length of the deceleration path, is calculated and is added to previously calculated contributions to form a cumulative stopping distance.
15. A method as claimed in Claim 14, wherein the cumulative stopping distance formed is added to the distance actually covered by the actuator to form a total predicted stopping distance which is continually compared with the target distance, and wherein when the total predicted stopping distance (cumulative stopping distance plus actual distance covered) is greater than or equal to the target distance, full decelerating torque is applied to the actuator.
16. Apparatus for controlling an actuator system comprising an actuator arranged to change from a first condition to a predetermined end condition, and control means for said actuator, wherein said control means comprises data handling means for obtaining and storing information relating to the transition of the actuator during its change, and drive means for selectively changing the condition of the actuator, and wherein said control means further comprises processing means arranged to predict from the transition information a switching curve for said actuator and to cause said drive means to switch the actuator to undergo a required transition.
17. Apparatus for positioning a load comprising a positioning system having an actuator for moving a load from a first position to a predetermined end position, and control means for said actuator, wherein said control means comprises data handling means for obtaining and storing information relating to the speed and position of the actuator during a move, and drive means for selectively accelerating and decelerating said actuator, and wherein said control means further comprises processing means arranged to predict from the speed and position information a deceleration path for said actuator and to cause said drive means to decelerate said actuator when said pred-;c.,'-e,-' deceleration path intercepts an actual accelerat-Jon path of said actuator.
18. Apparatus as claimed in Claim 17, wherein said processing means is arranged to determine information relating to the slope of the actuator's speed-position path from said speed and position information.
19. Apparatus as claimed in Claim 17 or 18, wherein the drive means for said actuator comprises a minor-loop control circuit comprising a controller arranged to accelerate or decelerate said actuator, and sensor means arranged to provide speed and position information to said controller.
20. Apparatus as claimed in Claim 19, wherein said control means comprises a major-loop control circuit comprising said data handling means and said processing means, wherein the data handling means of the major-loop control circuit is arranged to receive position and speed information from said sensor means and to provide the information to said processing means,and wherein said processing means is arranged to control said controller of the actuator.
1?
21. Apparatus as claimed in Claim 19 or 20, wherein the sensor means comprises an encoder coupled to the actuator and arranged to generate a train of pulses representative of the speed and position of the actuator.
22. Apparatus as claimed in Claim 21, wherein said data handling means comprises an interrupt request generator arranged to receive the train of pulses from said encoder and to generate an interrupt request signal every time a predetermined number of said encoder pulses as been received.
13. Apparatus as claimed in Claim 21 or 22, wherein said data handling means comprises speed determining means comprising a counter arranged to receive pulses from a reference frequency source, the counter being connected to a first register loaded with zero and to a second register, and wherein encoder pulses are applied to control logic coupled to said counter and arranged to transfer the contents of the counter to the second register upon the arrival of an encoder pulse and at the same time to load the counter with zero from the first register.
24. A method of acquiring information about the speed and position of an actuator, the method comprising the steps of generating a train of pulses such that the frequency of the pulses is representative of the speed of the actuator and the number of the pulses is representative of its position, determining speed information from said pulses, generating an interrupt request signal when a predetermined number of said pulses have been generated to provide position information, and causing the interrupt request signal to clock an interrupt routine which is arranged upon each appearance of an interrupt request signal to store the speed and position information in data queues.
25. A method of determining the slope of the speed-position path of an actuator, comprising the steps of generating a train of pulses such that the number of pulses is representative of the position of the actuator, counting the number of pulses which are generated and generating a step complete signal after each appearance of a predetermined number of said pulses, counting the number of step complete pulses, and further comprising determining the duration of each step from said pulses, and comparing the most recent step duration with that of a preceding step duration, and when the two compared step durations are sufficiently different, calculating the slope of the speed-position path by dividing the speed information from n - m steps by n - m.
26. A method as claimed in Claim 24 or 25, wherein speed information and/or the duration of each step is determined by counting the number of reference frequency pulses generated between successive interrupt request signals o-- step complete signals.
27. A method of using a positioning system having an actuator for moving a load, comprising controlling the actuator to perform a move in dependence upon its speed and position, wherein information is acquired or determined as claimed in any of Claims 24 to 26.
28. A method as claimed in Claim 27, further comprising a method as claimed in any of Claims 2 to 15.
29. Apparatus for controlling an actuator system substantially as hereinbefore described with reference to the accompanying drawings.
30. Apparatus for positioning a load substantially as hereinbefore described with reference to the accompanying drawings.
31. A method of controlling an actuator system substantially as hereinbefore described with reference to the accompanying drawings.
32. A method of using a positioning system substantially as hereinbefore described with reference to the accompanying drawings.
GB9326193A 1990-02-22 1993-12-22 Improvements in or relating to actuator control Expired - Fee Related GB2273176B (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
GB9326193A GB2273176B (en) 1990-02-22 1993-12-22 Improvements in or relating to actuator control

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
GB909004006A GB9004006D0 (en) 1990-02-22 1990-02-22 Point-to-point positioning of loads
GB9103793A GB2242038B (en) 1990-02-22 1991-02-22 Improvements in or relating to actuator control
GB9326193A GB2273176B (en) 1990-02-22 1993-12-22 Improvements in or relating to actuator control

Publications (3)

Publication Number Publication Date
GB9326193D0 GB9326193D0 (en) 1994-02-23
GB2273176A true GB2273176A (en) 1994-06-08
GB2273176B GB2273176B (en) 1994-12-14

Family

ID=26296708

Family Applications (2)

Application Number Title Priority Date Filing Date
GB9326194A Expired - Fee Related GB2273177B (en) 1990-02-22 1993-12-22 Improvements in or relating to actuator control
GB9326193A Expired - Fee Related GB2273176B (en) 1990-02-22 1993-12-22 Improvements in or relating to actuator control

Family Applications Before (1)

Application Number Title Priority Date Filing Date
GB9326194A Expired - Fee Related GB2273177B (en) 1990-02-22 1993-12-22 Improvements in or relating to actuator control

Country Status (1)

Country Link
GB (2) GB2273177B (en)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19617107A1 (en) * 1996-04-19 1997-10-23 Mannesmann Ag Method and device for positioning a device
JP3844903B2 (en) * 1999-03-10 2006-11-15 株式会社日本コンラックス Bill processing apparatus and control method thereof
JP3658339B2 (en) * 2001-05-17 2005-06-08 キヤノン株式会社 Method and apparatus for motor control
JP3658340B2 (en) * 2001-05-17 2005-06-08 キヤノン株式会社 Method and apparatus for motor control
JP5834628B2 (en) * 2011-08-29 2015-12-24 いすゞ自動車株式会社 Actuator control method and actuator control apparatus

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1549439A (en) * 1976-07-06 1979-08-08 Data Recording Instr Co Magnetic disc storage devices
EP0042960A1 (en) * 1980-06-30 1982-01-06 International Business Machines Corporation Method and apparatus for calibrating a robot
GB2125579A (en) * 1982-07-14 1984-03-07 Kuka Schweissanlagen & Roboter A method of braking and stopping a machine part
EP0148138A1 (en) * 1983-11-17 1985-07-10 Mydata AB Method and apparatus for calibrating a positioning system
GB2188754A (en) * 1986-04-04 1987-10-07 Westinghouse Electric Corp A method for identifying kinematic parameters of robotic manipulators
EP0294918A2 (en) * 1987-06-12 1988-12-14 International Control Automation Finance S.A. Electro-hydraulic servo systems

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4305481A (en) * 1979-12-27 1981-12-15 Otis Elevator Company Elevator door motion modification
JPS58151885A (en) * 1982-03-03 1983-09-09 Hitachi Ltd Control method for position of motor
KR910008882B1 (en) * 1982-04-27 1991-10-24 가부시기가이샤 히다찌세이사꾸쇼 Method and device for stopping vehicle at prodetemined position
US4506321A (en) * 1982-09-08 1985-03-19 Imec Corporation Motion control system with adaptive deceleration
JPS59122400A (en) * 1982-12-24 1984-07-14 Fujitsu Ltd Control system for stepping motor

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB1549439A (en) * 1976-07-06 1979-08-08 Data Recording Instr Co Magnetic disc storage devices
EP0042960A1 (en) * 1980-06-30 1982-01-06 International Business Machines Corporation Method and apparatus for calibrating a robot
GB2125579A (en) * 1982-07-14 1984-03-07 Kuka Schweissanlagen & Roboter A method of braking and stopping a machine part
US4606489A (en) * 1982-07-14 1986-08-19 Kuka Schweissanlagen & Roboter Gmbh Process and apparatus for controlledly decelerating a mobile tool or workpiece
EP0148138A1 (en) * 1983-11-17 1985-07-10 Mydata AB Method and apparatus for calibrating a positioning system
GB2188754A (en) * 1986-04-04 1987-10-07 Westinghouse Electric Corp A method for identifying kinematic parameters of robotic manipulators
EP0294918A2 (en) * 1987-06-12 1988-12-14 International Control Automation Finance S.A. Electro-hydraulic servo systems

Also Published As

Publication number Publication date
GB2273176B (en) 1994-12-14
GB2273177B (en) 1994-12-14
GB9326194D0 (en) 1994-02-23
GB2273177A (en) 1994-06-08
GB9326193D0 (en) 1994-02-23

Similar Documents

Publication Publication Date Title
US5721546A (en) Encoder unit for providing to a servo motor control unit position data which is adjusted to account for processing delays
JP2002304219A (en) Motor controller and mechanism characteristic measuring method
JP3296527B2 (en) Motor speed control device
GB2273176A (en) Actuator position control.
JP3049946B2 (en) Load inertia measuring device
EP0587897A1 (en) Prediction control apparatus
JP3286854B2 (en) Motor drive device
GB2242038A (en) Movement control.
JPH06225565A (en) Method of measuring load constant of motor drive system
JP3551345B2 (en) Synchronous control device
JPH0651803A (en) Device and method for discrete time type ac motor control
JPH0349589A (en) Discrete-time ac motor control apparatus
JPH11272335A (en) Positioning controlling method and device therefor
JPH05224702A (en) Bang-bang controller
KR102551659B1 (en) Method for estimating parameter of mechanical model for servo motor and system for controlling motor with Kalman filter using the same
JPS61193204A (en) Industrial robot
JP2000020104A (en) Method and device for speed control gain adjustment
JP3864291B2 (en) Multi-axis controller
JP2000112528A (en) Method for controlling position and speed of electric motor
JP3357530B2 (en) Stop position control method and device
JP2002049407A (en) Motor controller
JP2903717B2 (en) Motor speed control device
JP3352235B2 (en) Slider drive control method and device
JPH06261572A (en) Torque control apparatus of torque supply machine
JP3906480B2 (en) Positioning control device using internal model of disturbance

Legal Events

Date Code Title Description
PCNP Patent ceased through non-payment of renewal fee

Effective date: 20000222