Patent Publication Number: US-6661981-B2

Title: Method and apparatus for controlling transfer belt velocity of a color printer

Description:
TECHNICAL FIELD 
     The present invention relates generally to image forming equipment and is particularly directed to color laser printers of the type which have transfer belts that receive latent images from multiple photoconductive members. The invention is specifically disclosed as a motion control system that maintains a substantially constant belt velocity under varying environmental conditions and for various styles of drive motors and variations in individual belt physical parameters. 
     BACKGROUND OF THE INVENTION 
     In color printers a plurality of color planes are sequentially aligned and deposited onto a transfer media such as a transfer belt. The transfer belt is then used to transfer the accumulated color planes to a piece of paper or other media. A problem associated with this process is misregistration or misalignment of one or more of the color planes. Alignment of the color planes is crucial in achieving a high quality image. Due to the fact that each individual color plane is transferred onto the belt or paper at different locations along the travel path of the transfer belt, the belt position within the travel path must be controlled with a high degree of precision. The motion of the drive motor that drives the belt must be accurately controlled to insure that there is little or no misregistration of the color planes on the belt such that the resulting image is of good quality. 
     There are many instances where motion inaccuracy can develop and cause a concomitant degradation in the resulting image. Factors such as variations in the thickness of the belt, variations in the belt tension, and variations in the drive motor system itself are examples of factors that lead to motion inaccuracy. 
     Motor control systems of color printers usually sense motor position by means of an encoder and control the motor driver such that pulses produced by the encoder coincide with clock pulses generated by the controller. This adds cost and complexity to the printer. It would be desirable to have a method and apparatus that corrects for motion inaccuracy which is inexpensive to implement and does not add complexity to the printer. 
     SUMMARY OF THE INVENTION 
     A transfer belt subassembly for a color printer includes a transfer belt, a home position indicator, a temperature sensor and a memory. The transfer belt subassembly is measured and characterized after its fabrication and before being installed in a printer. The measurement and calibration data for the transfer belt is stored in the memory that is part of the subassembly. The memory stores data representing the motion characteristics of the transfer belt, such as velocity characteristics and temperature compensation factors for use by an engine-controller (which may be defined as one or more integrated circuits, including a microprocessor or logic state machine, firmware, and memory) of the printer to govern the motion control of the drive motor. When the transfer belt subassembly is inserted into a printer, the engine-controller in the printer is placed in communication with the memory. Sensors are employed to determine the home position of the transfer belt and to provide a measure of belt velocity and temperature. The engine-controller utilizes the characterizing data from the memory and temperature sensor data (such as the output of a thermistor) to provide adjustment of belt velocity and compensation for variations in the transfer belt motion quality. By use of the predetermined characterizing data, precise alignment of the color planes with respect to one another is achieved for accurate color printing. 
     In one embodiment, two belt sensors are used for velocity control of the belt. In another embodiment, only a single belt sensor is used for belt velocity control. In both preferred embodiments, a temperature sensor is used to correct for temperature variations that can affect the physical characteristics of the belt. 
     It is an advantage of the present invention to provide a motion control system that controls the velocity of a moving belt member of an electrophotographic printer, while correcting for variations in environmental conditions or variations in individual belt parameters. 
     Additional advantages and other novel features of the invention will be set forth in part in the description that follows and in part will become apparent to those skilled in the art upon examination of the following or may be learned with the practice of the invention. 
     To achieve the foregoing and other advantages, and in accordance with one aspect of the present invention, an apparatus for providing transfer quality optimization of color planes transferred to or from a transfer belt of an image forming apparatus is provided, which comprises: a plurality of transfer rollers; a transfer belt disposed about the plurality of transfer rollers; a memory capable of storing data relating to the transfer belt at multiple transfer stations; a home position indicator associated with the transfer belt; first and second sensors for sensing the home position indicator; and a temperature sensor for sensing temperature near a surface of the transfer belt. 
     In accordance with another aspect of the present invention, an apparatus for providing transfer belt position correction, used in a color printer having a plurality of color planes deposited onto a transfer belt, comprises: a transfer belt subassembly including: (a) a transfer belt disposed about a plurality of rollers and having a home position indicator; (b) a temperature sensor disposed to sense temperature near a surface of the transfer belt and to provide a signal representative thereof; and (c) a memory capable of storing transfer belt calibration data. 
     In accordance with a further aspect of the present invention, a method of controlling transfer belt position in a color printer is provided, in which the color printer has a plurality of color stations, a transfer belt subassembly having a transfer belt disposed about a plurality of rollers, a temperature sensor, a belt position sensor, a memory, and a variable speed motor for driving the transfer belt about the rollers, the method comprising: storing characterizing data for the transfer belt in the memory which represents the measured velocity profile for the transfer belt; and providing drive signals to the variable speed motor in response to data from the memory and signals from the sensors to control the speed of the motor and the speed of the transfer belt to provide nearly constant surface velocity between color stations of the printer. 
     In accordance with still a further aspect of the present invention, a printer having a motion-controlled transfer belt is provided, comprising: a plurality of rollers; a transfer belt disposed about the plurality of rollers; an indicator disposed on the transfer belt; a plurality of sensors disposed adjacent the transfer belt, each of the plurality of sensors capable of sensing the indicator; a memory for storing data representing transfer belt characteristics; a motor for driving the transfer belt; and a controller in communication with the plurality of sensors, the memory and the motor, the controller operative to adjust the speed of the motor in accordance with the contents of the memory to compensate for motion inaccuracy of the transfer belt based on the velocity profile of the transfer belt. 
     In accordance with yet another aspect of the present invention, an image forming apparatus having a motion-controlled transfer belt is provided, comprising: a plurality of rollers; a transfer belt disposed about the plurality of rollers; an indicator disposed on the transfer belt; a sensor disposed adjacent the transfer belt, for sensing the indicator; a memory for storing data representing transfer belt characteristics; a motor for driving the transfer belt; a controller in communication with the sensor, the memory, and the motor, the controller operative to run the transfer belt at a predetermined default motor speed for an entire belt revolution, as detected by the position sensor; and the controller being further operative to count motor output pulses during the belt revolution, and to adjust the belt speed accordingly to run at a substantially constant velocity. 
     Still other advantages of the present invention will become apparent to those skilled in this art from the following description and drawings wherein there is described and shown a preferred embodiment of this invention in one of the best modes contemplated for carrying out the invention. As will be realized, the invention is capable of other different embodiments, and its several details are capable of modification in various, obvious aspects all without departing from the invention. Accordingly, the drawings and descriptions will be regarded as illustrative in nature and not as restrictive. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The accompanying drawings incorporated in and forming a part of the specification illustrate several aspects of the present invention, and together with the description and claims serve to explain the principles of the invention. In the drawings: 
     FIG. 1 is a diagrammatic view illustrating the apparatus of the present invention; 
     FIG. 2 is a schematic block diagram illustrating DC velocity control in accordance with the invention; 
     FIG. 3 is a plot of time vs. temperature and useful in describing the operation of the apparatus of FIG. 2; 
     FIG. 4 is a schematic block diagram illustrating one aspect of AC velocity control in accordance with the invention; 
     FIG. 5 is a schematic block diagram illustrating another aspect of AC velocity control in accordance with the invention; 
     FIG. 6 are plots of belt positional error vs. AC feedforward commands over a belt revolution, one plot having an initial offset value applied; 
     FIG. 7 is a flow chart of some of the important logical steps involving the AC feedforward control functions of one embodiment of the present invention; 
     FIG. 8 is a flow chart of some of the important steps involving the zone rate update function of the flow chart of FIG. 7; 
     FIG. 9 is a diagrammatic view of an AC feedforward control example in which the number of belt zones is greater than the number of table zones; 
     FIG. 10 is a diagrammatic view of an AC feedforward control example with appropriate corrections under the control of the present invention, in which the number of belt zones is greater than the number of table zones; 
     FIG. 11 is a diagrammatic view of an AC feedforward control example in which the number of belt zones is less than the number of table zones; 
     FIG. 12 is a diagrammatic view of an AC feedforward control example with appropriate corrections under the control of the present invention, in which the number of belt zones is less than the number of table zones; and 
     FIG. 13 is a block diagram of a DC control algorithm used in one embodiment of the present invention, in which the output motor control signal is adjusted to compensate for temperature effects. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     Reference will now be made in detail to the present preferred embodiment of the invention, an example of which is illustrated in the accompanying drawings, wherein like numerals indicate the same elements throughout the views. 
     Referring now to the drawings, FIG. 1 shows a transfer belt subassembly  10  and color stations  12 ,  14 ,  16  and  18  each associated with a respective color plane. In the illustrated embodiment station  12  is utilized for providing a black color plane, and stations  14 ,  16 , and  18  respectively provide the primary color planes cyan, magenta and yellow. Each of the color stations includes a print head  20  and a PC drum  22 . The print head forms a latent image on the associated PC drum and toner is supplied to the PC drum and the developer assembly produces a developed toned image, also known as a color plane, from the latent image on the PC drum. Each color station may be realized through any one of a plurality of known configurations. 
     The transfer belt subassembly  10  contains a transfer belt  30 , a first home position sensor  32 , a second home position sensor  34  (in some embodiments), a thermistor  54  and a memory  36 . The sensors are typically optical sensors which are cooperative with one or more reference holes or indicia in the belt, as will be described. A reference indicia in the illustrated embodiment is provided by a hole in the transfer belt which is sensed by electro-optical sensors  32  and  34 . The indicia can be of other types such as magnetic or electrostatic marks, or reflective surfaces on the belt sensed by appropriate sensors (e.g., magnetic, electrical charge, or optical sensors). The memory  36  is preferably a semiconductor memory such as a non-volatile memory. 
     The transfer belt  30  is supported on a plurality of rollers including an end or tension roller  40  and a drive roller  42 . Transfer rollers  44  are associated with respective PC drums  22 . A drive motor  46  drives the drive roll  42  through a series of intermediate gears or rollers  48 , and the drive motor is governed by motor controller  50 . An engine-controller  52  is coupled as shown to the motor controller  50 , sensors  32  and  34 , memory  36  and thermistor  54 . The engine-controller  52  is also coupled to a video controller  56  which receives signals from the respective print heads  20  and provides image data signals thereto. 
     The drive motor  46  can be a brushless DC motor in one embodiment. The speed of the motor is controlled by driving signals from the motor controller wherein each pulse of the drive signal represents a desired angular displacement of the motor. In an alternative embodiment, the motor can be a stepper motor in which each pulse represents an angular displacement of the motor. The period of consecutive pulses determines motor shaft velocity. 
     After fabrication of subassembly  10 , belt surface velocity measurements are made using a test fixture having a precision encoder wheel that engages a linear section of the belt surface near the drive roll, and which includes standard interface elements like those in a printer. The interface elements are usually the photoconductor drums. In the preferred embodiment, velocity measurements are derived from a multi-pass average of belt velocity using a home indicia on the belt at sensor location  2 , sensed by sensor  34 , as a circumferential position reference. The averaged velocity data is notch filtered to remove components of velocity corresponding to the drum roll circumference and the measurement wheel circumference, and is then low pass filtered to remove high frequency components corresponding to gear tooth frequency and noise. The break point on the low pass filter is nominally chosen to clip components with periods less than 100 mm. Dependent on belt, drive roll and idler roll characteristics, the low pass frequency break point could range from about ¼ to {fraction (1/20)} times the belt circumference. For an 889 mm belt circumference, the range would be about 44 mm to 222 mm. The AC motor positional profile required to drive the belt at constant surface velocity is derived from the measured/averaged/filtered/integrated/inverted velocity data and is recorded in encoded form into the memory  36  in the subassembly. The memory  36  contains a correlation factor which relates the required velocity adjustment setting to a change in the temperature, with respect to a reference temperature (e.g., 23 degrees C.). The memory  36  also contains the motor setpoint value which is applicable at a reference temperature (e.g., 23 degrees C.). The motor setpoint value sets the nominal drive reference frequency for a brush DC motor with associated encoder or a brushless DC motor with internal speed control, or the step rate for a stepper motor. 
     In an alternate (or second preferred) embodiment, the memory  36  also contains data on the time between home sensors  32  and  34  to achieve a known belt surface velocity at a known temperature, with and without AC feed forward velocity control, temperature compensation factor for time between sensors at other temperatures, and belt length in zones corresponding to the length of the velocity correction table. 
     Thus, the subassembly  10  after its manufacture and before installation in a printer for use, has characterizing data stored within an internal memory which is part of the subassembly. When the subassembly is installed in an associated printer, the characterizing data in memory  36  is employed by engine-controller  52  of the printer to govern feed forward velocity control for accurate registration of color planes for accurate color printer operation. 
     The operation of engine-controller  52  to provide DC correction will be described in conjunction with FIGS. 2 and 13. A thermistor  54  preferably located near the surface of belt  30  at the drive roll provides a resistance which is converted to a voltage representative of sensed temperature and which is provided to an A/D (analog-to-digital) converter  60  which is part of engine-controller  52 . This thermistor signal is representative of average drive roll temperature. The thermistor may alternatively be located in contact with the belt near the drive roll or in contact with the drive roll itself. On FIG. 13, after running through an A/D converter (not shown), the thermistor signal value (e.g., a numeric value of  223 ) arrives on line  212  to a difference stage  210 . A thermistor reference value (for a predetermined nominal operating temperature) is stored in system memory, and also has a numeric value (such as  236 ) that is scaled to correspond to the thermistor input signal value  212 . The output from the difference stage  210  is the signal at  216 , and in the above example it would have a numeric value of −13. 
     The relationship between a change in temperature and a change in belt velocity is empirically determined and stored in the memory  36  (i.e., the “scaling factor” at memory table  218  on FIG.  13 ). This velocity-to-temperature conversion represents a scaling value that converts the temperature difference value to an adjustment value of the motor frequency. The output  220  from the memory table  218  for the example of FIG. 13 is a numeric value of 3.25, because the value read from the memory table  218  was equal to −0.25, which when multiplied by −13 gives a product of +3.25. 
     The memory  36  also contains the motor setpoint value at a reference temperature (e.g., 23 degrees C.). Several motor types or manufacturers may be supported, which requires that the motor setpoint value for each motor type be also be stored in memory  36 , as well as the velocity-to-temperature conversion value for each motor type. 
     Prior to printing, the engine-controller  52  will interrogate the motor for type, and download the appropriate motor setpoint value, and velocity-to-temperature scaling value into NVRAM  72 . A default motor setpoint is determined at a register or memory cell  200  (see FIG. 13) that acts as a logical multiplexer by selecting a value for either “motor type A” or “motor type B.” The value for motor type A is, e.g., 10000, on line  202 , while the value for motor type B is, e.g., 5000, on line  204 . The selection at line  206  is choosing motor type A in the example of FIG. 13, and logical multiplexer  200  accordingly outputs a value of 10000 on line  208 , which represents a desired period of the reference clock that drives the motor which drives the belt. 
     The engine-controller  52  will also poll the ITM memory  36 , to determine whether the DC control algorithm should be enabled, as determined at a logic stage  230 , controlled by a virtual signal  232 . It will be understood that the circuit diagram depicted on FIG. 13 could either be implemented in hard logic (such as in an ASIC), or could be implemented using a microprocessor with sequential logic, or by a logic state machine. If the DC control algorithm is turned OFF, then the value at a signal line  224  (from logic stage  200 ) will pass through the logical multiplexer  230  to be input at  234  to the next logic stage  236 . This mode is not a typical use of the circuit or control logic of the preferred DC control algorithm, although it is useful for debugging the control software used to implement this algorithm. On the other hand, if the DC control algorithm is turned ON, then the value at a signal line  226  will pass through the logical multiplexer  230  to be input at  234  to the next logic stage  236 . 
     As the system is operating, with the DC control enabled, the digitized temperature information from thermistor  54  is supplied to circuit  210 , which is then compared against the reference value. This error will be multiplied by the velocity-to-temperature conversion value stored at  218 . The output of this calculation will be added to the motor setpoint value at an adder stage  222 , to give the thermally compensated motor setpoint at  226  (as noted above). In this manner, the thermal expansion of the drive roll may be compensated, providing a stable thermally corrected belt velocity. In the example of FIG. 13, the compensation value (or “correction value,” or “adjustment value”) at  220  was 3.25, which when added to the value of 10000 at the signal line  208  gives a new “compensated” value of 10003.25, which is input at the “true” input of the logical multiplexer  230 . 
     The motor setpoint output may be further scaled at a mathematical function block  236  by a factor which compensates for intended change in belt velocity relative to the calibration velocity which can occur, for example, as a result of page length adjustment or to run the process at half speed or some other predetermined speed. This choice could be made available to the printer&#39;s user, or it could be automatic when printing at a finer or coarser print resolution (e.g., 600 dpi or 1200 dpi), or when printing on certain types of print media. For example, if printing on a transparency sheet, the printing speed could be slowed down to half speed by the velocity scaling function at block  238 , as selected by a select signal or flag bit at  238 . 
     On the example of FIG. 13, the velocity value at  242  was not scaled, and so the value remained at 10003.25, which represents a desired period value for the reference clock. To remove extraneous noise and create a stable system, low pass filtering may be applied to the digitized temperature information. 
     A mathematical function stage  240  now rounds the value at  242  down to the nearest integer, which in this example of FIG. 13 outputs a numeric value of 10003 at  244 . This value at  244  is summed at an adder circuit or logic stage  270  with a “fine velocity adjustment” value at a line  264 , which is derived from a dithered virtual multiplexer stage  260 . As clock pulses are sent to the drive motor  46 , the pulse duration of each of the output pulses is preferably controlled by a pulse width modulator (i.e., at the output of the “output motor setpoint” stage  272  on FIG.  13 ). The stage  260  can output either a Logic 0 or a Logic 1 to the adder circuit/stage  270 , under the control of an input signal line (or software function) at  262 . If a Logic 1 is output to the adder circuit/stage  270 , then the signal value is incremented, so that the signal value at  272  is one step greater than the signal value at  244 . In this example, the signal value increments from 10003 to 10004, as indicated by the table  274  on FIG.  13 . 
     The dithering effect is determined by the numeric value that was lopped off at the stage  240 , when the signal was converted to an integer. In the example on FIG. 13, a value of 0.25 was eliminated. Therefore, the dithering effect of circuit  260  has compensated for this by causing four (4) of the next sixteen (16) clock pulses to be incremented, thereby effectively adding a value of 4 parts in 16 (0.25) to the output motor setpoint  272 . 
     In the first preferred embodiment, a PC drum spacing of 303 mm from the “color1 PC drum”  22  (e.g., Yellow) to Black transfer stations, along the path of the ITM with an adjustment resolution of 1 part in 10,000 (0.01%), of the nominal motor reference period, would provide a registration adjustment of 0.030 mm between the first and last color stations. 
     This 0.01% adjustment in motor velocity is accomplished by stretching or reducing the reference clock period by 100 nanoseconds for the nominal 1 millisecond reference period. This resolution of adjustment is inadequate for a tandem color printer, and would preferably have an adjustment of resolution of at least 1 part in 100,000 (0.001%). 
     By dithering the motor reference period (at adder stage  270 ) between two adjacent reference period values over a predetermined period, thereby creating an effective PWM (pulse width modulation) signal, the average belt velocity may be adjusted to a much higher resolution. In this manner, the edges of the motor encoder reference signal may be used as the PWM period. In the preferred embodiment, the PWM period may last for 8 full encoder periods, giving 16 edges for possible dithering of the reference frequency, which would increase the DC adjustment resolution by a factor of 16. 
     In the alternative embodiment of the present invention, the dual optical sensors  32  and  34  are placed at a spaced relationship substantially equal to the circumference of the drive roll  42  after adding ½ of the belt thickness to the roller radius. The resultant time delay measured as the home indicia  31  on the belt moves from one sensor to the next, provides a time delay representative of the average belt velocity. The effective drive roll circumference is also nominally equal to the spacing between PC drums to null out drive roll runout effects. 
     A thermistor  54  preferably located near the surface of belt  30  at the drive roll provides a resistance which is converted to a voltage representative of sensed temperature and which is provided to an A/D converter  60  which is part of engine-controller  52 . This thermistor signal is representative of average drive roll temperature. The thermistor may alternatively be located in contact with the belt near the drive roll or in contact with the drive roll itself. The relationship between temperature and time for the home indicia to pass between sensors corresponding to maintaining a consistent process direction registration between the Black PC drum of print station  22  and color print PC drums of print stations  14 ,  16 ,  18  is empirically determined and stored in memory  36 . This correction function is used in conjunction with the measured temperature to thermally correct the measured time difference. FIG. 3 shows a graph of a time vs. temperature correction function. 
     The operation of engine-controller  52  to provide DC correction will be described in conjunction with FIG. 2. A moving average of the differential time measurements from the sensors  32  and  34  with compensation for expected thermal expansion for the drive roll and thermal expansion of the belt between stations provides a stable thermally corrected measurement of time delay between stations. The sensor signals are applied to a counter  62 , the output of which is applied to thermal correction circuit  64  which provides the temperature correction function as shown in the graph of FIG.  3 . The digitized temperature information from thermistor  54  is supplied to circuit  64  which provides an output scaled by a scale factor circuit  66  which compensates for any intended change in belt velocity relative to the calibration velocity which can occur, for example, as a result of page length adjustment or to run the process at half speed or some other predetermined speed. After scaling the signal is applied to a moving average circuit  68 . 
     The thermally corrected and averaged time measurement is compared to a calibration time between sensors to achieve a predetermined velocity at a fixed temperature. The calibration time is retrieved from the memory  36 . The difference value upon subtraction at  70  provides an error signal which serves as an error signal for DC velocity control. This error signal sets the nominal drive reference frequency for a brush DC motor with associated encoder or a brushless DC motor with internal speed control, or the step rate for a stepper motor. When the error signal is driven to zero, the thermally corrected average drive velocity results in constant time delays from PC drum to PC drum that avoid DC color plane misregistration that would otherwise result from changes in DC time delay caused by temperature variations. 
     The current value of the moving average is maintained by the engine-controller  52  in NVRAM  72 . This value is maintained after correction to 30° C. and corresponds to the belt calibration process speed. When a new subassembly is installed into the printer, as usually recognizable by a unique serial number stored in memory  36 , the NVRAM  72  moving average is reinitialized to the calibration value for the newly installed subassembly. 
     The moving average preferably comprises 64 measurements for computational simplicity. Errant measured values, typically more than 2% from the current moving average, are discarded prior to averaging. 
     In the alternative preferred embodiment, the moving average is obtained by multiplying the current average time delay by {fraction (63/64)} and adding in {fraction (1/64)} times the new measurement. However, other averaging techniques can also be used including a 64-element running average with or without weighting of the buffered values. The 64 elements corresponds to a physical thermal time constant for a desktop printer (8.37 minutes) over which a DC velocity change will occur. Greater or fewer elements can be included in the average, although the choice of a power of two allows calculation of the average by shifting and adding rather than by multiplying and dividing. 
     Because the time difference between sensors is determined on a continuing basis during printing, the AC velocity feed forward correction, which will be described below, should be enabled during this time measurement and compared to the calibration value with the AC feed forward enabled. If the AC feed forward is not enabled, the calibration value without AC feed forward should be used. 
     In the preferred embodiment, the initial DC time difference value stored in memory  36  is used in conjunction with the drive roll temperature measurement to determine the motor reference frequency or step rate. This preferred implementation saves the cost of a second belt home sensor but loses the function of tracking and correcting velocity changes over the life of the subassembly. 
     For “AC correction” (i.e., the motion errors due to belt thickness variations, which are substantially consistent between belt revolutions) the engine-controller  52  retrieves the velocity profile data from memory  36  and which is used to vary the motor reference period to achieve constant surface velocity at the drive roll position of the belt. The home index  31 , which may be a hole, or other indicia painted or placed on or in the belt  30 , is used in conjunction with the second sensor  34  to establish a home reference position for the position correction algorithm. The AC error correction signal supplied to the drive motor results in nearly constant surface velocity between color stations in a pipeline color EP printer, ignoring the drive roller once around contribution to velocity variation and higher frequency gear jitter and noise components. The speed control results in fixed time delays between stations that do not vary in an AC sense with belt position relative to a home sensor. Thus, the AC component of color plane misregistration is substantially minimized. 
     The belt drive is controlled to provide constant and predictable belt travel from print station to print station within a tolerable error which is nominally 50 μm or less. Ideally the system is controllable in increments of 10% or less of the tolerable error (5 μm) and thus the frequency of updates is chosen so that the change in motor velocity corresponds to one controllable increment. 
     In the preferred embodiment, a belt with 889 mm circumference is segmented into 1690 zones with a zone length of approximately 0.53 mm. The zone length may be determined using the motor output encoder, which may be a magnetic Hall device, or similar type. Each zone has a two bit representation of the sequential change in drive motor reference period corresponding to zero, plus 0.01%, or minus 0.01% that is required to correct the drive motion to achieve nearly constant belt surface velocity. A 0.01% change is actually accomplished by stretching or reducing the reference clock period by 127 nanoseconds for the nominal 1270 microsecond reference clock. In a preferred embodiment, the minimum integrated position correction increment over a 101 mm station spacing is approximately 0.1 μm; the maximum integrated position correction achievable over a 101 mm station spacing is about 970 μm; and the maximum rate of velocity change is about 0.02% per mm. Alternate embodiments may use motors with a different number of Hall pulses per revolution of the motor, and consequently there may be alternative number of zones per belt, with an alternative zone duration. 
     For continuity in velocity control from home detect to home detect, variation in belt length as a result of temperature and stretch over life needs to be accommodated. Without compensation, the zone counter which points to the current velocity correction value in the memory table could lose synchronization to the home indicia on the belt due both to changes in belt length and to accumulated velocity errors. The velocity changes by zone summed over the table must total to zero to avoid a net velocity change in one revolution of the belt. To avoid changing the DC velocity of the belt, the integrated area under the positional adjustment curve must also sum to zero. For this reason, an AC_Offset value (see step  122  on FIG. 7) needs to be incorporated when the AC control algorithm is initially activated. This AC_Offset value is described graphically in FIG.  6 . The AC_Offset value is stored in memory  36 . In order to avoid discontinuities, a zone counter must index through the table continuously without premature reset and without counting past the end of the table. The length of the correction table in zones is stored in the memory  36  at the time of calibration of the subassembly. 
     On FIG. 6, the top graph  100  represents a curve  102  of the positional errors over a single revolution of the belt, while position corrections are periodically being input (at  104 ). The curve  102  is always negative with respect to the X-axis, and therefore, an error accumulates, as represented by the area “under” the curve (i.e., the integral of the curve&#39;s function). The bottom graph  110  represents a curve  112  having a similar shape (due to the same position corrections at  114 , however, an initial offset value has been added to the curve so that its integral is substantially zero (0) from the first home position to the next. 
     The engine-controller algorithm that maintains synchronization of the zone counter and velocity correction table relative to the belt home indicia is depicted in FIGS. 7 and 8. After the routine starts at a step  120 , the next step in FIG. 7 at  122  is to determine whether the AC_Offset value would need to be scaled, by a factor which compensates for intended change in belt velocity relative to the calibration velocity which can occur to run the process at, for example, half speed or some other predetermined speed. Once the AC control has been enabled, the motor reference period is adjusted by the AC zone Offset value. A zone clock is also provided which is used to index through the total number of zones in the compensation table. In the preferred embodiment, this clock may be the motor output encoder signal. 
     The ITM motor is then energized (or initiated) at a step  124 , and the engine-controller begins looking for the home sensor activation signal at a step  126 . Once the home sensor signal has been activated, as determined by a decision step  128 , the motor reference period begins to be modulated by the amplitudes described in the compensation table. As the motor continues to run, the motor encoder output signal is used to increment through the compensation table. 
     The motor velocity is adjusted at a step  130 , based upon table values for each specific zone. A decision step  132  determines when the next home position occurs, and the logic flow then continues to a logic routine represented by a block  140 , which represents another flow chart as depicted on FIG.  8 . 
     The number of zones in the table was developed to be nominally equal to the number of motor encoder pulses edges within the nominal belt length. Given manufacturing tolerances, belt creep over life, and belt shrinkage and expansion due to thermal considerations, it is unlikely that the number of zones in the compensation table will be commensurate with the number of encoder pulses in any given belt revolution. The preferred embodiment described below, allows for discrepancies between the number of zones in the compensation table, and the equivalent number of encoder pulses in a given belt revolution, whereby the control logic indexes through the compensation table at varying rates, based upon the number of detected encoder edges within a given belt revolution, as compared to the number of zones within the compensation table. 
     While indexing through the compensation table, if the logic flow arrives at the end of the table prior to seeing the next home index signal, the compensation table rolls-over and the control logic begins indexing through the table again. The zone rate update routine  140  begins at a step  142 . Once the home sensor signal has been sensed, the following two items are calculated, (1) the “Last Zone Used” in the table at a step  144 , and (2) the number of encoder pulse edges (also referred to as “Belt_zones_per_rev”) in the last revolution, at a step  146 . In steady state operation, the number of encoder pulse edges per belt revolution is consistent within a few zones, dependent on parameters such as belt stretch and temperature. 
     If the compensation table rolls over, the number of encoder pulse edges per revolution is greater than the number of zones in the compensation table. The system can be thought of as having run “too quickly” through the table. The table size correction value is calculated by subtracting the encoder pulse edges per revolution (also referred to as “Belt_zones_per_rev”) from the number of Table_zones. The phase relationship between the home sensor signal and the start of the compensation table also needs to be corrected. The phase correction is accomplished by first determining if the Last_Zone_Used occurred at the end of the table or at the beginning. A decision step  150  makes this determination by first dividing the total number of zones by two (2), and comparing the result to the Last_Zone_Used value. If the table rolled over, then the result at decision step  150  will be NO, and the logic flow is directed to a step  154 ; otherwise it will be YES, and the logic flow is directed to a step  152 . 
     If the compensation table rolls-over, then consequently the Last_zone_Used occurred in the beginning of the table, and the Position Correction value is equal to (−Last_Zone_Used) at step  154 . Conversely, if the table is run-through “too slowly,” the Last_Zone_Used will be at the end of the table, at step  152 . The Position_correction is then calculated as the Last_Zone_Used, subtracted from the Table_zones. The total correction is the summation of the Table_size_correction and the Position Correction values, at a step  156 . The correction interval is then calculated at a step  158  as being equal to the number of motor pulse leading and lagging edges (as determined by the Hall sensor), divided by the absolute value of the Total Correction, added to a value of +1, with this overall quotient added to a value of −1. The zone rate update routine is then finished for this belt revolution. 
     FIGS. 9-12 describe the phasing correction between the compensation table, and the Belt_zones. If the Total_correction value is negative (i.e., “went through table too quickly” or “too fast”), then there would have been a larger number of encoder pulse edges per revolution (i.e., Belt_Zones) than Table_zones, as illustrated at  170  on FIG.  9 . On the next belt revolution, by not applying the table correction at the appropriate interval, the control logic may effectively shift the compensation table down, such that by the next home sensor signal, the “end of the compensation table,” and the “end of the belt zones” are matched. This example is depicted at  172  on FIG.  10 . 
     If the Total_correction value is positive (i.e., the logic “Went through belt too slowly”), then there would have been a smaller number of Belt_Zones than Table_zones, as illustrated at  180  on FIG.  11 . By applying the table correction from two zones simultaneously at the appropriate interval, the control logic may effectively shift the compensation table up, such that by the end of the next home sensor signal, the “end of the compensation table,” and the “end of the belt zones” are matched (as depicted in the example at  182  on FIG.  12 ). In this manner, the control logic may keep a phased relationship between the compensation table and the Belt home sensor, even if the number of Belt_zones changes over time, due to creep and thermal considerations. 
     The same correction table can be used when printing at other resolutions. For instance at 1200 dpi with the belt velocity set to one half of the 600 dpi belt velocity, zone length remains nominally 0.5 mm. The zone clock period is doubled with the 0.01% velocity changes produced by 254 nanosecond increments to the motor clock period rather than 127 nanosecond increments. 
     By use of the invention misregistration error can be substantially reduced. The peak to peak positional error between stations can be reduced from about 100 micrometers without correction to about 20 micrometers with correction, thereby providing a significant improvement in performance. 
     An alternate methodology for determining the zones will now be described. The engine-controller algorithm and associated hardware to maintain synchronization of the zone counter and velocity correction table relative to the belt home indicia is depicted in FIGS. 4 and 5. As shown in FIG. 4, the first step is to determine the home to home transit time and to project the required period for the zone counter  62  on the next revolution of the belt  30  to maintain synchronization of the home indicia  31 . The second step as shown in FIG. 5 is to provide a clock and counter that indexes through the total number of zones in the velocity correction table during one belt revolution. 
     FIG. 4 illustrates the method of determining the clock period for the zone counter  62 . This measurement is performed after the belt DC velocity has been set. The initial time from home to home is stored in memory  36  for use until a moving average has evolved from multiple measurement cycles in the machine. The current value of the moving average &lt;Tbelt,k&gt; is maintained by NVRAM  72 . When a new subassembly is installed into the printer, which is recognizable by the unique serial number stored in memory  36 , the NVRAM value is reinitialized. 
     As shown in FIG. 4 at the start of a job and prior to imaging, the error integrator  80  is reset to zero, the average time for a belt rotation &lt;Tbelt,k&gt; is retrieved from NVRAM  72 , and variables Tzone(0) and Tbelt(0) are initialized to the retained average &lt;Tbelt,k&gt;. 
     Sensor  32  is used to detect the home indicia  31  and the time from home to home is measured by counting a fixed clock. Temperature correction of this counted time is not required because the associated belt length error is small and rapidly integrated out by the error integrator  80 . The first measured value is Thelt(1) and successive values are labeled Tbelt(i). The k-point moving average &lt;Tbelt,k&gt; is updated to include each new measurement and is saved periodically to NVRAM  72 . 
     As is shown schematically in FIG. 4, the difference from the measured time for a belt revolution Thelt(i) and the predetermined zone period Tzone(i) is computed and summed to produce an integrated error. This integrated error is multiplied by a gain factor and added to the current belt time Tbelt(i) to determine the zone clock period for the next revolution of the belt Tzone (i+1). 
     From the start of a printing job: 
     Tzone(0)=Tbelt(0)=&lt;Tbelt,k&gt;(0)=&lt;Tbelt,k&gt;. 
     Tzone(1)=Tbelt(0)=&lt;Tbelt,k&gt; at startup 
     Tzone(2)=Tbelt(1)+Gain*[Tbelt(1)−Tzone(1)] 
     Tzone(i+1)=Tbelt(i)+Gain + sum[Tbelt(n)−Tzone(n)]/n=1 to i 
     In the preferred embodiment the Gain is 1 and k is 32. The moving average &lt;Tbelt,k&gt; is computed as: 
     &lt;Tbelt,k&gt;(i+1)=[31*&lt;Tbelt,k&gt;(i)+Tbelt(i)]/32 
     Other running or weighted averages can alternatively be employed. Convergence in response to a disturbance is rapid, typically one belt revolution, and without ringing with the integrator gain multiplier set to 1. Gain may also be of other values to suit desired performance. Error checking may be added to assure that the current measured time is within an acceptable window such as within ±5% of &lt;Tbelt,k&gt; prior to processing. 
     The moving average is maintained at the 600 dpi process speed. If the machine is operated at other speeds such as half speed 1200 dpi, either a second moving average can be created or the existing value scaled inversely. 
     FIG. 5 shows the technique for providing a clock that counts through the length of the velocity correction table in one revolution of the belt. The total clock period for the zone counter Tzone(i+1) is obtained as described above. The total number NZ of zones for velocity correction, that is the table length, is retrieved from memory  36 . The engine-controller determines the clock period required to count through NZ zones in time Tzone(i+1) as Tclock(i+1)=Tzone (i+1)/NZ. This clock period is then generated using a programmable counter  82  with fixed input clock period which is nominally 500 nanoseconds. The division ratio for the counter  82 , N(i+1), is chosen so that N(i+1)=Tclock(i+1)500 nanoseconds. 
     The zone index counter  82  provides a count input to the velocity correction table  84  that indexes through the table in one belt revolution. By updating Tzone for each revolution of the belt, integration of accumulated errors results in maintaining NZ zone counts per belt revolution. The velocity correction table is initially synchronized to the home indicia  31  in the belt relative to the second sensor  34  at the start of a job and prior to the start of imaging. The zone clock is subsequently updated from Tclock(i) to Tclock(i+1) upon detection of the home indicia at the second sensor. 
     The foregoing description of a preferred embodiment of the invention has been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise form disclosed. Obvious modifications or variations are possible in light of the above teachings. The embodiment was chosen and described in order to best illustrate the principles of the invention and its practical application to thereby enable one of ordinary skill in the art to best utilize the invention in various embodiments and with various modifications as are suited to the particular use contemplated. It is intended that the scope of the invention be defined by the claims appended hereto.