The invention relates generally to positioning systems and more particularly to methods and apparatus for monitoring and tuning positioning systems.
A media handling subsystem transports a media sheet through a printing apparatus, such as a computer printer, fax machine or copy machine, for imaging. A media sheet is picked from a stack, typically in a tray, then moved along a media path using drive rollers. Printers such as ink-jet printers include at least one print cartridge that contains ink within a reservoir. A carriage holds the print cartridge. The reservoir is connected to a printhead that is mounted to the body of the cartridge. The printhead is controlled for ejecting minute drops of ink from the printhead to a sheet of print media that is advanced through the printer. The carriage is scanned across the width of the paper, and the ejection of the drops onto the paper is controlled to form a swath of an image with each scan. The height of the printed swath (as measured in the direction the media is advanced) is fixed for a particular printhead.
Between carriage scans, the media is advanced so that the next swath of the image may be printed. Inaccurate media advances between scans of the carriage result in print quality artifacts known as banding. The prevention of banding artifacts thus calls for precise control of the advancing media in discrete steps between printed swaths.
The tolerances permitted in media advance and carriage advance are so small that variations in system performance must be considered even within the same printer families, where otherwise identical drive motors and associated media-advance mechanisms are specified. For example, the friction characteristics of media-advance mechanisms (gears, feed rollers, etc.) in one printer will not precisely match those of another, otherwise identical printer. The same is true for the characteristics of the motor that drives the media-advance and carriage advance mechanisms. For convenience, these system frictions and motor characteristics will be hereafter collectively referred to as system response characteristics, which, as noted, vary at least to some degree from printer to printer.
In the past, printer control systems have been designed to account for variations in system response characteristics so that all printers meet the predetermined tolerances. One approach to this is to drive the media advance and carriage position systems conservatively so that acceleration and deceleration rates, as well as maximum velocities, can be achieved by worst-case systems (that is, systems with the poorest system response characteristics). It will be appreciated that this lowest-common-denominator approach inhibits the performance of systems that have average and above-average system response characteristics.
In other approaches, the conservative, worst-case drive approach is reserved for the end of the media advance step. That is, the media is advanced aggressively (rapidly) in a first stage for a majority of the incremental advance distance, but then slowed during a second (“final approach”) stage as the media moves into the proper position. Because of the large position errors that can arise during the first stage, the duration of the second stage is relatively long (despite the fact that the distance moved is small) in order to enable correction of the largest position errors.
U.S. Pat. No. 6,364,551, the subject matter thereof being incorporated herein by reference in its entirety, describes a system and method of controlling a drive motor such as a paper advance motor for carrying out precise and rapid media advance features. The system utilizes a pre-programmed, decaying velocity versus position function that can be considered as an exponentially diminishing curve (deceleration profile). Such deceleration function represents the behavior of a specimen motor (that is, a motor having the same design specifications as the motor used in the printer) as it decelerates following the switch from a full drive voltage to zero voltage. This function is recorded in advance (as by testing at least one, but preferably several, identical motors) in the printer memory. The function may be stored in the form of a look-up table (LUT) or equivalent equation.
As shown in
When the monitored motor acceleration curve 44 intersects the curve 42 of the deceleration function, the acceleration stage or period is concluded, and the control method shifts to the second, deceleration stage of the method. This stage commences with changing to zero the drive voltage that is applied to the motor. Thereafter, the motor velocity is controlled to follow the deceleration function.
However, due to system response characteristics such as inertia of the system, the transition from the acceleration portion of the curve to the deceleration portion of the curve is not instantaneous but rather includes certain delays.
Alternative systems and methods for monitoring positioning system performance and tuning or calibrating printer positioning and advancement mechanisms taking into account the transition between the acceleration and deceleration curves are desired.
Understanding of the present invention will be facilitated by consideration of the following detailed description of the preferred embodiments of the present invention taken in conjunction with the accompanying drawings, in which like numerals refer to like parts and:
The following description of the preferred embodiments is merely by way of example and is in no way intended to limit the invention, its application, or uses.
Apparatus 10 includes an imaging mechanism 20 for printing images on media sheets while they are supported by drum 30. The media sheets may take the form of sheets of paper, transparencies or any other substrate suitable for having images printed thereon. Mechanism 20 may take the form of a monochrome and/or color printing mechanism, and incorporate one or more print cartridges (such as cartridges that incorporate ink or toner) and/or one or more print carriages 22, 24 that carry one or more printheads or print nozzles, such as ink-jet pen print bodies, all by way of non-limiting example only. Printheads 18 comprise printheads configured to dispense imaging material, such as ink, upon the medium held by drum 30. In one embodiment, printheads 18 comprise piezo electric printheads. In another embodiment, printheads 18 comprise thermal inkjet printheads. As shown by
According to an embodiment of the present invention, drum 30 may be suitable for advancing media sheets of different sizes past imaging mechanism 20 in different modes. In such a case, drum 30 may be configured to have a different number of media sheet imaging facets in the different modes. As shown in
Apparatus 10 includes a media handling system 40 that transports media sheets along path 5 to drum 30, and in the illustrated embodiment, receives media sheets from drum 30. The media handling system includes a plurality of drive rollers (not shown), each akin to an elastomeric “tire”. The driver rollers are typically grouped about a rotating shaft (not shown). Each shaft is typically driven by a motor responsively to a media transport controller.
The media handling system picks media sheets from stacks of one or more media sheets supported by input trays. Media sheets picked from the trays are fed along media path 5 through the print apparatus 10 to receive printed markings by imaging mechanism 20.
Referring now to
Still referring to
In an exemplary embodiment, memory 74 contains or stores at least one table 74a having data entries. According to an embodiment of the present invention, each data entry is indicative of a drum 30 position and at least one associated action, or event. At least some of the actions or events have associated subroutines that may be executed by or at the request of the controller upon occurrence or detection thereof. Such actions, for example, include printhead firing, paper positioning, carriage positioning, and the like. Table 74a may include a separate table for each printing mode, e.g., for different sized media and/or color/monochrome. The microprocessor is apprised by the printer firmware (memory 74) of drum position and motor motion (which is correlated to the various paper advance distance) is monitored by microprocessor 72 via analog, rotary encoder 50 that is associated with the rotating drive shaft of the motor. Suitably conditioned feedback signals are provided to the microprocessor 72 so that, in conjunction with the system clock information, the microprocessor can instantaneously calculate relative positions and adjust print activities in response thereto.
As noted above, positioning mechanisms must be controlled in a manner that provides for proper movement in both time and accuracy. Such movements may be useful to position or advance sheets of media in a precise increment from a first position to a second position along an axis as indicated by the rotation of a drum. In similar fashion, precise positioning or movement of the carriage along a Y axis as indicated by the axis about which the drum rotates may also be required (where the drum is at a constant velocity). Thus, the accuracy and timing associated with movement of a positioning mechanism along an axis (e.g. the paper advance mechanism or the carriage mechanism) should utilize parameters that optimize the system performance.
Whenever a printing task is undertaken and, in particular, whenever a positioning member such as the print media or carriage needs to be advanced by a discrete increment, the microprocessor 32 provides via motor driver 38 signals that are suitable for driving the corresponding driving motor (e.g. drive motor 22). In this regard, the signals may be in the form of a drive voltage placed across the input terminals of the motor. The resulting current rotates the motor shaft and connected gears and feed roller 12.
The microprocessor is apprised by the printer firmware (memory 34) of the distance a positioning member must be advanced as part of the printing process. The motor motion (which is correlated to the paper advance or carriage advance distance) is monitored by microprocessor 32 via an analog, rotary encoder 40 that is associated with the rotating drive shaft of the motor. Suitably conditioned feedback signals are provided to the microprocessor 32 so that, in conjunction with the system clock information, the microprocessor can instantaneously calculate the motor velocity and paper or carriage position.
According to an embodiment of the present invention, an automated method for monitoring and tuning a positioning system utilizes deceleration profiles as described in U.S. Pat. No. 6,364,551 in a manner so as to obtain parameter values that optimize performance characteristics associated with movements of the positioning system.
Referring now to
Performance monitor module 200 receives requested moves that are indicated as being of a category identified as highly accurate and records the total number of moves (block 230), the number of moves that were deemed inaccurate (block 240) (over a threshold value), and the number of moves that took too long to complete (block 245).
In one configuration, when a move request is satisfied the microprocessor (
The monitor system may also be configured to maintain a count of the number of moves requested. As shown in block 280, if the count reaches a predetermined threshold (e.g. 10,000 moves), a record of the moves is stored (block 290) for maintaining a history of move performance data and a new set of record counts is initiated (block 295).
In one configuration, the performance monitoring module may be implemented as a continuously running process and may operate to preemptively initiate service and system tuning in advance of significant system performance degradation.
Referring now to the flow diagram of
If the number of monitored failures exceeds one of the thresholds, the system operates to obtain new measurement data for the deceleration profile (block 410). This is accomplished, for example, by controlling the motor speed to a predetermined velocity and then removing power to allow the motor to naturally decelerate or coast. The velocity and position of the motor are recorded at sampled data points. In an exemplary embodiment, the recorded positions are relative encoder positions on a rotary encoder operatively coupled to the motor and are sampled and a measured deceleration profile curve 500 (see
Referring again to
The quality of the fit curves is checked (block 420) to ensure sufficient correlation with the measured raw data of curve 500. This may be accomplished, for example, by performing linear regression such as least squares fit on the curve data and comparing with threshold values to determine a sufficient match. If the quality check fails to meet the required threshold match, the processing proceeds to block 410 where new raw data measurements are obtained for generating another deceleration profile curve. Otherwise, the fit curves are used as the commanded deceleration profiles (e.g. velocity vs. distance) for the given axis (e.g. carriage axis) and stored in a memory such as a look up table.
Using the fit profile curve 550 obtained in the preceding step, operation proceeds by scanning through a range of parameter values identified (block 425) as motor turnaround delay parameter. This parameter is a look ahead that determines when to commence deceleration behavior using the stored fit deceleration profile curve 550. That is, due to system response characteristics such as inertia of the system, the transition from motor acceleration to the deceleration portion of the curve is not instantaneous but rather includes certain delays. Such delay is known as motor turnaround delay. The motor turnaround delay parameter value operates to take into account the actual system response and provide a smoother transition from acceleration to deceleration.
An initial value (i.e. starter value) for this motor turnaround delay parameter is obtained for commencing this process, along with all other pertinent parameters such a motor response delay, threshold and the like to given values (i.e. set all values to test initial values).
The motor turnaround delay parameter value is kept constant for a predetermined number N of carriage moves (where N is between 20 and 100, for example). That is, the carriage is moved a target distance (e.g. 0.5 inch) and the position of the carriage recorded on a servo control interrupt after the carriage position crosses a given threshold, is obtained and recorded (block 430). This recording occurs for each set of carriage moves (for a single value of the motor turnaround delay parameter). The motor turnaround delay parameter value is then incremented and another set of carriage moves is carried out with the position of the carriage after it cross the threshold again recorded.
The variation in recorded position of the carriage crossing the threshold is large when the motor turnaround delay parameter value is too small. The variation decreases to a minimum as the parameter value increases, as illustrated by curve 700 in
The recorded data comprising carriage position threshold crossing data and turnaround delay parameter values is then filtered (block 430) to reduce peak values in the data. In one configuration, the filter is a moving average filter that uses the current data point and its preceding and subsequent data point to smooth out the recorded data values. Curve 750 of
After the full range of the parameter value has been tested, an optimal value is determined preferably using the filtered curve data. In one configuration, the optimal value is chosen to be a set distance from a “corner” on the performance curve. The corner selection (block 440) of data points is determined by using the variation crossing under a threshold and remaining stable under the threshold (i.e. the rate of change has also reached a low threshold).
Although the corner position can be considered to be a good choice, however, perturbations to the system may result in large changes to the behavior of the positioning system. Therefore, an offset is chosen to separate the choice of the parameter value a sufficient distance away from this corner.
A centroid selection may also be applied (block 440). Here the raw offset is also cross checked against the portion of the parameter vs. variation curve that is fully under the threshold. This is called the centroid check.
Either the corner offset value or the centroid value is selected according to the lower of the two values (block 450). For example, if the centroid of the curve portion that is below the threshold is less than the parameter chosen by the corner offset, the centroid of that curve portion is used as the optimal motor turnaround delay parameter value. This is shown in
The determined optimal motor turnaround delay parameter value is then saved in memory.
Operational flow proceeds to determine an optimal value for the motor response delay parameter (block 455). This parameter governs the behavior of the positioning algorithm as the load decelerates. Using the determined optimized motor turnaround delay parameter value, processing proceeds to perform a set number of carriage moves while keeping the motor response delay parameter value constant; recording for each move the final position of the carriage and the time required to reach the final destination position; and then updating (e.g. incrementing) the motor response delay parameter value and repeating the carriage movement and recordation steps.
The final stopping position of the carriage and the time that it was required to reach the destination position are recorded (block 460) for each value of the parameter. The variation of the final stopping position and the value+variation of the move time are used to determine the optimal motor response delay parameter value. Typical behavior during these iterations is a decrease in the variation of the final stopping position and an increase in the move time as the value of the motor response delay parameter is increased.
Corner selection processing is applied to the final stopping position curve data (block 470) as well as to the stopping time curve data (block 475). The optimal value is chosen based on another threshold crossing with a threshold on the rate of change of the stopping position variation. The optimal value is chosen as an offset from this corner to have a known amount of margin. This value is then cross checked against a stopping time performance threshold. The minimum of these two values is chosen (block 480).
Once this optimal motor response delay parameter value is determined, the positioning system may be re-characterized and demonstrated to pass the predetermined tolerance criteria.
The description of the invention is merely exemplary in nature and, thus, variations that do not depart from the gist of the invention are intended to be within the scope of the invention. Such variations are not to be regarded as a departure from the spirit and scope of the invention.