(1) Field of the Invention
The invention relates to the operational design of hard disk drives and more particularly, to an improved read/write seek procedure and associated components which provide good access times as well as reduced acoustic noise.
(2) Background of the Invention and Description of Previous Art
A disk drive is a data storage device that stores digital data onto concentric circular tracks defined on the surface of a data storage disk. Data is read from or written to a track of the disk using a transducer mounted on the tip of a head assembly of an actuator arm. The transducer comprises a read/write element. The element is held close to a desired track while the disk spins about its center at a substantially constant angular velocity. To properly locate the transducer near the desired track during a read or write operation, a closed-loop servo scheme is generally implemented to move the actuator arm. The servo scheme uses servo data read from the disk surface to align the transducer with the desired track.
In order to move the read/write head from over one track to over another, a controller sends a sequence of signals to a voice coil mounted within the field of a permanent magnet at the distal end of the actuator arm. The voice coil moves within the magnetic field according to the strength of the signal and thereby positions the read/write head at the other end of the actuator arm from one position to another over the tracks of the hard disk. The signals are derived from an procedure which is programmed into the controller and which optimizes the speed of the head for a smooth error free head travel. The procedure controls the speed of the read/write head from its starting location over an arbitrary track on the storage disk to its final position over a target track. The starting location is either over the track whereon the previous read/write operation was performed or at some other arbitrary or “parking” location. The path taken by the head is over an arc determined by the locus of the actuator arm to which the head is attached. Those skilled in the art are familiar with the operation of head controllers.
In order to move the head from its initial position to its target location as quickly as possible, the servo system must have instantaneous knowledge of the heads position, velocity, and acceleration and from this information, compute and dispatch incrementally forward looking values for these parameters to the actuator. This is accomplished by a feedforward control which causes the head to respond accordingly. The feedforward control is able to minimize tracking errors caused by known disturbances by compensating for them in advance. The process of directing the head from its starting location to its target location is referred to as a “seek” operation and the path by which the head travels is defined by a seek procedure.
Chu, et. Al., U.S. Pat. Nos. 6,801,384 B2 and 6,744,590 B2 describe the communication between a controller and a magnetic read/write transducer in detail wherein the path of the transducer is controlled by a sinusoidal seek procedure. In '590 the seek time is adjusted by observing the maximum velocity error of the previous seek. '384 includes all actuator electrical characteristics in setting the acceleration level. It is common practice to account for back emf in ‘bang-bang’ seeks. Both show a sine wave seek where position, velocity and acceleration are individually controlled in the time domain. Kobayashi, et. Al., U.S. Pat. No. 6,153,997 cites a seek procedure where the acceleration trajectory follows a trapezoidal/exponential function
Squires, et. al., U.S. Pat. No. 6,279,108 B1 cites a long seek procedure which is typical of those presently in use. This method produces good access times but also unwanted acoustic noise. It would be desirable to significantly reduce the acoustic noise while still obtaining good access times. Burton, et. Al., U.S. Pat. No. 6,515,820 describes a sine seek procedure whereby the velocity of the seek starts at zero and accelerates, following a sine wave until an acceleration saturation occurs. The sine seek controller receives velocity information and dispatches velocity feedforward data. It also computes a position error and a switch point curve. The switch point curve is is computed as an offset to a demand velocity curve which is stored in memory. When the velocity crosses the switch point curve, the feedforward signal changes from acceleration to deceleration and the velocity decreases until the demand velocity curve is crossed and then decreases linearly, reaching zero when the desired read/write head is over the target track.
Generally, a seek procedure independent of time is superior, particularly when gain variations and/or nonlinearities are present. This is so because It is found that forcing acceleration, velocity and position to zero simultaneously at a specific time is more difficult than forcing these parameters to zero without a time constraint.
If a seek is off the prescribed trajectory, as it typically is, the loop self-corrects by adjusting the acceleration and driving the seek back onto the trajectory, independent of time. If the acceleration feedforward is too low, the seek just takes a little longer but acceleration, velocity, and PES (Position Error Signal) are all simultaneously driven toward zero.
It is an object of this invention to provide a seek procedure for a hard disk drive which provides high performance as well as a significant reduction in acoustic noise.
It is yet another object of this invention to provide a seek procedure for a hard disk drive having a time domain acceleration.
It is still another object of this invention to provide a seek procedure for a hard disk drive which lowers the peak acceleration for short seeks to impart a smooth transition to an exponential arrival.
It is yet another object of this invention to provide a seek procedure for a hard disk drive which lowers the peak acceleration for long seeks to limit peak velocity.
It is still another object of this invention to provide a sine seek procedure for a hard disk drive providing an error free feedforward signal derived from a single sine table.
It is yet another object of this invention to provide a method to implement the seek procedure described by this invention.
These objects are accomplished by a seek procedure which implements a time domain sinusoid acceleration feedforward component combined with a phase-plane controlled velocity trajectory which, near seek completion, switches to an exponential arrival trajectory.
The procedure is constructed so that the acceleration begins at zero and, in the fashion of a sine, increases to a maximum, decreases to a minimum and then increases again until a computed switchpoint is reached. The switchpoint is determined in-situ, to provide a smooth velocity transition from sinusoid to exponential. The velocity trajectory is computed from a normalized look-up table.
Matlab®2 is used to model the drive and simulate the seek system. The procedure is implemented in C or assembly language and a microprocessor. 2Matlab is a registered trademark of The MathWorks, Inc., 3 Apple Hill Drive, Natick, Mass.
In an embodiment of this invention the quiet seek procedure of the invention is described and mathematically developed as an procedure with reference to a corresponding process flow illustrated by a flow chart in
The continuous time equations of motion for the read/write head during a seek operation are given as follows:
where α is the acceleration, ν the velocity and x the position. ωt is a polar angle in radians wherein, when applied to a seek, ω is the reciprocal of the total time required to move the head from the starting position to the target track.
A normalized plot of these entities is shown in
A normalized acceleration feedforward equation (4) can be extracted from the equations of motion supra.
This is an equation for an ellipse. A plot of normalized acceleration vs. velocity is shown In
Matlab® simulations of a position-based acceleration feedforward perform poorly. This ‘forces’ the acceleration feedforward to be time based.
A phase-plane velocity trajectory equation cannot be extracted from the equations of motion; the equations are transcendental. Matlab® can be used to obtain the data.
In order to apply the equations of motion to an application wherein the time intervals are represented by an ‘orderly set of successive time sampled data, such as the interchange of instructions and feedback between a moving read/write head of a disk drive and its controller, the time element ωt in the continuous equations is replaced with a normalized sample fraction. Substituting
into the continuous equations, the sampled data equations of motion become:
where N is the number of samples required for one full sine wave of acceleration. Thus when n=N the sine wave is complete. Note that N is not required to be an integer. The x=axis in
Substituting n=N into equation (7) and solving for N one obtains:
Thus a seek of length x(N) tracks requires N samples for completion and corresponds to a seek time. For short seeks a corresponding low value of N may not be practical and can cause instabilities in the seek. It is therefore necessary to define an Nmin. Then, for short seeks (N<Nmin), the value of α0 is changed and a new N is computed.
By inspection of equation (6), maximum velocity occurs at n=0.5*N (or cos θ=−1). Substituting N from the seek time equation, one obtains:
In order to limit the acceleration so that a maximum velocity ν(NE). is not exceeded, one substitutes N from the seek time equation (8) into the maximum velocity equation (9) and solves for peak acceleration to obtain:
Determination of coast is not necessary if the drive never reaches coast velocity. This is a property of the drive design considered here. A different drive could easily necessitate a coast state. It would be straightforward for a person skilled in the art to add a coast state to the present sine seek procedure.
Referring back to in
x=x
i
e
−t/τ (11)
where xi is the head position at the switch point and τ is the exponential time constant
Differentiating equation (11) yields the velocity ν.
Substituting x into (12) gives
where νExpTraj is the velocity trajectory during exponential arrival (box 121 of
Now, differentiating velocity to get acceleration.
and substituting ν into α one obtains:
This is the acceleration feedforward needed to drive the PES to zero. A possible variation here is to exchange the estimated velocity for the trajectory velocity. The idea is that the acceleration feedforward αFF drives the head velocity to zero and the exponential velocity trajectory drives the PES to zero while the velocity minor loop balances these two efforts. This is most useful when the exponential arrival initial conditions are not favorable (e.g. vi≠xi/tau). Matlab® simulations validate this idea.
νEst is an estimated velocity which is calculated from the measured position of the head and the corresponding actuator current, which is proportional to acceleration. These are instantaneously available parameters during the seek. The actuator current is proportional to the acceleration. Box 126 of
Equations (16) and (17) represent two different ways of computing an acceleration feedforward. Equation (16) uses the desired trajectory while equation (17) uses the measured velocity. If the seek is precisely on the desired trajectory, the responses to both feedforward equations are the same. If the seek is off the trajectory, equation (17) will be superior. It is very unlikely that a seek will be precisely on the desired trajectory.
Because there is no easily implementable closed-form solution for the velocity trajectory, a lookup table must be used to find the desired velocity as a function of position. This is denoted by box 120 In
The next objective is to provide a smooth transition from sine move to exponential arrival. This requires no discontinuities in the acceleration. However, the derivative of the acceleration is allowed to have a discontinuity.
One method of keeping the acceleration continuous during the transition is to force both the feedforward and the velocity error νErr. to be continuous (see
To force the feedforward to be continuous, the acceleration due to the sine wave trajectory must equal the acceleration due to the exponential arrival trajectory at the switch point.
The sine wave acceleration at the switchpoint (n=M) is straight forward. M is the sample where the switch from sine to exponential occurs. Substituting M into the sine move acceleration (5) yields:
The exponential acceleration is a function of νEst. Assuming a nominal system, νEst will be equal to ν(n) in the equations of motion. Substituting ν(M) into (17) gives:
Setting the α's equal and solving for τ yields:
Equation (20) is the requirement for the feedforward to be continuous. Note that τ is independent of α0.
The data is fitted to a straight line and the intercept at N=0 yields the desired value of M for the data shown in
1Linear least squares fit of M(calc).
2Data from FIG. 7.
To force the velocity error to be continuous, ν(x) must equal xtgt/τ at the switch point. Assuming a nominal system, νest will be equal to ν(n) in the equations of motion. This implies that:
This equation has little chance of ever being valid exactly. Therefore we add an offset to PES, viz.
Substitute from the equations of motion (note: PES(M)=x(N)−x(M)).
Finally rearranging and taking X(N) from the seek time equation (7), we get:
Equation (25) defines xadjust in a way that the velocity error is continuous at the sine to exponential switch point.
Referring to
Plotting xadjust vs. N produces the curve shown in
x
adjust=2337N−0.906. (26)
Line 83 is Xadjust=4000/N. 4000 was chosen because for large N, xadjust is increased by α0 and for small N, xadjust is decreased by α0. These xadjust values are for α0=1 and τ=10. For α0≠1, the xadjust value must be multiplied by α0.
For τ≠10, the process must be repeated.
One of the first steps of the each seek operation is the determination of the seek length x(N), the distance in terms of the number of tracks from the seek start to the target track. For short seeks, it is likely that N would be too small to permit a reasonable value for M, that is, it would set the switchpoint too far back into the sine wave. To overcome this problem a minimum value Nmin is defined as an empirical constant stored in memory. Then the value of α0 is then adjusted to permit a reasonable switchpoint. Whereas in the previous derivation the switchpoint was determined as 18 from the calculated intercept of the M vs. N curve (
M=N−s (28)
A second equation (29) is then defined to set the switchpoint at a convenient fraction ks of the sine wave.
M=ksN (29)
Combining equations (28) and (29) and recognizing that ks sets a minimum value for N yields:
This means that seeks faster than Nmin samples must have a smaller α0 (Reducing α0 increases N).
Substituting Nmin for N in the seek time equation and solving for α0 yields
For seeks not meeting Nmin this lowers α0 such that all seeks of less than x(Nmin) tracks have the same M and they will all take the same amount of time during the sine move. However, the time during the exponential arrival will not be constant because a shorter seek will have a smaller position (and velocity) initial condition and will therefore transition to the target track sooner. The seek time vs. the seek length will monotonically increase.
Switching from Sine Move to Exponential Arrival for τ≠10
In the section describing the calculation of the sine move to exponential arrival supra, τ is set to 10. The technique for obtaining M & xadjust are repeated for a range of τ's.
The data was extracted from that displayed in
S=1.6τ+2.3 (32)
Equation (32) should be used when setting up the seek constants for a given τ.
K
adjust=4.37×τ2.97 (33)
As in the case of equation (32) equation (33) should be used when setting up the seek constants for a given τ.
Two things are sufficient to keep the acceleration continuous when switching from sine move to exponential arrival: 1) the feedforward must be continuous and 2) the velocity error must be continuous. Equations (32) and M=N−S keep the feedforward continuous. Equation (33) and the expression Xadjust=α0 Kadjust /N keep the velocity error continuous. Equation (32) has no part in Kadjust.
The following sequence of steps is followed by the disk seek controller to implement the procedure of the present invention. References are made to steps on the flow chart in
The disk controller receives the address of the target track from the microprocessor or host interface, directs the transducer to read its current position, and then computes the number of samples N required to reposition the transducer from the current track to the target track.
If N<Nmin, reduce α0 with equation (31) and calculate a new N with equation (8) (
3. Compute ν(max) ((
In step 1, the seek length is determined from the initial position of the read/write head and the position of the target track. The former is obtained by query of the servo controller, the later by request from the disk controller. From this the value of N (step 2) is easily determined from α0
In step 3, ν(max)>is tested against a velocity which is not to be exceeded. ν(NE), This value is a constant of the disk drive.
τ, the exponential time constant, is chosen by the designer. Too large a value will make the overall seek time become too large. Too small a value will not allow the system sufficient time to reduce any errors before arriving at the target location.
In the
In
Kact is the actuator gain (or plant gain). The units here are tracks/sample2/mA. Depending on the situation, it is sometimes necessary to include the dynamic characteristics of the actuator in the model. In that case, this block is a transfer function. Fortunately, we can use a simple gain term and 1/s2.
Kdac is the digital to analog converter gain in mA/bit.
Kloop is the gain term used by the drive servo code to set the bandwidth of the velocity minor loop. The velocity minor loop is the path in
The calibrations necessary for the Implementation of the quiet seek procedure are described as follows:
The composite gain Kact* Kdac (referred to within the firmware as “acceleration gain”) is calibrated on a one time basis after the drive is assembled in the factory. This calibration factor (with units of tracks/sample2/bit) is used in three ways in the quiet seek procedure. They are:
Adaptive calibrations are continuously ongoing with each seek performed. Even when all system parameters aren't precisely known, the quiet seek will eventually converge to the target track with the acceleration, velocity, & position being driven to zero at the target track. This is particularly dictated by the phase plane (time independent) method of generating the acceleration feedforward term during exponential arrival. As our knowledge of the system parameters deviates from the ideal, the seeks will generally take longer to complete as the controller (with finite gain) compensates for the slight overshoot or undershoot incurred. In an effort to maintain predictable and repeatable seek times, the velocity error at the sine to exponential switch point is slowly driven to near zero in the controller firmware by a scheme that adaptively adjusts the acceleration gain to achieve this. This puts the actuator precisely on the exponential arrival trajectory as the target track is approached, minimizing errors that add variability in the total seek time.
Matlab® is used to model the drive and simulate the seek system. Matlab® simulations are incorporated as look-up tables.
Matlab® participates in the seek directly in two ways:
1) It is used to generate a “folded over” normalized velocity trajectory table which is incorporated in the controller firmware. This is a look-up table of normalized velocity vs. normalized position used by the seek controller during the sine move to determine the desired velocity at any given position.
The velocity reference for the sinusoidal portion of the quiet seek is generated using a table contained in firmware. Since the velocity profile for the seek is symmetric about the seek midpoint, the table need only represent the trajectory for the first half of the seek. For the second half of the seek, the table is “folded over” and traversed in the reverse direction until the switch-point for the exponential arrival is reached.
In order that a single trajectory table can be utilized for all seek lengths which necessarily have different maximum velocities, the table seek length and velocity parameters are both normalized to 1. To conserve memory yet provide good accuracy at the end of the seek where precise velocity control is necessary, the table has zones of varying resolution. The highest resolution zone is at the beginning of the table (used at the beginning and end of the seek when velocities are lowest), with zones of decreasing resolution as the table is traversed to the end (used in the highest velocity mid-part of the seek).
The normalized velocity trajectory table is used to generate a velocity demand at any given position in a phase-plane approach. This normalized table is independent of actual acceleration as well as all system-specific parameters making it reusable across all platforms and systems. The table features multiple“zones” with varying resolution, insuring accurate trajectories at low velocities when transitioning to exponential arrival.
2) It is used to generate a look-up table incorporated in the controller firmware which is used to:
a) determine the number of samples N required for any length seek as described by equation (8)
b) determine the actual peak acceleration α0 for any length seek as described by equation (10) and
c) determine a highly precise increment used to step through the firmware sine table to generate an accurate acceleration feedforward current during the sine move.
While this invention has been particularly shown and described with reference to the preferred embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made without departing from the spirit and scope of the invention.