SERVO-SYSTEM

Abstract: A device for determining the rotational speed of an object (10) adapted to rotate about a predetermined rotation axis (12). The device is particularly useful as a servo control for motors, such as motors having optical tachometers, tone wheels and for brushless DC motors in which the commutation Hall sensors (16) are being used in lieu of a tachometer. Sensor and other positional errors are substantially eliminated by sensing the time intervals between at least two rotational positions of the rotor through a full rotation of the rotor, and averaging the time intervals of each time measurement between succeeding rotor positions over the prior revolution of the rotor. The average is compared to a preset value representative of the desired speed, and the current applied to the servo control circuit is adjusted, if necessary, in order to increase or decrease the speed of the rotor to the desired speed.

Description: SERVO-SYSTEM The present invention relates generally to accurate motor speed control, and more particularly to an improved, low-cost, speed control for various devices such as servo motors with optical tachometers, brushless DC-motors without tachometers and servo motors using magnetic tone wheels as tachometers. The invention is particularly adapted to provide a motor speed servo control, such as the type used to drive mass information storage and retrieval material, e.g., disks and tapes. Various systems, such as mass storage devices (for example, computer disk and tape storage drive systems) , require motors, typically brushless DC motors, to drive magnetic recording material, e.g., disks or tapes, at a relatively constant speed in order to insure accurate recording and playback of program information and data. For example, a capstan for driving magnetic tape can be driven with a brushless DC motor. In relatively inexpensive systems, such as small computers, there is usually little room to accommmodate expensive and elaborate servo control systems for controlling the speed of these driving motors. Even if such room were made available, it is usually not economical to utilize expensive phase lock loop systems often employed in servo controlled systems to obtain the required accuracy and stability needed for such mass information storage and retrieval devices. In addition, many of the inexpensive, conventional mechanical and optical tachometers used in providing servo control of such motors are not necessarily very accurate. Optical tachometers, for example, can experience "jitter" errors caused by mechanical vibrations. "Once around" errors (resulting from a inaccurate sensing techniques of measuring the exact position of the rotating rotor of the tachometer) can affect the overall accuracy of the tachometer, and as a result, the accuracy of the servo system. Accordingly, a general object of the present invention is to substantially reduce or overcome the above-mentioned problems of the prior art. More specifically, it is an object of the present invention to provide an improved servo system for and method of accurately and more inexpensively controlling the speed of a motor than provided by many servo and phase lock loop systems utilizing. conventional mechanical and optical tachometers. Another specific object of the present invention is to provide an improved motor speed controller and method which determines the speed accuracy and limits of the motor independent of the mechanical attributes and accuracies of typical tachometers. Another object of the present invention is to provide an improved servo system for and method of controlling the speed of a motor in a manner substantially insensitive to jitter and "once around" errors. And another, more specific object of the present invention is to provide an improved servo control for a brushless DC motor. Yet another object of the present invention is to provide an improved servo system for and ehtod of controlling the speed of the motor, wherein the initial acceleration of the motor is controlled. These and other objects are achieved by a device for controlling the angular speed of an object mounted for rotation about a predetermined rotation axis. The device comprises: sensing means for sensing at least two angular positions of the object with each revolution of the object about the axis; means, responsive to the sensing means, for measuring the time interval the object takes to rota ' te from each of the angular positions to the next succeeding angular position as the object rotates about the axis; means, responsive to the means for measuring each time interval, for providing a value representative of the average time the object takes to rotate from each successive angular position to the next succeeding angular position as a function of all of the time intervals of the last complete revolution of the object relative to the last angular position; and means for adjusting the angular speed of the object as a function of the difference between each value representative of the determined average time and a predetermined value of time representative of the desired angular speed of the object. In accordance with the method of the present invention an improved method is provided of controlling the angular speed of an object mounted for rotation about a predetermined rotation axis. The method comprises the steps of: •seπsingr at least two angular positions of said object with each revolution of said object about said axis; measuring the time interval said object takes to rotate front each of said angular positions to the next succeeding angular position as said object rotates about said axis; providing a value representative of the average time said object takes to rotate from each successive angular position to the next succeeding angular position as a function of all of the time intervals of the last complete revolution of said object relative to the last angular position; and adjusting the angular speed of said object as a function of the difference between each value representative of the determined average time and a predetermined value of time representative of the desired angular speed of said object. Other objects of the invention will in part be obvious and will in part appear hereinafter. The invention accordingly comprises the processes involving the several steps and the relation and order of one or more of such steps with respect to each of the others, and the apparatus possessing the construction, combination of elements and arrangement of parts which are exemplified in the following detailed disclosure, and the scope of the application of which will be indicated in the claims. For a fuller understanding of the nature and objects of the present invention, reference should be had to the following detailed description taken in connection with the accompanying drawings wherein: Fig. 1 is a schematic illustration of the rotor and Hall effect commutation switches of a typical brushless DC motor; Fig. 2 illustates the transfer characteristics of a typical Hall effect device of the type used in brushless DC motors, such as the one illustrated in Fig. 1; Fig. 3 is the preferred embodiment of the control system, incorporating the present invention, for use in controlling the speed of a brushless DC motor, such as the one shown in Fig. 1; and Figs. 4A and 4B illustates a flow chart for use in describing the operation of the Fig. 3 embodiment. Referring to Fig. 1, the brushless DC motor, of the type which the present invention is particularly useful, includes a rotor 10 mounted for rotation about axis 12. The rotor is usually made of magnetically conductive material having a permanent magnetic charge of a polarity which varies as a function of the angular position of the rotor about the rotation axis 12. More specifically, as shown, the rotor includes a solid disc of magnetically conductive material including an even number (p) of sectors 14 of alternating magnetic charge so as to provide a like number of north (N) and south (S) magnetic poles. The sectors 14 are preferably of equal size and shape (so that each provides the same magnitude of magnetic flux) , each preferably prescribing an equal angular displacement about the rotation axis. Four 90 * sectors are shown in Fig. 1 by way of example. In order to energize the appropriate armature coils of the motor (the armatures not being shown in Fig. 1) at the appropriate commutation times as the rotor rotates about its axis 12, at least one and preferably a plurality of sensors 16, such as Hall effect commutation switches, are used to sense the angular position of the rotor. Sensors 16 detect the changes in the magnetic polarity due to reverses in magnetic flux provided by the sectors 14 as they move past the sensors as the rotor rotates about the axis. As the changes in polarity are sensed, the proper - signals are applied to the appropriate armature coils at the proper times. Each sensor is preferably positioned relative to the rotor so that only one sensor will detect a boundary transition between sectors at any one time, and preferably a boundary transition is detected with equal angular displacements of the rotor with each revolution. As shown, where "p" (the number of poles of the rotor) equals four (4) , and "n" (the number of sensors) equals three (3) , it is preferable to detect p times n boundary transitions (12) with each revolution of the rotor, each occuring a 360 * /12 or 30 * displacement of the rotor. This can be accomplished by positioning the three sensors along radial lines 18, 120 * relative to one another, as shown, or disposing two of the sensors 60 * on opposite sides of the third sensor. Thus, where three such sensors are used to sense the rotation of the four pole rotor shown in Fig. 1, twelve separate signals can be used with each revolution of the rotor for controlling the energization of the armature coils. To the extent described, such motors are well known. For example, see U.S. Patent Nos. 3018395, 3091728, 3226711, 3281629, 3461367, 3483458 and 3858109. Magnetically sensing the rotation of a rotating object of magnetically conductive material is also described in U.S. Patent Nos. 3408556 (Tachometer) and 4095177 (Transducer) . For a general discussion of Hall effect devices and various applications see, for example, ntegrated Circuits, Interface, Linear, Hall Effect Devices and Transistor Arrays, Section 9—Hall Effect Devices, pages 9-1 through 9-57, published by Sprague Electric Company of North Adams, Massachusetts, 1984. For a more specific description of brushless DC motors see DC Motors, Speed Controls, Servo Systems, Third Edition, published by Electro-craft Corp. of Hopkins, Minn., Chapter 6; and page 6-20 of that text which describes Hall effect sensing systems in such motors. Brushless DC motors of the type described are satisfactory for many applications because they are relatively inexpensive, as well as relatively small in size. However, where the application requires that the speed of the motor be precisely controlled, such as when driving a capstan transporting magnetic recording tape in an information storage and retrieval system, such control can not usually be provided alone. One major reason that motors do not in and of themselves provide a precise and accurate output speed of the rotor is the random nature of changes occurring in the load the motor has to drive, as well as mechanical tolerances in the motor itself. These changes, for example, can occur due to temperature variations and wear and aging of components, such as bearings in both the motor and the load; as well as changes in the load itself. Additional causes for speed variations can be power supply fluctuations and control circuit performance variations. Accordingly, a servo control system is usually employed to precisely control the motor speed in such applications. Such servo control systems usually include phase lock loop controls or other speed controls comprising optical or mechanical tachometers or tone wheels, which increase the costs and size of the motor, both in terms of physical space and money. Various tachometers attached to the motor shaft have been used for a long time in servo systems to precisely control the motor speed. The accuracy to which the motor speed is controlled with such tachometers is given by the accuracy of (a) the tachometer and (b) the motor itself. Thus, in conventional tachometer controlled servo systems, inaccuracies of the tachometer itself or the accuracy of mounting the tachometer to the motor shaft will result in a speed error proportional to such inaccuracies. One purpose of the present invention is to eliminate the components of inaccuracy attributable to tachometers, as well as other sources. This is preferably achieved by utilizing a computer microprocessor controlled system designed to essentially eliminate such speed errors attributable to tachometers and other sources. The accuracy of such a system will be determined by the computational accuracy of the microprocessor rather than the physical accuracies of any tachometer. Specifically, the accuracy is a function of the number of computational "bits" used by the microprocessor. Brushless DC-motors use Hall effect sensors for commutation, as is well known in the art. Such Hall effect sensors generate repetitive signals as the motor turns and therefore constitute in essence "tachometer like" signals. However, due to the nature of magnetic fields and Hall effect sensors, prior to the present invention it has been thought that the t angular inaccuracy of these signals is such that they cannot be used in lieu of a tachometer. As indicated in Fig. 1, the position of the boundary transition between adjacent sectors 14 of the .rotor tends to be inexact, with variations of as much as +/- 10 * , or a total of 20 * . Secondly, the Hall effect sensors tend to be inaccurate in precisely detecting the exact position of a boundary transition between adjacent sectors as the rotor rotates about the axis 12. Where each Hall effect sensor is positioned along a radial line 18 (in Fig. 1) , the magnetic flux sensed by each sensor will alternate between positive and negative magnetic flux as each boundary transition between each pair of adjacent sectors passes through the respective radial line 18. Each sensor provides an output voltage signal as a function of the flux sensed. A typical Hall effect sensor positioned within 12 mils of the edge of the magnetic rotor will provide a +12 volt DC output when the device senses a north pole of approximately -100 gauss Λ and substantially zero volt output when the device senses a south pole of approximately 100 gauss. See the Sprague text, supra, page 9-19. Where the rotor is rotating at speeds in the range of 2000 to 3000 rpm, as provided in tape and disc drives, the magnetic switching error may be as much as +/- 7 * or a total of 14 * Other errors that can contribute to motor speed fluctuations are the rotation shaft upon which the rotor is mounted, the bearings in which the rotation shaft rotates, as well as other minor error sources. L It is therefore desirable to employ a more cost efficient speed control for accurately controlling the speed of the rotor. Preferably, such a control occupies minimum space in the system that the motor is being employed, making it particularly useful in tape and disc drive systems. In accordance with the present invention the signals generated by the Hall effect sensors and applied to the armature coils are processed in a more reliable manner by a microprocessor controlled system so as to more accurately control the speed of the motor, and more particularly the signals are processed so as to substantially reduce or eliminate errors due to the magnetic switching limitations of the sensors, jitter errors due to vibrations and other errors noted above. In particular, as shown in Fig. 3, the preferred system for controlling the speed of the brushless DC motor of the type shown in Fig. 1 includes a rotor 10 and the three Hall effect sensors 16 angularly disposed approximately 60 * relative to one about the rotation axis 12 of the rotor 10, as described with respect to Fig. 1. The motor may be any one of several commercially available devices, such as one or more of the brushless DC motors sold by Sprague Electric Company of North Adams, Massachusetts. A microprocessor 30, which in the present application of tape and disk drives is provided for operating the system, can be utilized to also provide, in accordance with the present invention, a more accurate control of the angular speed of the rotor L0 about the axis 12 in response to the sensors 16 as the rotor moves about the axis. The microprocessor may be any type of device for controlling the operation of the system, described hereinafter, in connection with Figs. 4A and 4B. For example, the model 8051, manufactured and sold by National Semiconductor of California, is one such microprocessor. Other devices will be known to those skilled in the art. Microprocessor 30 is provided with an buffer register 32 adapted to receive the output of each of the sensors 16 and indicate to the microprocessor which of the sensors are sensing a north pole sector 14 of rotor 10 and which a south pole sector 14 of the rotor at any one instant of time. The outputs of the sensors 16 are also connected to the respective OR gates 34. OR gates 34 are arranged to detect transitions of each of the respective Hall switches through the magnetic field boundaries of the motor. The outputs of OR gates 34 in turn are connected together and to the interrupt input 36 of microprocessor 30. Microprocessor 30 interrogates the state of register 32 with each interrupt signal received from any of the OR gates 34 (the interrupt ' signal indicating a change in output of one of the Hall effect sensors and, therefore a boundary transition of the rotor has been detected) . The microprocessor 30 contains a clock, as is well known in the art, for accurately measuring the time between each interrupt signal. Microprocessor 30 has an address decode register 42 connected to address bus 38, and commutation data output register 48 and the register of a digital-to analog converter (DAC) 50 connected to data bus 40. The information transmitted on the bus 40 is data to be loaded either into commutation register 48, or the register of DAC 50. The determination as to which register is being addressed is made by the microprocessor according to well known programming rules. In the present invention digital current values are loaded via line 46B into the register of DAC 50, and similarly commutation sequences are loaded via control lines 46A into commutation register 48. The data on the bus 40 is a six bit digital signal representative of which of three commutation coils, indicated at 66A-66C, are to be energized and which are not at that particular moment. The arrangement shown is a bipolar switching arrangement so that two coils are energized during each commutation period between two successive interrupt signals. It should be appreciated that unipolar operation can be achieved by reconnecting the coils in a manner well known in the art and switching the coils so that only one is energized at a time. The signal is latched into commutation register 48, until the next enable signal is received from address decode register 42. When the register of DAC 50 is enabled the data signal is an eight bit signal representative of the value of the current to be applied to the particular coils 66A-66C connected to be energized, as will be more apparent hereinafter. The value of the current also takes into account characteristics of the motor, the load, the acceleration required as well as variations of the t power supply voltages according to well known principals, also known as servo feed-back control. The output of the commutation register 48 is a six bit digital signal, two for each of the commutation coils 66A-66C of the motor. The six outputs of the commutation register 48 are connected to the respective inputs of inverters 52A-52F, each preferably in the form of open gate collectors so as to also act as signal buffers. Inverters 52A-52C have their outputs connected respectively through resistors 54A-54C to the bases of switching (PNP) transistors 56A-56C, and to the anodes of the corresponding diodes 58A-58C. The cathodes of the diodes 58A-58C are connected together to the cathode of the Zener diode 60, which in turn has its anode connected to a positive DC bias voltage rail 64. The rail 64 is also connected to each of the emitters of the switching transistors 56A-56C and through the respective resistors 62A-62C to the corresponding bases of those transistors. The collector of the switching transistor 56A is connected to one side of each of the commutation coils 66A and 66C, the collector of switching transistor 56B is connected to one side of commutation coil 66B and the other side of coil 66A, and the collector of switching transistor 56C is connected to the other side of each of the coils 66B and 66C. The collectors of the switching transistors 56A-56C are also respectively connected to the collectors of current control (NPN) transistors 68A-68C. The bases of transistors 68A-68C are respectively connected to the outputs of inverters 52D-52F and through resistors 70A-70C to the output of inverting amplifier 72. The latter has its non-inverting input connected to system ground and its inverting input connected to its output through feedback capacitor 74. The inverting input is also connected to the output of the register of DAC 50 so that the output of the DAC is applied to the inverting input of the amplifier 72. Current feedback between the current control transistors 68A-68C and the DAC 50 is provided by connecting the emitters of the transistors 68A-68C and the ground terminal of the DAC through resistor 76 to system ground, so that the current applied to the bases of the transistors 68A-68C from the DAC is substantially linearly proportional to the digital value of current applied to the input of the DAC 50 from the microprocessor 30. In general, the system controls the angular speed of the rotor 10 about the axis 12 in accordance with the following control technique. As the rotor turns about the axis, each sensor 16 senses not only the polarity of each sector 14 of the rotor, but also each boundary transition between adjacent north and south sectors. In the embodiment described, with the three sensors 16 displaced at 60 * increments and the angle subtended by each sector of the rotor at 90 * , no two sensors will sense a boundary transition at the same time. In fact, a boundary transition is detected with each 30 * of angular rotation of the rotor. The output of the sensors will be of one value when the north pole is sensed and another value when the south pole is sensed, wherein a step change occurs in the output when the boundary transition is sensed by each sensor as evident from the transfer characteristics illustrated in Fig. 2. In the example of the embodiment disclosed, where the output jof each sensor is a positive voltage when a north pole is detected (represented by H) and a zero voltage when a south pole is detected -(represented by L) , a positive-going transition when the pole sensed changes from a south pole to a north pole (represented by +T) and a negative transition when the pole sensed changes from a north pole to a south pole (represented by -T) , using the reference position shown in Fig. 1 as the 0 , the outputs of the sensors will change with each 30 rotation in accordance with the following Sequence Look Up Table, during which period (a commutation period) the coils 66 will be energized in a sequence which is obvious well known in the art: SEQUENCE LOOK UP TABLE Sensor Output Angular Position 16A 16B 16C o ' H +T L 30 * -T H L 60 L H +T 90 * L -T H 120 " +T L H ISO " H L -T 180 " H +T L 210 " -T H L 240 " L H +τ 270 * L -T H 300 ' +T L H 330 ' H L -T 360 ' H +T L As will be evident from the above Sequence Look-up Table the sensor outputs of this embodiment actually repeat themselves each 180 * of rotation. As clearly indicated by the Sequence Look-up Table, a +T or -T signal is generated with each 30 * rotation so as to provide an interrupt signal to the interrupt input terminal 36 of microprocessor 30. The microprocessor will sense each boundary transition since an interrupt signal will be generated in response to each. The time interval between each set of successive signal transitions (the measured time interval) is determined and stored by the microprocessor internally in a RAM ( not shown ) . As will be more evident hereinafter, after each time interval is measured, it is added to the previous eleven time measured intervals between successive interrupt signals, so as to give the total time measurement for the last complete revolution of the rotor. These twelve summed time intervals (the total number of time intervals in one revolution of the rotor) provide a time value representative of the average time interval between successive detected boundary transitions over the last revolution of the rotor (i.e., the average time it took the rotor to rotate 30 * over the previous 360 * of rotation) . This average time interval value is compared to a preset value (provided in microprocessor 30) which is inversely proportional to the desired speed of the rotor. The preset value is either preset by the manufacturer if the desired speed is always the same, or by the user when it is preferred to make the speed adjustable. Following the determination of the average time interval value after the last interrupt, the signal is provided by the microprocessor over the data bus to the commutation register 48, which in turn enables the appropriate coils 66 in a sequence which is well known. The address is then generated by microprocessor 30 through register 42 to enable the register of DAC 50. The value of current provided as a function of the last determined average time interval value is generated by microprocessor 30 over the data bus so that the appropriate current is provided to the enabled coils. If the average time measurement is less than that set in the microprocessor the rotor is moving too fast and the current applied to the coils for this current time interval is reduced * If the average time measurement is more than that set in the microprocessor, the rotor is moving too slow and the current applied to the• coils is increased. If the average time is the same as that of the preset value then no change in the applied current need be made. The change in current applied, if any, is determined with each 30 * rotation of the rotor and the microprocessor 30 transmits the new current value over the data bus line 40 so that it can be converted by the DAC 50 and used to energize the appropriate commutation coils 66 for the time interval in progress. The servo system not only controls the speed of the rotor of the motor but also controls the amount of acceleration and deceleration desired. The foregoing will be more evident from the following description of the operation of the system in association with the flow chart shown in Figs. 4A and 4B. The operation of the system generally goes through four states from the time the system is turned on to the time the servo control operation is locked in. Specifically, the four operating states are: (a) "Ramp From Stop", wherein the motor is started with a constant DC energizing signal applied to the various energized coils 66 during each commutation period. During this state the time intervals between commutation interrupt signals is too long (i.e., the motor is moving too slowly) to provide values for the computation table, referred to in Figs. 4A and 4B as the "Interval Time Table", used to store the twelve values of the time periods between successive commutations in the last complete revolution measured relative to the last position of the rotor when the last interrupt signal was generated; (b) "Ramp With Table", wherein the time intervals between successive commutation interrupt signals are small enough so that the values of the intervals can be used in the computation table; <c) "Attempt to Lock", wherein successive values are stored in the computation table with each successive value replacing the oldest value in the , twelve locations of the table, and the velocity and acceleration error are measured to determine whether the servo state can be changed to the locked onspeed state; and (d) "Locked Onspeed", wherein the conditions for locking the servo control have been met and the servo control is locked. When the motor is turned off the energization and current signals are withdrawn, as is well known in the art. The foregoing will be more evident hereinafter. When.the system is turned on (step 100), the initial servo state is set to the "Ramp From Stop" state (step 102) werein the DAC current, a DC current, is set to a predetermined maximum value. The system then waits for the first commutation interrupt signal (step 104) from any of the OR gates 34 (as indicated by the Commutation Interrupt = 1? test at step 106) indicating that one of the Hall effect sensors has changed states. When the value of Commutation Interrupt = 1, the value of Commutation Interrupt is reset to zero (step 108) for reasons which will become more evident hereinafter. When the interrupt signal is detected at the input 36 of the microprocessor 30, step 110 will occur, wherein the measured time interval is measured by reading the commutation timer, the later providing a measure of the time that has elapsed between (a) the interrupt signal received prior to the last interrupt signal and (b) the last interrupt signal. The commutation timer is then set to zero. At the same , time, step 112 occurs wherein the motor is commutated, i.e., the selected coils 66 are energized by the microprocessor 30. Specifically, the appropriate address signal is provided to the commutation register 48 so as to enable the appropriate coils 66, and the- appropriate current (which in the Ramp From Stop state is the maximum DC current) is provided to the DAC 50, which in turn applies the current to the selected enabled coils. At step 114, the last measured time interval is compared to a predetermined reference value (referred to as the "Interval Time for Table OK") . This reference value is the maximum time, and therefore the slowest acceptable speed of the motor which can be used before the values of the time intervals measured in step 110 can be stored in the computation table. Thus, if the time interval is greater than this reference time interval, (indicating the motor is moving too slow for using the measured time intervals) the program proceeds to step 116. The state of the system is then tested to determine whether it is in the Locked Onspeed state. As will be indicated hereinafter, if it is in the latter state, a catastrophic event has occured (or the motor has been turned off) and the program proceeds through step 118 in Figs. 4A and 4B to step 120 in Fig. 4B, where the DAC current is set to zero and the program exits at 122 (Fig. 4B) since the servo has failed. If, as in the present case, the present servo state is not in the Locked Onspeed state at step 116, the program proceeds to insure that the state is set in the Ramp From Start state, (or reset to the Ramp From Start state, if the current state is either in the Ramp With Table or Attempt To Lock state) . The program then proceeds through step 126 in Figs. 4A and 4B to step 128 of Fig. 4B where the DAC current is set to the maximum current, i.e., the ramp current. The system will proceed to step 104 shown in Figs. 4A and 4B, where the program will repeat steps 106, 108, 110, 112, 114, 116, 124, 126 and 128 until at step 114 the time interval measured is less than the predetermined reference value of the Interval Time for Table OK provided in microprocessor 30. At this time the program proceeds to step 130 where the state of the system is tested to determine whether it is in the Ramp From Stop state. Since it is in this state, the program proceeds to step 132. At step 132 the state of the system is now set to the Ramp With Table, each of the twelve values in the computation table is initially set to the same value, i.e., each is made equal to the last time interval value determined in the last determined value made in step 110, the Interval Time Table Sum is set equal to twelve times this interval value, and the interval time table pointer is initially set to position 1 of the table. Following step 132, the program proceeds through step 126 of Figs. 4A and 4B, to step 128 in Fig. 4B. The DAC current is again set to the maximum current and the program proceeds through steps 104, 106, 108, 110, 112 and 114. So long as the time interval is still less than the preset value of the Interval Time for Table OK, the system will proceed to step 130. If it does not it will proceed to step 116, and thence to step 124 since the servo state was last set in the Ramp With Table state (and not the Locked Onspeed state) . From step 124 the program will proceed through steps 126, 128, 104, 106, 108, 110, 112, and 114 and compare the size of the time interval with the preset value of the Interval Time for Table OK. The program will continue through this loop until the time interval falls below the preset time interval. It will then proceed again through steps 130, 132, 126, 128, 104, 106, 108, 110, 112, 114 and 130. Since the servo state has been set to the Ramp With Table state (in step 132) the program will now proceed to step 134.. In step 134, the twelve time interval sum of the computational table is set equal to the last time interval table sum determined in the last pass though step 132. The last time interval measured in step 110 (occuring after the last pass through step 132) is then added to this time interval table sum, the value in the computation table at the location of the pointer (presently at location 1) is subtracted from the sum, and the last value of the time interval just added to the sum is used to replace the subtracted value in the computation table at the location of the pointer. The time interval table pointer is then incremented by 1 before proceeding to step 136. During the latter step inquiry is made whether the pointer is equal to 13. If so the pointer is reset to 1 (since only 12 locations in the computation table are used) t . If the pointer is not equal to 13, or if step 138 is executed, the program proceeds to step 140. At step 140, following the update of the computation table and the current value of the time interval table sum for the last 12 time intervals, the * velocity error is next computed. This is determined by subtracting the computation or time interval table sum from some nominal reference value. If the value of the velocity error is positive the motor is moving too slowly, if negative the motor is moving too fast, and if zero the speed of the motor is correct. Once the velocity error is computed the program proceeds through step 140 of Fig. 4A to step 142 in Fig. 4B. The state of the system is then tested to determine whether the servo system is in the Ramp With Table state. Since the state of the system is set for the Ramp With Table state (from the last pass through step 132) , the system proceeds to step 144, where the absolute value of the velocity error is compared to the velocity error for servo enable, a preselected value which is the maximum permissible velocity error before an attempt is made to enable the servo system in the Servo Lock state. If the magnitude of the velocity error is greater than, the velocity error for servo enable, the system proceeds from step 144 to step 128, through step 104 in Figs. 4A and 4B, and through steps 106, 108, 110, 112 and 114. At step 114 if the time interval is greater than the predetermined value of the Time Interval For Table OK, the system will proceed through steps 116 and 124, where the state of the system is^ reset to the Ramp From Stop state and proceeds, as previously described. If, however the comparison at step 114 is such that the measured value of the time interval is less than the predetermined value of the Time Interval for Table OK, the system will * proceed • through steps 130, 134 (since the system state is currently set for the Ramp With Table state) , 136, 138, 140 and 142. The system will again proceed to step 144. If the magnitude of the velocity error is less than the predetermined value for servo enable, the servo state is set to the Attempt to Lock state at step 146. Following step 146 the system proceeds through step 128 and repeats steps 104, 106, 108, 110, 112, 114, 130 (assuming the time interval is less that the predetermined value of the Time Interval for Table OK), 130, 134, 136, 138 (if pointer in step 136 is 13), 140, 142 to the step 148. At this latter step the acceleration error is set equal to the difference between the interval time table sum previously saved in the last pass through step 134) and the interval time table sum (i.e., the difference between the currently stored sum and the stored sum previous to the last update) . Obviously, if the difference is positive the motor is accelerating, and if negative the motor is decelerating. If the state of the system was last set in step 146 to the Attempt to Lock state the system proceeds to step 152, where the magnitude of both the velocity and acceleration errors are compared to preset values (referred to teh Velocity and Acceleration Errors for the Attempt to Lock . state) . If either error exceeds its preset value the system proceeds to step 156, described hereinafter. If the magnitude of each of the velocity and acceleration errors are less than the preset values the state of the system will now be set to Locked Onspeed state before proceeding to step 156. At step 156 a new DAC current is provided on the next commutation based upon the previous value and the magnitude of the velocity and acceleration errors. The system then proceeds to step 104 and continues through steps 106, 108, 110, 112, 114 (so long as the time interval is less than preset value of the Time Interval for Table OK), 130, 134, 136, 138 (skipped if the pointer value in step 136 is not 13) , 140, 142, 148, to step 150. Since the state of the system is now in the Locked Onspeed state, the system proceeds to step 158. At this step the magnitude of both the velocity and acceleration error are compared against second preset values (referred to as the Velocity and Acceleration Errors for Locked Onspeed State) to be sure that they are not exceeded. If not exceeded, the program proceeds to step 156 and proceeds through the contiuous loop provided by steps 156, 104, 106 108, 110, 112, 114 (so long as the time interval is less than the Time Interval for Table Ok), 130, 134, 136, 138 (skipped if the pointer value in step 136 is not 13), 140, 142, 148, 150 and 158. Obviously, if the time interval becomes greater than the preset value of the Time Interval for Table OK at step 114, the program proceeds to step 116 as previously described. Since the servo state has been set for the Locked Onspeed state, the program will proceed through steps 118, 120 and 122, since a catastrophic event has occurred (or the motor has been turned off) . Similarly, if the magnitude of the velocity and acceleration exceeds the preset values fo the Velocity and Acceleration for the Locked Onspeed state, the system will also proceed through steps 120 and 122, since a catastrophic event has occurred, or the motor has been turned off. It should be appreciated that the preset values of the Velocity and Acceleration Errors for the Attempt to Lock state (used in step 152) are much smaller than the corresponding preset values of the Velocity and Acceleration Errors for the Locked Onspeed state used in step 158 so that once the system moves from the Locked Onspeed state it will not easily fall out of this final state when the errors are measured in step 158, and so as to prevent control chatter (the situation where the system will alternatively move among the various states creating an unstable control condition. The present invention has several advantages. One major advantage is that by averaging the time measured intervals between each signal transition, the errors attributed to the inaccuracies of the Hall sensors are eliminated. Further, the system provides an accurate and inexpensive control of the speed of a brushless DC motor without the need of expensive phase lock loop circuitry using conventional mechanical and optical tachometers. 'The accuracy of the control is limited to the resolution of the digital signal representing the current applied to the DAC 50. Thus, an 8 bit signal is accurate within l/256th of the value of the current or approximately 0.4%. Obviously, if better resolution is desired a larger digital signal having additional least significant bits can be used to represent the current. By utilizing the averaging technique described above better use of space is achieved in such applications as tape and disc drives where space may be limited. Finally, by properly setting the ramping current applied in step 128, the initial velocity and acceleration of the motor is controlled. Certain changes may be made to the embodiment described without departing from the scope of the present invention. For example, the sensors for sensing the position of the rotor may be other types of magnetic sensors besides Hall effect sensors, such as magnetic tone arms; need not necessarily be magnetic sensors, but may be for example optical, such as optical tachometers, or electrical, such as electrical contacts. Since certain changes may be made in the above apparatus without departing from the scope of the invention herein involved, it is intended that all matter contained in the above description or shown in the accompanying drawing shall be interpreted in an illustrative and not in a limiting sense.

Claims: WHAT IS CLAIMED IS: 1. A device for controlling the angular speed of an object mounted for rotation about a predetermined rotation axis, said device comprising: sensing means for sensing at least two angular positions of said object with each revolution of said object about said axis; means, responsive to said sensing means, for measuring the time interval said object takes to rotate from each of said angular positions to the next succeeding angular position as said object rotates about said axis; means, responsive to said means for measuring each said time interval, for providing a value representative of the average time said object takes • to. rotate from each successive angular position to the next succeeding angular position as a function of all of the time intervals of the last complete revolution of said object relative to the last angular position; and means for adjusting the angular speed of said object as a function of the difference between each value representative of the determined average time and a predetermined value of time representative of the desired angular speed of said object. 2. A device according to claim 1, wherein said sensing means includes magnetic means for magnetically sensing each of said rotational positions of said object. 3. A device according to claim 2, wherein said magnetic means includes magnetic pole means secured to said object for rotation therewith and defining at least two magnetic poles rotatable about said axis, and magnetic pole sensing means radially spaced from said magnetic pole means and said axis and positioned so that said object rotates about said axis relative to said magnetic pole sensing means so that at least one of said poles is magnetically coupled to said magnetic pole sensing means at each of said rotational positions. 4. A device according to claim 3, wherein said magnetic pole sensing means includes at least one magnetic pole sensor. 5. A device according to claim 4, wherein said magnetic pole sensor is a Hall effect switch. 6. A device according to claim 4, wherein said mangetic pole sensor is a magnetic tone wheel. 7. A device according to claim 3, wherein said magnetic pole sensing means includes a plurality of said magnetic pole sensors angularly spaced relative to one another about said axis and radially spaced form said magnetic pole means. 8. A device according to claim 7, wherein each of said plurality of magnetic pole sensors is a Hall effect sensor. 9. A device according to claim 1, wherein said sensing means includes optical means for optically sensing each of said rotational positions of said object. 10. A device according to claim 9, wherein said optical means includes an optical tachometer. 11. A device according to claim 1, wherein said. sensing means includes electrical means for electrically sensing each of said rotational positions of said object. 12. A device according to claim 11, wherein said electrical means includes an electrical contact. 13. A device according to claim 1, wherein said means for determining the value of the average time said object takes to rotate from each successive angular position to the next succeeding angular position includes storage means for storing a predetermined number of said measured time intervals. 14. A device according to claim 13, wherein said storage means stores the latest of said measured time intervals representative of the last complete revolution of said object about said axis. 15. A device according to claim 1, wherein said means for adjusting the angular speed of said object includes a plurality of commutation coils and means for selectively energizing said coils, and wherein said object includes a magnetic head having "n" magnetically charged sectors, σircumferentially arranged and radially disposed with respect to said axis, and said sensing means includes "ra" sensors positioned along a radial line adjacent the periphery of said head so that each of said sectors forms a magnetic coupling to said sensor when the sector is disposed along said radial line, wherein "n" and "m". are whole intergers and the product "n" times "m" is the number of commutation periods of said coils. 16. A device according to claim 15, wherein said means for measuring the time said object takes to rotatably move about said axis from one of said rotational positions to the next includes signal generating" means for generating a. time dependent signal representative of time said object takes to rotate between succeeding ones of said angular positions, and said means for determining the value of the average time said object takes to rotate from each successive angular position to the next succeeding angular position as a function of all of the time intervals of the last complete revolution of said object includes storage means for storing a predetermined number of said time dependent signals. 17. A device according to claim 16, wherein said storage means stores the latest of said time dependent signals representative of the last complete revolution of said object about said axis from the last angular position. 18. A device according to claim 17, wherein said storage means is adapted to add the last of said time dependent signals provided from the last measured time interval at the last of said angular positions, and subtract the previous time dependent signal provided from said last angular positions, and said means for determining the value of the average time said object takes to rotate each revolution from each successive angular position to the next angular position includes divider means for dividing the time represented by the stored signals representing the time intervals of the last complete revolution of said object in said storage means by the number of angular positions. 19. A device according to claim 1, wherein said means for adjusting the angular speed of said object includes means for determining the velocity error between the actual velocity of said object for the last time interval and some predetermined value, and the acceleration error between the- actual acceleration for the last complete revolution relative to the last angular position and the acceleration for the previous the penultimate angular positon, and means for adjusting the angular speed of said object as a function of said velocity and acceleration errors. 20. A servo control system for controlling the speed of a DC motor of the type having a rotor rnQtated for rotation about a predetermined rotation axis and a plurality of armatures, each selectively energizable with a current, said system comprising: sensing means for sensing at least two angular positions of said rotor with each revolution of said rotor about said axis; means, responsive to said sensing means, for generating a signal when said rotor rotates through each of said angular positions; means, responsive to each of said signals, for measuring the time interval said rotor takes to rotate from each of said angular positions to the next succeeding angular position as said rotor rotates about said axis; means, responsive to said means for measuring each said time interval, for determining the value of the average time said rotor takes to rotate from each successive angular position to the next succeeding angular position as a function of all of the time intervals of the last complete revolution of said rotor; and means, responsive to said average time signal, for generating said armature currents as a a function of the difference between each of said average time signals and a predetermined signal as a function of the desired angular speed of said rotor so as to control the angular speed of said rotor. 21. A system according to claim 20, wherein said rotor includes magnetically polarized material extending around said axis so as to define a plurality of poles of alternating opposite magnetically polarized segments, each of said segments providing an equal angular displacement about said axis. 22. A system according to claim 21, wherein said sensing means includes a plurality of sensors angularly displaced around said axis, adjacent said rotor, such that each of said angular positions is defined by the transition between adajacent segments of said rotor when aligned with one of said sensors., 23. A system according to claim 22, wherein said sensors are positioned relative to said rotor such that only one of said transitions is aligned with one of said sensors at each o _•f said angular positions such that n x p angular positions are provided for one revolution of said rotor, wherein "p" is the number of poles and "n" is the number of sensors and n times p equals the number of commutation periods for each revolution of said rotor. 24. A system according to claim 22, wherein said sensing means includes at least one Hall effect sensor. 25. A system according to claim 22, wherein said sensing means includes a plurality of Hall effect sensors. 26. A method of controlling the angular speed of an object mounted for rotation about a predetermined rotation axis, said method comprising the steps of: sensing at least two angular positions of said object with each revolution of said object about said axis; measuring the time interval said object takes to rotate from each of said angular positions to the next succeeding angular position as said object rotates about said axis; providing a value representative of the average time said object takes to rotate from each successive angular position to the next succeeding angular position as a function of all of the time intervals of the last complete revolution of said object relative to the last angular position; and adjusting the angular speed of said object as a . function of the difference between each value representative of the determined average time and a predetermined value of time representative of the desired angular speed of said object. 27. A method according to claim 26, wherein said method of sensing said at least two angular positions of said object includes the step of magnetic sensing each of said angular positions. 28. A method according to claim 26, wherein said method of sensing said at least two angular positions of said object includes the step of optically sensing each of said angular positions. 29. A method according to claim 26, wherein said method of sensing said at least two angular positions of said object includes the step of electrically sensing each of said angular positions.

Inventors: CLEMENT PAUL F, FINDEISEN HEINZ H, CLEMENT, PAUL, F., FINDEISEN, HEINZ, H.
Applicants: NORTH ATLANTIC INDUSTRIES, NORTH ATLANTIC INDUSTRIES, INC.
Application year: 1987
Main classification: G05B5
IPC codes: G01P11, H02P6