The present invention relates to a control system and method for controlling a stepping motor having plural phase windings.
Stepping motors, which are typically driven without a feedback device, have been used in open-loop positioning systems for many years. However, such open-loop stepping systems frequently exhibit undesirable behaviors such as stepping resonance and loss of synchronization.
Nevertheless, stepping motors are low in cost and are used extensively and at high volume in various industries. Further, because they have many poles operated using plural phase windings, stepping motors produce high torque at a given motor winding current. Such characteristics are particularly suited for a variable-speed positioning controller, and allow the need for auxiliary gear reduction mechanisms, for mechanical force-speed conversion, to be eliminated or at least minimized.
Prior techniques using a closed-loop feedback control of stepping motors are also known. A seminal article on closed-loop control of stepping motors is “Application of the Closed Loop Stepping Motor,” Trans. on Automatic Control, Vol. AC-13, No. 5 (October 1968), by T. R. Fredriksen. With reference to
First, an encoder 202, for detecting a position represented by the rotational angle of a motor 201, includes a number of output channels, which is the same as the phase number of the motor 201. For example, in the case of the illustrated four-phase motor 201, the encoder 202 comprises four channel output signals produced by light sources 205 and detectors 204. Accordingly, the excitation phase can easily be ascertained during operation of the motor 201. Secondly, phase windings 203a to 203d appropriate for producing currents based on the output signals from the encoder 202 are provided, whereby the rotational conditions for the motor 201, namely, halting, acceleration, deceleration, steady rotation and high-speed rotation, are controlled by a control circuit 207. Thirdly, the motor is controlled by determining beforehand the rotational angle displacement, up to a final target rotational angle at a predetermined position, together with the rotational conditions of the motor 201 at the time of passing the final target rotational angle and/or by determining beforehand the remaining pulse count needed to produce such an angular displacement, together with the excitation conditions at the time of passing therethrough.
Such a closed-loop control for this type of stepping motor, in particular, improves high-speed performance. However, when load fluctuations occur during operation of the motor, large vibrations are generated when the motor is halted, and proper positioning of the motor cannot be completed, producing a disadvantage in that the time required for proper positioning is increased.
Another known technique for alleviating some of the above defects has been proposed in Japanese Examined Patent Publication No. 57-34758. With the basic closed-loop control of Fredriksen as a foundation, a feedback circuit including a rotational angle loop, a rotational angular velocity loop, and a current loop are introduced, and an external command signal is added thereto, so that by controlling the winding current of the motor with respect to load fluctuations during operation thereof, load fluctuation characteristics are improved. Secondly, when loads applied to the motor are increased, the rotational angular velocity of the motor is lowered. In order to compensate for the lowered rotational angular velocity, an excitation circuit operates for increasing the coil winding current, producing an effect that mitigates against the lowering of the rotational angular velocity. Thirdly, in the case that the load is lessened, the above features are operated oppositely, so that in the same way variations in rotational angular velocity can be prevented. With respect to load fluctuations of the motor, the excitation circuit controls both increasing and decreasing of electrical energy to the motor. Thus, load fluctuation characteristics are improved, and vibrations that occur upon stopping the motor can be suppressed to a certain degree.
However, in the system described in Japanese Examined Patent Document No. 57-34758, since an external command signal is used, which finely controls time-based variations in the rotational angle of the stepping motor, when excessive load disturbances are generated, the motor may fall into a low velocity, or even a stopped condition. In such a condition, after passage of a certain degree of time, even if the load disturbance is removed, the external command signals have already terminated and the motor cannot achieve its final target rotational angle. Further, there is the possibility for the motor to collapse into an uncontrollable condition. Up to the present, this has been a problem inherent in the feedback control of stepping motors, which has been difficult to resolve using conventional control methods.
Another closed-loop control method, which addresses some of the deficiencies described above, has been disclosed in Japanese Laid-Open Patent Application No. 11-252994. The principal feature of this control method is to further alleviate load fluctuation characteristics and thus enable a more stable operational control.
As shown in
Motors that operate under a closed-loop control, using lead angle and current correction as described above, possess the advantage of high torque even when operating at high speeds. However, strict closed-loop control of stepping motors can result in other disadvantages. Particularly, when transitioning between high and low speeds while the motor is driven in full steps, torque ripple may occur, which can result in undesirable actuator vibration. In addition, when the stepping motor is brought to a stopped position, closed-loop feedback can cause the system to enter into a motor hunting cycle, which induces intrinsic motor vibrations when the motor is placed in a position holding mode.
An object of the present invention is to provide a stepping motor control system and method, using a closed-loop control, which exhibits improved high speed and high torque performance, yet wherein the problems associated with closed-loop control, such as motor hunting and actuator vibrations, are avoided by shifting between different operating modes at predetermined conditions during the motion profile of an actuator driven by the stepping motor.
A further object of the present invention is to provide a stepping motor control system and method, which utilizes closed-loop, microstepping, and open-loop control methods, dependent on operating conditions of the stepping motor.
The above and other objects, features, and advantages of the present invention will become more apparent from the following description when taken in conjunction with the accompanying drawings in which a preferred embodiment of the present invention is shown by way of illustrative example.
A known type of electric linear actuator, to which the principles of the present invention are applied, is shown in
The electric actuator, generally denoted at 50 in
On the frame 52, there are mounted a drive mechanism 60 fixed to one end of the frame 52 and supporting one end of a ball screw 62, a bearing block 64 fixed to the other end of the frame 52 and supporting the other end of the ball screw 62, and a table mechanism 66 linearly displaceable between the drive mechanism 60 and the bearing block 64 by the ball screw 62 upon rotation thereof. A pair of transversely spaced guide members 68a, 68b is fixed to an upper surface of the frame 52 for linearly guiding the table mechanism 66 when the table mechanism 66 is displaced by the ball screw 62. The bearing block 64 comprises a support block 22 mounted on the frame 52, and the other end of the ball screw 62 is rotatably supported in the support block 22 by a bearing 24.
The frame 52 has two transversely spaced grooves 70a, 70b of an identical T-shaped cross section which are defined in a lower surface thereof and extend parallel to each other in the longitudinal direction of the frame 52. The transversely opposite sides of the frame 52 have respective engaging grooves 72a, 72b defined therein and extending longitudinally therealong for attachment of the side covers 54a, 54b. The frame 52 also has longitudinal passageways 74a, 74b, 76a, 76b defined therein for accommodating electric wires or hydraulic fluid conduits. The frame 52 has a pair of attachment grooves 77a, 77b defined in an upper surface thereof near the passageways 76a, 76b for attachment of detectors such as automatic switches or the like. The attachment grooves 77a, 77b also serve as wiring grooves for accommodating leads connected to the detectors.
The side covers 54a, 54b have respective substantially L-shaped hooks 78a, 78b disposed on inner sides thereof for engaging in the respective engaging grooves 72a, 72b. The hooks 78a, 78b can be fitted into respective engaging grooves 72a, 72b when the side covers 54a, 54b are pressed obliquely downward against the transversely opposite sides, respectively, of the frame 52. To detach the side covers 54a, 54b from the frame 52, the side covers 54a, 54b are pulled upwardly away from the transversely opposite sides, respectively, of the frame 52. Therefore, the side covers 54a, 54b can easily be installed on and removed from the frame 52.
As shown in
In the case of multi-axis configurations, the table blocks 82a, 82b can support yet another linear actuator thereon, to enable the movement of a table block of the thus-supported actuator in both X and Y directions, for example.
As shown in
The motor 100 is fixed to the housing 106, and comprises a stator 116 composed of a plurality of separate stator cores that are joined together, a plurality of coils 118 wound around the respective stator cores, and an annular permanent magnet serving as a rotor 122 which is fixedly mounted on a reduced-diameter end 62a of the ball screw 62 through a sleeve 120.
Typically a linear actuator 50, such as the one described above, will be provided as only one actuator in a multi-axis system of actuators, which are connected together as a structural system, for enabling movement of an end effector (for example a gripping tool) in two or more dimensions, for picking up objects (parts) and delivering them to a desired destination, for example an assembly station.
The PC 101 is connected to a serial input port of the controller 138, whereby parameters set via the HMI software can be transferred as data making up a Motion Profile Table (MPT) stored in a data storage area of the controller 138. The serial connection between the PC 101 and controller 138 is bi-directional, so that the MPT data currently stored in the controller 138 can also be uploaded as parameters into the HMI software, for modification if desired.
A Programmable Logic Controller (PLC) 109 for sending sequential step commands to the controller 138 is connected through an I/O port. More specifically, the PLC 109 sends signals to the controller 138 through an I/O port for instructing the controller 138 to execute a given sequence of steps, from among the steps previously entered in the MPT. The controller 138 also outputs signals to the PLC 109 through the I/O port, which indicate each step number as it is being executed. The PLC 109 is also capable of sending commands to start and stop sequence execution, emergency stop, reset and homing.
The linear actuator 50 is connected with the controller 138 through at least two, and potentially three, connecting cables. One cable connects an output from the encoder 112 (see
When the actuator 50 is installed for certain vertical applications, a regenerative resistor unit 113 can optionally be connected to the controller 138. For example, as a heavy object transported by the table blocks 82a, 82b falls downward, the motor 100 generates a current which is dissipated through the regenerative resistor unit 113 which consumes and absorbs the regenerative power-generated by the motor 100, slowing the fall of the object in a controlled manner. Although not shown, the regenerative resistor unit 113 can also be incorporated directly into the design of the controller 138, in which case the resistor unit 113 may be contained internally inside the controller 138 casing, without need for any additional connecting cable between the controller 138 and the resistor unit 113.
An example of such a multi-axis configuration is shown in U.S. Pat. No. 6,718,229 by Takebayashi et al., along with other features of the human machine interface (HMI) used for programming actuator movements. The full disclosure of U.S. Pat. No. 6,718,229 is expressly incorporated by reference into the present specification. As shall be explained in greater detail below, the programming features of the present invention, which are set and implemented through the HMI, pertain to operating the stepping motor 100, which serves as the primary drive means for the electric linear actuator 50.
The present invention includes implementation of a closed-loop control for the stepping motor 100, in conjunction with a chopper amplifier and a phase current controller. However, this implementation can be easily adapted to different types of stepper motors, such as variable reluctance (VR) and permanent magnet (PM) motors. In the present specification, for purposes of illustrating a preferred embodiment of the invention, the following descriptions shall focus on a 1.8° hybrid stepping motor, which is common in the industry and produces a high torque output density. Terminology and parameters necessary for understanding operations of the stepping motor 100 are as follows:
In the above parameters, for a two-phase stepping motor according to the preferred embodiment, Nph=100 (i.e., there are 50 N poles and 50 S poles). Further, as indicated above, the number of phases Ph=2, and the number of equivalent stator poles per phase Nsp=2. Accordingly, it is seen that the mechanical full step angle θst for the stepping motor 100 of the preferred embodiment is θst=360°/(Nph×Ph)=360°/200=1.8°, whereas the corresponding electrical full step angle is θel=(Nph/Nsp)×θst=(100/2)×1.8°=360°/(2×2)=90°. It therefore follows, for this type of stepping motor, that in each mechanical full step angle (1.8°) there are 50 electrical (90°) angles. This means that a complete 360° (4×θel) electrical magnetic field rotation will result in four mechanical full steps (4×θst7.2°). Stated otherwise, one electrical full step means rotation of the resulting magnetic field vector by 90° (electrical degrees)
Before explaining in greater detail the control operation modes of the stepping motor 100, a graph illustrating another actuator motion profile, while also showing stepping motor control modes used during different motion stages, shall be described with reference to
In
Prior to an initial rest stage, the angular position of the rotor must be properly aligned with the excitation field for effectively driving and maximizing motor torque. The present invention uses an electrical alignment method using the high resolution encoder 112, as shall be explained in greater detail below.
At an initial rest stage, from time t0 to t1, the table mechanism 66 does not move, while a holding torque is imposed on the stepping motor 100 in an open-loop control mode (described later). Then, at time t1, the table mechanism 66 begins to accelerate, while the stepping motor 100 is controlled in a closed-loop microstepping control mode (described later), until the table mechanism 66 reaches a first velocity threshold value Vth1 at time t2. After reaching the first velocity threshold value Vth1 at time t2, control of the stepping motor 100 is switched from the microstepping control mode to a closed-loop full-step control mode (described later). The closed-loop full-step control mode is used after the table mechanism 66 has passed the first velocity threshold value Vth1, while the table mechanism 66 continues accelerating until reaching a first constant velocity value Vc, whereupon the table mechanism 66 travels at the constant velocity Vc until the table mechanism 66 begins decelerating and again reaches the first velocity threshold value Vth1 at time t3, at which point control of the stepping motor 100 switches back from the closed-loop full-step control mode to the closed-loop microstepping control mode. The microstepping control mode continues until the table mechanism 66 reaches the second rest stage at time t4. Similar to the initial rest stage, in the second rest stage from time t4 to t5, the table mechanism 66 does not move, while a holding torque is imposed on the stepping motor 100 in an open-loop control mode. After the second rest stage, the table mechanism 66 reverses in direction, following a negative trapezoidal profile. The table mechanism 66 again accelerates, while moving in the reverse direction, until reaching a second velocity threshold value Vth2 (which typically should have the same absolute value as the first velocity threshold value Vth1). Aside from the table mechanism 66 moving in the reverse direction, control features through the negative trapezoidal profile are basically the same as those of the first positive trapezoidal profile. Namely, after passing the second velocity threshold value Vth2 at time t6, control is switched from the closed-loop microstepping mode to the closed-loop full-step mode. The microstepping mode is reinitiated when the second threshold value Vth2 is reached again on the other side of the trapezoidal profile at time t7, and the closed-loop microstepping mode continues until the table mechanism 66 reaches the next rest stage, from time t8 to t9. During the rest stage from time t8 to t9, in the same manner as the other rest stages, a holding torque is imposed on the stepping motor 100 in an open-loop control mode.
Moreover, as shown in
Major components of the control loop are shown in
Summarizing the preceding paragraph, the following are mathematical expressions used in the control block illustrated in
Perror(t)=Commanded Position(t)−Position Feedback(t) (1)
Verror(t)=P×Perror(t)+(Commanded Velocity(t)−Estimated Velocity(t)) (2)
Iqsref(t)=PI×Verror(t) (3)
Next, control screens of the human machine interface (HMI) implemented through the PC 101 shall be explained. As discussed above, existing features of the HMI have already been disclosed in U.S. Pat. No. 6,718,229 and are incorporated herein by reference. An additional control screen of the HMI, which facilitates control of the stepping motor 100 in accordance with the present invention, shall now be explained.
Although only one type of control screen for the stepping motor controller 138 is illustrated in
For example, one axis (axis 1) of a multi-axis actuator system may be operated using an AC servo motor, wherein another axis (axis 2) may be operated using a stepping motor driven in accordance with the principles described in the present specification, and yet another axis (axis 3) may be operated using a stepping motor actuator driven in an open loop mode by a pulse generator. In this case, the controller setting software version, the axis number, and each different type of controller connected to the system may be separately designated. In order to appropriately assign and designate the software appropriate for each different controller, the HMI automatically reads the ID stored in each controller and displays the appropriate HMI screen for each controller type.
In particular, the stepper data control screen includes respective text entry boxes, including a text box group A for setting or modifying control loop tuning parameters, a text box group B for setting internal parameters of the digital control loop, a text box group C for setting stepping motor control parameters, a text box group D for setting product data, and a text box group E for setting stepping motor control status parameters.
More specifically, the control loop tuning parameters include velocity damping gain (V_D_Gain), velocity proportional gain (V_P Gain), velocity integral gain (V_I Gain) and position proportional gain (P_P Gain), which are values used in the P gain block 20 and the PI gain block 30 shown in the block diagram of
Each of the stepping motor control modes, which are used during the different motion stages discussed above in connection with
1) Electrical Alignment and Base Offset Measurement
When the stepping motor 100 is powered on, the controller 138 does not know the angular position of the rotor. In order to synchronize the stepping motor rotor with the excitation fields applied for effective driving and maximizing torque, it is important to align them. Alignment can be achieved mechanically or electrically. Mechanical alignment is difficult, time consuming, and prone to error. Electrical alignment is precise and mainly limited by the resolution of the encoder 112. By using a high resolution encoder (e.g., 200 to 1000 lines), this error can be reduced substantially. With reference to the flow chart illustrated in
In electrical alignment, in a first STEP S1, both the phase A and B windings are excited with equal currents IA=IR sin ((2π/16)2) and IB=IR sin ((2π/16)2−π/2), where IR is a predetermined rated current, which creates an intermediate magnetic pole and induces the rotor to move.
Once the rotor is aligned with the stator field, in Step S2, the control software captures the motor encoder state, which are A and B quadrate bit patterns (0 to 3), and then determines the encoder mechanical offset (in terms of the number [n] of microsteps) from the Motor Commutation Table II (see below). Alternatively, in Step S3, if the motor encoder is equipped with the index pulse, in order to determine the number [n] of microsteps, the motor may be rotated in an open-loop mode either in a clockwise or counterclockwise direction to locate the index pulse. Thus, the motor is slowly stepped until the index pulse is detected. Then, the encoder pulses (n counts) are counted and scaled to a sinusoidal current angle as ((2π/16)n) radians. The corresponding excitation currents in this condition are as follows:
IA=IR sin ((2π/16)2±(2π/16)n) (4)
IB=IR sin ((2π/16)2−π/2±(2π/16)n) (5)
Once the encoder mechanical offset (in terms of the number [n] of microsteps) is determined from Step S2, or once the number [n] is determined by detecting the index pulse according to Step S3, then depending on the logic of the controller 138, the motor 100 is rotated in a clockwise or counterclockwise direction until the actuator mechanical hard limit or limit switch (not shown) is detected, in order to find a reference home position. Again, as indicated in Step S4, the pulses are counted (k counts) and the corresponding excitation currents at the limit switch (or the reference home position) are now as follows:
IA=IR sin ((2π/16)2±(2π/16)n±(2π/16)k) (6)
IB=IR sin ((2π/16)2−π/2±(2π/16)n±(2π/16)k) (7)
Upon reaching the limit switch, the motor controller 138 acquires full knowledge of the index pulse, along with the limit switch or the actuator mechanical end limits. In order to maximize the driving torque, as indicated in Step S5, the field excitation is advanced by 16 counts or 1 step in the direction of movement, to result in the following corresponding excitation currents used for driving the motor 100.
IA=IR sin ((2π/16) (2±n±k)) (8)
IB=IR sin ((2π/16) (2−4±n±k)) (9)
At this point, the motor enters an initial open-loop position holding mode and is ready to be driven.
2) Open-Loop Holding Control Mode
As shown in
3) Closed-Loop Full-Step Control Mode
As shown in
More specifically, in the full-step control mode, both motor phases A and B are driven at 100% creating a resultant armature field with 141.4% magnitude at 45°, 135°, 225° and 315° orientation. In this mode, the current load is evenly distributed between the two phases, and an extra 41.4% amount of power is produced by the motor 100. This is the preferred control mode when the motor is operated at higher speeds when increased power to the motor 100 is desired. Further, during this control mode, torque is maximized by producing a field vector in quadrature with respect to the rotor field. However, at lower speeds the full-step control mode produces vibrations due to the large steps taken while moving, and therefore the microstepping mode (described below) is used when operating below the threshold velocity value at times t2, t3, t6 and t7 shown in
More specifically, to illustrate the full steps of the stepping motor 100, a simplified schematic view of the stepping motor 100 is shown in FIGS. 12(a) to 12(d), which shall be explained with reference to the following table.
FIGS. 12(A) to 12(D) show a permanent magnet stepping motor 100, wherein the rotor is shown in simplified form as a bar magnet (indicated by the dashed line), providing two primary rotor poles, surrounded by stator coils with windings provided on each of four poles. In order to position the rotor at 45°, at an initial full-step 0, phases A and B are both energized with equal positive values (phase A & B excitation), and the electromagnetic field is in alignment with the rotor position at 45°. In order to position the rotor at 135°, at the next full-step 1, phase A is energized negatively and phase B is energized positively at equal values (phase A & B excitation), and the electromagnetic field is in alignment with the rotor position at 135°. In order to position the rotor at 225°, at the next full-step 2, phases A and B are both energized with equal negative values (phase
4) Closed-Loop Microstepping Control Mode
A two hundred encoder line per revolution stepping motor with two-phase stator coils has 50 rotor teeth (i.e., 50 poles) provided for each rotor. For a 200-line encoder, each encoder count therefore represents one fourth of a full-step. Therefore, in the microstepping mode, the motor 100 can be driven with four steps per each full-step, or in other words, a full rotation of the motor is produced per each 16 steps in the microstepping control mode. That is, since each full electrical cycle consists of four full steps as described in the preceding paragraph, there are sixteen micro-steps per each 360° cycle of the motor 100, or 22.5° degrees per each micro-step.
The encoder count (rotor position) is mapped to the microstep (μStep) angle (0 to 15 counts) according to the following modulo equation (1), wherein the lead angle is determined as discussed in the next section.
μstep=mod(Encoder Count+Lead Angle, 16) (10)
Table II is the motor phase (A, B) commutation table, wherein the μStep count appears as an index to a table of Phase A and Phase B percentage values corresponding to each μStep value.
By using microstepping in a low to medium speed range, smoother driving of the actuator 50 is made possible by reducing overshooting and actuator vibration.
During both the closed-loop microstepping and full-step control modes, i.e., when executing moves, the stepping motor 100 operates in quadrature, which is a known implementation of space vector theory as discussed above. More specifically, the motor armature and rotor field vectors are maintained orthogonal to each other to produce maximum torque. While the stepping motor 100 is driven in a closed loop, based on feedback from the encoder 112, the stator phases are activated to maintain the 90° phase advance and produce maximum torque. In particular, at low speeds, a 90° phase advance is optimum, however, as the speed of the motor 100 increases, the currents in the motor windings cannot keep up with actual motor rotation because of coil inductance. As a result, the lead angle has to be advanced through a lead angle compensation technique to allow for current build up at higher speeds.
The lead angle compensation technique, which is implemented via a look up table stored in the lead angle compensator 60, shall now be discussed.
5) Phase Advance (Lead Angle) Technique
The relation between the rotor's present position and the phases to be excited is specified in terms of lead angle. For example, consider a two-phase motor driven in one phase excitation full-step mode. The sequence of excitation is represented by PH1→PH2→PH1(−)→PH2(−). First PH1 is excited and the rotor is aligned with PH1 in an equilibrium position. Then PH2 is excited and PH1 is de-energized to run the motor. The lead angle in this case is one (1) step. As soon as the position encoder detects that the rotor has reached an equilibrium position of PH2, the next phase PH1(−) is excited and the motor continues to run.
This scheme of running the stepper motor works well at low speeds and also maximizes the torque produced. However, as the motor speed increases, it takes more time for the current to rise and reach its full magnitude, due to winding inductance. Specifically, the motor current supplied to the windings rises over time based on an electrical time constant of the drive circuit.
FIGS. 13(A) to 13(C) show the current response for a square wave voltage input at three different frequencies, representing increasing motor speeds. Above a certain frequency, as shown in
In the present invention, the phase current lag ν is computed as ν=−arctan (ωe×L/R) radians, where ωe is the frequency of the back EMF, L is the inductance of the winding, and R is the resistance of the winding. When the excitation currents are advanced by the phase current lag angle, as shown in
According to the present invention, the phase lead angle ν is computed in accordance with the above, and respective lead angle compensation values are stored in a look up table maintained in the lead angle compensator 65 shown in
Referring back to the section above discussing offset compensation and equations (9) and (10), when the motor is driven in the closed-loop mode, the excitation currents IA and IB, including the phase advance compensation ν, are calculated as follows:
IA=IR sin ((2π/16) (2±n±k))±ν (11)
IB=IR sin ((2π/16) (2−4±n±k))±ν (12)
The symbol ± is either negative or positive depending on the direction of rotation.
The principal features of the present invention have been described. Significant advantages of the invention are achieved in that motor hunting and motor vibrations are reduced when the motor is placed in a position holding mode, microstepping is used during low to medium velocities to prevent overshooting and actuator vibration, and a closed-loop full-step mode is used effectively at higher velocities, while applying lead angle compensation, to keep the stator and rotor fields in quadrature while producing maximum torque across a wide RPM range.
The stepping motor driver and control method may also include other closed-loop phase current controls in addition to microstepping, which depend on the motor torque or load requirements, in order to minimize torque ripples and excessive power dissipations. In contrast, open-loop stepper drivers usually set the phase current close to 100% regardless of torque or load requirements. In the present invention, torque or load requirements are computed by the PIP (velocity proportional, integral, and position) control loop described above. The required motor torque is calculated by finding the difference between the commanded and actual velocities, as well as the commanded and current positions.
It shall be understood that other modifications will be apparent and can be easily made by persons skilled in the art without departing from the scope and spirit of the present invention. Accordingly, the following claims shall not be limited by the descriptions or illustrations set forth herein, but shall be construed to cover with reasonable breadth all features that may be envisioned as equivalents by those skilled in the art.