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)
v0Ut (t) = L - t +Ke - ω(t)+R i(t) = Ka - vin (t)-KaKsRs - i(t) (2)
-17-
- di . R ', +Λ -„y ~Kr -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-vin(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-vin(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:
xe (k + l) = Φe -xe (k) + Te - vin (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)
ye (k) = He -xe (k) (11)
where y (k) is the actual plant output and ye (k) is the
estimator output. The modified estimator equation is:
xe (k + l) = Φe -xe (k) + re - vin (k) + Le -(y(k) -ye )) (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, xe 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:
Vin(k) = W-x(k) + REF = W-xe(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.