APPARATUS AND METHOD FOR SENSING DISK-DRIVE HEAD-ARM SPEED DURING HEAD LOADING

Abstract: Apparatus for estimating the speed of a disk drive's head arm during loading of the drive's read/write head onto a disk platter. The speed is estimated by a model of the head-arm actuator plant. The model is implemented by a digital state machine that tracks the head-arm's velocity, friction and voice-coil motor (VCM) current using a readily available sense voltage which is based on the VCM current. The apparatus of the invention is particularly advantageous because it allows a head-arm control system to have sufficient control over the head arm's movements so as to prevent the drive's read/write head from crashing into and damaging the drive's data recording surface.

Description: APPARATUS AND METHOD FOR SENSING DISK-DRIVE HEAD-ARM SPEED DURING HEAD LOADING FIELD OF THE INVENTION The invention relates generally to apparatus and methods for sensing the speed of a read/write head in a disk drive, and more particularly, to a state estimator for modeling the head speed with feedback based on a current through a voice coil motor that actuates a head arm. The state estimator thus yields an estimate for describing the head's state based on voltage signals commonly available from a head-arm actuator current driver. BACKGROUND OF THE INVENTION It has become common to supply disk drives that have a power saving mode in which the disk drive shuts down during periods of inactivity. When the disk stops spinning, the disk's read/write head will stop "floating" over the disk surface. Thus, it is generally desirable to park the head on to a ramp during non-operating time to prevent head crashes onto disk surface during transportation, to prevent static "stiction" during startup, and to prevent scratches on the disk as the head contacts when disk starts and stops spinning. To unpark a head from a ramp, it is necessary to load the head over the disk after the drive's spindle motor starts spinning. To prevent the head from crashing into the disk, the speed of the head movement must be controlled within a certain range depending on each particular drive design. Accordingly, it is desirable to measure the head's speed without significantly affecting the drive's cost. Existing head speed control systems take advantage of the fact that a back emf is generated that is proportional to the head speed. Thus, the speed may be determined by measuring the back emf. However, the back emf is often not a directly measurable parameter because it is superimposed with a voltage across the head's voice coil due to voltage drops associated with the coil's internal resistance and inductance. The value of the coil voltage is much larger than the back emf by a factor of about one-hundred. One technique for addressing the coil current measurement problem involves pulsing the driving current . A calculated control current is turned on for a fixed time period to cause the head move. The head's voice coil current is then turned off for another fixed period of time so that there is no voltage drop across the coil due to current. Theoretically, the back emf due to the head movement is thus measured and used as the speed indication. However, since there is fair amount of friction associated with the head, it has been found that the head slows (or may even stop) immediately after the current is turned off. Thus, the voltage measured during the interval in which the current is turned off often fails to accurately represent the head speed. Furthermore, the head movement resulting from pulsing the current generates vibrations in the system. Accordingly, there exists a need for a circuit to accurately monitor the head arm velocity without unduly increasing the cost of the disk drive. - 4 SUMMARY OF THE INVENTION The present invention is embodied in a system, and related method, for estimating state variables of a disk-drive head-arm. The system includes a processor and a current sense circuit . The current sense circuit monitors current through a head-arm actuator during operation and generates a sensor signal based on the current through the actuator. The processor receives the sensor signal and generates at least one estimated head- arm state variable based on the sensor signal . In more detailed features of the invention, the estimated head-arm state variable represents the velocity of the head arm. Also, the processor includes a state estimator that models a plurality of estimated head-arm state variables. Further, the actuator may include a voice coil motor coupled to the head arm for actuating the head arm. Accordingly, the state variables that the state estimator models may include the velocity of the head arm, the friction associated with the head arm, and the current through the voice coil motor. Additionally, the processor - 5 - may be a digital signal processor that implements a digital state estimator that models a plurality of head- arm state variables. In other more detailed features of the invention, the digital state estimator may include first and second summers, a unit delay and a feedback control element . The first summer adds control data to estimated control data provided by the feedback control element based on estimated head-arm state data to generate predicted data. The unit delay delays the predicted data to generate delayed predicted data. The second summer adds the delayed predicted data to a sensor error signal generated based on the difference between the sensor signal and an estimated sensor signal to generate the estimated head-arm state data. The estimated head-arm state data includes information for constructing the estimated sensor signal. Other features and advantages of the present invention should become apparent from the following description of the preferred embodiments, taken in conjunction with the accompanying drawings, which - illustrate, by way of example, the principles of the invention. BRIEF DESCRIPTION OF THE DRAWINGS FIG. 1 is a schematic block diagram of a head- arm control system, according to the invention, for estimating the state of the arm, according to the invention, including determining the velocity of a disk- drive's head arm. FIG. 2 is a block diagram of an estimator model, according to the invention, for modeling the disk-drive's head-arm velocity. FIG. 3 is a block diagram of the estimator model, according to the invention, showing the signals the estimator model receives in relation to a current driver of the control system of FIG. 1. FIG. 4 is a block diagram of a digital signal processing system, according to the invention, for modeling the disk-drive's head-arm movements. FIG. 5 is a block diagram for modeling the head-arm hardware and actuator-control system. FIG. 6A is a plan view of the disk drive and the disk-drive head arm in the parked position before unloading from the ramp. FIG. 6B is an elevation view of the disk drive and the disk-drive head arm of FIG. 6A, showing the head arm in the parked position before unloading from the ramp. FIG. 7 is a plan view of the disk and disk head arm as the head is sliding off from the parking ramp. FIG. 8 is a plan view of the disk and disk head arm as the head is off from the parking ramp and over the data surface of the disk. FIG. 9 is a graph showing a simulated friction profile having ramp and step disturbances and showing the model's estimated friction. FIG. 10 is a graph showing the actual head velocity and the estimated head velocity for the simulated friction profile of FIG. 9. FIG. 11A is a flow diagram of a head load setup subroutine for implementation of the estimator according to the invention. FIG. 11B is a flow diagram of a timer interrupt routine which implements the estimator of FIG. 2 and is referenced by the head load setup subroutine of FIG. 11A. DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The invention is embodied in a state estimator and related method, for sensing and determining the movement speed or velocity of a disk drive's head arm using a model of the actual head-arm and actuator, that tracks a readily available drive parameter. More particularly, the estimator tracks the state of the head- arm and actuator using a voltage signal which is provided by typical current drivers of most existing actuator control circuits. The estimator, in accordance with the invention, is particularly advantageous because its head- arm velocity estimate allows a head-arm control system to have sufficient control over the head arm's movements so as to prevent the drive's read/write head from crashing into and damaging the drive's data recording surface. The state estimator of the invention is preferably implemented by a digital state machine using a microprocessor. However, it should be noted that the - 9 - estimator may be implemented by an analog control circuit without departing from the principles of the invention. The head-arm actuator estimation system 20 of the invention, described with reference to FIG's. 1-3, operates in conjunction with a head-arm control system 18 that controls the head position during normal disk drive operation and the head-arm velocity during head loading. The head arm control system typically includes a head position control circuit having a feedback loop. The position control circuit receives a desired head position signal or command and uses a comparator 24 to compare the desired head position signal with an actual head position signal to generate a position error signal. A tracking error compensator circuit 26 generates a compensated signal based on the position error signal. A select switch 28 couples the compensated signal to a current driver 30 that drives the current flowing through the actuator's voice coil motor (VCM) 32. The current driver has a selectable gain switch or control 34 and generates a sensor voltage signal representing the current through the VCM. The sensor voltage is taken from the terminal leads of the VCM coil and sense resistor network. - 10 - The current through the VCM 32 generates a torque on the head arm 36 shown in Fig. 6A. The torque causes the head arm to rotate about its pivot point 38 at a velocity related to the torque. The torque is controlled so that the drive head 40 moves to a position over the desired portion of a disk platter 42. The head position over the platter is determined by position indicators encoded or embedded in the surface of the disk platter. A detection and demodulation circuit 44 generates a detected head position signal based on the detected head position which is compared with the desired head position signal. Unfortunately, unless the drive head is over the surface of the disk platter, it cannot read the position indicators and thus the head position cannot be determined. During head parking and unloading, the head leaves the surface of the disk platter and, thus, the head velocity may not be determined based on the head arm position control circuit . The head velocity is estimated using a current driver and VCM model that preferably models four states of the head-arm actuator. These states are the VCM's applied voltage, the head arm's velocity, the friction, and the - 11 - delay between the sample time and the actual control output time (the delay due to computation time) . Accordingly, all of the internal states of the system, including the head arm's angular velocity, may be derived from the output of the model . During head parking and unloading, the select switch 28 is positioned to couple the current driver's input to a velocity control signal generated by a velocity control circuit 48 and the current driver's gain is lowered by the gain control 34. The current driver's loop gain Ka may be set by components external to the driver. More specifically, the driver is normally configured as a transconductance amplifier having a relatively large loop gain. In this configuration, the current usually converges to the commanded value in a very short period of time with negligible error. During head loading, however, the loop gain is set to a relatively small value so that, for a given actuator configuration, the states are observable and may be derived using the sensor signal . The velocity control circuit 48 also provides the velocity control signal to the actuator model 46. The - 12 - actuator model also receives an error signal to be discussed in more detail below. The model generates a head-arm velocity estimate signal which is compared by a comparator 50 with a desired velocity signal. The comparison results in a velocity error signal which is input into the velocity control circuit. The model also generates an estimated sensor voltage signal . A comparator 52 compares the model's estimated sensor voltage signal with the actual sensor voltage to generate a sensor error signal which is fed back into the model . The sensor error signal operates to keep the model in close agreement with the actual state of the head arm and actuator. The driver and actuator model 46 is shown in more detail in FIG. 2. As discussed above, the model receives two input signals and generates two output signals. The first input signal is the velocity control signal. The control signal, in conjunction with the current states, predicts the states at next sample time. The next predicted states equals the control signal multiplied by a constant vector GAMMAe plus the current states multiplied by a matrix PHIe. At next sample time, -13- the predicted states are further corrected by the error signal multiplied by the correction vector Le as the true states for that sample. The current estimated states includes head arm's velocity. The estimated sensor voltage is obtained by multiplying the current states with an output matrix He . Accordingly, the estimation system 20 is implemented using the model 46 and the comparator 52. The model is a digital state estimator implemented in software comprising first and second summers 90 and 92, a unit delay 94 and a feedback control element 96. The first summer adds control data to estimated control data provided through the feedback control element to generate predicted data xp (k+l ) . The unit delay delays the predicted data to generate delayed predicted data xp (k) . The second summer adds the delayed predicted data to the sensor error data y (k) - ye (k) generated by the comparator 52 to generate the estimated head-arm state data xe (k) . The error data is generated based on a comparison between estimated sensor data from the output matrix He and the actual sensor data generated based on the current through the head-arm actuator. - 14 - The operation of the head arm 36 is discussed with reference to FIGS. 6A-8. FIG. 6A shows the head arm in relation to the disk platter 42 and a head parking ramp 54. The head arm pivots about a pivot point 38. Opposite the head 40 is the voice coil motor 32 which applies a torque to actuate the head-arm. As shown in FIG. 6B, several platters may be stacked to increase the drive's data capacity and the head-arm would accordingly be a stack of mechanically coupled head arms and the parking ramp would be a stack of parking ramps . The head arm has a slider 56 that extends a slight distance above and to the side of the head 40 to engage and slide up and down the ramp during head loading and unloading, respectively. The slider is shown in FIG. 6A in a parked position on the ramp. In this position, the drive's read/write head is not over the disk platter. As the slider slides down the ramp, the head begins to be over the disk platter as shown in FIG. 7. Once the head arm is unloaded from the ramp, the select switch 28 (FIG. 1) couples the current driver's input to the tracking compensator circuit and the head arm is free to travel - 15 - across the platter's surface under the control of the head position signal. A processor 58 for implementing the estimation system 20 is shown in FIG. 4. The model processor includes a digital signal processor (DSP) 60 coupled by a data bus 62 to flash memory 64, random-access memory (RAM) 66, and a gate array 68. The gate array receives commands from a host controller 70, or from an RS-232 port 72 coupled to an external computer. The gate array controls signals to an analog-to-digital (A/D) converter 74 and also receives A/D conversion data from the A/D converter. The DSP is also connected by a serial bus 76 to a dual digital-to-analog converter 78 that generates the estimated sensor voltage signal and the velocity control signal. An analog amplifier 80 compares the estimated sensor voltage signal to the actual sensor voltage signal and generates an error signal representing the difference between the two signals. The sensor error signal is further amplified by an analog voltage amplifier 82 having a predetermined gain selected to advantageously use the A/D converter's conversion range. The amplified sensor error signal is provided to the A/D - 16 - converter that converts it to a digital sensor error signal which is provided to the gate array. In a preferred embodiment, the DSP 60 is Part No. TMS320C52, the dual DAC 78 is Part No. TLC5618C, the current driver 30 is Part No. TLS2235, and the analog amplifiers 80 and 82 are Part No. TLC2272, all available from Texas Instruments. The gate array 68 is Part No. XC4010PQ, available from Xilinx. The flash memory 64 is Part No. 29C1024, available from Atmel . The RAM 66 is Part No. CY7C1021, available from Cypress Semiconductor. The A/D converter 74 is Part No. 35H6522, available from Silicon Systems Inc. To derive the mathematical equations used by the DSP 60 for implementing the estimation system 20, a model 20' of the actual mechanical plant of the head-arm and actuator, shown in FIG. 5, is used. The state equations derived from this model are as follows: -f4(κ,*. -/(0) (1) v 0Ut (t) = L - t +K e - ω(t)+R i(t) = K a - v in (t)-K a K s R s - i(t) (2) -17- - di . R ', +Λ -„y ~K r -R ■ , . m -y K„ ω(t)+ y K„ v t) ,3, where : Vin is the actual command voltage; L is the VCM coil inductance; Rt is the VCM coil resistance plus the sense resistor; Rs is the sense resistor inside the current driver for monitoring the VCM current. Ka, is the internal driver gain; Ke, is the electrical constant; Ks is the current sensing amplifier gain; Kt is the mechanical torque constant; and J is the head arm's inertia. The exact values for the friction force f (t) are not generally known and vary from drive to drive. However, for a given design, the profile of the friction along the ramp is usually known. In most cases, the friction changes little with time since the ramp material and the mass of the moving parts do not change . Combining equations (l)-(3), into a state equation format provides the following state equation: -18- -χ(t) = A-x(t) + B-v in (t) (4) where x(t) is a vector comprising of three states t., x(t) = ω(t) (5) Kf(t\ where: i(t) is the VCM coil current; ω(t) is the head-arm's angular velocity; and f(t) is the friction force. The above equation describes the three states of the physical system in the continuous domain. To implement the model in the DSP, the continuous domain model is converted to its discrete equivalent. The same symbols are used for the states and state vectors in the discrete model without causing confusion. The following equation represents the discrete equivalent for the continuous system: x(k + ϊ) = Φ-x(k) + T-v in (k) (6) where - 19 ω(k) X(k) ( 7 ) f(k) d(k) and where i (k) is the VCM coil current; ω (k) is the head arm's angular velocity; f (k) is the friction force; and d (k) is the computational delay. The k parameter denotes the sample sequence number, corresponding to time t in the continuous system. The parameter i (k) means the coil current at k-t sample, for example. Equation (6) indicates that the states at sample k+1 may be predicted once the states and control input at k-th sample is known. The delay state d (k) accounts for the delay between the sample time and the actual control output time due to computation by the DSP. Since deviations always exist between the physical world and the ideal mathematical model, the equation implemented in the DSP model, i.e., the - 20 - estimator, is distinguished by a subscript "e" added to all the states and the state vector as follows: x e (k + l) = Φ e -x e (k) + T e - v in (k) (8) where : *.(*) = [ 9 ) As discussed above, deviations between the actual system (Eqn. 4) and estimator (Eqn. 6) eventually cause the estimated states to diverge from the real states unless feedback is provided to the estimator. Note that the estimator may model and output many states of the head-arm actuator plant. For estimating and controlling the head-arm' s velocity, it is desirable to select an output that corresponds to an actual measurable quantity. Advantageously, the sensor voltage signal measured across the VCM coil and the sense resistor network is selected since it is practical to measure. Mathematically, if a system is fully observable, all states may be derived from the estimator's output. - 21 - Further, if the estimator deviates from the real system (the actuator plant) , its output will also deviate from the plant . The error between the estimator output and the plant output is then used to keep the estimator from diverging from the plant. The output equations for the sensor voltage are as follows: y(k) = H -x(k) (10) y e (k) = H e -x e (k) (11) where y (k) is the actual plant output and ye (k) is the estimator output. The modified estimator equation is: x e (k + l) = Φ e -x e (k) + r e - v in (k) + L e -(y(k) -y e )) (12) The parameter Le is a vector, which is selected such that the overall system, the estimator plus the plant, is stable. Once the above estimator is constructed, estimated states are used in place of the real plant states. If one uses a classical control technique, such as PID control, the estimator needs to provide only the estimated velocity. If a state space control technique is used, one can output all the states from estimator. - 22 - The estimator of equation (12) thus has two inputs, the velocity control signal, Vin (k) , and the sensor error signal, erro (k) =y (k) -ye (k) . The estimator has at least two outputs, the estimated sensor voltage, ye (k) , and the estimated head-arm velocity, ω (k) . Other states may be brought out if desired. A simulation of the velocity estimation system operating under adverse conditions is generated using a representative "worst case" ramped friction profile plus an external step disturbance along the ramp, shown in FIG. 9. The simulated head arm and actuator friction or force profile is indicated by the dotted line. The estimated friction or force profile generated by the model circuit is indicated by the solid line. The close tracking of the simulated force by the model's estimated force is readily apparent from the graph. At t=0.01 seconds (s), a step is applied to the system. At t=0.015 s, the disturbance starts ramp down to simulate the ramp slope. The ramp down in this simulation takes only 0.015 s. Actual head unloading takes about 0.2 s. Accordingly, the simulated unloading time shown of Fig. 9 is about 13 times shorter than the actual head unloading time. - 23 - Corresponding simulated and estimated head unload velocity is shown in FIG. 10. The head velocity increases to a relatively steady state once the static friction is overcome. The velocity settles to 0.4 inches per second (ips) without any steady error. The system reacts to the step disturbance input and the velocity recovers in less than 50 msec. During the ramp down time, the model lags the plant by a steady error which is within an acceptable range . Accordingly, the simulation demonstrates that system is able to track the head-arm velocity even under adverse conditions. Further, errors in the velocity estimate do not accumulate and external vibrations or noise do not cause the system to become unstable. Although the plant velocity may be greater than the modeled velocity, the modeled velocity is sufficiently accurate to provide adequate control of the head unload velocity so as to prevent damage or scratching of the disk platter surface. The model is implemented in the DSP 60 by software coded in accordance with the flowcharts shown in - 24 - FIGS. 11A and 11B. To perform a headload, the control system calls a subroutine named start_load (FIG. 11A) . The start-load subroutine first initializes all states to zero except the friction state which is initialized to a nominal value of 0.024 Newton-meters (N-m) . This nominal value is scaled up for integer calculation within the DSP. The subroutine then sets the VCM current driver 30 and related hardware to a head load made and enables the current driver. The start_load subroutine then starts a timer which gives a precise sample clock having a 100 microsecond interval . This causes the DSP to regularly attend to a timer interrupt routine (FIG. 11B) at 100 microsecond intervals. The timer interrupt routine implements the model equation. The state equation (12) is implemented in two parts. The first two terms of the equation are the prediction of sample k+1 at sample k. The second two terms represent an error value which is used to correct any errors based on the predication. The predication can be made as soon as the control signal Vin(k) is calculated at sample time k to save time in processing the next - 25 - sample. At each sample time, x e is corrected based on the predication from the last sample by the Le*est_err amount and is immediately used in the control system. In one embodiment of the invention, a state- space based control technique is used. In this technique, the control law is given by the following state equation: V in (k) = W-x(k) + REF = W-x e (k) + REF (13) The value of W is calculated beforehand and is chosen so that the control system is stable. Reference ω_ref is predetermined number related to the desired velocity, for example, 0.4 ips . Note that the friction state does not change with the control input, so no prediction is preformed for it. The delay state is directly equal to vin(k) . An integrator state is introduced in the control law so as to zero out velocity error. Further, in a specific implementation, examination of the actual PHI matrix, and Gamma matrix often results in the identification of many zero terms. The calculations involving these terms may be eliminated thus saving some unnecessary processing load on the DSP. - 26 - As readily apparent to one skilled in the art, once the head speed is available, the head speed may be readily controlled using, for example, a PI control system, a PID control system, or preferably, a state-space based feedback control system since all the states are available using the model. While the foregoing has been with reference to specific embodiments of the invention, it will be appreciated by those skilled in the art that these are illustrations only and that changes in these embodiments may be made without departing from the principles of the invention, the scope of which is defined by the appended claims.

Claims: -27- What is claimed is: 1. Apparatus for estimating the state of a disk-drive head-arm, comprising: a current sense circuit for monitoring current through a head-arm actuator during operation and generating a sensor signal based on the current through the actuator; a processor for receiving the sensor signal and for generating at least one estimated head-arm state variable based on the sensor signal ; and means for outputting data signals representing the estimated head- arm parameter. 2. Apparatus for estimating the state of a disk-drive head-arm as defined in claim 1, wherein the estimated head-arm state variable represents the velocity of the head arm. 3. Apparatus for estimating the state of a disk-drive head-arm as defined in claim 1, wherein the -28- processor includes a state estimator that models a plurality of estimated head-arm state variables. 4. Apparatus for estimating the state of a disk-drive head-arm as defined in claim 3, wherein the actuator includes a voice-coil motor coupled to the head arm for actuating the head arm. 5. Apparatus for estimating the state of a disk-drive head-arm as defined in claim 4, wherein the state variables that the state estimator models are the velocity of the head arm, the friction associated with the head arm, and the current through the voice-coil motor. 6. Apparatus for estimating the state of a disk-drive head-arm as defined in claim 1, wherein the processor is a digital signal processor that implements a digital state estimator that models a plurality of head- arm state variables. 7. Apparatus for modeling a disk-drive head-arm parameter as defined in claim 6, wherein the digital state estimator comprises first and second summers, a unit delay and a feedback control element, wherein the first summer - 29 - adds control state data to estimated control data provided by the feedback control element based on estimated head- arm state data to generate predicted data, the unit delay delays the predicted data to generate delayed predicted data, and the second summer adds the delayed predicted data to a sensor error signal generated based on the difference between the sensor signal and an estimated sensor signal to generate the estimated head-arm state data which includes information for constructing the estimated sensor signal . 8. A digital state estimator comprising first and second summers, a unit delay and a feedback control element, wherein the first summer adds control data to estimated control data provided by the feedback control element based on estimated head-arm state data to generate predicted data, the unit delay delays the predicted data to generate delayed predicted data, and the second summer adds the delayed predicted data to sensor error data generated based on the difference between estimated sensor data and sensor data generated based on current through a head-arm actuator to generate the estimated head-arm state - 30 - data which includes information for constructing the estimated sensor data. 9. Method for estimating the state of disk- drive head-arm, comprising adding control data to estimated control data based on feedback from estimated head-arm state data to generate predicted data, delaying the predicted data to generate delayed predicted data, adding the delayed predicted data to sensor error data generated based on the difference between estimated sensor data and sensor data generated based on current through a head-arm actuator to generate the estimated head-arm state data which includes information for constructing the estimated sensor data.

Applicants: SEAGATE TECHNOLOGY, SEAGATE TECHNOLOGY, INC.
Application year: 1999
Main classification: G11B21
IPC codes: G11B21