U.S. patent application number 11/567961 was filed with the patent office on 2007-04-26 for system and methods for data-driven control of manufacturing processes.
This patent application is currently assigned to GEORGIA TECH RESEARCH CORPORATION. Invention is credited to Leandro G. Barajas, Magnus B. Egerstedt, Alex Goldstein, Edward W. Kamen.
Application Number | 20070090164 11/567961 |
Document ID | / |
Family ID | 33493488 |
Filed Date | 2007-04-26 |
United States Patent
Application |
20070090164 |
Kind Code |
A1 |
Barajas; Leandro G. ; et
al. |
April 26, 2007 |
System and Methods for Data-Driven Control of Manufacturing
Processes
Abstract
Systems and methods for implementing hybrid, closed-loop control
that generates control values for processes defined by a limited
number of function evaluations and large amounts of process and
measurement noise. The described control system is applied to a
stencil printing process for applying solder paste to an electronic
medium such as a printed circuit board or semiconductor wafer. The
control system is defined by a hybrid approach. A first, coarse
algorithm is used to rapidly produce the value of a stencil printer
control value resulting in a solder paste deposit having a volume
within predetermined acceptable limits. After the coarse algorithm
no longer produces solder paste deposits closer to a desired
volume, a second, more refined estimator is used to fine tune the
process. An additional transitional algorithm may be added between
the coarse algorithm and refined estimator. The coarse algorithm
may be implemented with a constrained-conjugated gradient search,
and the refined search may be a implemented using a least-squares
affine estimator or a quadratic estimator. The transitional
algorithm may be implemented using a block version of a
least-squares affine estimator.
Inventors: |
Barajas; Leandro G.; (West
Bloomfield, MI) ; Egerstedt; Magnus B.; (Atlanta,
GA) ; Goldstein; Alex; (Atlanta, GA) ; Kamen;
Edward W.; (Smyrna, GA) |
Correspondence
Address: |
THOMAS, KAYDEN, HORSTEMEYER & RISLEY, LLP
100 GALLERIA PARKWAY, NW
STE 1750
ATLANTA
GA
30339-5948
US
|
Assignee: |
GEORGIA TECH RESEARCH
CORPORATION
505 Tenth Street, NW
Atlanta
GA
30332-0415
|
Family ID: |
33493488 |
Appl. No.: |
11/567961 |
Filed: |
December 7, 2006 |
Related U.S. Patent Documents
|
|
|
|
|
|
Application
Number |
Filing Date |
Patent Number |
|
|
10836155 |
Apr 30, 2004 |
7171897 |
|
|
11567961 |
Dec 7, 2006 |
|
|
|
60476017 |
Jun 5, 2003 |
|
|
|
Current U.S.
Class: |
228/101 |
Current CPC
Class: |
H05K 2203/1476 20130101;
H05K 3/1233 20130101; H05K 1/0269 20130101; H05K 3/3485 20200801;
H05K 2203/163 20130101; H05K 2203/0139 20130101 |
Class at
Publication: |
228/101 |
International
Class: |
A47J 36/02 20060101
A47J036/02 |
Claims
1-41. (canceled)
42. A closed-loop control method of controlling a volume of solder
paste applied to an electronic medium: incrementally adjusting a
value of a stencil printer control parameter by a predetermined
amount; and fine tuning the value of the stencil printer control
parameter by a second amount once a mean solder paste deposit
measurement is within predetermined process limits.
43. The method of claim 42, wherein the solder paste deposit
measurement is a volume, an estimated volume, or a height of a
solder paste deposit.
44. The method of claim 42, wherein the step of fine tuning the
value of the stencil printer control parameter further includes:
adjusting the value of the stencil printer control parameter by a
smaller amount than the predetermined amount using an estimator
selected from an affine estimator and a quadratic estimator.
45. The method of claim 42, wherein the step of incrementally
adjusting a value of a stencil printer control parameter by a
predetermined amount further includes: determining the value of the
stencil printer control parameter using a gradient search.
46. The method of claim 42, wherein the step incrementally
adjusting a value of a stencil printer control parameter by a
predetermined amount further includes: determining a search
direction; and continuing to incrementally adjust the value of the
stencil printer control parameter by the predetermined amount in
the search direction until the resulting difference between the
measurement and a desired value of the measurement is not
decreased.
47. The method of claim 42, wherein the solder paste deposit
measurement is a height of a solder paste deposit, and wherein the
step of incrementally adjusting the value of the stencil printer
control parameter by the predetermined amount comprises: setting an
initial printer control value; printing a first plurality of solder
paste deposits on the electronic medium using the initial printer
control value; determining the mean height of the first plurality
solder paste deposits on the electronic medium; ascertaining a
search direction by determining if the mean height of the first
plurality of solder paste deposits is above or below a desired
height; determining an updated value of the stencil printer control
parameter by incrementally adjusting the initial printer control
value in the search direction by the predetermined amount; printing
a second plurality solder paste deposits on a second electronic
medium using the updated value of the stencil printer control
parameter; and determining if the difference between the mean
height of the second plurality of solder paste deposits and the
desired height is less than the difference between the mean height
of the first plurality of solder paste deposits and the desired
height.
48. The method of claim 42, further including: transitioning from
the step of incrementally adjusting the value of the stencil
printer control parameter by the predetermined amount to the step
of fine tuning the value of the stencil printer control parameter
by using a block form of a least-squares estimator.
49. The method of claim 42, further including: transitioning from
the step of fine tuning the value of the stencil printer control
parameter to the step of incrementally adjusting the stencil
printer control value by the predetermined amount when the mean
solder paste deposit height is outside of a predetermined
operational band.
50. The method of claim 42, wherein the stencil printer control
parameter is any one of the print speed, the squeegee pressure,
snap off speed, the stroke length, the downstop distance, and the
separation distance based on the measured height of the solder
paste deposit.
51. The method of claim 42, wherein the mean solder paste deposit
measurement comprises a weighted mean of a plurality of solder
paste deposits.
52. The method of claim 51, wherein the weighted mean of the
plurality of solder paste deposits gives a larger weight to solder
paste deposits associated with problematic components or to solder
paste deposits associated with fine-pitch contact pads.
53. A computer-readable medium having a computer program for
implementing a closed-loop control method for controlling a volume
of solder paste applied to an electronic medium, comprising: logic
configured to incrementally adjust a value of a stencil printer
control parameter by a predetermined amount; and logic configured
to fine tune the value of the stencil printer control parameter by
a second amount once a mean solder paste deposit measurement is
within predetermined process limits.
54. The computer-readable medium of claim 53, wherein the logic
configured to fine tune the value of the stencil printer control
parameter further includes: logic configured to adjust the value of
the stencil printer control parameter by a smaller amount than the
predetermined amount using an estimator selected from an affine
estimator and a quadratic estimator.
55. The computer-readable medium of claim 53, wherein the logic
configured to incrementally adjust a value of a stencil printer
control parameter by a predetermined amount further includes: logic
configured to determine the value of the stencil printer control
parameter using a gradient search.
56. The computer-readable medium of claim 53, wherein the logic
configured to incrementally adjust a value of a stencil printer
control parameter by a predetermined amount further includes: logic
configured to determine a search direction; and logic configured to
continue to incrementally adjust the value of the stencil printer
control parameter by the predetermined amount in the search
direction until the resulting difference between the measurement
and a desired value of the measurement is not decreased.
57. The computer-readable medium of claim 53, wherein the mean
solder paste deposit measurement comprises a weighted mean of a
plurality of solder paste deposits.
58. The computer-readable medium of claim 57, wherein the weighted
mean of the plurality of solder paste deposits gives a larger
weight to solder paste deposits associated with problematic
components or to solder paste deposits associated with fine-pitch
contact pads.
59. A closed-loop control system, comprising: means for
incrementally adjusting a value of a stencil printer control
parameter by a predetermined amount; and means for fine tuning the
value of the stencil printer control parameter by a second amount
once a mean solder paste deposit measurement is within
predetermined process limits.
60. The system of claim 59, wherein the mean solder paste deposit
measurement comprises a weighted mean of a plurality of solder
paste deposits.
61. The system of claim 60, wherein the weighted mean of the
plurality of solder paste deposits gives a larger weight to solder
paste deposits associated with problematic components or to solder
paste deposits associated with fine-pitch contact pads.
Description
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims priority to U.S. provisional
application entitled "Data Driven Control of Complex, High-Noise
Manufacturing Processes," having Ser. No. 60/476,017, filed on Jun.
5, 2003, which is entirely incorporated by reference.
BACKGROUND
[0002] 1. Field of the Invention
[0003] The present invention generally relates to systems and
methods for a data-driven, closed-loop, hybrid control algorithm
for a stencil printing process used in electronics manufacturing
and semiconductor packaging.
[0004] 2. Discussion of the Related Art
[0005] The stencil printing process is used in various electronics
manufacturing environments. Generally, in relation to electronics
manufacturing, stencil printing refers to the use of a stencil as a
template for which solder paste or other similar material,
including, but not limited to, polymer films, may be applied to an
electronic medium such as a printed circuit board (PCB), a
semiconductor device or a biological membrane.
[0006] The stencil printing process is widely used in surface
mounting components to a PCB. Surface mounting, in contrast to
thru-hole techniques, refers to a circuit board packaging technique
in which the leads or pins on chips and other components are
soldered on top of the PCB rather than through the circuit board.
Both surface mounting and thru-hole techniques can be applied
sequentially to the same PCB. In a typical surface mount PCB
manufacturing process, the first step is to "print" solder paste
deposits over the metallic contact pads of a PCB. The solder paste
deposits are then verified, often by a mere visual inspection. The
components are then placed on top of the solder paste deposits,
pushing their leads into the paste. When the components have been
attached, the solder paste is melted using either a reflow oven,
vapor-phase soldering, or an equivalent technology to create the
electro-mechanical junctures. Finally, the manufactured PCBs are
inspected and tested.
[0007] The stencil printing process has also been adapted for use
in the wafer bumping process. Wafer bumping is a packaging
technology which uses solder bumps to form the interconnect between
the integrated circuit (IC) and the package. Similar to the
manufacture of PCBs, the process includes the deposition of solder
onto each interconnect site.
[0008] No matter what use the stencil printing process is applied
to, the process and the associated complications with controlling
that process are shared. For example, the goal of the stencil
printing process when manufacturing of PCBs, as well as when
applying solder bumps in the wafer bumping process, is to apply an
accurate and repeatable volume of solder paste deposits at precise
locations on an electronic medium.
[0009] The stencil printing process is characterized by having high
process and measurement noise levels and by requiring constant
solder-paste-volume deposition at all times. This process has
particular characteristics that make it extremely hard to control;
some of the most relevant factors are: poorly understood process
physics, difficulty in measuring key variables, a high-noise
environment, a limited number of measurements, and software and
hardware implementation limitations.
[0010] The ability to observe the stencil printing process is
limited because key variables like solder paste viscosity and
hydraulic pressure cannot be directly measured or estimated by most
existing industrial production equipment. The process is
furthermore corrupted by high degrees of noise caused by
inaccuracies in the measurement and by internal system variability.
Often, the inaccuracies in the measurement may be disregarded in
the case when three-dimensional laser measurement techniques are
used. However, the internal system variability has a six-sigma
interval of approximately plus or minus thirty percent of the mean
of the probability distribution function of the signal, making the
process output extremely variable even under constant
conditions.
[0011] Further, the associated cost of taking a measurement of a
system output is high since it is necessary to actually print
solder paste deposits on the electronic medium to take the
measurements. It should be noted that the measurements are
multivariate. The number of such outputs is related to the total
number of solder paste deposits printed and inspected. This set of
measurements as a whole is considered as a single realization of
the system and it is desirable to minimize the number of such
evaluations to be able to generate control values while printing as
few unusable units as possible.
[0012] It has been estimated that between fifty to seventy percent
of the total defects in PCB surface mount assembly lines are
related to the stencil printing process, and that approximately
thirty to fifty percent of the total manufacturing cost is due to
test and rework expenses. Thus, the step of stencil printing is
considered the most critical in the PCB manufacturing process.
Furthermore, a defect that occurs in the early stages of the
process will propagate, causing additional rework cost at each step
in the process that the PCB goes through without being detected as
defective. This stresses the importance of early detection of not
only obvious printing errors (e.g., extreme lack or excess of
solder paste in a solder brick), but also of possible causes of
other defects resulting from degradation of solder paste quality,
loss of the working viscosity point, or even machine-related
failures. Thus, any attempt to enhance the performance of the PCB
manufacturing lines often start with the stencil printing
process.
[0013] Accordingly, because of the difficulty of controlling the
stencil printing process due to the above described limitations, a
control system and method of controlling the amount of solder paste
deposited to an electronic medium is desired.
SUMMARY
[0014] Systems and methods are presented for implementing a hybrid,
closed-loop control algorithm that generates control values for
processes defined by a limited number of function evaluations and
large amounts of process and measurement noise. The described
control algorithm is used to control a stencil printing process to
apply a desired volume of solder paste to an electronic medium such
as a printed circuit board or semiconductor wafer. The control
algorithm is defined by a hybrid approach using a first, coarse
algorithm to achieve a solder paste volume within predetermined
acceptable limits. Once operating within the desired limits, the
control algorithm transitions to a more refined estimator for fine
tuning the process.
[0015] One exemplary embodiment is a closed-loop control method for
controlling a stencil printing process. The method includes
measuring the height of a solder paste deposit on an electronic
medium, and determining a value of a stencil printer control
parameter based on the measured height of the solder paste
deposit.
[0016] In another exemplary embodiment is a closed-loop control
method for controlling a stencil printing process. The method
includes determining a volume of a solder paste deposit on an
electronic medium, and determining an updated value of a stencil
printer control parameter based on the volume of the solder paste
deposit.
[0017] Another exemplary embodiment is system for controlling a
volume of a solder-paste deposit. The system includes a controller
associated with a stencil printer operable to receive a measurement
of the height of at least one solder paste deposit on an electronic
medium. The controller also is operable to determine a control
value of a stencil printer control parameter based on the
measurement of the height of the at least one solder paste
deposit.
[0018] Another exemplary embodiment is a system for controlling a
volume of a solder-paste deposit comprising a controller associated
with a stencil printer operable to receive a measurement of the
volume of at least one solder paste deposit on an electronic
medium. The controller is also operable to determine a control
value of a stencil printer control parameter based on the
measurement of the volume of the at least one solder paste
deposit.
[0019] Another exemplary embodiment is a closed-loop control method
of controlling a volume of solder paste applied to an electronic
medium. The method includes incrementally adjusting a value of a
stencil printer control parameter by a predetermined amount, and
fine tuning the value of the stencil printer control parameter by a
second variable amount once a mean solder paste deposit measurement
is within predetermined process limits.
[0020] Another exemplary embodiment is directed to a closed-loop
control method for controlling a stencil printing process. The
method includes setting a first value of a stencil printer control
parameter, measuring the height of a solder paste deposit on an
electronic medium, and determining a second value of the stencil
printer control parameter based on the measured height of the
solder paste deposit.
[0021] Another exemplary embodiment is directed to a closed-loop
control method for controlling a stencil printing process. The
method includes setting a first value of a stencil printer control
parameter, measuring the volume of a solder paste deposit on an
electronic medium, and determining a second value of the stencil
printer control parameter based on the measured volume of the
solder paste deposit.
[0022] Other systems, methods, features and/or advantages will be
or may become apparent to one with skill in the art upon
examination of the following drawings and detailed description. It
is intended that all such additional systems, methods, features,
and/or advantages be included with this description and be
protected by the accompanying claims.
BRIEF DESCRIPTION OF THE DRAWINGS
[0023] The accompanying drawings incorporated in, and forming a
part of, the specification, illustrates several aspects of the
hybrid control system, and together with the description serve to
explain the principles of the invention. The components in the
drawings are not necessarily to scale relative to each other. Like
reference numerals designate corresponding parts throughout the
several views.
[0024] FIGS. 1A-1C depict several stages of the stencil printing
process in which solder paste and surface mounted components are
applied to a PCB.
[0025] FIG. 2A is a close-up, side view of a solder paste deposit,
such as one of the deposits shown in FIG. 1C, and a representation
of the measurements taken for use in an embodiment of the hybrid,
closed-loop control system.
[0026] FIG. 2B is a close-up end view of the solder paste deposit
depicted in FIG. 2A, depicting a further representation of the
measurements taken for use in an embodiment of the hybrid,
closed-loop control system.
[0027] FIG. 3 represents several factors known to affect solder
paste deposit volume in the stencil printing process.
[0028] FIG. 4A is a chart illustrating the median height of an
exemplary set of solder paste deposits when deposited at a set
print speed and a predetermined squeegee pressure.
[0029] FIG. 4B is a chart illustrating the standard deviation of
the height of an exemplary set of solder paste deposits when
deposited at a particular print speed on a printed circuit
board.
[0030] FIGS. 5A and 5B depict contour plots of mean height and
area, respectively, of a set of exemplary solder paste deposits
plotted against a range of squeegee pressures and squeegee
speeds.
[0031] FIGS. 5C and 5D depict contour plots of the standard
deviation of the height and area, respectively, of a set of
exemplary solder paste deposits plotted against a range of squeegee
pressures and squeegee speeds.
[0032] FIG. 6 depicts a functional block diagram of a simplified
version of the PCB surface mount manufacturing process using the
hybrid, closed-loop control system.
[0033] FIG. 7A is a block diagram illustrating a more detailed view
of an embodiment of the closed-loop control system shown in FIG. 6
using the disclosed systems and methods.
[0034] FIG. 7B is a block diagram illustrating a more detailed view
of another embodiment of the closed-loop control system shown in
FIG. 6 using the disclosed systems and methods.
[0035] FIG. 8 is a state diagram of an embodiment of the described
hybrid control system that may be implemented within the controller
of FIGS. 7A and 7B.
[0036] FIG. 9 is a more detailed state diagram of an embodiment of
the described hybrid control system that may be implemented within
the controller of FIGS. 7A and 7B.
[0037] FIG. 10 is a state diagram of an embodiment of the described
hybrid control system that may be implemented within the controller
of FIGS. 7A and 7B.
DETAILED DESCRIPTION
[0038] Several embodiments of a system that can be used for
data-driven control of complex high-noise manufacturing processes
will now be described in detail. While the embodiments of a hybrid,
closed-loop control system will be described in connection with
several figures, there is no intent to limit the system to the
embodiment or embodiments disclosed therein. On the contrary, the
intent is to cover all alternatives, modifications, and equivalents
included within the spirit and scope of the invention as defined by
the appended claims.
Controlling a Stencil Printing Process
[0039] Referring now to the drawings, reference is made to FIGS.
1A-1C, which depict a PCB undergoing several phases of the stencil
printing process. In FIG. 1A, a metallic stencil 2 is placed over a
PCB 4 and solder paste 6 is kneaded onto one end of stencil 2. A
squeegee 8 is positioned at the same end as solder paste 6. Because
FIGS. 1A-1C are cut-out, side views, only a two-dimensional
representation is made. However, it should be understood that
stencil 2 is of some predetermined width, and that squeegee 8 and
the solder paste 6 extend across at least a portion of the width of
stencil 2.
[0040] As shown in FIG. 1B, squeegee 8 is drawn over stencil 2 in
direction 12 with a specific pressure 10 and speed. This speed is
known as the print speed or squeegee speed. This procedure causes
the solder paste 6 to fill the apertures 10 of stencil 2.
Subsequently, stencil 2 is separated from PCB 4 to reveal solder
paste deposits 14. This separation is typically performed at a rate
known as the snap-off speed. FIG. 1C depicts the resulting solder
paste deposits 14 left behind after stencil 2 is removed. At this
time, the leads 18 of the electronic components 16 are inserted
into solder paste deposit 14. Note that, as shown in FIG. 1C, the
solder paste deposits 14 may be of varying sizes depending on the
type of the associated component 16.
[0041] The performance of the stencil printing process can
heuristically be characterized by the physical properties of the
printed solder paste deposits 14. Specifically, the industry
standard for measuring the quality characteristics of the stencil
printing process is solder-paste volume deposition. Accordingly,
the stencil printing process objective is to apply a precise volume
of each solder paste deposit to the medium. For PCBs, this precise
volume of solder paste is applied to the locations where components
are electrically connected to the PCB. These locations are known as
PCB contact pads 20.
[0042] The solder paste deposits are sometimes known as a solder
paste bricks due to the shape formed by the solder paste after
being pressed through the apertures of the stencil. However,
depending on a number of factors, such as shape of the stencil
apertures 10, solder paste deposits may take a number of shapes.
Knowing that the solder paste deposits may be of various shapes,
and that solder paste volume is the measure of interest,
determining the volume of a solder paste deposit in these various
shapes can be accomplished in a number of well-known methods.
[0043] In the exemplary embodiments, for example, the deposits take
the general form of bricks or cubes. Thus, the volume of the solder
paste deposits may be estimated by measuring the width, height, and
length of the solder paste deposit, with their product becoming the
estimated volume.
[0044] Practically speaking, stencil 2 is constructed of a uniform
or stepped thickness 22, and because the length and width of an
individual solder paste deposit is given by the size of the
aperture 10, a specific volume of solder paste is deposited on each
pad 20. For example, FIGS. 2A-2B depict exemplary measurements of
solder paste deposit 14. The length 208 and the width 204 of the
solder paste deposit is largely determined by the corresponding
length and width of the aperture used to form the solder paste
deposit.
[0045] However, despite the fixed thickness 22 of stencil 2, the
actual height 206 of the solder paste deposit varies depending on a
variety of factors. Thus, measurement equipment is typically used
to determine the actual height of the solder paste deposit. While
the length and width may also be measured, in practice, it is
assumed that these measurements correspond closely to the length
and width of the aperture used to form the solder paste deposit to
save additional effort. From these measurements, algorithms are
used to estimate the effective area 202 using the width 204 and
height 206 of the solder paste deposit. By multiplying this
effective area 202 by the length 208, the product becomes the
estimated volume.
[0046] Given that, under normal conditions, the length 208 and the
width 204 of the solder paste deposits do not change significantly
with the modification of the control parameters under normal
conditions, the height 206 of the deposits become the measure of
interest. Commonly, a direct sample mean of such values is used as
quality characteristics, while a more sophisticated approach would
be to assign different weight to each solder paste deposit type so
that problematic components can be given more importance in the
quality characteristics generation process. Such a weighted scheme
can be represented by equation (1), where q is the number of solder
paste deposits present in the n.sup.th board and w.sub.i is the
weight assigned to the i.sup.th solder brick. H _ .times. w
.function. ( n ) = i = 1 Q .times. w i .times. h .function. ( n , i
) .times. i = 1 Q .times. w i = 1 , w i .gtoreq. 0. ( Eq . .times.
1 ) .times. ##EQU1##
[0047] For steady-state performance evaluation the weighted
mean-squared error between the mean weighted height H w(n) and the
desired height H.sub.d in board-by-board basis can be used. This
representation, as shown in equation (2), is appropriate since it
addresses two of the key factors in the process, i.e., the mean
squared error and the variance of the process. MSE W .function. ( n
) = E [ H _ W .function. ( n ) - H d ) 2 ] = Var .function. ( H _
.times. w .function. ( n ) ) AC .times. .times. Error .times.
.times. Term + ( E .function. [ H _ .times. w .function. ( n ) ] -
H d ) 2 DC .times. .times. Error .times. .times. Term . ( Eq .
.times. 2 ) ##EQU2##
[0048] Now that it is understood how to measure success of the
process, attention is now directed to determining how to adjust the
control parameters of the stencil printer to accomplish a desired
solder deposit volume. A number of factors discovered to affect the
solder-paste deposit volume, or its estimate, relate to six main
areas: the stencil printer, the solder paste, the squeegee, the
substrate, the environment, and the measurement tool.
[0049] These factors may be summarized by FIG. 3. Here, the main
factors of the stencil printing process are classified in one of
the six main categories and by their controllability and
observability properties. The factors marked with a dagger
(.dagger.) are directly or indirectly measurable, and are typically
kept constant throughout the process. The factors marked with an
asterisk (*) are factors which may be more easily used to
dynamically control the stencil printing process. The remaining
factors are typically static or may not be accessible during online
optimization. FIG. 3 is not intended to include an exhaustive list
of factors, but is merely representative of factors that may be
considered.
[0050] In addition to the factors depicted in FIG. 3, the
measurement tool's precision, accuracy, and speed plays a role in
the overall accuracy of the process. A less precise or less
accurate measurement tool may introduce more noise into the
process.
[0051] From FIG. 3 it is clear that there are numerous factors that
may be selected to control the solder paste deposit volume. For
example, the speed and pressure of the squeegee, the cleaning
frequency, the stroke length, the downstop distance, the separation
distance, the separation speed, and the print cycle time make up a
non-exhaustive list of factors which may be used to dynamically
control the stencil printing process.
[0052] While all of the above factors may be used to control the
stencil printing process using the embodiments described herein,
certain factors are more desirable, from a practical standpoint,
for use in controlling the process. For example, some factors are
simply more easily accessible and easier to control than others.
Additionally, the variance of some factors, while holding the other
factors static, provide for a wider range of resulting solder paste
volume than others.
[0053] Thus, the printing speed of the squeegee may be considered
one of the more desirable factors for controlling the process.
Controlling the speed, while holding squeegee pressure constant,
allows for a wide range of resulting solder paste height values.
Additionally, the squeegee speed is typically easily accessible and
easy to change. Accordingly, while the exemplary embodiments below
have used squeegee speed as the control value of choice it should
be understood that any of the factors described above, and in FIG.
3, may be used to control the stencil printing process.
[0054] In the exemplary embodiments described herein, it should be
understood that reference to a solder paste "height" inherently
also corresponds to a solder paste deposit "volume" since the
length and the width of the solder paste deposits do not change
significantly with the modification of the stencil printer control
parameters. Thus, while solder paste volume is ultimately the
standard for measuring the quality characteristics of the stencil
printing process, in some of the embodiments described herein this
volume is capable of estimation by merely measuring the height of
the solder paste deposits.
[0055] FIG. 4A depicts the relationship between the print speed
control input and the mean height of the resulting solder paste
deposit while holding the pressure constant at 1 lb/in. The chart
in FIG. 4A should not be used to generalize the behavior of the
controller, but rather should be recognized as one specific set of
operational points. This specific case maintained a number of
variables, such as squeegee pressure, as constant, while varying
the squeegee speed from run to run. In some cases, if a different
set of squeegee pressures is used, the resulting solder paste
deposit height may actually decrease with an increase in print
speed, for example. However, in this specific example, assuming the
squeegee pressure is kept constant, the height of a resulting
solder paste deposit generally increases as the speed of the
squeegee is increased.
[0056] The print direction referenced in FIG. 4A represents a
direction of the squeegee across the stencil. For example, looking
back to FIG. 1B, the squeegee traverses across the stencil in a
first direction 12. Direction 12 may be referenced as the "0"
direction. For a subsequent PCB, the squeegee does not return to
the position shown in FIG. 1A to begin. Rather, the squeegee starts
at the opposite end of the stencil and traverses in the direction
opposite of direction 12. This opposite direction may be referenced
as the "1" direction. While a first and a second print direction
are described herein for simplicity, a stencil printer may in fact
print in any number of directions.
[0057] As indicated in the chart of FIG. 4A, the median solder
paste deposit height may differ for a particular squeegee speed in
each of the two print directions, 0 and 1. Thus, the feedback from
each measured PCB may be used for every n+1 PCB because the results
from printing in one direction are not necessarily applicable for
use in predicting the behavior of the PCB printed in a different
direction. Of course, in reality, there are some similarities that
can be drawn since it is the same stencil printing machine using
the same solder paste.
[0058] Looking now to FIG. 4B, a graphical representation of the
relationship between the standard deviation of the mean solder
paste deposit height as a function of the print speed of the
squeegee is depicted. Note that the standard deviation and, thus,
the degree of variability, also increases as the speed is increased
and is different for each of the two print directions 0 and 1. FIG.
4B should also not be interpreted to generalize that in all cases
an increase in speed results in an increase in variability. Rather,
this is merely one example of the process variability known to
occur with this specific set of operational points.
[0059] While general conclusions may not be made as to print speed
and the resulting solder paste deposit height with respect to other
speeds and squeegee pressures, FIGS. 4A and 4B are useful to
illustrate at least two observations. First, the squeegee print
direction may affect the resulting solder paste height
significantly, even when other factors are kept constant. An
additional conclusion is that squeegee speed may affect the
variability of the process.
[0060] FIGS. 5A-5D further illustrate that FIGS. 4A and 4B should
not be used to generalize the behavior of the controller for all
pressures and speeds, and to further illustrate the complexity of
the stencil printing process. FIGS. 5A and 5B depict contour plots
of mean height and area, respectively, of a set of exemplary solder
paste deposits plotted against a range of squeegee pressures (Y
axis) and squeegee speeds (X axis). FIGS. 5C and 5D depict contour
plots of the standard deviation of the height and area,
respectively, of a set of exemplary solder paste deposits plotted
against a range of squeegee pressures (Y axis) and squeegee speeds
(X axis).
[0061] As shown in each of the contour plots of FIGS. 5A-5D, the
behavior of the stencil printing process changes drastically for
different operational points. Thus, while FIGS. 4A and 4B appear to
suggest that the mean solder paste height always increases with an
increase in squeegee speed, and that mean height variability always
increases with an increase in speed, this conclusion is simply not
true for all squeegee pressures. Rather, for example, an increase
in squeegee speed may cause a decrease in solder paste deposit
height, and/or a decrease in the mean solder paste height standard
deviation.
[0062] Additionally, as shown in FIG. 3, other factors can greatly
influence the output of the stencil printing process. Thus, contour
plots created for solder paste deposits printed on the same stencil
printer, but affected by any other factors known to affect the
stencil printing process, such as print direction, may vary
substantially from the plots seen in FIGS. 5A-5D.
[0063] In view of the characteristics of the solder printing
process, the control system in the following embodiments may be
used to estimate a squeegee speed that produces a solder paste
deposit volume within process limits. Before describing the
algorithms implemented within such a controller in detail it is
helpful to describe the implementation of such a controller within
the stencil printing process.
A Control System for the Stencil Printing Process
[0064] Now referring to FIG. 6, a block diagram of a stencil
printing process 500 implementing an embodiment of the closed-loop,
hybrid control system is described. The first step in the stencil
printing process is to print solder paste deposits upon the PCB
using stencil printer 502. For example, stencil printer 502 may be
any one of several models offered by manufacturers of stencil
printers including Speedline Technologies MPM, DEK International,
and EKRA America, Inc.
[0065] The next step is to inspect the printed solder paste
deposits with a measurement tool. This step is performed by solder
inspection system 504 which may determine the physical
measurements, such as the height, width, length, area, and/or
volume of the solder paste deposits, for example. From this
inspection, an operator is able to determine whether the
appropriate volume of solder paste is applied to the PCB. By way of
example, solder inspection system 504 may be a two-dimensional
(2D), two-and-a-half-dimensional (21/2D), or three dimensional (3D)
laser inspection system, such as but not limited to, the SE 300
Solder Paste Inspection System manufactured by CyberOptics
Corporation USA, or the SVS 8300SPI and SVS 8200SPI Solder Paste
Inspection Systems manufactured by GSI Lumonics. New measurement
technologies are being developed which may increase the accuracy of
the volume measurements. For example, it is anticipated that solder
inspection system 504 may also use Moire Interferometry from
Solvision, Inc. Moire Interferometry technology employs laser
triangulation to determine the volume of a solder paste deposit.
Thus, while increased volume measurement accuracy is desirable, it
should be understood that the embodiments of the described hybrid
control system do not require a specific type of solder inspection
system.
[0066] If the solder paste deposits are applied to the PCB within
appropriate process limits, and no other defects are observed, then
a high-speed placement machine 506 places the electrical components
upon the solder paste deposits. With the components placed upon the
solder paste deposits, the leads are pushed into the paste and the
PCBs are passed to a reflow oven 508 which melts the solder paste
to create the electro-mechanical junctures. In an alternative
embodiment, instead of using reflow oven 508, it is also possible
to use vapor phase soldering to create the electro-mechanical
junctures. Finally, the manufactured PCBs are inspected and tested
for proper functionality using test and inspection system 510.
[0067] According to the systems and methods described herein, a
feedback controller 512 is integrated into stencil printing process
500. By using information gathered from solder inspection system
504, feedback controller 512 produces updated values of a stencil
printer control parameter. An updated value of the stencil printer
control parameter, herein also known as a "control value," is used
by stencil printer 502 when printing subsequent solder paste
deposits on an electronic medium. The control value, for example,
may be squeegee speed or squeegee pressure, or any number of other
factors mentioned in FIG. 3 that affect solder paste deposit
volume.
[0068] In one embodiment, feedback controller 512 may communicate a
new squeegee speed to stencil printer 502 based on dimension
measurements of the solder paste deposits on the prior PCB, while
keeping the squeegee pressure fixed. Stencil printer 502 prints
solder paste deposits on subsequent PCBs using the updated squeegee
speed. The combination of stencil printer 502, solder inspection
system 504, and feedback controller 512 make up stencil printing
system 514 which is now discussed in more detail.
[0069] FIG. 7A is an exemplary embodiment depicting a more detailed
block diagram of the stencil printing system 514 introduced in FIG.
6. Stencil printer 502 and solder inspection system 504 are
connected through a communications interface using the
Semiconductor Equipment Communication Standard (SECS)/Generic Model
For Communications And Control Of Manufacturing Equipment (GEM)
protocol. As is known, SECS/GEM is used extensively in the
semiconductor manufacturing field and is merely one bi-directional
protocol for communicating information between manufacturing
equipment or between equipment and a host controller. However,
other types of communication protocols and communications mediums
may be used. For example, rather than the typical RS-232 connection
used with SECS/GEM, an Ethernet connection implementing HSMS,
firewire, universal serial bus (USB), and a myriad of other
connections, digital and analog, for transporting information
between computing systems may be used.
[0070] The data sent from stencil printer 502 typically includes
information relating to parameters with which a particular PCB is
printed. For example, the data may include the actual and/or set
squeegee speed and squeegee pressure. In addition, equipment
alarms, errors, and any measured data such as solder paste
temperature may also be collected. This information is sent with
identification information such that the data can be associated
with the printing of a particular PCB.
[0071] Much of the information collected from the stencil printer
is static, and known. For example, the collected data may include
the value of the set squeegee pressure that is in the process
recipe. Even though these values typically do not change for a
particular recipe, it is preferable to track this information in
order to diagnose problems with the process which may be due to
recipe settings that have been incorrectly entered or changed
inadvertently on the stencil printer. Thus, tracking the values of
stencil printer 502 parameters used to print solder paste on a
particular PCB is valuable in diagnosing problems and ensuring
stencil printing errors are minimized.
[0072] Solder inspection system 504, as discussed above in relation
to FIG. 6, is may be any type of inspection system able to measure
the height of the solder paste deposits. Inspection system 504
sends measured data through a SECS/GEM interface to GEM/JDBC
interface 608. Solder inspection system 504 may also be configured
to collect and report data such as alignment information. However,
in relation to the control system of the present embodiment, the
information of particular interest that is collected from
inspection system 504 is the data used to obtain an estimate of the
volume of the solder paste deposits. For example, inspection system
504 may report this as raw height, length, width, and/or area data.
In an alternative embodiment, if inspection system 504 is capable
of directly estimating the volume of the solder paste deposit, this
estimated volume may be reported.
[0073] While not depicted in the diagram, solder inspection system
504 may be controlled through the SECS/GEM interface by the
controller 512, or other computer systems. For example, the
inspection system may be configured to accept commands to select a
recipe, collect and transmit particular measurement information,
begin the measurements, load and release the PCBs, etc. The
SECS/GEM interface not only allows control of the equipment and the
collection of data from the inspection and stencil printing
machines, but the interface also allows the changing of numerous
equipment variables which correspond to stencil printer control
parameters. These control parameters may also be part of a machine
recipe used to process a particular PCB.
[0074] The GEM/JDBC interface 608 receives the SECS/GEM messages
sent from stencil printer 502 and inspection system 504. Java
Database Connectivity (JDBC) refers to an application program
interface (API) that provides an interface to database 606. Thus,
GEM/JDBC interface 608 strips data from the SECS/GEM messages and
stores the data into database 606. GEM/JDBC interface 608 may be
configured to collect only specified information to conserve
storage space on database 606.
[0075] Database 606 receives and stores the data sent from both
stencil printer 502 and inspection system 504. For example, the
data may include measurement information such as the area, height,
width, and/or volume information from every solder paste deposit on
the inspected boards, as well as the actual and set stencil printer
control parameters (e.g. squeegee speed, squeegee pressure,
temperature, etc.) used to print the solder paste deposits. This
data can later be accessed directly by many different software
applications such as Matlab, which may reside within controller
610. Nearly any commercially available database could be
substituted with success. Database 606 may, for example, be a
Microsoft Access database, an SQL database, a spreadsheet, or a
simple flat text file. Database 606 is also interfaced with
controller 610, and this interface would be dependent upon the type
of database and the implementation of controller 610. For example,
in the present embodiment, a DB JDBC interface 615 interfaces the
controller 610 with database 606.
[0076] Controller 610 contains the software or circuitry to obtain
the data stored in database 606 to calculate an updated control
value for printing a subsequent PCB with stencil printer 602. The
logic within controller 610 which implements the hybrid data-driven
control schemes will be discussed extensively below. However, in
summary, controller 610 requests and receives data from database
606 through DB JDBC interface 615, calculates at least one updated
value of a stencil printer control parameter, and transmits this
control value through the dynamic data exchange (DDE)/GEM interface
to stencil printer 502. Additionally, controller 610 may be
configured to send the calculated control information back to
database 606 through DB JDBC interface 615 for permanent storage.
It is anticipated that process engineers, for example, may which to
access this type of historical information for additional process
control, statistical analysis, or troubleshooting.
[0077] Controller 610 may contain an independent sub-controller for
print direction "0" 614, as well as an independent sub-controller
for print direction "1" 616. While the sub-controller for print
direction "0" 614, as well as the sub-controller for print
direction "1" 616 are depicted as being located within the same
hardware or software component, it should be understood that they
may be located on separate software programs or modules. The
important aspect being that, preferably, each sub-controller 612
and 614 is operates independent of each other since print direction
may account for a significant difference in the mean height of the
solder paste deposits of any given board. Additionally, multiple
independent controllers 610, each designated for a particular print
direction, could be used to implement the control system.
[0078] DDE/GEM interface 612 receives the updated control values
from controller 610, translates this control value into a SECS/GEM
compliant data message, and forwards this message to stencil
printer 502. Stencil printer 502 uses the updated control value for
the stencil printing process on the subsequent PCB. For example,
controller 610 may send an updated squeegee speed to stencil
printer 502. Stencil printer 502, using software and circuitry well
known in the industry, translates the received SECS/GEM message to
extract the new squeegee speed, and then updates the corresponding
system variable associated with the stencil printer control
parameter. This system variable may correspond to an equipment
recipe parameter. Stencil printer 502 is then configured to print a
subsequent PCB using the updated squeegee speed. As discussed
previously, a subsequent PCB may not be the next PCB printed on the
stencil printer, but rather the next PCB printed in the same
squeegee direction as the currently measured PCB.
[0079] After stencil printer 502 prints the subsequent PCB using
the updated squeegee speed, process parameters are sent through the
SECS/GEM interface to GEM/JDBC interface 608, and stored in
database 606. The PCB is then placed on inspection system 504 which
inspects and collects the solder paste deposit dimension
information relating to the current PCB. This information is then
delivered to database 606 and may be used by controller 610 to
generate a new control value for printing a subsequent PCB.
[0080] A subsequent PCB may be printed on stencil printer 502
without waiting for the results from inspection tool 504. The
drawback, of course, is that solder paste is deposited on the
subsequent PCB without the benefit of control values calculated
from measurements taken from the most recent PCB. Thus, the
incident of rework may increase. However, in some environments, the
added benefit of increasing throughput outweighs the cost of
potential rework, particularly after controller 610 begins
producing control values that result in solder paste deposit
heights that are printed within acceptable process thresholds.
[0081] It should be understood that while the components within the
feedback controller 512 are depicted as separate components, the
GEM/JDBC interface 608, database 606, controller 610, and DDE/GEM
interface 612 could all be incorporated into a single system, or
could be spread apart across multiple components depending on
system design and performance preferences. Additionally, stencil
printer 502 and solder inspection and/or volume information,
squeegee speed, and squeegee pressure, etc. In one embodiment, this
data may be input through a keyboard, mouse, or other user
interface attached to the controller. Likewise, rather than
automatically uploading the updated control value to the stencil
printer through a communications interface, controller 610 may
include an output device to communicate the control value to a
user, such as through a computer monitor or other visual display.
This control value may be used to manually update the value of the
stencil printer control parameter. For example, a user may obtain
the control value from the output device of controller 610 and
adjust the corresponding control parameter on the stencil printer
through, for example, switches, knobs, or more typically, a
graphical user interface integrated into a computer system
associated with the stencil printer.
[0082] FIG. 7B is yet another exemplary embodiment depicting a more
detailed block diagram of the stencil printing system 514
introduced in FIG. 6. FIG. 7B is similar in many respects to the
embodiment depicted in FIG. 7A, but includes further detail as to
how the system described in 7A may be specifically implemented.
[0083] The exemplary embodiment of FIG. 7B decomposes the feedback
control system 512 into three components: an communication portion
618, a control portion 620, and a database portion 622.
[0084] Communication portion 618, may be implemented using Java
interface. As is widely known, Java is a general purpose,
high-level, object-oriented, cross-platform programming language
The Java interface is used provide the bi-directional
communications interface between the feedback control system 512,
and stencil printer 502 and inspection system 504. One advantage of
using Java, is the ability to implement the complete control of the
stencil printer from any other remote application that supports DDE
capability. Thus, applications such as Matlab, which has a DDE
interface, could be interfaced to the stencil printer and
inspection tool via Java. Additionally, a GEL library is
encapsulated within the Java interface to provide the basic
SECS/GEM capabilities.
[0085] Control portion 620 may be implemented through a Matlab
statistical software available from The MathWorks, Inc., Natick,
Mass. Control portion 620 may include the controller 610, any
additional statistical process control (SPC) algorithms, and
intelligent monitoring systems. Control portion 620 may be adapted
to host a number of control algorithms without major modifications,
while maintaining communications with database portion 622 and
communication portion 618.
[0086] Database portion 622 includes database 606 as described
above, and may be implemented through a Microsoft Access database
which is interfaced with the communication portion and the control
portion by a JDBC interface. Database portion 622 may also perform
some basic SPC operations.
[0087] All three portions may have an integrated graphical user
interface (GUI) for user interaction, and as described above, may
be implemented on one computer system, or spread across any number
of computer systems.
[0088] Attention is now directed to several embodiments of the
hybrid control algorithm executed by the software or hardware
circuitry of controller 610 of FIGS. 7A or 7B to control the solder
paste deposit volume. In this regard, such a hybrid control
algorithm can be implemented in software, firmware, hardware, or
combinations thereof.
[0089] When implemented in hardware, such a hybrid control
algorithm can be implemented with one or a combination of various
technologies. By way of example, the following technologies, which
are each well known in the art, can be used: a discrete logic
circuit(s) having logic gates for implementing logic functions upon
data signals, an application specific integrated circuit(s) (ASIC)
having appropriate combinational logic gates, a programmable gate
array(s) (PGA), and a field programmable gate array(s) (FPGA). In
alternative embodiments, a hybrid control algorithm can be
implemented in software as an executable program(s). Such a hybrid
control algorithm can be executed by a computer or processor-based
device.
[0090] Generally, in terms of hardware architecture, controller 610
includes a processor, memory, and one or more input and/or output
(I/O) devices that are communicatively coupled via a local
interface. The memory includes one or more separate programs, each
of which comprises an ordered listing of executable instructions
for implementing logical functions. In the example of FIG. 6, the
memory within controller 610 includes an operating system (O/S) and
a software executing a separate hybrid control algorithm for each
print direction.
[0091] When the hybrid control algorithm is implemented in
software, it should be noted that the hybrid control algorithm can
be stored on any computer-readable medium for use by or in
connection with any computer-related system or method. In the
context of this document, a computer-readable medium is an
electronic, magnetic, optical, or other physical device or means
that can contain or store a computer program for use by or in
connection with a computer-related system or method. In the context
of this document, a "computer-readable medium" can be any means
that can store, communicate, propagate, or transport the program
for use by or in connection with the instruction execution system,
apparatus, or device. A computer readable medium can be, for
example but not limited to, an electronic, magnetic, optical,
electromagnetic, infrared, or semiconductor system, apparatus,
device, or propagation medium. More specific examples (a
nonexhaustive list) of the computer-readable medium would include
the following: an electrical connection (electronic) having one or
more wires, a portable computer diskette (magnetic), a random
access memory (RAM) (electronic), a read-only memory (ROM)
(electronic), an erasable programmable read-only memory (EPROM,
EEPROM, or Flash memory) (electronic), an optical fiber (optical),
and a portable compact disc read-only memory (CDROM) (optical).
Note that the computer-readable medium could even be paper or
another suitable medium upon which the program is printed, as the
program can be electronically captured, via for instance optical
scanning of the paper or other medium, then compiled, interpreted
or otherwise processed in a suitable manner if necessary, and then
stored in a computer memory.
[0092] Functionality of an embodiment of the hybrid control
algorithm 700 executed within controller 610 is presented in the
state diagram of FIG. 8. It should be noted that, in some
alternative implementations, the functions noted in the various
states of this and/or other state diagrams depicted in the
accompanying disclosure may occur out of the order depicted. For
example, two states shown in succession in FIG. 8 may be performed
concurrently, or in some embodiments, certain states may not be
needed. Another embodiment of hybrid control algorithm 700 is
depicted in FIGS. 9 and 10, but before describing in detail the
state diagrams of FIGS. 8-10, the environment of the control
problem is further described.
[0093] The inherent variability of the process, including
measurement inaccuracies, presents a problem of effectively
modeling a control strategy. Even when all input parameters are
kept constant, the result may vary substantially. In addition to
this difficulty, the cost of rework is high, both in monetary value
and manufacturing throughput. Thus, it is desirable that the
control strategy converge quickly to a control value which results
in PCBs printed within predetermined acceptable operating
thresholds that do not require rework of the PCB.
[0094] As discussed in relation to FIG. 3, and by example in FIGS.
4A and 4B, the height of a solder paste deposit can be adjusted
based on the speed of the squeegee if the pressure of the squeegee
is constant. General recommendations are that the printing speed
should be around one to two in/sec and that the squeegee pressure
should be about one lb/in of linear squeegee length.
[0095] Notably, the exemplary embodiment described herein varies
the speed while maintaining a constant squeegee pressure for
simplicity. However, as described above, the controller may be
configured to adjust other parameters, such as the squeegee
pressure, to control the stencil printing process. Additionally,
multiple control parameters may be varied at the same time. For
instance, squeegee speed and pressure may both be varied.
[0096] These speed and pressure values can manually be adjusted by
process engineers, but this method relies on heuristics or
experience. That is, an operator or engineer learns via trial and
error how the machine performs in relation to a variety of problems
without a mathematical or logical approach. From this experience,
the operators and engineers may adjust various stencil printer
controls in an effort to obtain a solder paste deposit closest to a
desired volume. However, using a hybrid, data-driven, closed-loop
control algorithm, an automated process may be implemented which
provides several advantages.
[0097] The process under consideration can be characterized as
follows. When the n.sup.th board is printed, this is a realization
of Q Random Variables (RV) of unknown probability density function
(PDF), where Q is the total number of component pads on the board.
The main problem is that additional samples of the same RV's cannot
be obtained in a strict sense. When a new board is printed and then
measured, a new set of samples is created; these cannot be
considered as subsequent sample realizations of Q RVs associated
with the n.sup.th board because of the following reasons. First,
the n+1 board produced is printed in an opposite direction and it
has been shown from experimental data that this fact can cause a
discrepancy greater than 10% in the volume of the solder paste that
is deposited. Second, the n+2 board is different from the n.sup.th
board by the effects of the printing of the n+1 board; therefore,
the printing of the n+2 board does not match either the printing
conditions or the measured volume of the solder paste that was
deposited in the n.sup.th board.
[0098] A simpler and better approximation is to consider the
measurements of the solder paste deposits of the same component
type as multiple sample realizations of the same RV. This
approximation is valid because the conditions that were present for
all solder paste deposits printed on the same board are practically
the same, even when their locations are different. Therefore, some
other factors such as pad orientation, density, location, and type
should be considered. In addition, by the Central Limit Theorem, it
can be assumed that if the number of measurements (from RVs with
unknown PDF) is large enough for a specific component pad type,
then the sample PDF obtained will be approximately Gaussian.
[0099] Now, a mathematically rigorous approach can be established
to analyze the problem. Let the example be measuring the height of
a solder paste deposit on the n.sup.th board. Let Q be the number
of pads on the n.sup.th board and z(n,i) be the measured value of
the height of the solder paste deposit on pad i of the n.sup.th
board. The goal is to have the heights of the solder paste deposits
be as close as possible to a desired height denoted by H.sub.d. The
Mean Square Error (MSE) between the height H(n) and the desired
height H.sub.d for the n.sup.th board is given by: MSE .function. (
n ) = E [ ( H .function. ( n ) - H d ) 2 ] ( Eq . .times. 3 ) MSE
.function. ( n ) = Var .function. ( H .function. ( n ) ) AC .times.
.times. Error .times. .times. Term + ( E [ H .function. ( n ) ] - H
d ) 2 DC .times. .times. Error .times. .times. Term . ( Eq .
.times. 4 ) ##EQU3##
[0100] Equation (4) shows that in order to minimize the MSE, it is
necessary to minimize the variance, and also the error term,
between the expected value of the heights of the n.sup.th board
E[H(n)] and the desired height.
[0101] The sample mean square error of the n.sup.th board, denoted
by SMSE(n), is given by: SMSE .function. ( n ) = 1 Q .times. i = 1
Q .times. ( z .function. ( n , i ) - H d ) 2 . ( Eq . .times. 5 )
##EQU4## Note that if z(n,i)=H.sub.d for all i, then SMSE(n)=0.
Unfortunately, due to process and measurement noise, this idealized
case is not applicable. The problem is to select the machine
control variables to minimize SMSE(n). To pursue this, SMSE(n) can
be expressed as: SMSE .function. ( n ) = 1 Q .times. i = 1 Q
.times. z .function. ( n , i ) - SM .function. ( n ) ) 2 + [ 1 Q
.times. i = 1 Q .times. z .function. ( n , i ) - H d ] 2 ( Eq .
.times. 6 ) ##EQU5## where SM(n) is the sample mean of the solder
paste deposit heights for the n.sup.th board and it is given by: SM
.function. ( n ) = 1 Q .times. i = 1 Q .times. z .function. ( n , i
) , ( Eq . .times. 7 ) ##EQU6## and the sample variance of the
solder paste deposit heights for the n.sup.th board is given by: SV
.function. ( n ) = 1 Q - 1 .times. i = 1 Q .times. ( z .function. (
n , i ) - SM .function. ( n ) ) 2 . ( Eq . .times. 8 ) ##EQU7##
Note that the first term in equation (6) is approximately the
sample variance of H(n) given in equation (8). Rearranging
coefficients in equation (7) and (8) the SMSE(n) can be expressed
as: SMSE .function. ( n ) = Q - 1 Q .times. SV .function. ( n ) + (
SM .function. ( n ) - H d ) 2 . ( Eq . .times. 9 ) ##EQU8##
[0102] Actually, for large values of Q the term (Q-1)/Q.apprxeq.1.
That is in fact an analogous result to the case when the true mean
and variance are used rather than the sampled ones. The SMSE(n)
error term should be combined with the error associated with the
sample variance and mean for a specific number of measurements.
[0103] The problem of minimizing SMSE(n) can be approached in a
sub-optimal way by minimizing the second term in the expression for
SMSE(n), that is, by reducing the difference between SM(n) and
H.sub.d. Due to the nature of the process, in order to minimize the
variance term, for a nominal pressure of 1 lb/in (0.113 kg/m), it
is enough to maintain the squeegee speed as low as possible.
Initially, if the difference between SM(n) and H.sub.d is greater
than some positive threshold, then a machine control variable is
changed by a predetermined amount to decrease the difference
between SM(n) and H.sub.d. If the difference between SM(n) and
H.sub.d is less than some negative threshold, then a machine
control variable is also changed to decrease the difference between
SM(n) and H.sub.d.
[0104] The effect of control variable changes on the first term in
SMSE(n) can be computed and can be taken into account in
determining appropriate settings for the machine control variables.
Additional constraints are added to the previous algorithm to be
able to meet the requirements of the process, specifically, the
maximum and minimum values of all samples z(n,i).
[0105] In practical terms, a larger weight may be given to small,
fine-pitch or problematic contact pads so a deviation from its
nominal value is heavily penalized. For this it is necessary to
include the definitions of weighed (W) sample mean, variance, and
MSE. These may be defined respectively as: SM W .function. ( n ) =
1 Q .times. i = 1 Q .times. w i .times. z .function. ( n , i ) ( Eq
. .times. 10 ) SV W .function. ( n ) = 1 Q - 1 .times. i = 1 Q
.times. w i .function. ( z .function. ( n , i ) - SM .function. ( n
) ) 2 ( Eq . .times. 11 ) SMSE W .function. ( n ) = Q - 1 Q .times.
SV W .function. ( n ) + ( SM W .function. ( n ) - H d ) 2 . ( Eq .
.times. 12 ) ##EQU9## Furthermore, the sample variance of the
sample mean .sigma..sup.2.sub.SM(n) will be determined by the
number of samples used to calculate SM(n). This is proved as
follows: .sigma. SM .function. ( n ) 2 = 1 Q 2 .times. n = 1 Q
.times. .sigma. 2 .function. ( n ) ( Eq . .times. 13 ) E .function.
[ SV .function. ( n ) ] = .sigma. 2 .function. ( n ) ( Eq . .times.
14 ) .sigma. 2 .function. ( n ) .apprxeq. .sigma. 2 .times. .times.
for .times. .times. all .times. .times. n .times. .times. then , (
Eq . .times. 15 ) .sigma. SM 2 = .sigma. 2 Q . ( Eq . .times. 16 )
##EQU10##
[0106] Equation (16) implies that if the variance of the height
measurements for each board is approximately 0.4 mils (10.16
.mu.m), then the expected variation of the sample mean over several
boards will be that value divided by the number of measurements
taken from that board. This demonstrates that not even in the ideal
case, with uncorrelated samples, will the variation of the process
be zero. However, this is assuming that all of the heights of the
solder paste deposits are independent from each other; in reality,
this is not true because they were printed on the same machine and
with the same squeegees; thus some characteristics of the solder
paste are quite similar from one board to the other.
[0107] Based on experimental results, it is observed that the
sample mean variation is bounded by its mean plus and minus half of
the sample variance of an individual board. This means that for the
0.4 mils (10.16 .mu.m) board variance case, the mean will be
confined to the interval.+-.0.2 mils (.+-.5.08 .mu.m) from the mean
of over all boards.
[0108] Now consider a process governed by the control action C with
measurements y of quality characteristics of the process given by:
y=F(C)+v. (Eq. 17) where F is an unknown function of the control
variable C, and v is the process and measurement noise. The control
variable C can be thought of as a machine setting, and it is
assumed that C can take on any value in the interval [C.sub.min,
C.sub.max]. The actual input of the control variables are
determined by the physical limitations of the equipment.
[0109] Given some desired value height value H.sub.d for the
quality characteristics, the objective is to determine a control
value C.sub.d such that .parallel.F(C.sub.d)-H.sub.d.parallel. is
suitably small. That is, the object is to use a control value such
that a board having solder paste deposited using the control
settings will achieve a median height of solder paste deposits
close to the desired height. As discussed previously, the value of
the control variable C (the machine setting) is determined by the
equipment operator or process engineer using past experience
obtained from running the process. However, this procedure does not
guarantee that the chosen value of C will be a "good value," or
that the chosen value of C will always work while the process is in
operation. In order to achieve a robust and effective performance,
one obvious solution would be to generate feedback control laws of
the form C=G(y) for some function G, such that
.parallel.F(G(y))-H.sub.d.parallel. is suitably small during
process operation. Unfortunately, the function F cannot be
determined from a simple first-principles analysis. That is,
because of inherent process and measurement noise, the result of
the control input can not be accurately predicted using simple
mathematical models derived from known process parameters. Another
complication is that any type of system identification approach
relies on sufficient system excitation, i.e. either a large number
of measurements are made or large changes in the control variables.
In the stencil printing process application, each measurement
corresponds to the printing of a board, with a prohibitive cost and
time investment associated with it. Thus, only a limited number of
measurements are available for determining the control law.
[0110] Accordingly, the following control algorithm attributes for
a stencil printing process are desired: minimize the number of
function evaluations; produce adequate values for the control
variable at all times (e.g. an adequate control value is defined as
one that, on average, over time produces process outputs that are
between the process limits); find and maintain an appropriate
operational point for the process; avoid exciting higher order
modes in the system by limiting the magnitude of the maximum step
size; reduce defects; improve process quality by controlling solder
paste volume deposition; and compensate for the performance
differences induced by alternating print directions.
[0111] Thus, two obstacles are needed to address the particular
stencil printing process nuances. The first involves driving the
system to achieve an acceptable process in as few steps as
possible, and the second involves keeping the process in this
region. Therefore, it is advantageous to decompose the control
algorithm into two subparts as well, resulting in a switched, or
hybrid control algorithm.
Exemplary Hybrid Control Algorithms
[0112] FIGS. 8, 9, and 10 represent exemplary closed-loop hybrid
control algorithms which may be executed by controller 610. FIG. 8
depicts a basic example of an exemplary state diagram of the hybrid
control algorithm, while FIG. 9 and FIG. 10 depict state diagrams
of exemplary embodiments having more complex implementations.
[0113] Now looking to FIG. 8, the state diagram of a closed-loop
hybrid control algorithm 700 which may be executed by controller
610 is depicted. An independent closed-loop hybrid control
algorithm 700 may be implemented for each direction, and executed
by sub-controllers 614 and 616. The hybrid control algorithm of the
stencil printing process is defined by a first, coarse search 702
which converges to an acceptable process in very few steps. Once
the coarse search fails to continue producing control values that
improve the volume of the printed solder paste deposits, the
control algorithm transitions to a more refined estimator 706 which
takes smaller steps but produces a more tuned process.
[0114] In the present embodiment, a constrained conjugated-gradient
descent search is used for the first, coarse search 702 of the
control law. Additionally, in the present embodiment, the refined
estimator 706 is a least-squares estimator for maintaining and fine
tuning the process once an initial process window has been
determined from the coarse search. While course search 702 is
described below as a gradient search, a variety of fixed or
variable step search algorithm may be used. Additionally, the
refined search may be implemented by any number of block or
recursive estimation algorithms such as, but not limited to, a
Robust Non-Linear Least Squares algorithm; wherein the term
"Robust" implies that outliers do not greatly affect the slope
estimation.
[0115] Because a least-squares estimator makes much smaller control
adjustments, it is more efficient to switch from the constrained
conjugated-gradient search to the least-squares algorithm near the
desired operational point. Additionally, when using a least-squares
affine estimator it is also preferable to have sufficient, reliable
data available for obtaining an initial parameter estimation. For
this, an additional transitional stage may be introduced for
interfacing the constrained conjugated-gradient descent search with
the least-squares affine estimator. This stage is depicted by
transition stage 704 in FIG. 8. Transition stage 704 occurs after
the coarse search 702, but before refined search 706. In the
present embodiment, a windowed-smooth block form of a least-squares
squares affine estimator is used as transition stage 704. Thus,
after the coarse search 702, here a constrained conjugated-gradient
descent search, produces a control value that results in a mean
solder paste deposit height that is not improved by the subsequent
searches, the hybrid control algorithm switches to transition mode
704 using a block version of a least-squares squares estimator.
After W steps, where W is the size of the window in the block
version least-squares squares estimator, the algorithm switches to
the refined search 706.
[0116] Other algorithms, similar to the constrained
conjugated-gradient descent search and least-squares squares affine
estimator may be used to implement the closed-loop hybrid control
strategy discussed herein. The important aspect of the coarse
search is that it converges quickly to produce solder paste
deposits with a mean height measuring within predetermined process
limits. Preferably, for efficiency, the coarse search 702 is
continued until it no longer produces control values that result in
solder paste deposits with a volume closer to the desired solder
paste deposit volume. Said another way, after the course search
determines the proper search direction, it continues to adjust the
print speed by the predetermined amount until the resulting
difference between the mean solder paste deposit height and the
desired height is not increased. The hybrid control strategy then
switches to either the transition stage 704, or the refined search
706 for maintaining and fine-tuning the process. The windowed,
block version of the least-squares estimator used for transition
stage 704 may be replaced with other control methods which ensure
that the control value is producing results sufficiently close to
the desired operational point, and that sufficient reliable data is
available for obtaining an initial parameter estimation for the
refined search 706.
[0117] Turning now to FIG. 9, another exemplary embodiment of a
hybrid control algorithm 700 which may be implemented by controller
610 is described. The two states used to generate new control
values are shown as gradient-search state 804 and least-squares
state 806. In the present embodiment, gradient-search state 804 and
least-squares state 806 correspond to coarse search 702 and refined
estimator 706 from FIG. 8, respectively. As described above, in
some embodiments, transition stage 704 also uses a least-squares
algorithm, and thus for the sake of simplicity, transition stage
704 has been incorporated into least-squares state 806.
Additionally, in some embodiments, transition mode 704 may not be
required. The hybrid control algorithm 700 begins with a stencil
printing machine idling at state STOP 802. A transition from state
STOP 802 to gradient search state 804 occurs when the stencil
printer is preparing to deposit solder paste on the electronic
medium. As the controller transitions into the gradient search
state 804, the squeegee speed is set to an initial control value
C.sub.0. The initial control value C.sub.0 may be chosen based on a
predetermined setting or based on the operator's or engineer's past
experience. For example, a C.sub.0 of 0.5 in/sec may be used.
Without past operational data, and because of the inherent variance
of the process, it is understood that this initial value may often
produce solder deposits with the mean height outside of the desired
predetermined process limits.
[0118] Once the stencil printer is started the controller
transitions to gradient-search state 804 to obtain a locally
optimal control value C. That is, referring back to FIG. 6, solder
paste deposits are printed on PCB using stencil printer 502, and
after being measured by inspection equipment 504, the results are
fed into feedback controller 512. Feedback controller 512 includes
controller 610 which implements hybrid control algorithm 700 (FIG.
8). The coarse, gradient search 804 of hybrid control algorithm 700
determines a new control value. The gradient search is repeated
until the search no longer produces a control value that results in
solder deposits with a mean height closer to the desired solder
paste deposit height. The gradient search could be stopped sooner,
such as when the search first produces a mean solder deposit height
within predetermined process limits. However, the process is more
efficient by continuing the gradient search until the search no
longer produces a control value that results in solder deposits
with a mean height closer to the desired solder paste deposit
height.
[0119] Once the optimal control value from gradient search state
804 is obtained, a transition occurs to least-squares state 806, at
which point a reset initializes the least-squares parameters.
Again, the process now continues using finer adjustments obtained
from the least-squares approach. Should the performance of the
least-squares algorithm deteriorate, the process may switch back to
the gradient-search state 804 where a new gradient search is again
iteratively conducted as described above. The above described
deterioration may be indicated by process drift outside of a
predetermined acceptable operational band. Note that process drift
is determined by calculating the difference in mean height of a
printed PCB to a desired height, and comparing this difference to
predetermined acceptable limits.
[0120] If the performance of the least-squares estimator used in
least-squares state 806 produces solder paste deposits with a mean
height outside of an even larger threshold, or perhaps by other
indicators, this is an indication that the stencil should be
manually wiped and the controller transitions from least-squares
state 806 to wipe state 810. Once the stencil is manually wiped,
the controller transitions back into least-squares state 806 for
calculating the new control value. For example, a stencil may
accumulate debris or other physical obstructions on the surface
which cause the results of the printing process to stray. By simply
wiping the stencil, the controller may return to the precise
control given by the least-squares state 806 without transitioning
back to the gradient-search state 804.
[0121] While hybrid control algorithm 700 is in the least-squares
state 806, the PAUSE state 808 is entered if the process cycle time
exceeds a pre-determined amount of time. For instance, transition
to the PAUSE state 808 may occur if no PCBs are processed within a
time window of five minutes. If, after the PAUSE state 808 is
entered, the stencil printer is restarted within a second
predetermined amount of time (e.g. 20 minutes), no new gradient
search is needed and the controller transitions back to
least-squares state 806. However, if the stencil printer has idled
for more than the second pre-determined amount of time, but less
than a third pre-determined amount of time (e.g. 45 minutes), the
controller transitions back to gradient-search state 804 and a new
gradient search is performed using the last known good control
value. Should the stencil printer stay in pause mode 808 for more
than the third pre-determined amount of time, the controller
transitions back into STOP state 802 and a subsequent PCB will be
run with a new initial control value Co. The states used in
addition to the gradient-search state 804 and the least-squares
state 806 (e.g. WIPE 810, PAUSE 808, and STOP 802) are used to
capture the complex nature of the process, and in order to be able
to adapt to external events affecting the process.
[0122] A more detailed discussion of the constrained
conjugated-gradient descent search and the least-squares estimator
used is now presented.
The Coarse Control Algorithm
[0123] The proposed gradient search 804 of the hybrid control
algorithm 700 is based on a quantization of the control values,
i.e. C will only take on values in the set S(C.sub.0, .DELTA.),
where S(C.sub.0, .DELTA.),={C.di-elect cons.[C.sub.min,
C.sub.max]|C=C.sub.0+k.DELTA. for some k.di-elect cons.}. (Eq. 18)
The gradient search should generate a control value C*.di-elect
cons.S(C.sub.0, .DELTA.) such that
|F(C*)-H.sub.d|.ltoreq.|F(C)-H.sub.d|, .A-inverted.C.di-elect
cons.S(C.sub.0, .DELTA.). (Eq. 19) In general, C* is not equal to
C.sub.d. In fact, C* belongs to a discrete set of equally spaced
control values and it will minimize the steady-state error for that
given set only, while C.sub.d is a root of F(C) that provides the
desired average output value H.sub.d for a zero-mean noise.
[0124] It is assumed that F in equation (17) is continuously
differentiable and monotonically increasing or decreasing on
[C.sub.min, C.sub.max]. i.e. C.di-elect cons.[C.sub.min, C.sub.max]
such that sign ( d F .function. ( C 1 ) d C ) = sign ( d F
.function. ( C 2 ) d C ) .noteq. 0 , .times. .A-inverted. C 1 , C 2
.di-elect cons. [ C min , C max ] . ( Eq . .times. 20 ) ##EQU11## A
further assumption is that the noise term v is bounded over the
interval [-a, a], which implies that if F is monotone, then the
only fundamental entity that our control algorithm needs to recover
is the search direction, which is the sign of the slope of F.
However, this should be achieved in the presence of the noise term
v. For this, .DELTA. is used to denote the step-size in the
algorithm, and .DELTA. as well as the initial control value
C.sub.0.di-elect cons.[C.sub.min+.DELTA., C.sub.max-.DELTA.] are
chosen such that
F(C.sub.0)[F(C.sub.0+.DELTA.)-2a,F(C.sub.0+.DELTA.)+2a]
.orgate.[F(C.sub.0+.DELTA.)-2a,F(C.sub.0+.DELTA.)+2a]
.orgate.[H.sub.d-2a,H.sub.d+2a]. (Eq. 21) The interpretation here
is that the gradient search should use initial control values
providing enough separation to be able to recover the slope of F
when starting the iterative control process suitably far away from
the desired operating point. Furthermore, .delta..sub.0 is defined
as .delta..sub.0=H.sub.d-y(C.sub.0), (Eq. 22) where y(C) is used as
shorthand for F(C)+v in equation (17).
[0125] The assumption that the noise is bounded in [-a, a] is based
on the physical nature of the process; the specific value of a can
be found by calculating the maximum and minimum values of the
sampled mean process over an extended period of time.
[0126] Thus, in order to achieve the desired operational point, a
weak-search algorithm based on a conjugated gradient scheme may be
used. A weak-search algorithm does not make strong assumptions
about the nature of the process. For example, the mean variance,
autocorrelation function, or any other parameters related to the
signal are considered unknowns. Pseudocode for the proposed
algorithm can be described as follows: TABLE-US-00001 Let C.sub.0
and .DELTA. satisfy equation (21) and let .delta..sub.0 be given in
equation (22). Set C.sub.1 = C.sub.0 + sign (.delta..sub.0) .DELTA.
(Alg. 23) Set m.sub.1 = sign(y(C.sub.1) - y(C.sub.0)) - sign
(C.sub.1 - C.sub.0) Set i = 1 While .parallel. y(C.sub.i-1) -
H.sub.d.parallel. > .parallel. y(C.sub.i) - H.sub.d.parallel.
Set .delta..sub.i = H.sub.d - y(C.sub.i) Set C.sub.i+1 = C.sub.i +
m.sub.isign (.delta..sub.i) .DELTA. Set m.sub.i+1 =
sign(y(C.sub.i+1) - y(C.sub.i))sign (C.sub.i+1 - C.sub.i) Set i = i
+ 1 End Set C* - C.sub.i-1.
According to algorithm (23), the control value is incrementally
adjusted by a predetermined amount .DELTA.. Whether the incremented
adjustments are positive or negative depends on the slope m, and
the increment continues until the updated control value no longer
produces a mean solder paste deposit height closer to the desired
height. Preferably, for efficiency, the coarse search is continued
until it no longer produces control values that result in solder
deposits with a volume closer to the desired solder paste deposit
volume. Due to the monotonicity of F, Algorithm (23) will in fact
terminate, and as long as there exists enough separation around the
final control value, i.e., that F(C*)[F(C*+.DELTA.)-2a,
F(C*+.DELTA.)+2a] .orgate.[F(C-.DELTA.)-2a, F(C*-.DELTA.)+2a],
C*.di-elect cons.[C.sub.min+.DELTA.,C.sub.max-.DELTA.] (Eq. 24)
then algorithm (23) recovers the optimal control value in equation
(19). Furthermore, since the first step of the algorithm consists
of guessing the slope (setting m.sub.0=1), maximally two steps (a
wrong initial guess and a recovery step) are wasted. Another step
will be used for overshooting the desired value, which is needed
for terminating the process, and thus the following proposition can
be stated:
[0127] Proposition 1: Assume F satisfies equation (20), and that
there exists (not necessarily uniquely) an integer k* such that
C.sub.0+k*.DELTA..di-elect cons.S(C.sub.0, .DELTA.) solves equation
(19). Then, algorithm (23) terminates in at most k*+3 steps with
the terminating control value C.sub.0+m k*.DELTA. as long as
equation (24) is satisfied.
[0128] Corollary 1: If there exists a C.sub.0.di-elect
cons.S(C.sub.0, .DELTA.) such that F(C).di-elect cons.[H.sub.d-a,
H.sub.d+a], then C* in Proposition 1 satisfies F(C*).di-elect
cons.[H.sub.d-a, H.sub.d+a]. (Eq. 25)
[0129] The bound k*+3 can be reduced to k*+2 if algorithm (23) is
modified to let .parallel.C.sub.2-C.sub.1.parallel.=2.DELTA. if the
initial slope-guess was wrong. By doing so, only one step is wasted
in the initial portion of the algorithm. Also, the monotonicity
assumption can roughly be thought of as a first order approximation
of F, and algorithm (23) is in fact general enough to capture
second order approximates as well.
[0130] Assume that F is continuously differential and unimodal on
[C.sub.min, C.sub.max]; i.e., that there exists a unique
C.sub.m.di-elect cons.[C.sub.min, C.sub.max] such that:
m.sub.1=sign(F(C.sub.2)-(F(C.sub.1))=sign(F(C.sub.1)-(F(C.sub.m)).A-inver-
ted.C.sub.1.ltoreq.C.sub.2.ltoreq.C.sub.m (Eq. 26)
m.sub.2=sign(F(C.sub.3)-(F(C.sub.m))=sign(F(C.sub.4)-(F(C.sub.3)).A-inver-
ted.C.sub.m.ltoreq.C.sub.3.ltoreq.C.sub.4 (Eq. 27)
m.sub.1=-m.sub.2. (Eq. 28) Here, C.sub.i.di-elect cons.[C.sub.min,
C.sub.max], i=1, 2, 3, 4 and C.sub.m is the extremum value of F
being either the maximum or minimum value depending on the
concavity of the function. It is assumed that the initial control
value C.sub.0 and step-size .DELTA. not only satisfy equation (22),
but also that F(C.sub.0) is far enough from the extremum, i.e.,
that
sign(F(C.sub.0+.DELTA.)-F(C.sub.0))=sign(F(C.sub.0-.DELTA.)-F(C.sub.0)).
(Eq. 29) Under these assumptions, Algorithm (23) can be directly
applied to the unimodal case as well, since on each side of the
extremum, if it exists, F is monotone.
[0131] Proposition 2: Assume that F satisfies equation (26), (27),
and (28), and that there exists (not necessarily uniquely) an
integer k* such that C.sub.0+k*.DELTA..di-elect cons.S(C.sub.0,
.DELTA.) solves equation (19). Then Algorithm (23) terminates in a
finite number of steps to control value C.sub.0+m k*.DELTA. if
(C.sub.0, .DELTA.) satisfies the conditions in equation (29) and
equation (24).
[0132] Corollary 2: If there exists a C.di-elect cons.S(C.sub.0,
.DELTA.) such that F(C).di-elect cons.[H.sub.d-a, H.sub.d+a], then
C* in Proposition 2 satisfies F(C*).di-elect cons.[H.sub.d-a,
H.sub.d+a]. (Eq. 30)
The Transition and Refined Search
[0133] Attention now is directed to the least-squares estimator
which may be used to implement transition mode 704 and refined
search 706. Taking the final value of Algorithm (23), C*, as the
initial control value for the next stage, a local optimization
procedure, or refined search, can be performed in order to
fine-tune C* such that the steady state error is minimized. For
this, a local affine least-squares estimator can be applied to the
optimization of the process and perform a fine-tuning of the
control variable.
[0134] A least squares affine estimator is applied locally (as
opposed to the global coarse search) because of the high levels of
noise that make LS prohibitive on a global scale without having
biased and/or unbounded estimations. Accordingly, an interphasing
step may be used, as depicted by transition stage 704 in FIG. 8, in
order to ensure that the switching between the coarse gradient
search and the refined least-squares affine estimator is
non-abrupt. It is preferred to keep the values of at least two
final iterations of algorithm (23) to maintain the estimated slope
direction in the presence of excessive noise. This is beneficial
because noisy measurements can otherwise invert the direction of
the slope. In addition, it is beneficial to switch from a
block-form of the least squares to a windowed version in order to
reduce the computational cost.
[0135] As mentioned, the block form of the least-squares estimator
may use a number of the final values generated by algorithm (23).
After this, the controller may switch from the block-form of the
least-squares estimator to a windowed version that also preserves
some information about previous estimates. More specifically, if
the length of the least-squares window is W, then the
(i-(W+1)).sup.th estimated parameter vector .theta. is stored and
used to maintain the slope of the estimator. The vector .theta. is
stored and used to maintain the slope of the estimator. The vector
.theta. is the set of calculated coefficients for the affine or
quadratic estimator depending on the process characteristics.
[0136] If equation (24) holds, then an affine estimator can be used
to determine the next control variable. However, if equation (24)
does not hold, i.e., F(C*) cannot generate the desired y, then a
quadratic estimator can be used to minimize the steady state error
even under such adverse conditions.
[0137] Attention now is directed to the least-squares affine
estimator as may be used in least-squares state 806. The classic
least-squares solution to the over determined problem, M.theta.=y,
is given by: .theta. ^ = [ .theta. ^ 0 .theta. ^ 1 ] = ( M T
.times. M ) - 1 .times. M T .times. z . ( Eq . .times. 31 )
##EQU12## For an affine estimator, when N samples are available, a
closed-form solution can be found. Using the standard basis M
(which second column can be interpreted as a discretization of the
input domain), the affine estimator is given by M = [ b .gamma. ]
.times. .times. where .times. .times. .gamma. = [ .gamma. 1 .gamma.
2 .gamma. N ] .times. .times. and .times. .times. b = [ 1 1 1 ]
.times. } .times. N , ( Eq . .times. 32 ) ##EQU13## then the affine
estimator may be obtained by: .theta. ^ = [ .theta. ^ 0 .theta. ^ 1
] = ( [ b T .gamma. T ] .function. [ b .gamma. ] ) - 1 .function. [
b T .gamma. T ] .times. y , ( Eq . .times. 33 ) .theta. ^ = ( b T
.times. b b T .times. .gamma. b T .times. .gamma. .gamma. T .times.
.gamma. ) - 1 .function. [ b T .gamma. T ] .times. y , ( Eq .
.times. 34 ) .theta. ^ = ( .gamma. T .times. .gamma. - b T .times.
.gamma. - b T .times. .gamma. N ) N .times. .times. .gamma. T
.times. .gamma. - ( b T .times. .gamma. ) 2 .function. [ b T
.gamma. T ] .times. y , ( Eq . .times. 35 ) .theta. ^ = .gamma. T
.function. [ ( .gamma. .times. .times. b T - .gamma. T .times. b
.times. .times. N N .times. .times. N - b .times. .times. b T ) y ]
.gamma. T .function. ( N .times. .times. N - b .times. .times. b T
) .times. .gamma. , ( Eq . .times. 36 ) ##EQU14## where |.sub.N is
the N.times.N matrix. All terms needed to calculate {circumflex
over (.theta.)} (except for the measurement y) can be pre-computed
for any given number of samples N and a determined set of control
values .gamma. obtained by collecting the last N control values.
Finally, once {circumflex over (.theta.)} has been estimated using
the measurements y, it is possible to use equation (37) to
calculate the next control value .gamma..sub.N+1 necessary to
achieve the desired output H.sub.d.
H.sub.d=.theta..sub.0b+.theta..sub.1.gamma.N+1. (Eq. 37) This also
gives an estimation of the noise component of the measurements
u=y-y. The expanded expression for the noise in terms of the
control values and the measurements is given by .upsilon. ^ = y - [
.gamma. T .function. ( N .times. .times. N - b .times. .times. b T
) .times. y ] .times. .gamma. + [ .gamma. T .function. ( .gamma.
.times. .times. b T - b T .times. .gamma. .times. .times. N )
.times. y ] .times. b [ .gamma. T .function. ( N .times. .times. N
- b .times. .times. b T ) .times. .gamma. ] . ( Eq . .times. 38 )
##EQU15##
[0138] Now, an estimate of the mean and variance can be obtained by
the sample mean and sample variance of the noise; these statistics
can be expressed as V ^ = [ v ^ 1 v ^ 2 v ^ N ] T ( Eq . .times. 39
) .mu. v ^ = 1 N .times. b T .times. V ^ ( Eq . .times. 40 )
.sigma. V ^ 2 = 1 N - 1 .times. ( V ^ - b .times. .times. .mu. V ^
) T .times. ( V ^ - b .times. .times. .mu. V ^ ) . ( Eq . .times.
41 ) ##EQU16##
[0139] If equation (24) does not hold, quadratic regression may be
used instead of affine regression with success. That is, the affine
estimator is applicable when the desired height is achievable given
the range of variation of the control value and its effect on the
height. However, if an unrealistic value for the desired height is
specified, then a quadratic estimator may be used to provide the
solution that minimizes the error even when the target operational
point is not obtainable.
[0140] The following process, using quadratic regression, is an
extension of the affine regression discussed above. The parameter
estimation can be done either by direct matrix inversion as in eq.
33, or by QR decomposition as described below. Specifically, if Q
and R correspond to the QR decomposition of M; in this case M is
given by M = [ .gamma. 0 .gamma. 1 .gamma. 2 ] ( Eq . .times. 42 )
where .gamma. n = [ .gamma. 1 n .gamma. 2 n .gamma. N n ] ( Eq .
.times. 43 ) ##EQU17## is the n.sup.th Hadamard product of .gamma.
by itself. Then .theta. ^ = [ .theta. ^ 0 .theta. ^ 1 .theta. ^ 2 ]
= R - 1 .times. Q T .times. y . ( Eq . .times. 44 ) ##EQU18##
Notice that the inverse of R is easily calculated by using, for
example, row or column back-substitution, because R is an
upper-triangular matrix. Once {circumflex over (.theta.)} is known,
then the quadratic estimator of the signal can yield the control
value required to produce the closest possible value to the desired
height using: H d = .theta. 0 + .theta. 1 .times. .gamma. N + 1 +
.theta. 2 .times. .gamma. 2 N + 1 . ( Eq . .times. 45 )
##EQU19##
[0141] Accordingly, the difference between the estimated and the
actual sample mean height, an estimate of the variance of the
process noise can be obtained if it is required. When the local
optimization algorithm is running and there are not large changes
in the system response, it is not necessary to go back to the
global search algorithm and its thresholding. However if the
process is restarted, to avoid out-of-bounds control parameters, it
is necessary to go back to Algorithm 23 to find the correct
operational band.
[0142] Now that the exemplary coarse and refined algorithms have
been described in more detail, attention is now directed to FIG. 10
which depicts yet another hybrid control algorithm 1000 embodiment.
Hybrid control algorithm 1000 may be implemented, for example,
within controller 610 of FIGS. 7A or 7B.
[0143] The following legend identifies the variables used in FIG.
10 and in the associated description below:
[0144] C.sub.k: Control inputs for the k.sup.th PCB,
C.sub.k={s.sub.k, p.sub.k}
[0145] CT: Cycle Time of the stencil printer
[0146] m.sub.d: Jacobian (gradient slope sign)
[0147] P(): Stencil Printing Process
[0148] p.sub.k: Squeege pressure for the k.sup.th PCB
[0149] s.sub.k: Print speed for the k.sup.th PCB
[0150] s.sub.min: Minimum print speed
[0151] s.sub.old: Saved print speed
[0152] u.sub.x: User comand (input variable)
[0153] V.sub.k: Measure of the Volume for the k.sup.th PCB
[0154] V.sub.d: Desired solder paste volume deposition
[0155] .epsilon.: Maximum allowable volume deviation
[0156] .theta.: Estimator parameters vector,
.theta.:=[.theta..sub.0 .theta..sub.1 .theta..sub.2, . . . ]
[0157] .delta.: Control variable change
[0158] .sigma..sub.v.sup.2: Solder paste volume variance
[0159] .sigma..sub.max.sup.2: Maximum solder paste volume
variance
[0160] .lamda.(): Pressure adjustment function
[0161] .parallel.X.parallel.: Norm of the argument X, ( 1 n .times.
i = 1 n .times. ( X i ) p ) 1 p , ##EQU20## p.di-elect
cons.[-.infin.,.infin.]
[0162] States 1001-1006 of hybrid control algorithm 1000 are
connected by a set of transitions, represented by the arrows
connecting states 1001-1006, that are controlled by either user
inputs, u.sub.x, or by conditions based on values of a number of
process variables. Each one of states 1001-1006 may represent a
different functional model for the controller, and the states may
have either discrete or continuous dynamics. For this specific
embodiment only two control variables were used: speed and
pressure. The output variable is a nonlinear function of the solder
paste deposit volume. The threshold values given for CT are an
example for a specific case; however, they can be found by direct
experimentation with the stencil printing process quality
degradation when subject to cycle time modification.
[0163] The following are the basic controller states of the
embodiment shown in FIG. 10:
[0164] q.sub.TS: Transient State (Coarse Algorithm) 1001
[0165] q.sub.SS: Steady State (Refined Search) 1002
[0166] q.sub.Pause: Pause State 1003
[0167] q.sub.Stop: Stopped State 1004
[0168] q.sub.Recover: Recover Solder Paste Working Viscosity Point
State 1005
[0169] q.sub.Clean: Stencil Cleaning State 1006
[0170] Inside each state 1001-1006, as in a standard space-state
representation, several internal and external dynamics can be
involved. For example, if a function of the solder paste volume
that will be deposited during the stencil printing process on the
(k+1).sup.th printed circuit board is denoted by V.sub.k+1, and the
stencil printing process is performed by using the previously
calculated control parameter C.sub.k, then the system dynamics are
described by V.sub.k+1=P(C.sub.k), where the P() denotes the
stencil printing process.
[0171] A subsequent control value, C.sub.k+1, may be generated
based on previous control values {C.sub.k, C.sub.k-1, . . . },
previous measurements {V.sub.k, V.sub.k-1, . . . }, the rate of
change of the measurements { .DELTA. .times. .times. V i .DELTA.
.times. .times. i , i = k , k - 1 , k - 2 , } , ##EQU21## and/or
external inputs. Given that there is a large difference between the
functions that generate the transient (coarse control algorithm)
1001 and the steady state (refined search) 1002 control variables,
they have been labeled, F.sub.TS and F.sub.SS, respectively.
[0172] As mentioned before, the arrows represent unidirectional
state changes, which are triggered by either user commands or
process variable conditions. Each transition has at least one
condition that is often depicted as a Boolean relationship, i.e.,
CT>5 minutes, k=1, u.sub.x=Start, etc. The symbols "" and "",
correspond to the standard "AND"/"OR" logical operations.
Additionally, after the condition is met and before a transition is
performed, some system variables may change value, i.e.,
s:=s-.delta.s, p:=1, etc.
[0173] Depending on the current state, user commands, u.sub.x, can
be some of the following: u.sub.x.di-elect cons.{Start, Stop,
Recover, Clean, Clean.sub.DONE}. As shown in FIG. 10, the command
Clean.sub.DONE occurs automatically after the initial Clean command
has been given and completed. The Recover command can be given
during the normal steady state mode in order to recover (or avoid
losing) the solder paste viscosity point after, for example, a
cleaning cycle which exceeds some defined time limit depending on
process specific parameters. After a Recover or Stop command, the
PCB counter k is reset to zero.
[0174] In some cases, there is more than one way to transition from
one state to another, for example, two different conditions trigger
a transition from state q.sub.TS to state q.sub.SS: { m d .times. :
= sign .function. ( .DELTA. .times. .times. V ) m d .function. ( V
- .DELTA. .times. .times. V ) .ltoreq. m d .times. V d m d .times.
V d .ltoreq. m d .times. V ) } .times. .times. and .times. .times.
{ C k + 1 = C k - 1 } . ##EQU22## These conditions produce
different estimator coefficients, namely, .theta.:=[.theta..sub.0
.theta..sub.1 0] and .theta.:=[.theta..sub.0 .theta..sub.1
.theta..sub.2], respectively.
Conclusion
[0175] A system and method of producing closed-loop control values
in a stencil printing process has been described. One potential
benefit is that the closed-loop hybrid control strategy is able to
control the volume of solder paste deposits despite highly variable
process conditions. Another potential benefit is that the control
strategy uses only a small number of data samples. This hybrid
control combines a coarse control algorithm for quickly finding a
control value producing solder paste deposits within predetermined
process limits, with a more refined estimator for fine tuning the
control value. Some potential benefits of the system are the
ability to consider and compensate for differences in solder paste
deposit volumes in different printing directions, and recover from
abnormal equipment set points. Another potential benefit is the
ability to control a process defined by a limited set of
measurements, constrained control values, and significant amounts
of process noise. Such a hybrid control algorithm is well suited
for controlling the application of solder paste to a variety of
electronic mediums.
[0176] While the examples given throughout the specification are
specifically described in relation to using the stencil printing
process in the manufacture of PCBs, it should be understood that
the methods and systems are also well suited for stencil printing
applications for any number of electronic mediums. One such
alternative electronic medium may be a semiconductor based device,
such as but not limited to, semiconductor chips or wafers in the
bump packaging process. Additionally, the system may also be used
for the application of solder paste, or its equivalent, to
bio-materials and bio-components.
[0177] It should be emphasized that many variations and
modifications may be made to the above-described embodiments. All
such modifications and variations are intended to be included
herein within the scope of this disclosure and protected by the
following claims.
* * * * *