GB2581522A - Control of step-based systems - Google Patents
Control of step-based systems Download PDFInfo
- Publication number
- GB2581522A GB2581522A GB1902455.3A GB201902455A GB2581522A GB 2581522 A GB2581522 A GB 2581522A GB 201902455 A GB201902455 A GB 201902455A GB 2581522 A GB2581522 A GB 2581522A
- Authority
- GB
- United Kingdom
- Prior art keywords
- motor
- speed
- controller
- actuator
- waypoint
- 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
Links
- 230000033001 locomotion Effects 0.000 claims abstract description 50
- 230000008859 change Effects 0.000 claims abstract description 25
- 238000000034 method Methods 0.000 claims abstract description 23
- 230000008569 process Effects 0.000 claims abstract description 16
- 230000001133 acceleration Effects 0.000 claims description 44
- 239000000758 substrate Substances 0.000 abstract description 4
- 102100022094 Acid-sensing ion channel 2 Human genes 0.000 description 23
- 101000901079 Homo sapiens Acid-sensing ion channel 2 Proteins 0.000 description 23
- QLDHWVVRQCGZLE-UHFFFAOYSA-N acetyl cyanide Chemical compound CC(=O)C#N QLDHWVVRQCGZLE-UHFFFAOYSA-N 0.000 description 23
- 238000004364 calculation method Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000007423 decrease Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000001816 cooling Methods 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000010438 heat treatment Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 235000021485 packed food Nutrition 0.000 description 1
- 238000013139 quantization Methods 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000005070 sampling Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/12—Control or stabilisation of current
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/04—Arrangements for starting
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/18—Numerical 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/19—Numerical 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/40—Open loop systems, e.g. using stepping motor
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P23/00—Arrangements or methods for the control of AC motors characterised by a control method other than vector control
- H02P23/0077—Characterised by the use of a particular software algorithm
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/14—Arrangements for controlling speed or speed and torque
-
- H—ELECTRICITY
- H02—GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
- H02P—CONTROL OR REGULATION OF ELECTRIC MOTORS, ELECTRIC GENERATORS OR DYNAMO-ELECTRIC CONVERTERS; CONTROLLING TRANSFORMERS, REACTORS OR CHOKE COILS
- H02P8/00—Arrangements for controlling dynamo-electric motors rotating step by step
- H02P8/22—Control of step size; Intermediate stepping, e.g. microstepping
Landscapes
- Engineering & Computer Science (AREA)
- Power Engineering (AREA)
- Human Computer Interaction (AREA)
- Manufacturing & Machinery (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Automation & Control Theory (AREA)
- Control Of Stepping Motors (AREA)
- Character Spaces And Line Spaces In Printers (AREA)
Abstract
A control system for a of step-based system, such as stepper motor, where a table of actuator values is stored. Minimum to maximum actuator values for a controlled parameter are stored so that the change of state of the system from one state of control to the next is defined by differences in the controlled parameter between adjacent entries of the table. A stepper motor control system comprises a storage location for a table of values relating achievable speeds to positions for the motor, starting from stationary, where the positions are adjacent steps in the motor movement (e.g. rotation). A controller ascertains the position of the motor and receives or generates data concerning a waypoint, being a desired future position and speed for the motor. The controller raises, lowers or maintains the speed of the motor at each step by reference to the table, such that when the motor reaches the desired position it is moving (e.g. rotating) at the desired speed. The stepper motor system may be used to transport articles, such as labels and other substrates, on a web during printing processes. The step-based system may be a heater that applies energy in quantised amounts.
Description
I
Control of sT.ep-based systems The present invention relates to the control of systems that can be represented as acting on quantised impulses, for instance stepper motors. Such motors are in general easier to control than servo motors and can be used to transport articles, such as labels and other substrates on a web during printing processes and the like. Another such system could be a heater that applies energy in quantised amounts.
Background
A stepper motor is configured so that it can only make movements of one quantization interval -called a step. A step is the distance (rotary or linear) made by the motor when it completes its quantised motion interval. Thus, if a motor makes 200 steps per revolution, a single step will move the motor 1/200 of a full revolution, or 1.8°. A step in this context is not necessarily the same as a stepper motor's unpowered number of mechanically stable positions, but instead describes simply the controlled motor's stable position increment size, and is essentially arbitrary.
Figure 1 shows a typical stepper motor construction with the central rotor 3, which has six posts 4, aligned with a pair of poles A and A' of the stator 5, which has eight poles. This is a mechanically and magnetically stable position when the motor is unpowered. Similar positions exist at B/B', C/C' and D/D' -any is possible and depends only on where the rotor was when power was removed. When power is applied it is possible to balance the rotor between any two pairs of adjacent coils -for example A/A' and D/D'. By varying the power in the two pairs of coils in a quantised manner the rotor can be advanced in steps between the first coil pair and the second coil pair. This is known a microstepping within the stepper motor literature, but in this document this change of position is referred to generally as a step, or quantisation interval.
Typically stepper motors are used in applications where target positions have to be met, sometimes with coupled speeds at those positions, and these systems are used without feedback (using servomotors with feedback requires complex and expensive control). Associated microprocessors or similar control logic predetermines the timings used for each step of the movement to create a series of pre-determined positions and times for the individual steps of the movement profile. This requires the controlling logic to receive the motion targets and to convert these to a position/time sequence of steps before the motion begins. The time intervals between each step are either determined from a list of times, or are calculated piecemeal. The calculation of the motion profile requires knowledge of the acceleration profile and is difficult to customize quickly for different applications, because reusing a motor in different applications requires "tuning" or optimisation to each application.
Stepper motors used in open-loop controls are considered quantized-torque devices. Provided that the load torque is less than the motor's torque output, then the motor will make a step. If the load is excessive, then the motor will lose synchronization with the controller and will typically stall. That is, the motor will be unable to position the load within the time expected for the motor's torque and the load's actual position will be unknown. In a moving system this typically causes a "stall" of the rotor which then stops moving in synchronisation with the driving magnetic force. Successful use of stepper motors in open-loop systems therefore requires appropriate selection of the acceleration profile and motor/load inertia to ensure reliable operation.
Present stepper motor systems generally use a series of motion equations to calculate the number and timing of the steps that a motor must make to position its load. Typically a simple constant-acceleration or fixed-speed-increment model is used to change speed, as more complex control is not possible in the time available for the calculation to be performed. The determination of the acceleration is difficult, and although some systems exist which attempt to measure and then approximate a suitable value, the algorithm used by the positioning system fixes the type of acceleration that can be used. For example, a fixed constant acceleration algorithm cannot be used with a so-called "S-curve" acceleration model where the accelerations at start and end of the motion are different.
A system that calculates the required number of steps and the step intervals before the motion starts must also accommodate the delay required for the calculation to take place. This delay reduces the repetition frequency of the movement and therefore limits the maximum throughput of the control system.
Systems that have dynamic positioning targets (where the target position changes from cycle to cycle) are particularly badly affected, because it is not possible to calculate once and then repeat a motion profile with an ideal profile. Instead, systems of this kind are typically designed with a movement to a "holding safe position/speed" where the controller waits until the new dynamic position is known, and then the motion can be completed. This operation at a safe, below-optimum speed/position typically sets a minimum cycle time that is too long for much of the motion, and thus reduces throughput by comparison to an ideally calculated motion profile.
Stepper motors can deliver a known torque at a known speed. Acceleration and deceleration of a load require force to be delivered by the motor (i.e. torque). (Theoretically deceleration could be performed by a brake, but this risks losing synchronisation.) As the torque of all stepper motors decreases with increasing rotational speed (because the time available to magnetize the core is reduced), the acceleration force available is a function of the motor's current speed, the motor's torque curve and the system dynamic loading. When the load on the motor, its speed of operation, the motor type, or the load's inertia (fixed or dynamic) changes, it is usually necessary to determine a different acceleration capability and top speed for the motor/load system, to tailor its ability uniquely to the function required. It can be difficult to describe the torque in a single equation and therefore one algorithm does not suit all applications.
Calculated step times, when timed by microprocessors, contain timing jitter. This jitter spreads the energy of the motor around the ideal acceleration profile (due to over-or under-accelerating the motor from the ideal speed profile). At best this requires the acceleration used with the speed profile to be reduced to allow for wasted power, and at worst 10 stalling (synchronization loss) occurs.
The invention aims to solve or at least reduce these problems.
According to the invention in one aspect there is provided a control system for a stepper motor driving a load, 15 comprising: -a memory for storing a table of values relating achievable speeds to positions for the motor, starting from stationary, where the positions are adjacent steps in the motor movement (e.g. rotation); and -a controller configured to ascertain the position of the motor and to receive or generate data concerning a waypoint, being a desired future position and speed for the motor; -wherein the controller is further configured to raise, lower or maintain the speed of the motor at each step by reference to the table, so that when the motor reaches the desired position it is moving/rotating at the desired speed.
In general the table is previously determined on an empirical basis, though it could be calculated from the motor specification and known load details. In one possible type of method the table is previously determined by measurement (sampling) of an alternative system -for example capturing what a servomotor system did to the load and then replicating 35 it using a stepper motor.
This table is independent of the algorithm used by the controller to control the motor, and for a different motor or load all that is needed is to store a different table in the control system. The system can thus run the motor in the shortest time between waypoints, without the algorithm knowing the specifics of the system.
The invention is also concerned with a method of controlling a stepper motor, in which a table is provided of achievable position values against speed values for the motor, and the motor is controlled to a desired waypoint, being a desired position and speed for the motor, by calculating a series of steps by reference to the table.
The invention also relates to a stepper motor in combination with a control system as aforesaid, and further with the generation of tables for use in the above methods and apparatuses by measuring the achievable acceleration of the motor at each step under a given load.
More generally, the invention relates to ways of controlling a systems advancing in steps under a series of impulses ("quanta"), where the change brought about by each impulse at each step is ascertained in advance and stored in a table, either empirically or by calculation, and the system is controlled from waypoint to waypoint by a controller which combines the steps necessary to reach the next waypoint.
In embodiments of the invention, a projection of the required speed and positioning movement is made into a coordinate system containing only positions and a so-called "Ramp Table" of step-to-step times achievable by the given combination of motor and load. The speed is then given by the inverse of the step-to-step time. The co-ordinate system of speed index and position is named "Step Space" and reflects the property of stepper motors that all speeds, accelerations and positions are quantized. Each point in Step Space is a position and speed achievable by the motor/load combination.
Speed changes are ruled as being one index change per step only, and thus the difference in speed between adjacent speed indexes is the acceleration of the system over one step distance (a = (v2_,a2)/2), and is fully and simply set by the times stored in the ramp table. It does not have to be constant and can represent any achievable speed change profile that is repeatable by the system). This is a very big advantage, since the same algorithm, without modification, is used with a wide variety of acceleration profiles.
The ramp table quantises both the achievable acceleration between speed steps and the maximum achievable system (motor) speed. In principle any acceleration that can be quantised either by measurement or calculation can be stored in the ramp table. In a traditional system the timing of braking and acceleration phases is determined by solving motion equations for the required trajectory. This typically involves multiplication, division and square root determinations which are time and code size intensive to implement and solve. In contrast, the invention disclosed reduces the problem to a subtraction and comparison operation with a control output of increment, decrement or do nothing. This is very fast and simple to implement and can be performed using Boolean logic blocks -which could be instantiated in hardware (discrete logic). Although the use of discrete logic is not often used given the low cost of current microprocessors, in ultralow power systems -such as implantable electronics -this implementation could be advantageous.
The algorithm allows the complete system motion to be determined in real time as the motion progresses, using simple Boolean logic and cheap processors. This algorithm is fully independent of the actual step-to-step times stored in the ramp table, and therefore the actual acceleration profile in use. One algorithm is written to handle multiple load and motor profiles both at author time and crucially for future, unknown combinations. That is, the algorithm can be written without knowledge of the mechanical load and achievable accelerations within the system; the only limitation is how much space is allocated for the table.
The ramp table contains a sampled version of an acceleration scheme which the motor and load can follow reliably. By creating suitable schemes for each motor/load combination, a single algorithm can control many different loads ideally. The table can represent accelerations which are non-linear and could be modified to reduce torque requirements around system resonances. A single equation defining the load acceleration is not required. For successful motor control the ramp table simply needs to contain values which the motor can work reliably with. In the simplest embodiment of the system the acceleration and deceleration values are identical; however, an extension is possible where a second table can define deceleration as a multidimensional array.
The invention in some embodiments removes the need to determine the entire profile before the motion starts, and replaces this with a calculation for the next step only, made in the previous step, thus reducing the net cycle time and increasing throughput, without the need of a complex, fast microprocessor.
The algorithm is very simple to implement in low-cost systems, but lends itself to controlling hardware-timed stepto-step times in the motor controller. The use of hardware timers to control step-to-step timing reduces jitter in timing compared to microprocessor-controlled times. This reduces energy that is smeared around the ideal acceleration curve and therefore allows more efficient and hence aggressive (i.e. faster) acceleration at lower stall risk.
The implementation of the control algorithm within a controller, power stage and AC/DC power supply configuration makes it possible to create a single 'Intelligent Stepper Drive" (TSD) that can be added to a system to control a single motor with ideal motor control and low cost. Hardware triggers from one controller to another allow a complex motion task to be handled by several intelligent ISDs which each control a single axis. Such motions are typical of industrial printers, for instance. The movement of the web can be handled independently of the rendering process that generates the printed image, and does not need to wait for it. Examples For a better understanding of the invention, embodiments will now be described with reference to the attached drawings, 5 in which: Figure 1 is a diagram of a typical stepper motor; Figure 2 is a graph of the step-space model of the travel of a stepper motor; Figures 3 and 4 are graphs of alternative travel paths of a motor; Figure 5 is a diagram of an intelligent stepper controller system in an industrial printer; Figure 6 shows a typical printing process, being an example of the invention; and Figure 7 is a flow diagram of a typical control process.
A stepper motor is an example of a system that proceeds from point Pi, speed Si to point P2, speed S2 ("waypoints") by a series of steps, and is an ideal subject for the invention. In operation of a stepper motor such as is shown in Figure 1, the motor movement is mapped into "Step Space" -a version of the movement requirements in space in terms of the stepper motor's achievable positions and speed changes. A series of waypoints is defined for the motor to travel to. The waypoints are defined as the position of the motor and the 25 step speed at that position of its inverse (time between steps).
Speed is defined as the index in a table of quantized speeds that are achievable by acceleration of the given motor/load combination. The difference between adjacent table 30 entries represents the acceleration delivered by the motor be the speed intervals. This table is known as the "Ramp Table", and is a characteristic of the motor/load combination and so is predetermined as an application-specific setting. See Table 1 for a section of a typical table.
Speed Index Step Time (i's) 0 358 1 148 2 114 3 96 4 85 76 6 70 7 65 8 61 9 58 55 11 53 12 51 13 49 14 47 45 16 44 17 43 18 42 Table 1: Example Ramp Table Snippet The Ramp Table is a zero-indexed array of the times taken to complete a distance of one step, where the position of the motor is measured in steps. The steps are probably equidistant (e.g. the 1.8° rotation of a typical stepper motor), but need not be. As speed -distance/time, the ramp table values represent (1/speed). As an example, at a speed index of 5, it takes 76 ps to reach speed index 6. It can be seen that at higher speeds the difference in step times is small. In a real-life table there might be, say, 1024 entries and a maximum speed of 600 mm/s.
Note that the actual speeds in the table do not need to follow a simple linear equation and in this example simply reflect a sampled version of an achievable acceleration profile for the motor and load. It is possible for times to be repeated at points where resolution limits cannot distinguish between small speed changes -or to keep a motor running at the same speed (for example to allow slack take-up or accommodation at the start of a movement).
If the speed at one index point 1 is V(1) and the speed at index point 2 is V(2), then the acceleration between indices, A, and the distance, S, covered between the two speeds are related by the standard motion formula: V (1)2 = V(2)2 + 2A5 As S = 1 in Step Space, then this can be rewritten as V(1)2 =V(2)2 + 2A Arid this can be re-arranged as A-v(1)2 -v(2)2 Each change of index in the table takes one step of 10 distance to complete and produces a single step change of speed.
Provided that the ramp table is loaded with speeds between which the motor/load is capable of stepping (i.e. the acceleration between steps is within the torque capability of the motor), then the control of the motor's speed and position can be achieved by iterating up and down the index of the ramp table. By definition, if the index increases, the motor accelerates and the speed increases, and if the index decreases the motor decelerates and the speed decreases. If the index remains the same then the motor is defined to be coasting, or stopped (no acceleration).
Because "Step Space" is simply a quantized version of the position, speed and hence acceleration of the motor/load combination, it can be used for the definition of the travel of any stepper-motor-based speed/position system which is not stalled, or more generally any quantised system where a series of quantum changes describes the change from one physical state to another.
Because the distance to change speed is one step, then the minimum distance required to change between any two speeds defined by the table is the difference in the table index values. Provided that the index of the current speed is known, the distance to the next speed is also known. By summing the times stored in each index entry between the current point and the waypoint, the time to complete any movement made by transitioning speed values in the table, or coasting for a known number of steps, is also known.
The combination of the points above allows a simple Boolean logic system to determine a series of step times to control the acceleration of the motor from any speed to another speed along an achievable speed profile based only on the current speed index, the target speed index and the distance from the current position to the demand position. If the motion is not possible, an error can be generated, or a speed or position priority can be adopted to replace the target with an achievable one.
Simple Control Algorithm As noted above, the speed control algorithm between any two adjacent position/speed way points defines three states only: Accelerate: the next speed is one index faster Brake: the next speed is one index slower Coast: the next speed is the same as the current speed The ramp table is defined so that each entry is the time to the next step. The 0th index entry is the slowest speed (stationary) and the time before the first step after the system starts, or before the system stops, in the case of the first or last steps. The final index is the fastest speed possible for the motor/load combination. For an acceleration the distance to increase the speed by one index value is one step, and the time to to make the movement is the time stored against the higher index value.
The ramp table times describe a piecewise acceleration profile of any overall shape which can successfully accelerate the motor between lowest and highest possible speeds so that 35 it does not stall when making any transition between adjacent speeds stored in the table. It is completely arbitrary and requires no change of the control algorithm to use different acceleration profiles, making tuning very simple.
If the difference, i.e. the number of steps, between the 5 current speed index and the required speed index is equal to or greater than the difference between the current position and the waypoint position, then it is possible to accelerate (or decelerate) the motor one or more times to meet the required speed index before the waypoint is reached. If the 10 distance between current and required positions is less than the difference in the speed indexes then it is impossible to meet the requirement and either the speed target can be met later, or an error can be generated.
If the distance to the waypoint's target speed is greater than the difference between the starting speed index and the target speed index then it may be desirable to exceed the target speed and then decelerate at an appropriate time back to the demand speed. This process is named "slewing" and can be beneficial in reducing the time to reach a target speed and destination, as is usually desirable. In the described system, slewing happens automatically in the control algorithm without complex calculation. The maximum slew speed is simply set by declaring the maximum index that the controller may use in the ramp table. If the maximum index is set at the demand speed then slewing cannot occur. Similarly if the maximum index value is set below the demand speed then the target speed will not be reached and will be superseded by the lower "maximum speed" setting.
In simple implementations the acceleration and deceleration profiles are identical, so one step of acceleration requires one step of deceleration to return to the same speed and this entire process takes two steps. The control algorithm controls the motor speed from a trigger event to achieve a new speed and position automatically.
Complex speed and position sequences are achievable through lists of waypoints loaded into the controller. As each waypoint is reached the next is loaded. In addition, a safety stop counter is integrated to bring the motion to stationary in the event of further necessary inputs being omitted due to failures or errors in configuration.
The motor speed to achieve waypoint positioning can be 5 simply determined by considering the speed error (difference between demanded and present speed) and the position error (difference between present and demand position), as in the following example in Table 2.
Position Speed speed Error Poe Error Mode 0 0 -5 42 COAST 1 1 A 41 ACCN 2 2 -3 40 ACCN 3 3 -2 39 ACCN 4 4 -1 38 ACCN 5 0 37 ACCN 6 6 1 36 ACCN 7 7 2 35 ACCN 8 8 3 34 ACCN 9 9 4 33 ACCN 10 5 32 ACCN 11 11 6 31 ACCN 12 12 7 30 ACCN 13 13 8 29 ACCN 14 14 9 28 ACCN 15 10 27 ACCN 16 16 11 26 ACCN 17 17 12 25 ACCN 18 18 13 24 ACCN 19 19 14 23 ACCN 20 15 22 ACCN 21 21 16 21 ACCN 22 22 17 20 ACCN 23 23 18 19 ACCN ii:1;n:1311ig1::1:1i1iU1:1 ig1]i:1 17:::::n:::::::::::::::::::::mam:::N:::::::::::mmowam:::: BRAKE 22 17 26 21 16 16 BRAKE 27 20 15 15 BRAKE 28 19 14 14 BRAKE 29 18 13 13 BRAKE 17 12 12 BRAKE 31 16 11 11 BRAKE 32 15 10 10 BRAKE 33 14 9 9 BRAKE 34 13 8 8 BRAKE 12 7 7 BRAKE 36 11 6 6 BRAKE 37 10 5 5 BRAKE 38 9 4 4 BRAKE 39 8 3 3 BRAKE 7 2 2 BRAKE 41 6 1 1 BRAKE 42 5 5 0 COAST Table 2: Example speed control output The Speed Error represents how much space (number of index positions) is required to change speed, and the position error is how much space is available to the next waypoint. The difference between these values is positive, negative or zero. In Table 2 the output of the algorithm is listed for the motion from stationary to a set speed of index 5 at position 42. The coast step at the peak slew speed of index 18 and step 24 (highlighted) is added automatically to allow the deceleration to end at the demand speed and thus make the movement in the shortest possible time. Coast steps might also be added at the beginning to take up any slack, or to reduce system resonances.
The Step Space projection of this motion using the times shown in Table 2 is shown in Figure 2. Note that the actual times of the steps are not relevant to the motion profile determination, and so the plot of Figure 2 can also produce the speed/distance domain movements of Figures 3 and 4 entirely by reference to the ramp table contents. The latter Figures show two different paths with the same waypoints, namely a low speed (2mm/s in Figure 3, nearly zero in Figure 4) at 6mm, ending at 59mm, and a stop at 99 mm (the dimensions are purely by way of example). The distances are translated into points in Step Space as shown in Table 2, and the process is started.
In Figure 3 the acceleration is uniform where it occurs, while in Figure 4 it is piecewise and non-linear. The algorithm is the same in both cases, and the difference is due only to the numbers in the ramp table.
If the speed error is greater than the position error then it is not possible to achieve the speed and distance requirements simultaneously. This can be treated as an error state, or the system can be allowed to continue to make the best judgment it can -either reaching the speed further away, or limiting to the maximum speed that it can in the distance. This is an implementation choice.
There is a special case where one error is odd and the 35 other is even -in this case the steps used in changing speed will not perfectly match the distance that needs to be covered, even with slewing. An additional movement step will be required without a speed change, as described above as "coasting". In order to minimise the time between waypoints the algorithm adds this step at the maximum slew speed achievable.
If the speed error is less than or equal to the position error then the speed and position targets can be met simultaneously. The speed index is changed by 1 in the direction that reduces the speed error (unless slewing is being performed). If the speed error is zero and the position error is zero then the system has achieved the required waypoint and the speed index should remain unchanged. This means that a stopped system will remained stopped, and a moving system will remain moving. The same algorithm can bring a system to a new speed or to a stop. This process is known as a motion profile and once completed the algorithm may be given new targets to continue the motion to a new waypoint pair.
Figure 5 shows a controller for a printing apparatus with a stepper motor and control in accordance with the invention to control both the web and the applicator (lifter or transfer mechanism). The algorithm is used to control two apparently disparate mechanical systems with only a change in ramp table values. Figure 6 is a diagram of a label-printing process in which the web 10 with labels 12 is transported by a drive roller 40 at a varying speed, depending on whether there is print or blank space below the print head 20. If the label is to be blank at the point where the print head is, the web can travel at maximum speed, and if the label is to be printed the label must be travelling at a slower speed. Thus over the blank spaces the web must be accelerated and decelerated to minimise the total time taken. However, the controller does not have to render the image to find the white space, it simply travels to the next waypoint.
As the labels come off the web they are picked up by an applicator or lifter 30 and applied to a substrate, say a packaged food item. The horizontal speed of the lifter also has to be modest during the lifting process but can speed up otherwise, and similarly for the application movement (generally vertical). A similar control system can therefore be used for this motor, simply by using a different ramp
table.
Because the various motors all follow a similar function -i.e. trigger, accelerate, coast, brake, stop -there is an advantage to incorporating the motor control into a single unit that can be repeated, with its movement profile choreographed by an external controller. This system bypasses the effect of real-time loading on the control of individual motors by using individual controllers rather than a single one. A single controller has to be multiplexed, which tends to reduce accuracy. In this way systems with several applicators behave in a more predictable, and hence higher-quality, way.
An Example of algorithm implementation, as applied to a speed/position quantised motor system, such as a motor for a printer, could follow the following lines and is shown in Figure 7. Starting at Si with a given state of the system, the motor is determined to be at a Current Position, rotating at a Current Speed, or the equivalent Index in the table, while according to the data for the next waypoint it has to be at a certain Demand Position, travelling at a Demand Speed (e.g. a speed for a restricted process such as printing), or the Index equivalent.
The controller for the motor (preferably an assigned controller, but could be central) then calculates the position error. If the position error is greater than zero, i.e. if the motor is not yet at the waypoint, as decided in step 54, then a decision is made as to whether to maintain the speed or reduce or increase by one index point, as described below. Meanwhile if the waypoint position has been reached (step S40) and the speed is at its zero or starting-state value (which could mean stationary, but does not have to be), the motion modification to achieve the waypoint is complete and the system awaits the next instruction. If the speed is not yet zero the cycle continues (step 641), and there will be some overrun.
In the main loop, broadly speaking, the speed index is to be increased by 1 if the current speed has not yet attained 5 the target speed (i.e. the demand speed, step S6, 661) and decreased (571) if it is greater than the target speed (step 57), unless the maximum speed has been reached (560, 562), in which case this speed is maintained, and similarly (572) if the system has reached its slowest speed at index 0.
The system then moves one step up or down the ramp table or stays ("coasts"), steps S20 and S21.
The 550 path is inserted because, if a change of speed cannot be matched by a reversing change in the available offset to the target (given by the ODD or EVEN evaluation of the error 55 being ODD) then the speed for the next step change of position is held unchanged by step 550 (coast).
This system could be made more elaborate to take account, say, of varying the motor power or of going backwards if there is an overshoot, or to switch between acceleration (ramp) tables to have different acceleration and braking profiles, in order to account for draggy losses in the system being controlled.
In summary, because the stepper motor's speed can be described by a list of speeds, and because the change of speed must be one distance interval, and because the control of the system is quantised into changes applied before and after each distance interval has been moved, (i.e. the controller acts in steps of control), then the difference between position indexes corresponding to those speeds in the table is the distance the motor must travel to make this speed change, the distance travelled in order to arrive at any given speed can be simply calculated by subtraction -and similarly the speed that can be achieved in a known distance is just the offset in the table. This calculation requires minimal processing capability and can be performed on a step-by-step basis by a simple, low-cost, dedicated processor or a discrete logic or PLD/FPGA implementation of basic logic elements. It adapts the output control step by step towards the next waypoint with no need to account for future waypoints along the current travel path -thus a motion may be started without the full knowledge of all waypoints to be met during that travel.
This has the unique advantage in printing systems that a label to be printed, which is unique to the product to which it is to be affixed and which is created in a piecemeal process (not a continuous flow) may be moved to print speed before the print itself has been rendered, thus shortening the net printing process time (and increasing throughput).
By using low-cost processing combined with a dedicated drive, this system allows a unique economic advantage for minimising the uncertainty in the contact point between label and target if the position of the conveyor/target is continually tracked and updated by the motor controllers. That position can be obtained by monitoring the conveyor motor Hall sensors, and this ability is integrated into the ISD.
The invention has been described by reference to examples from the field of printing but, as indicated above, it is relevant to the control of stepper motors generally, and to servomotors when operating in a positioning mode. Moreover this principle applies to all quantized control systems with a predictable response and can be extended to quantized time systems. For instance, a system in accordance with the invention can be used for temperature control where a heater delivers a certain amount of energy in each "step", and for a given load the temperature rise is known. This means that thermostatic control may not be needed. An application might be in the control of heaters for inkjet print nozzles, or for thermal printer substrates.
The simplicity of the algorithm in conjunction with its piecewise control function allows it to be run in parallel with a motion controller on another remote processor and allow that system to know the state of the first, its history and its future. This can be used to predict and control the temperature of a system which undergoes heating due to the repeated application of energy at each controlled period of the motion system and which loses heat through the principle of Newtonian cooling and other predictable processes, which is consequently sensitive to the duty cycle of applied energy.
Claims (16)
- Claims 1. A control system for a stepper motor, comprising: a storage location for a table of values relating achievable speeds to positions for the motor, starting from stationary, where the positions are adjacent steps in the motor movement (e.g. rotation); and a controller configured to ascertain or receive the position of the motor and to receive or generate data concerning a waypoint, being a desired future position and speed for the motor; wherein the controller is further configured to raise, lower or maintain the speed of the motor at each step by reference to the table, in such a way that when the motor reaches the desired position it is moving (e.g. rotating) at the desired speed.
- 2. A controller according to claim 1, in which the controller is further configured to slew the motion of the motor when approaching a waypoint at which a speed below the maximum is demanded, preferably so as to minimise the time taken to reach the waypoint.
- 3. A controller according to claim 1 or 2, in which the table uses a co-ordinate system containing only positions of the motor and a Ramp Table of step-to-step times achievable by the given combination of motor and load.
- 4. A controller according to any preceding claim, wherein the speeds range from zero to a specified maximum, and if a specified speed cannot be reached then the maximum is used.
- 5. A controller according to any preceding claim, containing a Boolean algorithm for calculating the speed for the next step.
- 6. A stepper motor in combination with a controller according to any preceding claim.
- 7. A set of stepper motors each according to claim 5, each with its own controller.
- 8. A printing arrangement for printing on a web, in which the speed of the web under a printhead is controlled by a stepper motor according to claim 5, in dependence on the print image to be produced on the web.
- 9 A printing arrangement according to claim 8, further including a controller for generating the print image.
- 10. A machine for separating articles from a travelling web or conveyor, whose speed in the direction of travel to or from the conveyor is variable under the control of a controller according to any of claims 1 to S.
- 11. A label-printing arrangement according to claim 9, further including a machine according to claim 10, with its own controller.
- 12. A method of controlling a stepper motor to act on a load, in which a table is provided of achievable position values against speed values for the motor/load combination, and the motor is controlled to a desired waypoint, being a desired position and speed for the motor, by calculating a series of steps by reference to the table, each step being adjacent to the previous.
- 13. A method according to claim 12, in which the table is previously determined on an empirical basis.
- 14. A method of generating tables for use in a method according to claim 12, by measuring the achievable acceleration of the motor at each step under a given load.
- 15. A control system for a quantised actuator, comprising: a storage location for a table of values relating achievable rates of change to states for the actuator, starting from a minimum value, where the states are adjacent quanta in the actuator operation; and a controller configured to ascertain or receive the state of the actuator and to receive or generate data concerning a waypoint, being a desired future state and rate of change for the actuator; wherein the controller is further configured to raise, lower or maintain the rate of change of the actuator at each step by reference to the table, in such a way that when the actuator reaches the desired state it is operating at the desired rate of change.
- 16. A control system for a quantised process, where a table of actuator values starting from minimum to maximum controlled parameter is stored so that the change of state of the system from one state of control to the next is substantially or entirely defined by differences in the controlled parameter between adjacent entries of the table.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1902455.3A GB2581522B (en) | 2019-02-22 | 2019-02-22 | Control of step-based systems |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1902455.3A GB2581522B (en) | 2019-02-22 | 2019-02-22 | Control of step-based systems |
Publications (3)
Publication Number | Publication Date |
---|---|
GB201902455D0 GB201902455D0 (en) | 2019-04-10 |
GB2581522A true GB2581522A (en) | 2020-08-26 |
GB2581522B GB2581522B (en) | 2023-02-22 |
Family
ID=65998860
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
GB1902455.3A Active GB2581522B (en) | 2019-02-22 | 2019-02-22 | Control of step-based systems |
Country Status (1)
Country | Link |
---|---|
GB (1) | GB2581522B (en) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021234397A1 (en) | 2020-05-22 | 2021-11-25 | Marel Limited | Step-based systems with multiple actuators |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4156170A (en) * | 1977-09-29 | 1979-05-22 | Pako Corporation | Stepper motor control |
JP2003080750A (en) * | 2001-09-12 | 2003-03-19 | Alps Electric Co Ltd | Stepping motor drive controlling method for line printer |
WO2017189774A1 (en) * | 2016-04-27 | 2017-11-02 | Skogsrud Simen | Device and method of motion control |
-
2019
- 2019-02-22 GB GB1902455.3A patent/GB2581522B/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4156170A (en) * | 1977-09-29 | 1979-05-22 | Pako Corporation | Stepper motor control |
JP2003080750A (en) * | 2001-09-12 | 2003-03-19 | Alps Electric Co Ltd | Stepping motor drive controlling method for line printer |
WO2017189774A1 (en) * | 2016-04-27 | 2017-11-02 | Skogsrud Simen | Device and method of motion control |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2021234397A1 (en) | 2020-05-22 | 2021-11-25 | Marel Limited | Step-based systems with multiple actuators |
Also Published As
Publication number | Publication date |
---|---|
GB201902455D0 (en) | 2019-04-10 |
GB2581522B (en) | 2023-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10723564B2 (en) | Method for moving a rotor, linear drive, and production or packaging machine | |
JP5546045B2 (en) | System and method for path planning | |
US4675582A (en) | System useful for controlling multiple synchronous secondaries of a linear motor along an elongated path | |
CN110109490A (en) | A kind of adaptive-feedrate adjustment method of stepper motor driving head | |
EP2555068B1 (en) | Synchronization control apparatus | |
US9263981B2 (en) | Drive device for use in a laboratory device | |
GB2581522A (en) | Control of step-based systems | |
JP2017502640A (en) | Motor coil timing method | |
CN109828526B (en) | Electronic cam control method and related device | |
CN100461612C (en) | Motor controller and method therefor | |
CN101689824A (en) | Calibrating stepper motor by driving fractional ranges | |
JP2015023695A (en) | Motor control device, lens device, camera system, motor control method, program and storage medium | |
Stoychitch | Generate stepper motor linear speed profile in real time | |
CN108322112B (en) | Composite motion control method of stepping motor | |
CN101623827B (en) | Positioning numerical control device and method used for bending machine tool | |
WO2014196561A1 (en) | Stepping-motor control device and control method | |
Stoychitch | An algorithm of linear speed control of a stepper motor in real time | |
US8928271B2 (en) | Method and apparatus to convert a minimally controlled pulse stream into a proper mechatronic trajectory | |
EP3678290B1 (en) | Motor driving device | |
US20230288901A1 (en) | Step-based systems with multiple actuators | |
Wei | Acceleration and deceleration control design of step motor based on TMS320F240 | |
JP6396718B2 (en) | Torque calculation device | |
Dorin-Mirel et al. | Comparative analysis of stepper motors in open loop and closed loop used in nuclear engineering | |
KR101478675B1 (en) | Apparatus and method for controlling phase compensated microstepping for permanent magnet stepper motors | |
Souza et al. | Step Motor Selection and Control: An Industrial Case Study |