The present invention relates in general to DC motors, and more particularly, to a method for determining an effective resistance of a DC motor, such as a Voice Coil Motor (VCM), for positioning read/write heads of a hard disk, and to a relative voltage mode driving circuit.
The read/write heads of a hard disk are positioned by DC motors, typically a voice coil motor (VCM), that should be precisely driven for correctly sensing the arm or equivalent holder of the transducers to read data stored along a disk track. Voice coil motors are largely used, and for this reason the ensuing description is referred to these motors, but what will be stated holds even for other kinds of DC motors for positioning read/write heads onto a data storage disk.
Commonly, voice coil motors are current controlled by a feedback loop such as that of
A sample main feedback loop is shown in
In the Current Minor Loop, the current absorbed by the motor is commonly monitored by a sensing resistor in series to at least one winding of the motor. The main drawback of this approach is that the value of the sensing resistors should be precisely determined for minimizing errors, and thus they are quite expensive. The voltage drop on the nodes of a sensing resistor should be provided to an integrated control circuit through dedicated pins. Because of the ever increasing integration level of electronic circuits, a larger number of pins implies larger packaging costs. Moreover, forming feedback loops for controlling in a current mode a motor is a non-negligible cost, especially for large scale productions.
To prevent using dedicated pins for a current sensing signal, a feedback loop and a corresponding controller and an open-loop voltage mode control, such as that depicted in
The admittance of the motor varies during the functioning because the motor heats, and thus its resistance R increases with temperature. As a consequence, the filter that generates the control voltage of the power amplifier may be not sufficiently accurate when the motor resistance differs from its nominal value.
Of course, it is possible to modify parameters that define the filter for adjusting them to resistance variations of the motor, but this can be done only after having determined the effective resistance R of the motor. This should be performed without sensing the current circulating in the motor for having the above mentioned advantages of the open-loop voltage mode control.
This need is particularly felt when driving voice-coil motors for positioning read/write heads of a hard disk. During the so-called “seek” operations, a temperature of the VCM increases and its resistance also increases. If a track has to be read immediately after a seek operation, the command signal provided to the motor may be unsuitable for positioning the read/write head on the desired track because the motor resistance has increased. The same problem is present when the motor cools down, and thus its resistance decreases.
To estimate the VCM resistance, several techniques can be used. Reference is directed to the following two references: Oboe et al., Realization Of A Hard Disk Drive Head Servo-Positioning System With A Voltage-Driven Voice-Coil Motor, Microsystem Technologies, Vol. 9, No. 4, 2003, pp. 271–281; and Oboe et al., Realization Of An Adaptive Voltage Driver For Voice Coil Motor, ISPS-MIPE Joint Conference, June 2003, Yokohama, Japan. In these refereces, an approach based on an EKF (Extended Kalman Filter) has been presented and applied to the on-line adaptation of the digital pre-filter in a voltage control mode.
This approach was quite effective and capable of tracking even stepwise variations of the VCM resistance. Convergence of the algorithm was ensured during seek operations, while the precision of the identification decreased when the seek span was reduced under a few tens of tracks. This was caused by the reduction of the signal-to-noise ratio that occurs when the head makes small movements. Indeed, in such conditions the command level becomes negligible as compared to the level of the noise due to RRO (Repetitive Run Out) and NRRO (Non-Repetitive Run Out) disturbances. The EKF noise model is no longer valid.
Another drawback of the EKF-based adaptation in actual HDDs is the high computational cost involved by this adaptation. Even if particular care has been devoted to the model order reduction and to the fixed-point optimized implementation, the EKF-based adaptation still required a fully dedicated DSP to the real-time computation, thus making the use of the voltage driver undesirable from an overall cost point of view.
In view of the foregoing background, an object of the invention is to estimate the resistance of a DC motor with a procedure that is not affected by the above mentioned drawbacks.
First, a resistance estimation algorithm for performing a reliable estimation even in low signal-to-noise ratio conditions is provided. Second, an estimation procedure requiring the least computational power to be performed is provided so as not to affect the overall cost of the VCM driver. These two aspects are not addressed by a single approach. Two different algorithms for estimating the resistance of the motor have been developed. The first is to be used during seek operations, and the second is to be used during track-following operations.
According to another aspect of the invention, a method for performing a transition from an estimation procedure during a seek operation and during a track following operation or vice-versa is provided.
The use of seek-based or track following-based identification is dictated by the state of the disk. Of course, there are internal flags of the HDD which signal that the disk is in a seek, a settling or a track following mode. These flags may be used for switching from an identification procedure during a track following to an identification procedure during a seek.
As an alternative, particularly useful when such information in the experimental system cannot be accessed, it is possible to activate a seek identification procedure when the absolute values of the signal PES and velocity go over some thresholds, and using the track following identification procedure when the signal PES and velocity are smaller than the same thresholds.
For a better understanding of the invention, reference is made to the following description of exemplary embodiments thereof, considered in conjunction with the accompanying drawings, wherein:
The gain of the overall system for positioning the read/write heads varies with temperature and position of the heads. Temperature directly affects the value of the VCM resistance, while VCM torque gain Kt may decrease when the head is flying either on the outermost or on the innermost tracks. This is due to the edges of the permanent magnets being reached. The variation of the torque constant Kt with the head position can be determined with ad hoc experiments and stored in a look-up table, to be used in run time, so only the variation of the VCM resistance should be performed on-line. Moreover, it will be shown below how a mismatch between the real value of Kt and the nominal value does not influence the precision of the proposed estimation procedure.
Parameters estimation during seek operations will now be discussed.
By assuming Kt=Ktnom, i.e., the effective torque constant of the motor coincides with its nominal value, the transfer function G(s) of the model of
wherein Acc(s) is the Laplace transform of the acceleration of the VCM, V(s) is the Laplace transform of the difference between the output of the power amplifier that drives the motor and the back electromotive force induced in the windings of the motor because of its rotation, J is the moment of inertia of the rotor, and L and R are the inductance and the resistance of the motor, respectively.
The transfer function G(s) is sampled by using a ZOH (Zero Order Holder) with a sampling period T, obtaining a respective discrete model of the motor:
Once the parameters θ1 and θ2 are calculated, it is possible to estimate the resistance R of the motor. These parameters are calculated by a classic RLS algorithm, as illustrated in Astrom et al. Adaptive Control, Addison Wesley, 1988. The steps include determining preliminarily the initial values of a parameter vector
and of an observation vector
choosing the value of a weight γ to be used for calculating the weighted sums of the RLS algorithm; and defining the initial value of an auxiliary parameter P as the inverse of the square norm of the initial observation vector.
The steps further include iteratively performing the following operations: calculating a correction vector L[k+1] according to the following formula:
wherein Ψ′[k+1]=[−Acc[k] V[k]]; generating a new observation vector Ψ[k+2]; calculating a prediction error e[k+1] as a function of the parameters vector and the observation vector, preferably according to the following formula:
e[k+1]=Acc[k+1]−(θ2[k+1]·V[k]−θ1[k+1]·Acc[k]);
calculating a new parameters vector Θ[k+1] according to the following formula:
Θ[k+1]=Θ[k]+L[k+1]·e(k+1); and
calculating a new value of the auxiliary parameter P[k+1] as a function of the current correction vector, the current observation vector and the previous value of the auxiliary parameter P[k], preferably according to the following formula:
Values of the parameter γ near to 1 make the algorithm converge relatively fast but with a relatively large variance. In contrast small values (near 0, 9) of this parameter make the algorithm converge relatively slowly but with a small variance. A good compromise includes having the parameter γ range between 0.95 and 1. A preferred value of this parameter is 0.9995.
The above algorithm may be simplified for reducing the computational load of operations to be performed. This simplified version will be referred below as “identification with MIT rule” and is composed of the following steps: determining preliminarily the initial values of a parameter vector
and of an observation vector
choosing the value of a weight λ to be used for calculating the weighted sums of the MIT algorithm; estimating the acceleration of the motor Âcc[1] that will be detected at the next iteration step as a function of the initial values of the parameters vector and observation vector, preferably according to the following formula:
generating a new observation vector Ψ[2]; calculating a prediction error e[k] as a function of the estimated and effective acceleration of the motor, preferably according to the following formula:
e[1]=Âcc[1]−Acc[1].
The steps further include iteratively performing the following operations: estimating the acceleration of the motor Âcc[k+1] that will be detected at the next iteration step as a function of the present parameters vector and observation vector, preferably according to the following formula:
calculating a new parameters vector Θ[k+1] by correcting the previous parameters vector Θ[k] and the current observation vector Ψ[k+1], preferably according to the following formula:
Θ[k+1]=Θ[k]−λ·e(k)·Ψ[k+1];
generating a new observation vector Ψ[k+2]; and calculating a prediction error e[k+1] as a function of the estimated and effective acceleration of the motor, preferably according to the following formula:
e[k+1]=Âcc[k+1]−Acc[k+1].
Preferably, the value of the parameter λ is 0.125·10−10.
To keep the computational load as low as possible, it is possible to simplify the model of the VCM. In the low frequency range of the motor (i.e., neglecting the effects of its inductance L), the motor can be approximated by a purely inertial system controlled by the difference between the voltage output by the power amplifier and the back electromotive force induced in the windings of the motor because of the rotation of its rotor. By neglecting the effect of the inductance L, the model of the motor is described by the following constant transfer function:
In so doing the parameter vector has only one component
The value of the gain θ can be calculated using an MIT rule identification algorithm, comprising the following steps: determining preliminarily the initial values of the gain θ and of the observation vector
choosing the value of a weight λ to be used for calculating the weighted sums of the algorithm; calculating an expected input signal of the motor {circumflex over (V)}[1] as a function of the initial values of the parameters vector and observation vector, preferably according to the following formula:
calculating a prediction error e[k] as a function of the estimated and effective input voltage of the motor, preferably according to the following formula:
e[k]={circumflex over (V)}[k]−V[k].
The steps further include iteratively performing the following operations: calculating a new gain θ[k+1] by incrementing or decrementing the previous parameters vector θ[k] and the current observation vector Ψ[k+1], preferably according to the following formula:
Θ[k+1]=Θ[k]−λ·e(k)·Acc[k+1];
generating a new observation vector Ψ[k+2]; and calculating a prediction error e[k+1] as a function of the estimated and effective input voltage of the motor, preferably according to the following formula:
e[k+1]={circumflex over (V)}[k+1]−V[k+1].
With this simple algorithm it is possible to evaluate the resistance R of the motor and use it for compensating eventual variations of the torque constant Kt.
To calculate the resistance R from the estimated gain θ it is more convenient to perform the estimation algorithm with a variable ξ defined as follows:
wherein C is a constant due to the measure of the input and output variables of the algorithm.
In so doing the algorithm outputs a value which is directly proportional to the effective resistance of the motor.
As stated above, the torque constant Kt of the motor has been considered constant and equal to its nominal value Ktnom. When this condition is no longer verified, the value of the difference between the voltage output by the power amplifier and the estimated back electromotive force of the motor may differ from the actual value. This may lead to a relevant imprecision in determining the actual value of the resistance of the motor.
If the effective torque constant Kt differs from its nominal value Ktnom, the transfer function of the VCM includes a spurious zero at
Therefore, at very low functioning frequencies the inertial model is no longer valid.
The position of this zero for a reasonable difference of 10% between the effective and nominal torque constant is around 8 rad/s, so its effect can be compensated by an appropriate filter. According to a preferred embodiment of the invention, the data used in the RLS algorithm are obtained by filtering the calculated data with a band pass filter with a bandwidth of 1–150 Hz. In so doing the undesired effects of the above mentioned spurious zero, as well as Repetitive Run Out disturbances, are filtered and do not affect the estimation of the resistance of the motor.
Parameters estimation during track following operations will now be discussed. The method for estimating the resistance of a motor described in the previous section works properly when disturbances (first harmonic of the RRO and NRRO) can be neglected, i.e., when the disk is performing relatively large seek operations. Prolonged seek operations cause self-heating of the VCM and R may vary by 20%.
During a track following, disturbances cannot be neglected so the estimation algorithm described in the previous section cannot be applied. According to the invention it is possible to exploit disturbances for estimating the resistance of the VCM.
Let us consider the servo-controller during a track following operation and suppose that the only disturbances acting on the main closed loop are RRO (Repetitive Run Out) disturbances, as schematically illustrated in
wherein P(z, R) is the transfer function of the blocks (FILTER and VCM) on the signal path of the main control loop and C(z) is the transfer function of the heads position controller.
Considering a low frequency disturbance, the position controller has a large gain and the cascade of blocks on the signal path is essentially inertial. It results that the ratio between the signals URRO for a VCM with resistance R1 and R2, at two different temperatures T1 and T2, respectively, under the same disturbance, is equal to:
In other words, if the disturbance is constant at a certain frequency, the value of the compensating command varies with the VCM resistance. This gives an alternative method to estimate the variation of R, to be used during a track following, provided that its initial value has been determined with the estimation procedure described previously to be performed during a seek operation.
Moreover, with fluid-dynamic bearings NRRO is very small and, in turn, RRO is quite stable, so one of its harmonics can be used for the identification during track following. A sample graph of an RRO disturbance is shown in
Let us consider a disk rotating at 5400 RPM, corresponding to a 90 Hz RRO fundamental. The straightforward way to get the amplitude of the 90 Hz component in the command includes computing the corresponding FFT as shown in
The command generated by the voltage mode motor controller is multi-rate with ratio m, then its value is averaged over one single rate sample, before being multiplied by the samples of sin(2π90kT) and cos(2π90kT), stored into a look-up table. The outputs xk and yk at each sample are then cumulated over one disk rotation into the variables X and Y, and then processed as follows at the end of the rotation:
Note that the squared absolute value of the FFT bin is low-pass filtered to smooth out the estimated value. Given a seek command at the i-th disk rotation after the last seek command, the pre-filter gain can be adapted to the new value of VCM resistance simply multiplying it by:
where Tfid(0) represents the initial value of the squared absolute value of the 90 Hz component, computed when the settling phase is over.
As a result,
According to the preferred embodiment of the invention, the resistance R of the motor is estimated during a track following operation in a very fast way by exploiting certain circuit blocks that are present in the controller for positioning the heads onto the hard disk.
Let us refer to
The first block T
The main task of this second block is to eliminate as much as possible all RRO disturbances from the Position Error Signal (PES). This is referred to in the above cited references as an Adaptive Feed-forward Compensation (AFC).
As shown in
Each amplitude and phase of the signal coming from these sine generators is set by an estimating procedure that, by observing all harmonics present in power spectrum of the Position Error Signal (PES), is capable of finding the amplitude and phase of the harmonic that each sine generator should input to the process P for canceling those harmonics in the PES signal.
According to the invention, it is possible to exploit the sine generators of the AFC block to estimate the resistance of the VCM. When the VCM has completed a seek and it is just entered in the track following mode, the amplitude A1 of the sine generator whose frequency is equal to rotating spindle mechanical frequency (set to 90 Hz in the preferred embodiment) is read from a register of the AFC block.
The amplitude A1 is averaged on N spindle turns and then its mean value A1mean is stored as a reference value A1init. When a new value A1 is read, the averaged value A1mean is updated and this mean value A1mean is fed to a low pass filter to reduce high frequency noise. The amplitude A1(k) of the sine signal to be generated is the filtered version of the mean value A1mean.
If VCM resistance R increases, the compensating command C
Switching between seek and track following resistance estimation methods will now be discussed. According to another aspect of the invention, it is possible to switch from the resistance estimation method during a seek operation to the resistance estimation methods during a track following operation, and vice-versa. In so doing it is possible to estimate the resistance of a VCM in almost any operating condition by performing a transition from one of the previously described methods to another.
A very straightforward way of doing this includes activating a seek identification procedure when the absolute values of the signal PES and velocity go over pre-established thresholds, and using the track following identification procedure when the signal PES and velocity are smaller than the same thresholds.
For example,
Similarly, the identification algorithm during the track following modes is activated when the position error is smaller than a third threshold, that in the shown example is 2 h and the speed is lower than a fourth pre-established threshold value, and is deactivated when this difference is larger than a fifth threshold, which in the shown example is 10 h.
Of course, all these thresholds may be varied depending on the HDD used and the chosen control strategy. As an alternative, it is possible to exploit the internal flags of the HDD that signal that the disk is in a seek or track following mode for switching from an identification algorithm to the other. This alternative can be implemented only if such information can be accessed.
A test system will now be discussed. The experimental results presented in the previous sections were obtained by using the test system of
Using the VCMC, parameter estimation and adaptation of the controller in a voltage mode of the motor running on the DSP and all computations are executed in a few μs. The number and type of instructions to be executed by the DSP are reported in TABLE 1 using the MIT rule and considering a constant transfer function of the motor, specifying whether they are repeated in single rate or multi rate.
Compared to the EKF algorithm reported in the Oboe et al. references, the number of instructions per cycle required by the proposed algorithm is less than one tenth, with a drastic reduction of the computational requirements. The interface board mounts a PWM driver for the VCM and a few FPGAs (Field Programmable Gate-Arrays) for handling the data exchange between the disk and the DSP. The PWM driver has a switching frequency at 12 times the servo frequency (i.e., around 320 kHz) and 14 bits resolution. Finally, the disk is a standard low-end product, with 5400 RPM, 93 kTPI and the sampling period of the servo-controller is 38.5 μs.
With the system described above, several experiments have been performed, aimed at showing the effectiveness of the on-line adaptation and the derived benefits by using both track following and seek estimation algorithms. In all experiments, VCM resistance variation is simulated by adding a 1.4 Ω resistor in series to the VCM by using a switch. This results in a step-wise variation, even if the expected variation has a time constant around tens of seconds.
The first experimental result is obtained by performing only estimations during seek operations. The disk performs repetitive seeks of 2000 h tracks span. During a seek operation, the resistance is increased, resulting in an increased overshoot of the response.
The second type of experiments is aimed at showing the need for the track following identification. In fact, should the resistance of the motor vary during the track following without performing any adaptation of the controller in voltage mode, the first seek response may show unexpected overshoot, with an increment of the access time. Of course, the controller in a voltage mode could be adapted by using the estimation procedure applicable during seek operations, but it takes a while to converge to the new values.
Identification during track following, then, is the only way to insure that nominal seek performance is maintained in spite of variations of VCM resistance that occurs when the disk is cooling down during long track following operations.
a, 14b and 14c summarize all the above considerations. The three plots show the arrival at the target track for the first seek after a track following, during which the VCM resistance has been varied by 19%.
It is worth noting that the use of seek-based or track following-based identification is determined by the state of the disk. Of course, HDD internal flags signal if the disk is performing a seek, settling or track following operation, but such an information was not available in the system under test. Thus, a seek estimation procedure has been simply activated when the absolute values of PES and speed surpassed certain thresholds.
Similarly, a track following estimation procedure controller PES and speed were smaller than the same thresholds. Table 2 compares the results obtained using an internal current controller with those obtained with the fully tuned VCMC and with the VCMC not re-tuned after a 19% variation of the VCM resistance. The results confirm that the tuned VCMC has a performance that closely matches that of the standard current driver. The small increment in error is essentially due to NRRO (Non Repetitive Run Out) disturbances, probably related to the use of a PWM driver. Moreover, it is confirmed that track-following performance is not significantly affected by a variation of the VCM resistance.
Number | Name | Date | Kind |
---|---|---|---|
6873489 | Ho et al. | Mar 2005 | B1 |
20050013037 | Tanner | Jan 2005 | A1 |
20050237052 | Chan | Oct 2005 | A1 |
Number | Date | Country | |
---|---|---|---|
20060034009 A1 | Feb 2006 | US |