# Patent

## Title
Electronic system with a method of motor spindle bandwidth estimation and calibration thereof

## Abstract

An apparatus includes: a disk; a spindle motor configured to rotate the disk; and control circuitry with a spindle motor control loop, coupled to the spindle motor, the control circuitry configured to: inject a bandwidth test frequency into the spindle motor control loop, measure an open loop gain of the spindle motor control loop, calculate, using coordinate transformations, an estimated loop bandwidth of the spindle motor control loop based at least on one iteration of the bandwidth test frequency injection and the open loop gain measurement, and generate optimum loop parameters of the spindle motor control loop.

## Background
TECHNICAL FIELD
An embodiment relates generally to an electronic system, and more particularly to a system for actuator control.
BACKGROUND
Modern consumer and industrial electronic devices require storage of information, such as digital photographs, numeric data, electronic mail, calendar, or contacts. These devices can be electronic systems, such as notebook computers, desktop computers, digital video players, compact discs, servers, televisions, and projectors, and are providing increasing levels of functionality to support modern life. The need to access, store, read back, or any combination thereof of information on these devices quickly and reliably is vital for users or performance of systems having the devices.
Electronic devices having a rotational storage medium rotated about a central axis, connected to an electric motor and an adjacent head used to write or read back information on the rotational storage medium, are extremely sensitive to variations in rotational speed. The electric motor must be developed and designed to operate according to design specifications selected and targeted by the manufacturer to provide the users with quick and reliable access to the information to the users.
Manufacturers often use multiple supplier sources for the electric motor, resulting in specification variations between electric motors, and leading to unacceptable and inconsistent write or read back performance and reliability issues with the electronic devices. Thus, the manufacturers and designers of the electronic devices are constantly looking for ways to maintain consistent performance and reliability of their electronic devices.
Research and development in existing technologies can take a myriad of different directions and often resulting in trade-offs or metric sacrifices. One way to provide the consistent performance and reliability demanded by the consumer and industrial markets, is to require each of the different supplier sources to test and screen each and every one of the electric motors prior to shipment to the manufacturer for assembly. This is unacceptable as costs for the electric motors would increase and production of the electronic devices would be delayed and/or disrupted.



BRIEF DESCRIPTION OF THE DRAWINGS
FIGS. 1A, 1B, and 1C show an operational diagram of an electronic system according to various embodiments.
FIG. 2 shows shown functional blocks used to calibrate the PID controller control loop for motor torque and operate the SMCL according to various embodiments.
FIG. 3 shows a control loop circuitry of the SMCL according to an embodiment.
FIGS. 4A, 4B, and 4C, show a graphical example of coordinate transformation and linear interpolation formulation concepts used to estimate a loop bandwidth in various embodiments.



DETAILED DESCRIPTION
A need still remains for an electronic system with a simple, low cost, method of screening, determining, and generating customize adjustments to rotational motors used to rotate storage mediums while improving yield and performance when writing, reading, or accessing information on the storage medium. In view of the ever-increasing commercial competitive pressures, along with growing consumer expectations and the diminishing opportunities for meaningful product differentiation in the marketplace, it is increasingly critical that answers be found to these problems. Additionally, the need to reduce costs, improve efficiencies and performance, and meet competitive pressures adds an even greater urgency to the critical necessity for finding answers to these problems.
Solutions to these problems have been long sought but prior developments have not taught or suggested any solutions and, thus, solutions to these problems have long eluded those skilled in the art.
Certain embodiments have other steps or elements in addition to or in place of those mentioned above. The steps or elements will become apparent to those skilled in the art from a reading of the following detailed description when taken with reference to the accompanying drawings.
The following embodiments are described in sufficient detail to enable those skilled in the art to make and use the embodiments. It is to be understood that other embodiments would be evident based on the present disclosure, and that system, process, or mechanical changes may be made without departing from the scope of an embodiment.
n the following description, numerous specific details are given to provide a thorough understanding of the embodiments. However, it will be apparent that the embodiments can be practiced without these specific details. In order to avoid obscuring an embodiment, some well-known circuits, system configurations, and process steps are not disclosed in detail.
The drawings showing embodiments of the system are semi-diagrammatic, and not to scale and, particularly, some of the dimensions are for the clarity of presentation and are shown exaggerated in the drawing figures. Similarly, although the views in the drawings for ease of description generally show similar orientations, this depiction in the figures is arbitrary for the most part. Generally, an embodiment can be operated in any orientation.
Referring now to FIGS. 1A, 1B, and 1C, therein are shown an operational diagram of an electronic system 100 according to various embodiments. The electronic system 100 can represent an apparatus for the various embodiments. An embodiment depicted in FIGS. 1A, 1B, and 1C is shown as a hard disk drive, as an example, although it is understood that the electronic system 100 of the various embodiments can be other storage devices using a rotating media and/or a rotating head such as a Compact Disk (CD) player, a Digital Video Disc (DVD) player, or a solid state hybrid drive.
Other embodiments may include a tape drive with a rotating head adjacent linear magnetic tape media driven rotated along a closed perimeter path, or similar devices with a rotating media, a rotating head, a tape media, or any combination thereof driven by at least one rotary motor. For further embodiments, the electronic system 100 can represent a desktop computer, a notebook computer, a server, a tablet, a television, a household appliance, or other electronic systems having the hard disk drive, one of the other storage devices, or any combination thereof.
In one embodiment, the electronic system 100 of FIG. 1A comprises a head 102 mounted to a flex arm attached to a primary-actuator 108. The head 102, suspended over a media 104, such as a disk, can be can include a write element, not shown (e.g., an inductive coil) and a read element, not shown (e.g., a magneto-resistive read element) of the head 102. The media 104 is a structure for storing information and can be made of non-magnetic material with top and bottom surfaces covered with magnetic material to form a coating layer capable of magnetization.
As an example, the media 104 can be a disk for one embodiment of the electronic system 100 as a rotating storage system, such as the hard disk drive (HDD). In another embodiment, the media 104 can be a linear magnetic tape strip (not shown) driven along a closed perimeter path for one embodiment of the electronic system 100 as a linear storage system, such as a tape drive having a rotating head (not shown) adjacent the linear magnetic tape strip and driven by a rotary motor.
The primary-actuator 108, attached to the flex arm attached with the head 102, can be rotated about in an arc across the media 104 to re-position the head 102 over various locations over the media 104. A head actuation motor (HAM) 112, such as voice coil motor assembly, a stepper motor assembly, or a combination thereof, can apply the torque or force for the re-repositioning and the arc movements of the primary-actuator 108.
The head 102 of FIG. 1A, the primary-actuator 108, and the HAM 112 are coupled to control circuitry 114. The control circuitry 114 can include digital circuitry, analog circuitry, one or more processors, memory devices, power supplies, one or more user interfaces, and a host interface coupled to another system, such as a host, a host computer, a host system, or a sub-system of a host.
A spindle motor 116, shown in FIG. 1A, is used to rotate the media 104, about a center of the media 104, at a constant or varying spindle speed 118. The spindle motor 116 is shown located at a center of the media 104 generates rotational forces, for example mechanical energy in the form of torque, to rotate the media at a point central to the media. The spindle speed 118 of the media 104 can be constant or varied, during read/write or non-read/write operations of the media, respectively.
It is understood that in various embodiments, the spindle motor 116 can also be used to indirectly drive or rotate the media 104 using mechanical coupling such as gears, pulleys, belts, or any combination thereof. Friction, pinch, or capstan drive for a linear magnetic tape strip or a rotating head of the tape drive, described above, can be directly or indirectly driven by the spindle motor 116.
In an embodiment, the spindle motor 116 is described as a Brushless Direct Current (BLDC) motor. It is understood that in other embodiments, the spindle motor 116 can be other motors such as an Alternating Current (AC) or Direct Current (DC) motor including a Brushed Direct Current (BDC) motor, as an example. It is also understood that the spindle motor 116 can include passive or active magnets, such as permanent magnets, actively driven electro-magnets, fixed position pole magnets, rotating pole magnets, rotating field magnets, or any combination thereof, as examples.
In the description below, a number of example components and/or modules of the control circuitry 114 are individually described. It is noted that not all components and/or modules are required or are present in the various embodiments. In some embodiments, the functions performed by the components and/or modules maybe performed by fewer components and/or modules, or omitted entirely. In one embodiment, a Spindle Motor Control Circuitry (SMCC) 122 of the control circuitry 114 controls, monitors, adjusts, and compensates signals to the spindle motor 116 based on intrinsic spindle motor conditions, extrinsic spindle motor conditions, and any combination thereof. The intrinsic spindle motor conditions are defined as changes in static or dynamic physical and mechanical attributes within the spindle motor 116 due to wear, pressure, humidity, heat, movement, variations between manufactured/built motor models or motor build lots of a specific model, or any combination thereof.
The static or dynamic physical and mechanical attributes within the spindle motor 116 can include electrical characteristics of any electrical wiring within the motor stator or armature, bearing lubrication friction characteristics, mechanical bearing, race, or sleeve interference tolerances, commutators/brush electromechanical characteristics, or any combination thereof that change due to wear, pressure, humidity, heat, movement, or variations between manufactured/built motor models or motor build lots of a specific model.
The extrinsic spindle motor conditions are defined in one embodiment as changes in static or dynamic motor loading characteristics or power characteristics due to variations in surrounding temperature, pressure, or humidity, inertia/interactions between movement the media 104 and the primary-actuator 108, internal air flow drag/buffeting of the media 104 from the head 102, mechanical friction, wear, or elastic/tension properties from a belt or band, or drag of any external mechanical coupling on the spindle motor 116, power supply noise/ripple to the spindle motor 116, or any combination thereof.
At power-up or start-up of the electronic system 100, the SMCC 122 in one embodiment starts the rotation of the spindle motor 116 using default signal settings and controlling sequences of voltage levels, current levels, and relative phase relationships of the voltage and current to bring the spindle motor 116 up to a running speed regulation phase of the spindle speed 118. For example, at start-up, increased current and voltage peaks can be applied to the spindle motor 116 to produce sufficient rotational torque needed to bring the media 104 and any other extrinsic loading from rest to rotation.
At the start-up, the SMCC 122 may begin monitoring the direction of rotation the media 104 to validate or re-adjust the phasing of the signals and sequences to the spindle motor 116 using a feedback loop. The feedback loop is defined as a connection path, from a first element to a second element controlling the first element, the connection path enables the second element to continuously monitor the first element and re-adjust, as needed, controls to the first element as changes are detected on the connection path.
For example, FIG. 1B is an embodiment showing an operational diagram of a Proportional Integral Derivative (PID) controller) 128 of the SMCC 122 controlling a Spindle Plant (SP) 132 with a Spindle Plant Feedback Loop (SPFL) 134 connecting the SP 132 back to the PID controller 128. The PID controller 128 is used as an example and can represent other loop controllers without limitations to one being Proportional Integral Derivative (PID) type. The SP 132 represents the spindle motor 116 and detected changes to the spindle motor 116 due to the extrinsic spindle motor conditions, the intrinsic spindle motor conditions, or any combination thereof.
The PID controller 128, the SP 132, the SPFL 134, and associated connections shown in FIG. 1B can be defined as a Spindle Motor Control Loop (SMCL) 138, shown within a dotted box in FIG. 1B, used to provide control of the rotational characteristics of the spindle motor 116 and the media 104, thus providing consistent data integrity, reliability, behavior, and performance for each rotating storage system, to minimize or eliminate variations introduced by different manufacturer sources or suppliers of the spindle motor 116.
Although the SMCL 138 is shown and described as having the PID controller 128, the SP 132, and the SPFL 134, it is understood that the SMCL 138 can include additional circuitry of the control circuitry 114. For example, in another embodiment, the SMCL 138 can include additional circuitry of the control circuitry 114 to provide the capability to automatically monitor, adjust, compensate, regulate, and control the spindle motor 116 of FIG. 1A, without any assistance from circuitry or firmware external to the SMCL 138.
In one embodiment, the SPFL 134 connection enables the PID controller 128 to continuously monitor the SP 132 and re-adjust the SP 132 based on changes detected from the SPFL 134, such as changes in the spindle motor 116 rotation or the spindle speed 118, as examples. The SPFL 134 can include signal information received from Hall Effect sensors within the spindle motor 116, simultaneously detected Back Electro Motive Force (BEMF) levels received from control signals being sent to the spindle motor 116 from the PID controller 128, or any combination thereof.
After the start-up has been initiated, the PID controller 128 in one embodiment checks for the spindle speed 118 of FIG. 1A to equal a minimum running speed, predetermined by the manufacturer of the rotating storage system and selected based on product objectives, for example.
In one embodiment, the PID controller 128 detects that the spindle speed 118 is greater than or equal to the minimum running speed, and is loaded with Optimized Loop Parameters (OLP) 142 as the spindle motor 116 reaches and locks to the spindle speed of a targeted Revolution Per Minute (RPM) speed. In one embodiment, the OLP 142 calibrate the SMCL 138 of the particular electronic system 100 to operate with a Target Loop Bandwidth (TLB) 144 with customized loop parameters based on torque constants, Kt, unique to each spindle motor installed in the system 100. To illustrate further, another electronic system 100′ having a PID controller 128′ and a spindle motor 116′ with a different torque constant, Kt′, may have different OLP generated for that configuration to achieve the TLB 144 at a specific targeted rotational speed.
Since the torque constant, Kt, can often be different between compatible replacement model/units of the spindle motor 116 at specific targeted rotational speeds, it is preferable that the TLBs of two systems having a compatible or comparable model of the spindle motor be similar or nearly identical to provide optimum and consistent read/write performance.
After the OLP 142 have been saved in the PID controller 128, the SMCL 138 in one embodiment is self-regulating and no longer needs any assistance from circuitry or firmware external to the SMCL 138. The PID controller 128 and the SPFL 138 can be externally interrupted and paused to vary the spindle speed 118, for example during non-read/write operational periods of the media, and resumed later for continued read/write operational periods of the media.
FIG. 1C is a flow diagram showing a process, according to one embodiment, executed by the control circuitry 114 of FIG. 1A to generate the OLP 142 customized and unique to the PID controller 128 and the SP 132.
In one embodiment, a compatible model of a spindle motor is defined as another spindle motor model having similar electrical and physical specifications such as number of stator or armature windings, number of magnetic poles, rated current, rated voltage, rated wattage, torque ratings, RPM ratings, Rated Life Hours (RLH), bearing system, shaft dimensions and mass, other specifications relevant to the electronic system 100, or any combination thereof.
It is understood that the default sequence with the default settings may or may not support sustained quality read/write operations due to electrical and mechanical variations that can exist between the SP 132 and the PID controller 128 of the SMCL 138. After a start-up of the electronic system 100, the spindle motor 116 has reached the minimum running speed using a default sequence with default settings.
In various embodiments, the control circuitry 114 screens the spindle motor 116 for proper or defective torque constants, Kt, of the spindle motor 116. Starting at Block 150, the control circuitry 114 injects a bandwidth test frequency (BTF) 146 into a BTF input of the SMCL 138. The BTF 146 value in one embodiment is based on the TLB 144 of the SMCL 138 and is a frequency adjacent to a frequency value of the TLB 144.
The PID controller 128 is targeted and tuned to operate at the TLB 144, control loop bandwidth, previously chosen and selected by the developers of the SMCL 138. The PID controller 128 is targeted and tuned to provide precise accuracy of the spindle speed 118, maximum control loop disturbance rejection, and for generating, if needed, the OLP 142. The OLP 142 can be customized to match a specific pairing of the PID controller 128 and a torque constant, Kt, associated with the spindle motor 116 at a selected nominal rotation speed, motor current, and critical control phasing for read/write operations to the media 104 of FIG. 1A.
Although the BTF input is depicted to feed an adder between the PID controller 128 and the SP 132, it is understood that the BTF input can feed into any location between the input of the SP 132 and the output of the SP 132. For example, the BTF input could be applied at the input of the PID controller 128. In another example, the BTF input could be feed into the SPFL 134.
Moving to Block 152 in FIG. 1C, the control circuitry 114 measures an Open Loop Gain (OLG) 154 of the SMCL 138. The OLG 154 is the resulting loop gain or loop compensation the PID controller 128 generated in response to the BTF 146 frequency disturbance injected into the SMCL 138. The OLG 154 can be measured once the control loop is idle, for example, the PID controller 128 has completed compensating for the BTL 146. Measurement of the OLG 154 can be performed at any point between the output of the PID controller 128 and input of the SP 132.
In Block 156, the control circuitry 114 calculates, using coordinate transformations, an Estimated Loop Bandwidth (ELB) 148 of the spindle motor control loop, based at least on one iteration of the BTF 146 injection and the OLG 154 measurement.
In an embodiment, a first BTF having a Frequency of B, Freq(B), in Hertz below the TLB 144 can be injected into the SMCL 138 and a first OLG corresponding to the first BTF is measured and recorded once the control loop is idle.
A second BTF having a Frequency of C, Freq(C), in Hertz above the TLB 144 can be injected into the SMCL 138 and a second OLG corresponding to the second BTF is measured and recorded once the control loop is idle. A magnitude difference between frequencies of the Freq(B) and the TLB 144 can be identical to a magnitude difference between frequencies of the Freq(C) and the TLB 144 to provide a fixed resolution calculation. In an embodiment, with the TLB 144 equal to 5 Hertz, the Freq(B) equal to 4.8 Hertz, and the Freq(C) equal to 5.2 Hertz, a loop calibration having a resolution of 0.2 Hertz centered at 5 Hertz can be evaluated, for example.
The measured parameters of the first OLG and the second OLG, corresponding to the first BTF and the second BTF, in conjunction with the Freq(B) and Freq(C) values, respectively, can be used by the control circuitry 114 to calculate the ELB 148 with an equation E1. The equation E1 can be derived using coordinate transformations, linear interpolation, or any combination thereof as described later in FIGS. 4A, 4B, and 4C, shown below.




  
    
      
        
          
            
              
                OLGain
                ⁡
                
                  (
                  B
                  )
                
              
              -
              
                OLGain
                ⁡
                
                  (
                  C
                  )
                
              
            
            
              
                1
                /
                
                  Freq
                  ⁡
                  
                    (
                    B
                    )
                  
                
              
              -
              
                1
                /
                
                  Freq
                  ⁡
                  
                    (
                    C
                    )
                  
                
              
            
          
          =
          
            
              1
              -
              
                OLGain
                ⁡
                
                  (
                  C
                  )
                
              
            
            
              
                1
                /
                BW
              
              -
              
                1
                /
                
                  Freq
                  ⁡
                  
                    (
                    C
                    )
                  
                
              
            
          
        
        ;
      
    
    
      
        equation
        ⁢
        
          
        
        ⁢
        E1
      
    
  




where OLGain(B) and OLGain(C) are the measured gains of the first OLG and the second OLG corresponding to the Freq(B) and Freq(C) inverted, respectively. The inverted value of the ELB 148 is represented by the inverted term BW, in the equation E1 above.
Values of the ELB 148 and the TLB 144 are compared to determine a scaling ratio (SR) 158. In one embodiment the SR is defined by the value of the TLB 144 divided by the value of the ELB 148. A magnitude of the SR 158 of 1 indicates how much the PID controller 128 idle control loop is out of tuned relative to the torque constant, Kt, of the spindle motor 116.
The control circuitry 114 can evaluate the magnitude of the SR 158 to determine if calibration of the control loop is not needed, needed, or not to be performed, indicating that the start-up default signal settings can be used by the PID controller 128, the OLP 142 be generated and used to calibrate the PID controller 128, or the spindle motor 116 be considered out of specification. A spindle motor that is out of specification, for example having an excessive Kt, may be rejected, or otherwise replaced by another spindle motor that can either be calibrated to or used as is with the default signal settings for the PID controller 128, respectively. A determination to reject or replace the spindle motor 116 based on the magnitude of the SR 158 is an fast and efficient method for screening out of a defective spindle motor compared to detection of gradual performance and reliability degradation over time for the user of the electronic system 100.
The acceptable range and the correctable range of the SR 158 can be predetermined and preset by the manufacturer of the electronic system 100 and can be based on product requirements and end user expectations such as product costs, reliability, availability, competitive analysis, targeted product market/class, or motor supply/demand, as examples.
In another embodiment, a single injection frequency, Freq(BC) inverted, equivalent to “1/Freq(B)−1/Freq(C)” in equation E1, generated from the Freq(C) inverted subtracted from the Freq(B) inverted, can be injected into the SMCL 138 of FIG. 1B. An OLGain(BC) value, equivalent to “OLGain(B)−OLGain(C)” in equation E1, can be measured once the control loop is at the idle state, and the OLGain(C) of the term “1−OLGain(C)” in equation E1 can be determined using coordinate transformations, linear interpolation, or any combination thereof as described later in FIGS. 4A, 4B, and 4C. The term 1/BW is determined using the Freq(BC), the OLGain(BC), the OLGain(C), and the equation E1. The TLB 144 and inverted value of the ELB 148, represented by the inverted term BW, can be used to calculate the SR 158.
In another embodiment, Freq(B) and Freq(C) can be simultaneously injected into the SMCL 138 of FIG. 1B. The OLGain(BC) value can be measured once the control loop is at the idle state, and the OLGain(C) of the term “1−OLGain(C)” in equation E1 can be determined using coordinate transformations, linear interpolation, or any combination thereof as described later in FIGS. 4A, 4B, and 4C. The term 1/BW is determined using the Freq(B), Freq(C), the OLGain(BC), the OLGain(C), and the equation E1. The TLB 144 and inverted value of the ELB 148, represented by the inverted term BW, can be used to calculate the SR 158.
Going back to FIG. 1C, in Block 162 the control circuitry 114 generates the OLP 142 of the SMCL 138. The SMCC 122 started the rotation of the spindle motor 116 using default signal settings and controlling sequences at the power-up or start-up of the electronic system 100. In an embodiment, for example, values of the OLP 142 can be generated by applying the SR 158 to default signal settings of the PID controller 128 using equations such as equation E2 and equation E3, shown below.

GC(s)=(Kp+Ki/S+Kd·s);  equation E2

Kp_new=Kp_old×Param_Ratio;  equation E3

Equation E2 is a time-invariant an open loop transfer function, Gc(s) of complex variables, s, with constants of Kp, Ki, and Kd corresponding to a proportional constant, integral polynomials in s, and derivative polynomials in s, respectively. Equation E3 can be used to calculate the OLP 142, represented as Kp_new, using the default signal settings and the SR 158, represented as Kp_old and Param_Ratio, respectively.
In an embodiment, the Kp_new value could also be used as a scale factor to proportionally adjust the Ki and Kd constants using a finite multiplier. In an embodiment, Ki can be calculated by multiplying Kp_new by a finite multiplier of 0.3 and Kd can be calculated by multiplying Kp_new by a finite multiplier (0.17, as an example).
Once the PID controller 128 control loop is calibrated properly with values of the OLP 142, the PID controller 128 and the spindle motor 116 of the SMCL 138 is considered optimized and calibrated for the life of the electronic system 100, or until the PID controller 128, the spindle motor 116, a mechanical component, an electrical component, or any combination thereof has been swapped or exchanged out of the electronic system 100.
The OLP 142 can be generated while the control loop is at idle and thus the OLP 142 are customized parameter settings that apply specifically to the PID controller 128 paired with the SP 132. The OLP 142 values are customized to each individual PID controller 128 and associated spindle motor. The optimized settings of the OLP 142 enable the control loop of the individual PID controller 128 to compensate for a torque constant, such as Kt, associated and unique to the associated spindle motor.
A control circuitry iteration cycle in one embodiment is defined as processes and activities shown and described in the Blocks 150-162. For example, 2 control circuitry iteration cycles is the completion of 1 iteration cycle in Blocks 150-162, followed by another iteration cycle in the Blocks 150-162.
It has been discovered in an embodiment that the OLP 142 are calibrated and optimized for the PID controller 128 and the spindle motor 116 within the SMCL 138 and converges to the OLP 142 within 2 control circuitry iteration cycles to provide minimal iteration and test cycles for each product, thus improving product throughput while reducing testing resources and cost.
It has been discovered in an embodiment that compensating for torque constants, Tk, and screening for out of specification Tk spindle motors results in the SMCL 138 of every electronic system 100 to behave and perform to specifications in an identical manner, irrespective of manufacturer, vendor, or source of the spindle motor 116 to provide market leadership in product costs, performance, reliability, and quality.
It has been discovered in an embodiment that the PID controller 128 with the OLP 142 calibrated and optimized for the spindle motor 116 enables a larger variety of motor suppliers to compete as a motor source to builders of the electronic system 100 resulting in the adaptability of, selection variety of, and substantial costs savings in the spindle motor 116.
It has been discovered in an embodiment that avoiding complex computations involving logarithmic expressions, by using coordinate transformations and linear interpolation formulas including linear polynomials of degree 0, provides a faster and simpler method of calibrating a PID controller and is less to prone to errors associated with complex computation methods.
It has been discovered in an embodiment that the OLP 142 ensure that the PID controller 128 provides the minimum current to maintain the desired rotational torque for the Kt of the spindle motor 116 resulting in lower motor operating temperatures and longer motor life by preventing demagnetization and flux field loss to permanent magnets of the spindle motor 116.
It has been discovered in an embodiment that injecting the BTF 146, measuring the OLG 154, calculating the ELB 148, and determining the magnitude of the SR 158 provides a simple, fast, and efficient method for screening out bad/defective spindle motor due to excessive torque constants, Kt, which otherwise be difficult to detect at the manufacturing plant, which is costly to the product users, thus eliminating difficult to diagnose read/write performance issues.
Referring now to FIG. 2, therein is shown functional blocks used to calibrate the PID controller 128 control loop for motor torque, Kt and operate the SMCL 138 according to various embodiments. The functional blocks include a volatile memory 202, a non-volatile memory 204, a processor 206, and spindle speed management circuitry (SSMC) 208 of the SPFL 134 of FIG. 1B.
It is understood that any combination of all or portions of the processor 206, the SSMC 208, or the SMCL 138 can be implemented as software, hardware, or any combination thereof. The software can be machine code, firmware, embedded code, application software, or any combination thereof.
The processor 206 can be used to load a Motor Control Memory (MCM) 212 with Default Loop Parameters (DLP) 214 and the spindle speed 118 to the minimum running speed stored in the non-volatile memory 204. The DLP 214 set the default signal settings for the PID controller 128 at start-up, and occasionally, at running speed when calibration of the control loop is not needed as described in FIG. 1C. The MCM 212, much smaller in storage capacity than the volatile memory 202 and the non-volatile memory 204, can include volatile memory, non-volatile memory, or any combination thereof.
In one embodiment, the processor 206 signals the PID controller 128 to start driving signals, coupled to the spindle motor (SM) 116, to rotate the SM 116 as the PID controller 128 processes the loop parameters stored in the MCM 212. The SSMC 208 converts, processes, and presents the information from the SM 116 as described in FIG. 1B. The SSMC 208 can include analog circuitry, digital circuitry, an Analog Signal Processor Controller (ASPC) 216, or any combination thereof. The ASPC 216 can convert analog motor control signals to digital signals, compute analog motor control signals relationships such as angular positions, power, or current/voltage phases, as examples, for processing and use by the PID controller 128, the processor 206, or any combination thereof.
In one embodiment, the processor 206 controls, monitors, and supervises the events described in FIG. 1C and generates the SR 158 of FIG. 1A, stored in a Local Cache (LC) 218 to determine: (1) if calibration of the SMCL 138 is necessary or (2) if the SM 116 is defected, for example, by having exceeded pre-determined torque constant, Kt, requirements. The LC 218 can high speed memory permitting fast read/write access of data to and from the processor 206.
The volatile memory 202 can be used to temporarily store/access information such as the BTF 146, the DLP 214, the ELB 148, the OLP 142, the OLG 154, or any other parameters needed by circuitry, software, user of the electronic system 100, or manufacturing of the electronic system 100. The non-volatile memory 204 can be used to retain, until modified/removed, the SS 118, the OLP 142, the DLP 214, and any other information needed similar or identical to the information in the volatile memory 202, such as during a power up speed regulation phase.
It is understood that the functional blocks or portions of the functional blocks can be integrated into the SMCL 138, within the control circuitry 114 of FIG. 1A external to the SMCL 138, external to the electronic system 100, or any combination thereof.
In an embodiment, for example, portions of the processor 206 performing the tasks described in FIG. 1C could be implemented, in hardware, software, or any combination thereof, external to the electronic system 100. In another embodiment, for example, portions of the processor 206 performing the tasks described in FIG. 1C could be implemented in the SMCL 138.
It has been discovered that implementing the volatile memory 202, the non-volatile memory 204, the processor 206, and the LC 218 external from the electronic system 100 enables the SMCL 138 and the SSMC 208 to have the smallest form factor while providing the lowest cost for the SMCL 138 and improved product reliability by having fewer components that could fail.
It has been discovered that implementing the volatile memory 202, the non-volatile memory 204, the processor 206, the SMCL 138, the SSMC 208, and the LC 218 within the electronic system 100 enables remote, out-of-factory, or in field recalibration of the SM 116, testing the torque constant, Kp, of the SM 116 for eminent failure due to intrinsic spindle motor conditions, extrinsic spindle motor conditions, or any combination thereof.
Referring now to FIG. 3, therein is shown an example implementation of the SMCL 138 according to an embodiment. FIG. 3 shows operational amplifiers (op_amps) used to construct a subtracter 302, functions within the PID controller 128, and an adder 304. Also shown in FIG. 3 is the SP 132. The functions constructed within the PID controller 128 using op_amps include a proportional term (P Term) 306, a derivative term (D Term) 308, an integral term (I Term) 312, and a True Summation Unit (TSU) 314.
The TSU 314 along with the constants Kp, Ki, and Kd of equation E2 influenced by the torque constant, Kt, described in the Block 162 of FIG. 1C, can provide a weighted sum of the P Term 306, the D Term 308, and the I term 312, represented as Gc(s) of equation E2 in the Block 162 description. In one embodiment, the OLP 142 of FIGS. 1A and 1B are the parameters, stored into the non-volatile memory 204 after created, and later copied from the non-volatile memory 204 to the volatile memory 202 when the spindle speed 118 has reached the running speed.
In one embodiment the OLP 142 is used to modify the constants by configuring variable passive devices that can include Variable Resisters (VR) 316 of the P Term 306, of the D Term 308, and of the I Term 312 and a Variable Capacitor (VC) 318 of the D Term 308 to calibrate the composite gain from outputs of the TSU 314. The variable passive devices of the PID controller 128 enable the SMCL 138 to regulate the spindle speed 118 and to minimize and control disturbance rejection based on the OLP 142.
Although FIG. 3 shows the adder 304 feeding the SP 132, it is understood that the output of the adder 304, such as a pulse modulated signal, can be coupled and to multiple motor drivers corresponding to 2 or more motor windings of a Brushless Direct Current (BLDC) motor with each of the windings having a different relative phase from one another to spin the BLDC motor.
The SP 132 drives an input of the SSMC 208 and an output of the SSMC 208 is sent to the subtracter 302 to provide feedback from Hall Effect sensors inside the BLDC motor of the SP 132. In another embodiment, the SP 132 can include the SM 116 of FIG. 1A without the Hall Effect sensors. The signals to the SM 116 could be snooped by the SSMC 208 and the BEMF component of the signals extracted and processed by the SSMC 208 can be sent to the subtracter 302 for processing, instead of feedback from Hall Effect sensors.
It has been discovered that the PID controller 128 with a control loop calibrated to torque constants, Kt, of spindle motors using the OLP 142 parameters generated by coordinate transformations and using linear interpolations can easily adapt to different spindle motors with or without Hall effect sensors to save costs and reduce development resources by providing a common SMCL architecture for different types of motors and product platforms.
Referring now to FIGS. 4A, 4B, and 4C, therein is shown a graphical example of coordinate transformation and linear interpolation formulation concepts used to estimate a loop bandwidth in various embodiments. In an embodiment, the ELB 148 of FIG. 1A is determined with coordinate transformations with linear interpolation of linear polynomials of degree 0. FIG. 4A shows a Bode plot of a transfer function a control loop of the SMCL 138.
The Bode plot has a vertical axis with logarithmic gain magnitude summations of the control loop, in decibels (dB), at specific frequencies relative to a reference gain of 0 db. The Bode plot has a horizontal axis with a logarithmic scale to plot frequencies, in Hertz. Each frequency on the horizontal axis corresponding to a logarithmic gain magnitude summation along the vertical axis. The Bode plot shows an open loop curve 402 indicating the gain frequency response of the control loop of the SMCL 138.
Observations of the graph 402 indicate the open loop curve 402 near the TLB 144 is linear and follow a slope close to −20 dB/decade. Also in practice, the PID controller 128 of FIG. 1B is designed to make the open loop curve 402 cross 0 dB with a slope around −20 dB/decade. Therefore, the open loop curve 402 can be described with as a linear equation, equation E4, as follows:

Y=k·X−b;  equation E4

Where Y=20×log(y) is the open loop gain in dB, X-log(x) is the frequency in log, k≈−20 dB/decade is the slope, and b is a constant value. Note that Y and X involve the log function which makes the implementation complex. Based on the assumption that the slope of the open loop curve 402 is around the TLB 144 near 0 dB and is close to −20 dB/decade, it can be deduced from the equation E4, above, the following equations ESA, ESB, and E5C (corresponding to the first/upper equation, the second/middle equation, and the third/last equation, respectively).




  
    
      
        y
        =
        
        ⁢
        
          10
          
            (
            
              
                
                  k
                  20
                
                ⁢
                
                  log
                  ⁡
                  
                    (
                    x
                    )
                  
                
              
              +
              
                b
                20
              
            
            )
          
        
      
    
    
      
                            
        ⁢
        
          
            equations
            ⁢
            
              
            
            ⁢
            E
            ⁢
            
              
            
            ⁢
            5
            ⁢
            A
          
          ,
          
            E
            ⁢
            
              
            
            ⁢
            5
            ⁢
            B
          
          ,
          
            and
            ⁢
            
              
            
            ⁢
            E
            ⁢
            
              
            
            ⁢
            5
            ⁢
            C
          
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            10
            
              (
              
                b
                20
              
              )
            
          
          ·
          
            x
            
              (
              
                k
                20
              
              )
            
          
        
      
    
    
      
        
      
    
  
  
    
      
        =
        
        ⁢
        
          
            
              
                10
                
                  (
                  
                    b
                    20
                  
                  )
                
              
              ·
              
                z
                
                  (
                  
                    -
                    
                      k
                      20
                    
                  
                  )
                
              
            
            ⁢
            
              
            
            ⁢
            where
            ⁢
            
              
            
            ⁢
            z
          
          =
          
            1
            x
          
        
      
    
    
      
        
      
    
  




The third/last equation, equation E5C, generated a linear relationship between the open loop gain y and inverted frequency, z=1/x in the new coordinates as shown FIGS. 4B and 4C. The TLB 144 area is enlarged by the coordinate transformation from the log-log plot of FIG. 4A to the linear-linear plots of FIGS. 4B and 4C, having a vertical axis of gain and a horizontal axis of frequency f and frequency inverted, 1/f, respectively.
Using the derived equation, equation E1, derived from equations E5A, E5B, and E5C and simple linear extrapolation of coordinates of a line formed by polynomials of degree 0 with a known slope, the ELB 148 can be calculated as described earlier for the Block 156 of FIG. 1C.
It has been discovered that the coordinate transformations and linear interpolation of linear polynomials of degree 0 eliminate the need for non-linear analysis such as with non-linear differential equations and limit cycle theory, Poincare maps, Lyapunov stability theorems, and other similar describing functions provides a fast, easy, methodology for estimating a loop bandwidth of any control loop feedback system near an open loop pole having −20 dB slope.
It has been discovered that coordinate transformations with linear interpolation of linear polynomials of degree 0 minimize or eliminate the need for logarithmic computations or complex linear mathematical analytical techniques such as Laplace transforms, Fourier transforms, Z transforms, Bode plots, root locus, Nyquist stability criterions, or any combination thereof. Furthermore, the coordinate transformations with linear interpolation of linear polynomials of degree 0 calculations provide for simpler calculations and faster solution convergences than non-linear and complex linear mathematical analytical methods.
Any suitable control circuitry may be employed to implement the flow diagrams in the above embodiments, such as any suitable integrated circuit or circuits. For example, the control circuitry may be implemented within a read channel integrated circuit, or in a component separate from the read channel, such as a disk controller, or certain operations described above may be performed by a read channel and others by a disk controller. In one embodiment, the read channel and disk controller are implemented as separate integrated circuits, and in an alternative embodiment they are fabricated into a single integrated circuit or system on a chip (SOC). In addition, the control circuitry may include a suitable preamp circuit implemented as a separate integrated circuit, integrated into the read channel or disk controller circuit, or integrated into a SOC. In addition, any of the above described modules and components may be implemented in firmware, software, hardware, or any combination thereof.
In one embodiment, the control circuitry comprises a microprocessor executing instructions, the instructions being operable to cause the microprocessor to perform the flow diagrams described herein. The instructions may be stored in any computer-readable medium. In one embodiment, they may be stored on a non-volatile semiconductor memory external to the microprocessor, or integrated with the microprocessor in a SOC. In another embodiment, the instructions are stored on the disk and read into a volatile semiconductor memory when the disk drive is powered on. In yet another embodiment, the control circuitry comprises suitable logic circuitry, such as state machine circuitry.
The various features and processes described above may be used independently of one another, or may be combined in various ways. All possible combinations and sub-combinations are intended to fall within the scope of this disclosure. In addition, certain method, event or process blocks may be omitted in some implementations. The methods and processes described herein are also not limited to any particular sequence, and the blocks or states relating thereto can be performed in other sequences that are appropriate. For example, described tasks or events may be performed in an order other than that specifically disclosed, or multiple may be combined in a single block or state. The example tasks or events may be performed in serial, in parallel, or in some other manner. Tasks or events may be added to or removed from the disclosed example embodiments. The example systems and components described herein may be configured differently than described. For example, elements may be added to, removed from, or rearranged compared to the disclosed example embodiments.
While certain example embodiments have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the inventions disclosed herein. Thus, nothing in the foregoing description is intended to imply that any particular feature, characteristic, step, module, or block is necessary or indispensable. Indeed, the novel methods and systems described herein may be embodied in a variety of other forms; furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the embodiments disclosed herein.
The resulting method, process, apparatus, device, product, and/or system is straightforward, cost-effective, uncomplicated, highly versatile, accurate, sensitive, and effective, and can be implemented by adapting known components for ready, efficient, and economical manufacturing, application, and utilization. Another important aspect of various embodiments is that they valuably supports and services the historical trend of reducing costs, simplifying systems, and increasing performance.
These and other valuable aspects of the various embodiments consequently further the state of the technology to at least the next level.
While the various embodiments have been described in conjunction with a specific best mode, it is to be understood that many alternatives, modifications, and variations will be apparent to those skilled in the art in light of the aforegoing description. Accordingly, the embodiments are intended to embrace all such alternatives, modifications, and variations that fall within the scope of the included claims. All matters set forth herein or shown in the accompanying drawings are to be interpreted in an illustrative and non-limiting sense.

## Claims

1. An apparatus comprising:
a disk;
a spindle motor configured to rotate the disk; and
control circuitry, including a spindle motor control loop and coupled to the spindle motor, configured to:
inject a bandwidth test frequency into the spindle motor control loop,
measure an open loop gain of the spindle motor control loop,
calculate, using coordinate transformations, an estimated loop bandwidth of the spindle motor control loop based at least on one iteration of the bandwidth test frequency injection and the open loop gain measurement, and
generate optimum loop parameters of the spindle motor control loop.

2. The apparatus as claimed in claim 1 wherein the control circuitry is further configured to store the optimum loop parameters in a memory for calibration of and use by the spindle motor control loop.

3. The apparatus as claimed in claim 2 wherein the control circuitry is further configured to store the optimum loop parameters in a non-volatile memory.

4. The apparatus as claimed in claim 3 wherein the control circuitry is further configured to copy the optimum loop parameters to volatile memory from the non-volatile memory during a power up speed regulation phase.

5. The apparatus as claimed in claim 1 wherein the control circuitry is further configured to calculate the estimated loop bandwidth with a linear interpolation formula including linear polynomials of degree 0.

6. The apparatus as claimed in claim 1 wherein the control circuitry is further configured to screen the spindle motor for an out of specification motor torque constant defect.

7. The apparatus as claimed in claim 1 wherein the control circuitry is further configured to converge to the optimum loop parameters within two control circuitry iteration cycles.

8. The apparatus as claimed in claim 1 wherein control circuitry is further configured to dynamically configure a variable passive device of the spindle motor control loop to regulate spindle speed based on the optimum loop parameters.

9. The apparatus as claimed in claim 1 wherein control circuitry is further configured to dynamically configure a variable passive device of the spindle motor control loop to minimize and control disturbance rejection based on the optimum loop parameters.

10. The apparatus as claimed in claim 1 wherein the control circuitry is further configured to calculate the estimated loop bandwidth according to linear interpolation formula:




  
    
      
        OLGain
        ⁡
        
          (
          B
          )
        
      
      -
      
        OLGain
        ⁡
        
          (
          C
          )
        
      
    
    
      
        1
        /
        
          Freq
          ⁡
          
            (
            B
            )
          
        
      
      -
      
        1
        /
        
          Freq
          ⁡
          
            (
            C
            )
          
        
      
    
  
  =
  
    
      1
      -
      
        OLGain
        ⁡
        
          (
          C
          )
        
      
    
    
      
        1
        /
        BW
      
      -
      
        1
        /
        
          Freq
          ⁡
          
            (
            C
            )
          
        
      
    
  




wherein:
OLGain(B) represents a measured open loop gain at a frequency Point B corresponding to an injection bandwidth frequency evaluated in the format of 1/Freq(B) hertz;
OLGain(C) represents a measured open loop gain at a frequency Point C corresponding to another injection bandwidth frequency evaluated in the format of 1/Freq(C) hertz; and
1/BW represents the estimated loop bandwidth value inverted determined with linear interpolation.

11. A method of operating an apparatus, the method comprising:
injecting, with control circuitry, a bandwidth test frequency into a spindle motor control loop;
measuring an open loop gain of the spindle motor control loop;
calculating, using coordinate transformations, an estimated loop bandwidth of the spindle motor control loop based at least on one iteration of the bandwidth test frequency injection and the open loop gain measurement; and
generating optimum loop parameters of the spindle motor control loop.

12. The method as claimed in claim 11 further comprising storing the optimum loop parameters in a memory for calibration of and use by the spindle motor control loop.

13. The method as claimed in claim 12 wherein storing the optimum loop parameters comprises storing the optimum loop parameters in a non-volatile memory.

14. The method as claimed in claim 13 further comprising copying the optimum loop parameters to a volatile memory from the non-volatile memory during a power up speed regulation phase.

15. The method as claimed in claim 13 wherein calculating the estimated loop bandwidth comprises calculating the estimated loop bandwidth with a linear interpolation formula having linear polynomials of degree 0.

16. The method as claimed in claim 13 further comprising screening a spindle motor having an out of specification motor torque constant defect.

17. The method as claimed in claim 13 wherein generating the optimum loop parameters further comprises converging to the optimum loop parameters within two control circuitry iteration cycles.

18. The method as claimed in claim 13 further comprising dynamically configuring a variable passive device of the spindle motor control loop to regulate spindle speed based on the optimum loop parameters.

19. The method as claimed in claim 13 further comprising dynamically configuring a variable passive device of the spindle motor control loop to minimize and control disturbance rejection based on the optimum loop parameters.

20. The method as claimed in claim 13 wherein calculating the estimated loop bandwidth comprises calculating the estimated loop bandwidth according to linear interpolation formula:




  
    
      
        OLGain
        ⁡
        
          (
          B
          )
        
      
      -
      
        OLGain
        ⁡
        
          (
          C
          )
        
      
    
    
      
        1
        /
        
          Freq
          ⁡
          
            (
            B
            )
          
        
      
      -
      
        1
        /
        
          Freq
          ⁡
          
            (
            C
            )
          
        
      
    
  
  =
  
    
      1
      -
      
        OLGain
        ⁡
        
          (
          C
          )
        
      
    
    
      
        1
        /
        BW
      
      -
      
        1
        /
        
          Freq
          ⁡
          
            (
            C
            )
          
        
      
    
  




wherein:
OLGain(B) represents a measured open loop gain at a frequency Point B corresponding to an injection bandwidth frequency evaluated in the format of 1/Freq(B) hertz;
OLGain(C) represents a measured open loop gain at a frequency Point C corresponding to another injection bandwidth frequency evaluated in the format of 1/Freq(C) hertz; and
1/BW represents the estimated loop bandwidth value inverted determined with linear interpolation.