Document 11269345

advertisement
Process Characterization of a PMMA Hot Embossing System
by
Katharine Luginbuhl
Sc. B. Mechanical Engineering
Massachusetts Institute of Technology, 2012
Submitted to the Department of Mechanical Engineering
in partial fulfillment of the requirements for the degree of
Master of Science
at the
MASSACHUSETTS INSTITUTE OF TECHNOLOGY
AC4N'ES
June 2014
MASSACHUSET , INSTITUTE
OF T~cN~G
D Massachusetts Institute of Technology 2014.
All rights reserved.
AUG 15 201
L
RA. E S
R
Signature redacted
.. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
.
Author .............................................
Department of Mechanical Engineering
May 9, 2014
Cetiid byySignature
...... S i
Certified
n t
r
redacted
e a t d .........................................
David E. Hardt
Ralph E. and Eloise F. Cross Professor of Mechanical Engineering
Thesis Supervisor
A ccepted by..
Signature redacted ...........................................
David E. Hardt
Ralph E. and Eloise F. Cross Professor of Mechanical Engineering
Graduate Officer
2
Process Characterization of a PMMA Hot Embossing System
by
Katharine Luginbuhl
Submitted to the Department of Mechanical Engineering
on May 9, 2014, in partial fulfillment of the
requirements for the degree of
Master of Science
ABSTRACT
Microfluidics devices are important both for research use and medical application. To create
these microfluidics devices, the hot embossing process is commonly used. In order to
characterize this process to enable cycle to cycle control, a small-scale system was developed,
using a hot embossing machine, taping machine, and functional tester previously created. Parts
were moved between these machines with an Epson GlO SCARA robot, which provided the
appropriate efficiency and accuracy. This system was able to produce embossed parts with a takt
time of less than 135 seconds, and over 1000 of such parts were produced. The system was
analyzed to determine potential sources of variance, considering both things that would alter the
part and things that would alter the measurements. This enabled the system to be run in a state of
statistical control, which in turn allowed for a designed experiment to be done on the system.
This designed experiment determined that the forming temperature, forming force, forming time,
as well as the square terms for the forming temperature and forming force and the cross-terms of
forming force with forming temperature and forming time with forming temperature, were all
statistically significant in the formation of parts. With this data, cycle-to-cycle control can be
enabled in the future.
Thesis Supervisor: David E. Hardt
Title: Ralph E. and Eloise F. Cross Professor of Mechanical Engineering
3
4
ACKNOWLEDGEMENTS
There are a number of people without whom this thesis would not be possible:
First, many thanks to my advisor, Professor David Hardt, who is excellent at both making
sure that the technical details are always clear while keeping focus on the overall project. His
enthusiasm and dedication kept everything interesting, and his broad knowledge base made him
always able to find an answer.
I want to thank Maia Bageant, whose knowledge, hard work, and overall good company
made her a delight to work with, and who was willing to help me figure out how to make the
robot behave even when it meant altering her precisely-designed hot embosser. I want to thank
Caitlin Reyda for the amazing suggestion that I get involved in this project, and for her
wonderful machine designs without which the system would not have existed. I would like to
thank Joseph Favella both for his machining expertise and for his ability to always find the
potential dangers of the system.
I would like to thank Nadege Zarrouati for the excellent selection of robotic arm that I got
to use, as well as for the prescient ability to pick something that could interface with our other
machines. I would also like to thank everyone else who worked on the many iterations of this
project prior to me.
I want to thank my friends Chris Carignan, Hannah DuBose, and Lucretius Williams for
their ongoing support and encouragement throughout this project, as well as their tolerances of
the resulting sleep schedule.
I would like to thank my family, especially my parents, Erica Turner and William
Luginbuhl, without whom none of my work would have been in any way possible, and who have
always been confident in my abilities. I would also like to thank my younger sister, Jessica
Luginbuhl, who is always willing to listen to me explain my latest projects.
Finally, a tremendous thanks to the MIT-Singapore Alliance, for their generous funding
of the project and making everything possible.
5
6
7
TABLE OF CONTENTS
1
2
3
4
5
Introduction .........................................................................................................................
19
1.1
M icrofluidics ................................................................................................................
19
1.2
Hot Embossing...........
20
1.3
Precision Manipulation.................................................................................................
22
1.4
Process C ontrol .........................................................
22
1.5
Project Motivation.................................................................................................
............................................
..............................................
.................................................
23
Previous Work...........................................................................
25
2.1
The Part ...
........................................................................
25
2.2
Hot Em bossing M achine............................................................................................
26
2.3
Taping M achine..............................................................................................................
29
2.4
Functional Testing......................................................................................................
31
2.5
Epson Robot ........... .oo.....................................................................
34
Robotic Handling System ..................................................................................................
37
.. ~.. . .
3.1
Safety ... o........................................................................................
38
3.2
End Effector Design....................................................................................................
39
3.3
Precision Part Manipulation.............................................
40
3.4
Autonom ous Programm ing ........................................................................................
48
3.5
System Comm unications.............................................................................................
56
3.6
System Failure Modes........ooo ..o...............................
...... o................. 59
Minimum System Cycle Time..........................................................................................
4.1
Simulation ...........
4.2
Results..........................................................
.............................................
63
63
........... 66
Initial Experiments of System Characterization ..............................................................
73
5.1
Experim ental M ethod................................................................................................
73
5.2
Blank Parts .. .................................................................................
74
5.3
Hot Embossing M achine ............................................................................................
78
5.4
Functional Tester........................................................................................................
82
5.5
Taping Machine..................................................
89
8
6
Statistical Process Control Results and Discussions.....................................................
6.1
7
Statistical Control......................................................................................................
91
91
Process Characterization Using Designed Experiments ................................................
101
7.1
M easurem ent Errors .....................................................................................................
101
7.2
DOE Results.................................................................................................................
103
Conclusions.........................................................................................................................
111
Next Steps ....................................................................................................................
113
A
Robot Sam ple Code ...........................................................................................................
115
B
Robot Points .......................................................................................................................
125
C
DO E Data ...........................................................................................................................
129
D
M ATLAB Simulation........................................................................................................
137
9
References...........................................................................................................................
157
8
8.1
9
LIST OF FIGURES
Figure 1-1: The four steps of the hot embossing process for microfluidics devices. By applying
pressure to a plastic at or near its glass transition temperature, the plastic will locally flow into
the shape of the mold, after which it can be cooled and separated. A bonding layer over top seals
the m icrofluidics channels. [3].................................................................................................
20
Figure 1-2: The resulting cross-section of a microfluidics channel, based on the forming force
applied. Higher forces cause more localized flowing of the plastic, resulting in sharper channels
with steeper walls. This data corresponds to PMMA parts formed at 110 C. [5]..................... 21
Figure 2-1: The tool used to make the part. Two input ports combine via a mixing pattern using
50 pim to a single output port. Additional markers have been placed on the part in case additional
measurem ents were needed. [12]............................................................................................
25
Figure 2-2: The first version of the hot embossing machine, showing the forming platens in the
Instron ...........................................................................................................................................
27
Figure 2-3: The current hot embossing hardware, with key features labeled. [12].................. 28
Figure 2-4: The taping machine, showing the path of the tape as the parts are moved linearly
along the belt. Parts will be sealed with one piece of tape, which is then separated by the adjacent
cutter. [13].....................................................................................................................................
30
Figure 2-5: Three parts that have been embossed, with the tape placed overtop of them. The
dotted lines show where the tape will be cut to separate the parts, and the arrow shows the
direction the parts move within the machine. [13] ...................................................................
31
Figure 2-6: A zoomed-in image of a part in the functional testing machine, and that image with
the data from the functional tester recorded on it. The average width and standard deviation
measures in the upper-left corner are based on the four measured channel widths. The
information in the upper-right corner is used to determine the presence of the part. The TRUE
label in the lower-right corner indicates that the part may have fluid flow through it. ............ 32
Figure 2-7: The standard deviation of the intensity across both an unmixed and a mixed channel.
The mixed channel has a much lower standard deviation because of the more uniform intensity.
[13]................................................................................................................................................
33
Figure 2-8: The four joints of a GlO Epson robot, which enable it to move in all three
dimensions, with one axis of rotation. Hard stops may be applied to joints 1 and 2 to reduce the
range of motion. [21]....................................................................................................................
35
Figure 3-1: The manufacturing cell layout. Parts go from the dispenser (1) to the hot embosser
(2), then are transferred to the taping machine (3) and cutting machine (4). From there, they are
placed in the functional tester (5) and finally the finished parts bin (6).................................. 37
Figure 3-2: The robotic end effector, formed from a hollow vacuum channel with holes to create
a seal against the part. The talon or hook on the end of end effector allows for part manipulation
independent of the vacuum. The two ports on the end effector allow for the simultaneous
transportation of two parts. [13]...............................................................................................
39
10
Figure 3-3: The three degrees of freedom of the part on the effector head. Parts may be shifted in
either of the two planar dimensions (a) (b) with respect to the effector head, or rotated. (c) Parts
cannot be shifted or rotated perpendicular to the planar effector head, as this would cause the
vacuum holes to not adhere to the part, and the part to be dropped. ......................................... 41
Figure 3-4: The part dispenser, holding approximately 20 parts. The spring forces the parts to the
top of the dispenser, from where they can be removed. ...........................................................
43
Figure 3-5: An example part in the dispenser, showing the variation in x, y, and orientation
which m ay result from the dispenser. .......................................................................................
43
Figure 3-6: The alignment of a part when being retrieved from the dispenser. The location of the
talon is indicated with the dotted line. The part starts unoriented in the dispenser, with the
effector head lowered over it. (a) The part is then pulled straight out of the dispenser, aligning it
against the talon on the end-effector and orienting it. (b) The vacuum is then activated and the
part is moved against the side of the dispenser, which causes its location to be fully known. (c)45
Figure 3-7: The initial method of part alignment against the three pins. Parts are placed
sufficiently far away from the pins such that, given the variance in their location, they will never
overlap with the pins. (a) Parts are then pushed towards the back pins. (b) Finally, parts are
pushed against all three pins. (c)...............................................................................................
45
Figure 3-8: The orientation of a part using three-pin alignment. The part is first brought against
the two farthest alignment pins, which involves some intentional overshooting on the part of the
robot. The part is then moved diagonally with respect to the three pins, causing it to orient and
rest against them , fully fixing its location..................................................................................
46
Figure 3-9: The precision of the robot when placing parts in the functional tester over 50 trials.
For these higher-resolution images, a two-pixel margin of error corresponds to slightly more than
1 pm, allowing the actual part variance to dominate. The maximum linear displacement can be
seen to be approximately 30 gm in x and approximately 20 pm in y, and the maximum angular
displacement about 0.3 degrees. As it is uncertain which position is correct, all errors have been
shifted to have a m ean of 0 im.................................................................................................
48
Figure 3-10: The top-level priority system for the actions of the robot. Each time the robot
completes an action, a new action is selected based on this priority system............................
51
Figure 3-11: Detailing the task the robot will select for a given system state, assuming the
dispenser has blank parts remaining. By starting at the indicated blue square and accurately
answering each question about the state of the system, it can be determined what action the robot
will perform, indicated by a green square, or how the robot will wait, indicated by a yellow
square. Red squares indicate that the system has stalled, and correspond to states that cannot
norm ally be achieved....................................................................................................................
53
Figure 3-12: Detailing the task the robot will select for a given system state, assuming the
dispenser does not have blank parts remaining. By starting at the indicated blue square and
accurately answering each question about the state of the system, it can be determined what
action the robot will perform, indicated by a green square, or how the robot will wait, indicated
by a yellow square. Red squares indicate that the system has stalled, and correspond to states that
cannot norm ally be achieved. ....................................................................................................
54
11
Figure 3-13: A sample task structure where the robot performs tasks sequentially, rather than
55
based on the state of the system ............... ...............................................................................
Figure 3-14: A top-level view of the system communications. The mechanism by which the
communication occurs is indicated by color. Locations labels include the data stored at that
location. The data communicated at each junction is listed at the bottom. ..............................
57
Figure 3-15: Dye contamination occurs due to the back pressure in the functional tester causing
bubbles of both water and dye to form (a). When the part is inserted into the functional tester, it
makes contact with the red dye bubble (b), and, as it is inserted, drags that bubble into the bubble
of water (c). When the part is placed, the water inlet has red dye in it (d)............................... 60
Figure 4-1: Showing the consistency between cycles and average cycle time for the system, as
67
determined by the functional tester..........................................................................................
Figure 4-2: The takt time of parts after slight modifications to the hot embossing and functional
testing code to increase efficiency. The overall cycle time has decreased by almost 7 seconds,
69
and there are fewer outliers......................................................................................................
Figure 4-3: The simulated system cycle times as a function of the functional testing time. Cycle
times increase linearly with the functional tester while the robot completes its task shortly before
the hot embosser opens. The peak corresponds to the robot performing an action while the hot
70
embosser is waiting for a part .................................................................................................
Figure 4-4: The system cycle time as a function of the functional tester processing time, using a
different priority set for the robot. While similar to Figure 4-3, the cycle times after the peak are
71
lower. ............................................................................................................................................
Figure 5-1: A run chart showing parts made from two different orders of the PMMA blanks. The
red dotted line indicates where the run switched from the first order to the second. A small but
75
noticeable drop in the average channel width occurs at this point. ..........................................
Figure 5-2: The box plots of and the results of an ANOVA test on the mean channel widths the
parts immediately preceding and immediately following the switch in part orders. The
probability of a mean shift occurring given the data is greater than 98%. ............................... 76
Figure 5-3: The average channel width of parts J61 to J120, where parts J91 to J100 have both a
higher average value and a significantly higher variation than the rest of the parts. Each ten parts
came from its own packet, although only one of the six packets used appears to be distinct...... 77
Figure 5-4: The boxplot and ANOVA test for the group of ten parts which appear to be outliers.
Based on this run data, something almost certainly changed. However, whether this was due to
78
the ten part group or some other factor is uncertain. ................................................................
Figure 5-5: The force applied by the actuator on the part during forming, over many cycles.
While slightly noisy, the applied force is highly consistent between cycles............................
80
Figure 5-6: The upper heater temperature of the hot embosser over 60 part cycles. There is
increased variance during the heating and cooling steps. During the forming step, temperature is
consistent to within about 1 degree Centigrade. No clear trends are shown. ........................... 81
Figure 5-7: The temperature of the lower heater during part forming over 60 part cycles. Because
of its lower power, the lower heater had a lower overall temperature than the upper heater, as
82
w ell as a longer rise time. .........................................................................................................
12
Figure 5-8: The measurements taken by the functional tester when the same part was placed into
it repeatedly. These measurements are the average of the four channel widths visible to the
functional tester. The grand mean is 65.33 gm, with a standard deviation of 0.31 m............ 83
Figure 5-9: A normal probability plot for the functional tester repeatability test. The data is not
completely normally distributed, as higher values are more likely than would be expected. ...... 84
Figure 5-10: The averages of each of the four channels measured during the functional tester
repeatability test. The error bars shown correspond to one standard deviation. The inter-channel
variation is greater than the variation in the measurements for a given channel...................... 85
Figure 5-11: Part El 1 with the light source on a lower setting (left) and a higher setting (right).
The higher light setting has reduced the amount of shadow around the channel, which caused the
edge detection software to measure the right picture as having a channel 4 pm narrower. ......... 85
Figure 5-12: The channel widths recorded by the functional tester under two conditions with the
primary lighting source. When the lighting was increased, the average part width decreased by
about 4 jm, owing to a decrease in the number of shadows seen by the optical measurement... 86
Figure 5-13: Measurements from the same part at varying times of day, as well as with the
overhead lighting off. These tests show that the secondary lighting conditions do not
significantly impact the part measurements...............................................................................
87
Figure 5-14: A portion of the optical target, as seen from the functional tester. This image was
used to confirm the calibration of the functional tester. The lines on the optical target are exactly
50 m wide. ..................................................................................................................................
88
Figure 5-15: The measured spacing of the 50 gm lines and between those lines on the optical
target image, at 25 distinct points along the image. The line width is 80 pixels, indicating that 1
pixel corresponds to .625 gm ....................................................................................................
89
Figure 5-16: The test for taping machine variability. Six parts were put through the taping
machine 10 times each, with the resulting measurements then recorded. The mean and standard
deviation for each part are indicated. The taping machine is a non-negligible source of system
variation . .............................................................................................
,......................................... 90
Figure 6-1: The run chart for the first run of the system to make a statistically significant number
of parts. While the system was in control for the first 60 parts, a mean shift occurred at the end.
.......................................................................................................................................................
92
Figure 6-2: The CuSum chart for the initial process run, using groups of n = 3. With this chart,
the process mean shift can clearly be seen...............................................................................
93
Figure 6-3: A run chart for the second of the long runs, again showing a mean shift. In this
process, the mean shift starts at the beginning and then levels off...........................................
94
Figure 6-4: The run chart for the first 60 parts of the J Series, or third long run. The initial
portion of the run shows what appears to be a startup transient, which then levels off, with the
rest of the run being largely uniform. A slight discontinuity occurs between parts J19 and J20,
where the blank parts were switched from the initial batch ordered to the second batch. However,
this switch does not coincide with the end of the startup transient........................................... 95
Figure 6-5: A run chart after the system appeared to be in control. While the process is almost in
control, there is a mean shift for approximately ten parts between J90 and J100. There is also a
13
significant mean shift between parts J60 and psrts J61, although the only change was that the
system was left on for a little over an hour between the parts..................................................
96
Figure 6-6: The run chart for the K series, with the forming temperature set to 120 C instead of
115 C. This caused the parts to have a much lower channel width, which was the desired effect.
The process continues to be in contrql.....................................................................................
97
Figure 6-7: The high outlier from the K series, part K4. The tape has not properly adhered to the
part, causing large amounts of bubbling, which may have prevented the part from being properly
97
measured.......................................................................................................................................
Figure 6-8: The process run again with the high temperature at 120 C after a number of minor
hardware tweaks. The L series pictured provides the same data from the K series run before the
minor hardware tweaks, indicating that the process is still in control...................................... 98
Figure 6-9: The ANOVA test done between the K series and the L series, which shows no
significant m ean shift....................................................................................................................
99
Figure 6-10: The normal probability plot for the combined K and L series. The process is not
normal, largely due to the number of outliers with narrower channels. The cause for these
99
outliers is not currently known. ................................................................................................
Figure 7-1: One measurement error incurred during the DOE. The left image shows the
measurements of the four channels from part DOE 2. The left-most channel clearly has a much
narrower measurement than the other three, and upon closer examination, as seen in the image
on the right, the software has measured the distance from the outside of one channel to the inside
of the other, rather than the distance between the outside of both channels............................... 102
Figure 7-2: The pattern used by the image matching software to determine that a part is present
(left) and a part which the measurement software had trouble detecting, owing to how narrow its
102
channels were (right)...................................................................................................................
Figure 7-3: A part where two of the channels have been measured, and a close-up of the two
channels that were improperly measured. The edge-finding has recorded the channels as being
103
w ider than they actually are........................................................................................................
Figure 7-4: The average channel widths of parts formed at 115 C, as a function of forming force
and forming time. Parts formed at 115 C in this range have a much higher width than the forming
parts, as the PMMA only begins to flow at 114 C. Increased form time and force both result in
106
sm aller channels..........................................................................................................................
Figure 7-5: The average channel width for parts formed at 120 C. Parts at this temperature, given
higher form times and forming forces, get closer to ideal channel width of less than 60 pm, but
do not reach it at these parameters. Increased forming force and form time both decrease channel
width, except at the highest forming force when increasing the form time from 30 seconds to 40
seconds........................................................................................................................................
107
Figure 7-6: The average channel widths of parts formed at 125 C. Here, many of the parts are
below 60 gm in channel width, and the graph starts to level off at high form times and forming
10 8
forces...........................................................................................................................................
Figure 7-7: The average channel width as a function of forming temperature and forming strain.
Forming strain is given by the forming force times the forming time. In this region, forming
14
strain has a much larger impact on the part at temperatures close to the glass transition
temperature of the part................................................................................................................
109
Figure 7-8: The impact of each term and cross-term, along with the probability that the given
parameter is statistically significant. All parameters except for the force curvature term are
highly significant. .......................................................................................................................
110
Figure 7-9: The residuals for the least-squares fit model of the DOE data. The predicted fit is
highly correlated with the data....................................................................................................
110
15
16
LIST OF TABLES
Table 3-1: The information communicated between the robot and the hot embossing machine
and functional tester during the course of system operations. The hot embossing machine and
functional tester have the same communication scheme. Data flags are listed in the order that
they will occur in a typical cycle, first triggering the machine, then communicating that the
machine is done, then resetting the machine to ready it for a new process trigger. ................. 58
Table 4-1: The operation times for each of the tasks of the robot while operating in low power
mode. Both ports had to be taught their points separately, resulting in slightly varied cycle times
between the ports. Operating in high power mode could reduce these speeds by a factor of 5 or
m ore. .............................................................................................................................................
64
Table 4-2: The travel times of the robot between the machines of the system. These times are
largely consistent between ports that are far apart, but for ports close together the time to turn the
effector head starts to dominate .................................................................................................
65
Table 4-3: The part numbers and corresponding cycle times for parts with much lower cycle
times than normally displayed by the system. These cycle times are between 1.5 and 2.5 seconds
lower than expected from the rest of the data. These lower cycle times likely result from
computer communications discrepancies. ...............................................................................
68
Table 6-1: Showing the different part runs done to attempt to achieve statistical control, along
with the letter used to designate each of those runs. Unless specified otherwise, each run had a
forming temperature of 115 C, a cooling temperature of 60 C, a forming force of 1000 N, a
heating time of 60 seconds, a forming time of 30 seconds, and a cool time of 20 seconds. ........ 92
Table 7-1: The parameters to be altered during the designed experiment, as well as the values
selected for those parameters. A full 33 factorial test was selected for this experiment, with each
point having five repetitions.......................................................................................................
101
Table 7-2: The results of the hot embosser DOE. Five parts were made at each of three levels of
the forming temperature, forming force, and forming time. The average channel width, standard
deviation, and number of parts at each parameter are shown. Two parts were removed owing to
being significant outliers.............................................................................................................
105
17
18
CHAPTER
1
INTRODUCTION
Microfluidics devices, which have a large number of applications in the medical industry, can be
manufactured in a variety of ways. Soft lithography, micromachining, hot embossing, and
injection molding are just a few of the ways these devices can be created. However, as discussed
by Perez [1], the hot embossing system has a number of advantages over other methods currently
in use, including a much higher flexibility and a much lowers startup cost. The system in
question uses PMMA blanks and a hot embossing machine, along with tape, to create a part
which acts as a simple microfluidics mixing device. The part can then be tested for quality by
both measuring the width of the mixing channels and by determining the location where the fluid
is deemed "mixed." Once this data relayed to the hot embossing machine, the system can be kept
in control, using the type of feedback selected by the operator.
1.1
Microfluidics
Microfluidics is the science of dealing with small quantities of fluid, on the order of 10-9 to 10-18
liters, using devices with channels from tens of microns to hundreds of microns width. These
microfluidics devices have a wide variety of applications in research, including the evaluation of
protein crystallization, drug development screening, and bioanalysis. [2] In spite of the number
of applications, commercial usage is currently limited, in part owing to costs of fabrication of the
microfluidics devices. Until cheap, large-volume production of these devices is available, widescale healthcare applications will be limited.
While many of the initial microfluidics devices were made using PDMS1, it is not an
optimal material for biological testing. Owing to the tendency of PDMS to swell in the presence
of organic solvents or to deform under high pressures, PMMA 2 is often selected as the material
for microfluidic devices. [3] PMMA, like glass, has desirable optical properties, but can be
1Polydimethylsiloxane, a cast elastomer
2 Poly(methyl methacrylate), a thermoplastic
19
fabricated using hot embossing or micromilling, rather than glass etching. While micromilling
can be used to create appropriate width channels, the resulting surface roughness and required
post-processing to achieve the desired optical results often make hot embossing preferable.
Injection molding is also an option, and while it allows for sufficiently high-volume and low-cost
manufacturing for the desired market, the it has a much higher initial cost and lead time than hot
embossing, making it undesirable for prototyping and testing, especially compared to the rapid
tooling changes allowable by hot embossing. [1]
1.2
Hot Embossing
The hot embossing process involves raising an amorphous plastic to slightly above its glass
transition temperature and then applying a mold at high pressure to cause the plastic to deform to
the desired shape. Plastic is cooled around the tool, then removed. To create microfluidic
channels, an additional, optically clear layer is then bonded overtop the plastic. Because the
overall flow is small, hot embossing tends to result in lower residual stresses than fabrication
techniques such as injection molding. [4] The hot embossing process is shown in Figure 1-1.
mold
Heating
Pressing
tttttttt
Cooling and
separating
Bonding
Figure 1-1: The four steps of the hot embossing process for microfluidics devices. By applying pressure to a
plastic at or near its glass transition temperature, the plastic will locally flow into the shape of the mold, after
which it can be cooled and separated. A bonding layer over top seals the microfluidics channels. [31
20
The pressing step of the hot embossing process causes the heated thermoplastic to flow
around the mold, creating the desired shape. In this step, the forming force used can cause
variations in the final shape of the part. While high forming forces result in an ideal negative of
the mold, lower forces may not cause sufficient flow. Figure 1-2 shows the resulting crosssections of a microfluidics channel after the application of various forces. At lower forces, the
channel is shallow and wide compared to the mold, as seen replicated under higher forming
forces.
F-
PF=10N
N
Z
F=30N
F=1I
SN'
Figure 1-2: The resulting cross-section of a microfluidics channel, based on the forming force applied. Higher
forces cause more localized flowing of the plastic, resulting in sharper channels with steeper walls. This data
corresponds to PMMA parts formed at 110 C. [51
There are a number of different bonding methods used in conjunction with hot
embossing. Adhesive bonding places a layer of viscous liquid over the thermoplastic, or uses a
lamination film. Lamination films in particular are both inexpensive and scale easily to higherrate processes. Thermal fusion bonding and solvent bonding both cause intermolecular bonding
between the embossed part and the bond material, with thermal fusion using high temperatures
and pressures and solvent bonding using a chemical to which both components are soluble. [6]
Various problems arise from these methods. Using a layered adhesive can often block the
microfluidic channels. Thermal fusion bonding is time-consuming, and solvent bonding may
change the surface properties of the part. For these reasons, lamination films are often considered
as a suitable mass-production bonding process. [7]
21
The hot embossing process is, compared to injection molding, high-flexibility, low-cost,
and medium-rate. The comparatively longer cycle times arise from the need to heat and cool both
the mold and part during each cycle, something not always necessary in injection molding.
However, hot embossing allows for the creation of aspect ratios greater than two, which is
difficult in micro-molding. [8] Because the tool used for the hot embossing process can be
quickly changed, hot embossing provides both low start-up times and high flexibility.
Additionally, the ability to easily switch out for a new tool coupled with the comparative cost of
the tools makes the process cheaper than injection molding. [4]
1.3
Precision Manipulation
Because of the small scale of the microfluidics channels, the hot embossing step must occur with
high precision. This requires a precision placement of the parts into the hot embossing machine,
which in turn necessitates a form of high-precision manipulation. When moving parts, location
errors are introduce both during the pick-up and the placement, which must fall below a certain
acceptable threshold based on the system in question. Adhesive forces between the part and the
manipulator may add locational errors during the placement step, as do any methods of forceful
removal of the part from the manipulator. [9]
When dealing with small parts, suction can be a highly precise method of placing parts. A
suction gripper uses vacuum pressure to lift a part. Suction grippers, in conjunction with optical
measurement, have been shown to be able to reach 10-micron tolerances, and, using a physical
boundary for the part such as grooved channels, suction grippers have also been able to reach 2
micron tolerances. [10]
1.4
Process Control
For parts to be created in any volume, process control is needed to ensure the quality of those
parts. There are a wide variety of potential alterations that a system can undergo, including
changes to the material type, alterations to the system equipment, and even variations in the
surrounding environment, all of which can alter the final part quality. To keep the parts produced
of an acceptable quality, feedback is needed throughout the system. Generally, this feedback
22
control will take one of two forms; high bandwidth feedback within the system machines, and
sampling of the final parts produced by the system. [11]
To create appropriate system feedback, one or more quantifiable measures of part quality
must be determined. These measurements can then be made on completed parts, and the results
compared to the expected process value. If the measurements do not fall within an acceptable
error, or if a series of measurements show a trend over time, the system has displayed evidence
of no longer being in control. When this happens, troubleshooting must take place to determine
what has changed or is in the process of changing for the system, so it can be corrected. This
enables the system to continue to make appropriate-quality parts.
Machine variables for a hot embossing system can include the temperature, pressure, and
displacement at each point during the hot embossing process. These values inform on the overall
deformation of the part, which indicates how well the microfluidic channels have been informed.
The glass transition temperature can also be computed, which provides information about the
material of the part in question. This information can then be used to detect shifts in material
quality. [12]
1.5
Project Motivation
This thesis will, using previously-created embossing, adhesive bonding, and functional testing
machines, detail the creation of a small factory capable of producing parts at a rate pre-defined
by the hot embossing cycle. The sources of part quality variation and data necessary for the
creation of a cycle-to-cycle control scheme have also been detailed.
Prior to this thesis, ongoing research has been done to create a controlled system for the
production of hot embossed microfluidics devices. A hot embossing machine, measuring
forming force, displacement, and temperature, which could produce parts with a cycle time of
110 seconds, was created. [12] A separate device for applying laminate tape to the embossed
parts was built, as was a testing machine which could optically measure the resulting channel
width of the embossed parts. [13] To move parts between these machines, a precision
manipulation system was developed. [14] To create the controlled system, the system had to be
fully utilized and an appropriate process control had to be identified.
To fully utilize the system, parts had to be moved between machines rapidly enough that
the 110 second cycle time on the hot embosser was the system bottleneck, and precisely enough
that the optical measurement could be made. Rapid part movement required the creation of time23
efficient movement paths as well as an appropriate prioritization for the various actions which
could be performed by the singular part movement machine. This precision required, in addition
to the previously developed manipulation system, the identification and reduction of all the
additional sources of part location variation within the system.
To implement process control on the system, a number of factors were identified. The hot
embossing machine needed to be verified to be in a state of statistical control. A design of
experiment needed to be done to determine the exact effect of the various process parameters on
the final part. The optical measurement had to be communicated to the hot embossing machine,
and the hot embossing machine had to be taught the appropriate action to take based on the data
received. Once these things were done, the system would be controlled based on a feedback loop
from part quality.
24
CHAPTER
2
2.1
PREVIOUS WORK
1
The Part
To demonstrate process control for a hot embossing system, a suitable part had to be designed.
The part needed clear microfluidics channels, which could be easily measured to demonstrate
proof of concept for the system. A simple mixing device was selected, with two input ports and
one output port. The channel width on the embossing tool was selected to be 50 gm, and the
depth was selected to be 40 Rm. Figure 2-1 shows the features on the tool used to make the part.
Additional features, including a grid of squares 20 gm on a side, were included on the tool to
increase the amount of data that could be gathered from a completed part. The tool used to create
the part was made of bulk metallic glass by Henann [15]. Henann chose bulk metallic glass for
the tool after it was shown to be both robust and accurate for use in the hot embossing process
for microfluidics devices.
Figure 2-1: The tool used to make the part. Two input ports combine via a mixing pattern using 50 pm to a
single output port. Additional markers have been placed on the part in case additional measurements were
needed. 1121
25
Parts are made from PMMA, using rectangular injection-molded blanks. Originally,
PMMA was laser-cut from flat sheets into the desired shapes. However, owing to the high
variation in the thickness of the PMMA and associated handling issues, blanks were injectionmolded by an independent contractor.3 Before embossing, blanks are 1.52
0.01 mm thick and
approximately 35 mm x 25 mm in area, with three 2 mm-diameter holes where the fluid will
flow into and out of the embossed part. A slight indentation in one corner provides an orienting
mark.
2.2
Hot Embossing Machine
2.2.1 Previous Versions
The first version of the hot embossing machine, created by Ganesan, [16] used an Instron Model
5869 to supply the forming force, with copper platens dispersing the heat supplied via heating
cartridges. The cooling system would then run cold water through the platens to cause them to
reduce the system cooling time. After poor results with a copper tool, a silicon tool was used.
The cycle time took about 30 minutes, consisted of about 10 minutes of heating, 17 minutes of
forming, and 3 minutes of cooling. Force and displacement data for each run was recorded. The
heater temperature was also recorded, although the distance of the heaters from the part caused
this data to not be a truly accurate representation of the system. Figure 2-2 shows the initial
hardware.
3 http://www.quickparts.com/
26
Figure 2-2: The first version of the hot embossing machine, showing the forming platens in the Instron. 1161
For the second version, Dirckx [17] built on Ganesan's work. Using the same Instron,
forced heat transfer via heated and cooled fluid was able to reduce the cycle time to 6 minutes,
consisting of two minutes of heating, two minutes of forming, and two minutes of cooling. This
machine included features to demold the completed part from the tool. However, this method
was required a much larger machine to sufficiently heat and cool the fluid, and the resulting
cycle time was still higher than desired.
In the third version of the hot embossing machine, Hale [18] further reduced the total
cycle time to 2 minutes by minimizing the thermal mass between the heaters and the part. The
part size was also standardized, to the creation of 1"x 3" parts, rather than the variable-sizing the
prior machines were capable of producing. This enabled the tool to be switched to the current
one, made from bulk metallic glass. The load application was switched from the instron to a
smaller Mead Fluid Dynamics DM-600 x 1" stroke pneumatic cylinder with an integrated load
cell. This also helped to significantly reduce the equipment cost.
27
2.2.2 Current Version
The current version of the hot embossing machine, built by Bageant, [12] has a cycle time of 115
seconds. Of this time, 30 seconds are used for heating, 30 seconds are used for forming, 20
seconds are used for cooling, and 5 seconds are used for unclamping. The machine includes PIDcontrolled heaters and force provided by a pneumatic bellows, or air spring. A linear air bearing
limits the motion to one dimension. The combination of the air spring and air bearing provide
low friction, precision linear motion, and eliminate any potential motion outside of the desired
dimension. Force and temperature are recorded from the actuators, and an LVDT measures and
records the displacement of the system. Figure 2-3 shows the current hot embossing hardware.
Key features, including the LVDT, the air bearing, and the air spring (pneumatic actuator) have
been labeled.
Planar
adjustment
flexure
Thermal
stack
LVDT
Air
bearing
Load cell
Pneumatic
actuator
0-frame
structure
Figure 2-3: The current hot embossing hardware, with key features labeled. [121
28
2.3
Taping Machine
A separate machine was created to perform the bonding step of the hot embossing process, as
seen in Figure 1-1. This bonding, using a laminate adhesive, or tape, over top of the part,
required a method that was both rapid and robust. Our collaborator, at Nanyang Technology
University in Singapore, built a machine which semi-automated the taping process by placing a
part on a moving stage, which could then be sealed with individual pieces of tape. [19] [20]
However, a fully-automated process was desired. A method of continuous taping, with the piece
of tape cut into appropriately-sized pieces once it had adhered to the part, was selected and built
by Reyda [13].
In the taping machine, tape is unspooled via a series of rollers, then laid overtop parts
placed in the taping machine. Parts are moved linearly through the machine while the tape is
applied using motor-actuated belts. Force is then applied via spring-loaded rollers to the top of
the parts to ensure good bonding between the tape and the parts. Figure 2-4 shows a side view of
the taping machine, indicating the path the tape takes as the parts move through the machine.
29
Take-up reel
Tape reel
Motor
removes
liner
Exposed tape
Roll applies pressure
4B
@@@@
Motor drives
belt
4%
Figure 2-4: The taping machine, showing the path of the tape as the parts are moved linearly along the belt.
Parts will be sealed with one piece of tape, which is then separated by the adjacent cutter. [13]
Once the parts have been taped, the tape is cut to separate the parts from each other. This
cutting is done by a separate device next to the taping machine, which parts are pushed into by
the stiff tape. Once parts have reached the cutting device, an air cylinder forces two rotary blades
over the edges of the last two parts in the machine, cutting them apart. The part that has been
separated from the tape ribbon is then removed from the taping and cutting setup by the part
manipulator discussed in Section 2.5. An additional effector pushes the cut portion of the tape
out of the device. [13] The path of the blades over the taped parts is shown in Figure 2-5. Note
that no portion of the remaining tape will hang over the edge of the parts.
30
Figure 2-5: Three parts that have been embossed, with the tape placed overtop of them. The dotted lines show
where the tape will be cut to separate the parts, and the arrow shows the direction the parts move within the
machine. [13]
2.4
Functional Testing
A crucial part of the process control for the automated system is an automated way to measure
the parts produced. To this end, a machine was designed and built by Reyda to determine the
quality of the parts produced by the system. This machine has a cycle time of 85 seconds for a
full functional test, or a shorter cycle time of 17 seconds for just the preliminary optical test.
The functional tester takes a zoomed-in image of a part, then analyzes it to determine if it
has been properly formed. This analysis first determines the minimum light intensity of the part
and the overall standard deviation of the light. If the minimum light intensity is below a
threshold value and the standard deviation is above a threshold value, the part is determined to be
present. Key features of the part are matched to a pre-recorded pattern, which is also used to
determine whether or not the part is present. If the part is present, the pre-recorded pattern is
used to determine whether or not the part is sufficiently oriented. If the part is more than 4'
rotated, the fluid ports will not properly line up, and the part is recorded as being improperly
oriented. [13]
If the part is present, the channel widths are measured using this zoomed-in image. Edge
detection is used in the regions where the channels are expected to be, based on the pre-recorded
pattern. This edge detection finds the outer channel widths at several locations and averages
them to find the width of each of the four channels. These four widths are recorded, as is the
average and standard deviation of the four widths. Figure 2-6 shows a raw image from the
zoomed-in camera, as well as an image with the functional tester's data recorded on it.
31
Figure 2-6: A zoomed-in image of a part in the functional testing machine, and that image with the data from
the functional tester recorded on it. The average width and standard deviation measures in the upper-left
corner are based on the four measured channel widths. The information in the upper-right corner is used to
determine the presence of the part. The TRUE label in the lower-right corner indicates that the part may
have fluid flow through it.
32
If the part is both present and oriented, red dye and water are flowed through the two
input ports, and a less-zoomed image taken of the resulting fluid mixing profile. Red dye was
selected because of its strong visibility, given a green filter over the main light source and a
grayscale image. By looking at the standard deviation of the light intensity across a channel, the
extent of the mixing at that location could be determined. Figure 2-7 shows images of both the
mixed and unmixed channels before and after the standard deviations were labeled. The unmixed
channel has a much higher standard deviation than the mixed channel.
94
18
31
42
01
_99,
0
9
9
4WO4
-0
7
Figure 2-7: The standard deviation of the intensity across both an unmixed and a mixed channel. The mixed
channel has a much lower standard deviation because of the more uniform intensity. [131
The mixing data from the functional tester encountered a few problems during testing.
Because the fluid from the ports had a tendency to slightly bubble up from out of the o-rings
where the ports interfaced with the functional tester, inserting the part tended to cause red dye to
get into the source for the water. This caused the water to be slightly mixed when it entered the
part, interfering with the mixing location measurement. Additionally, the mixing location was
much sooner in the channels than was expected. More mixing occurred at the bends than was
expected, which caused problems because of the lack of data gathered at the bends. However, the
initial channel width measurements still provided the necessary data for the process control of
the system.
33
2.5
Epson Robot
For this system, an Epson G10 [21] materials handling robot was used. The choice of a robot
was based on a combination of flexibility and precision4 over many cycles. Because of the nature
of both the hot embossing process and the part testing procedure, parts were required to be
accurately placed in a number of locations. However, owing to the ongoing development of the
system, those locations were subject to change as machines were introduced or modified.
Because of these potential changes, a conveyor belt or other fixed approach of part movement
was ultimately deemed impractical. The selected robot requires only a simple reprogramming to
accommodate a new machine, a machine redesign, or the movement of an existing machine
within the system. Because the parts would remain horizontal for all processes, a 6-axis robot
was not needed, so a 4-axis SCARA (Selective Compliant Assembly Robot Arm) could be used.
This also eliminated the variability that would have arisen from the additional, unneeded
dimensions. Of the available SCARA options, an Epson GlO was chosen because its range and
precision were deemed the best for our system. [14]
The Epson GlO contains four distinct joints, enabling the manipulator to move within
three dimensions with angle of the end effector controlled by the fourth joint. Joint one rotates
the links of the manipulator around its base parallel to the floor. Joint two rotates the remaining
links about the end of the first link, again parallel to the floor. This enables the end of the
manipulator to obtain any position within that plane. Hard stops can be added to each of joints
one and two to limit the total rotation, as well as the position of the end effector. The third joint
controls the height of the end effector, and the fourth joint rotates the end effector to allow it to
be positioned at the desired angle. The four joints of the G10 Epson robot are shown in Figure
2-8.
4 The Epson GlO has a working radius of 850 mm. It has a precision of 10 pm in joints 1 and 2, 25 pm in joint 3,
and 0.005 degrees in joint 4.
34
Joint#2
(mlbing)
Jokt#3 and #4
Joint #1
Ami #1
++
((rots")g
Ann
)
MOM~
Figure 2-8: The four joints of a G10 Epson robot, which enable it to move in all three dimensions, with one
axis of rotation. Hard stops may be applied to joints 1 and 2 to reduce the range of motion. [211
The Epson G 10 robot is responsible for the transportation of parts between the machines,
as well as into and out of the system. Once blank parts have been loaded into the dispenser by an
operator, the system can run autonomously, with the robotic manipulator keeping track of the
location of all parts within the system as well as moving those parts when necessary. By keeping
track of the part locations as the parts were moved, the robotic manipulator was able to
determine the optimal action for the system at any given time, and then perform that action.
Owing to the precise nature of both the embossing of the parts and the image acquisition
during the functional testing, parts need to be loaded into machines with a precision of less than
0.5 mm. Because of the lack of feedback surrounding the system, part location needed to be
well-controlled at all times. Additionally, because of the introduction of slight variations at
various points into the system, a three-point alignment system is used at all critical steps to verify
that part location is within the required margin of error. This three-point alignment consists of
35
three pins, which anchor two sides of the parts as well as preventing them from rotating. The part
alignment is further discussed in Section 3.3.
This robot enables the system to be fully automated, removing any variance that might
arise because of differences in human manipulation. The full automation is also beneficial in that
it allows the system to consistently operate at peak or close to peak capacity, without relying on
an operator at all times. For the purposes of system rate, the hot embossing has been determined
to be the bottleneck process, and thus the prioritization of the robotic manipulator is heavily
weighted towards keeping the hot embossing machine running at all times. System prioritization
is discussed in Section 3.4, and system efficiency is discussed in Chapter 4.
36
CHAPTER
3
ROBOTIC HANDLING SYSTEM
Within the system, the robot was required to move parts to achieve the highest possible
production rate. The robot would pick up parts from the part dispenser and step them through the
system, to the hot embosser, the taping machine, and the functional tester. After removing parts
from the tester, they would be place in the finished parts bin. The parts needed to be placed in
both the hot embosser and the functional tester with less than 0.5mm error during each cycle.
Figure 3-1 shows the system that the robot interacts with. The part dispenser, hot embossing
machine, taping machine, cutting machine, functional tester, and finished parts bin are all
labeled.
Figure 3-1: The manufacturing cell layout. Parts go from the dispenser (1) to the hot embosser (2), then are
transferred to the taping machine (3) and cutting machine (4). From there, they are placed in the functional
tester (5) and finally the finished parts bin (6).
37
3.1
Safety
In order for the Epson G10 to be safely used, operators and observers must remain at least 1
meter from the work envelope at all times. To enforce compliance with this safety standard, a
Sunx Type 4, SF4B series laser curtain is used in conjunction with a SF-C13 Sunx Safety
Control Unit. The system was placed in the corner of a room, with the emitter and receiver for
the laser curtain placed at each of the two walls forming the corner. A mirror was erected
between the emitter and receiver to create a sensor along the two free edges of the system. The
control unit was then wired into the Epson G 10 emergency stop, causing the system to enter an
emergency stop state whenever the laser curtain was interrupted at any point. By placing the
laser curtain at least one meter from the work envelope of the robotic manipulator, safe usage of
the robotic manipulator can be ensured.
An additional concern is contact with existing machines, especially during a system startup. While the robot has a series of hard stops, which can drastically limit the work envelope, the
system's machines are, by necessity, within the work envelop. During the system steady-state, all
paths are known, and programmed to avoid cgllisions with the existing machines. However the
position of the robotic manipulator at startup is unknown, and thus a specific path cannot be
assumed.
To avoid this issue, the location of the robot is determined at system start-up. The
manipulator is then moved at the slowest possible speed, in low-power mode, to a predetermined location. This movement path takes into account the location of the manipulator,
with specific paths being generated should the effector head be located within one of the
machines in the system. This enables the manipulator, starting from anywhere in the system, to
move to a given starting location safely. The starting location is used any time the system is run,
including after a sudden disconnect or emergency stop. The programming which governs these
movement paths is included in Appendix A.
38
3.2
End Effector Design
The end effector design selected included both a talon for part alignment and vacuum holes to lift
and hold the parts. The end effector is shown from the side and bottom in Figure 3-2, along with
the location of the part relative to the vacuum holes.
Hook
Milled area
Vacuum holes --
Figure 3-2: The robotic end effector, formed from a hollow vacuum channel with holes to create a seal against
the part. The talon or hook on the end of end effector allows for part manipulation independent of the
vacuum. The two ports on the end effector allow for the simultaneous transportation of two parts. [131
This end effector design was selected to allow multiple parts to be carried and to allow
interface with all of the machines in the system. The long, narrow end of the effector head is able
to fit into the functional tester and the hot embosser.
39
The double-ended nature provides an effective buffer, allowing the robot to remove a
completed part and insert a new part at a given machine without traveling to a different machine.
This is greatly beneficial at the system bottleneck, the hot embossing machine. With only one
effector head, the robot would have to pick up a finished part, place it at the next station, pick up
a new part, and place it in the hot embossing machine. With the addition of a second effector
head, placing the embossed part and retrieving a new blank part are eliminated from the
sequence of events. This shortens the time the hot embosser is not in use by eliminating several
required actions. With one effector head, a part must be removed from the hot embosser, placed,
a second part picked up, and that part then placed in the hot embosser. With two effector heads,
if the robot is already holding a blank part, the number of necessary actions is reduced to simply
removing a part from the hot embosser and placing the next part. Thus, the amount of time the
robot would spend placing the first part and picking up the second part is eliminated from the
maximum cycle time.
The vacuum is transmitted from the vacuum ports on the G10 robot to the effector head
of the robot through vacuum tubing. The effector heads are hollow, allowing them to retain the
vacuum when parts are placed against the vacuum holes. The vacuum is sufficient to hold one or
both parts simultaneously. Even if a part is dropped, the vacuum loss does not cause sufficient
lack of pressure for the other part to fall.
3.3
Precision Part Manipulation
In both the embossing machine and inspection station, the positioning of the workpiece in the
machines is critical. This alignment effects everything from where the device channels are on the
substrate to where the inlet and outlet ports are for the functional test. Precise placement also
makes the measurement more repeatable.
3.3.1 Requirements for Precision
The robot must be able to consistently pick up parts from each location. As the effector
heads on the robot have only four vacuum holes, the parts must be in such location that those
vacuum holes are able to come into contact with the parts. The precision for the robot is thus
dependent on the range that the vacuum holes can cover while attempting to pick up a part from
a given location. However, large amount of variance within the potential range of the vacuum
40
holes are still undesirable, as they then require excessive alignment times to make sure that the
vacuum holes have achieved proper contact.
With respect to part location variation, there are three degrees of freedom. Parts can be a
varying distance along the effector head, considered to be variation in the x dimension.
Perpendicular to that, parts can be to one side or the other of the effector head, which is variation
in the y dimension. Parts can also rotate in one dimension, in-plane with the two position
variations. Parts cannot be in varying positions in z, nor can they rotate in either of the other two
dimensions, as any of these location variations will prevent the vacuum from connecting with the
part, causing the part to be dropped immediately. Figure 3-3 shows the three degrees of freedom
of the part on the effector head.
(a)
(b)
(c)
Figure 3-3: The three degrees of freedom of the part on the effector head. Parts may be shifted in either of the
two planar dimensions (a) (b) with respect to the effector head, or rotated. (c) Parts cannot be shifted or
rotated perpendicular to the planar effector head, as this would cause the vacuum holes to not adhere to the
part, and the part to be dropped.
Once the robot is able to pick up parts, it must be able to place parts within the hot
embosser for the purpose of accurate embossing. The hot embosser has two main constraints on
placement. If the part is poorly positioned in y, the robot will be unable to place the part within
the hot embosser, as the part will contact one of the demolding fingers rather than slotting
between them. The other constraint is relevant to the accuracy of the embossing process. If the
part is placed imprecisely, the pattern will be embossed onto the wrong location of the part. This
can lead to a part that the functional tester is unable to properly process, or, in extreme cases, a
part that is defective and cannot allow fluid flow.
The robot must also be able to place parts within the functional tester for the purpose of
accurately analyzing the finished part. Like the hot embosser, a poorly positioned part can result
41
in the inability of the robot to place the part within the functional tester. The functional tester
uses a camera with a very narrow field of view. Because of this, the image matching software is
unable to match the patterns on the part images if the embossed pattern is misplaced by more
than 500 microns. This 500 microns is cumulative between the positioning at the hot embosser
and the functional tester. Additionally, poor alignment within the functional tester will cause the
ports on the part to not line up with the ports in the functional tester, preventing fluid flow.
The taping machine requires the least accuracy within the system. The machine is built
with high robustness to part placement, of up to several millimeters in both x and y, as well as
rotations of several degrees. As long as the part is placed within this range in the input area, it is
oriented and funneled into the precise location required by the taping rollers. Once it is
appropriately located, the precision is maintained until it reaches the cutting step, where a hard
fixture ensures a consistent cutting location, as described by Reyda. [13]
The final placement of the part is within a tray used to collect completed parts. As such,
precision lower than that required by the robot to pick up the part on the vacuum holes is needed
to place the part.
3.3.2 Sources of Variance in Part Placement
Each time the part is moved, a small amount of position uncertainty is introduced. Variation also
occurs from the operations of the different machines, as well as being introduced at the start of
the system.
At the start of the system, the blank parts are stacked in a dispenser. The dispenser,
shown in Figure 3-4, has a stack of parts that are moved to the top via a spring. As each part is
removed, another rises to the top to take its place. Because the dispenser needs to provide
minimal friction to allow for the sliding of the parts, the exact location of the blank parts within
the dispenser is uncertain. This uncertainty exists in the angle of the part relative to the dispenser,
as well as where the part is located in both x and y within the dispenser. Figure 3-5 shows an
example of a part in the dispenser with unknown x, y, and orientation.
42
Figure 3-4: The part dispenser, holding approximately 20 parts. The spring forces the parts to the top of the
dispenser, from where they can be removed.
Figure 3-5: An example part in the dispenser, showing the variation in x, y, and orientation which may result
from the dispenser.
Position variation is also introduced when the hot embosser raises the part against the
demolding fingers as the platens open. This causes the part to fall a slight distance when it is
removed from the tool. This can cause motion in both x and y, as well as to rotate. Although the
functional tester does not have demolding fingers, the abrupt nature with which it opens also
causes some movement of the part in a similar manner.
The largest source of location variation within the system comes from the cutting that
takes place after the part is processed by the taping machine. Because pressurized air is used to
43
move the cutting device, and because it must be able to quickly slice through the tape ribbon, a
large amount of force is applied to the base of the cutting device during each operation. This
causes vibration in the base, resulting in a large movement and rotation of the part in question.
Once the part has completed the functional testing process and is no longer needed within
the system, it is dropped into a tray from a height of approximately 10 centimeters, resulting in
an extremely high position uncertainty. However, because the part no longer needs to be
retrieved for further operations, this variation does not have a negative effect on the system. A
system of final placement that leaves the parts in the correct production order would be best, but
currently the retention of part order is accomplished by labeling the parts before they are put in
the dispenser.
3.3.3 Reduction of Variation
Reduction of variation takes place both when picking up and when placing a part. This reduction
is focused on parts immediately prior to and during their placement in the hot embossing
machine and the functional tester, as these are the machines which require high precision in
placement.
At the dispenser, the part is moved against both the end effector talon and the dispenser
wall, fixing it in x, y, and orientation. First, the effector head is lowered over a part. The effector
head then begins to withdraw the part from the dispenser with the vacuum off. This causes the
part to rotate into alignment with the effector head, fixing its orientation and x. To fix the y
dimension, the vacuum is turned on and the effector head is moved perpendicular to the first
direction, causing the part to move against the dispenser wall. This gives it a known location in
both x and y. The part can then be removed from the dispenser without loss of precision. Figure
3-6 shows this orientation process.
44
(a)
(b)
(c)
Figure 3-6: The alignment of a part when being retrieved from the dispenser. The location of the talon is
indicated with the dotted line. The part starts unoriented in the dispenser, with the effector head lowered
over it. (a) The part is then pulled straight out of the dispenser, aligning it against the talon on the endeffector and orienting it. (b) The vacuum is then activated and the part is moved against the side of the
dispenser, which causes its location to be fully known. (c)
When placing parts in the hot embosser and functional tester, a three-pin system is used
for alignment. Two pins in the back of the machine are used to ensure that the part is correctly
oriented in x and rotation, and the third pin is used for the y alignment. This alignment system
was originally used by Zarrouati. [14] A part would be placed sufficiently far away from the pins
that, knowing the expected variance in the initial part location, it would never intersect the pins.
The part was then pushed from first the x direction, then both the x and y directions. The pushing
was done using a compliant pusher, and the distance travelled by the compliant pusher was far
enough to overshoot the pins, based on the knowledge of the original variation in its initial
placement. This scheme, depicted in Figure 3-7, would fix the part location against the three
pins.
a)
C)
b)
o
0
0
0
0
0
Figure 3-7: The initial method of part alignment against the three pins. Parts are placed sufficiently far away
from the pins such that, given the variance in their location, they will never overlap with the pins. (a) Parts
are then pushed towards the back pins. (b) Finally, parts are pushed against all three pins. (c)
45
There were two drawbacks to this alignment method. The first was the number of
movements required to position one part. To push the part, the robot would have to move back
far enough to overshoot the edge of the part, then use its compliant edge to move the part
forward. The second drawback involved the rubber used to make the compliant edge, which
would periodically stick to the part and disturb its location. When the new effector head was
designed, this issue was addressed by creating a surface the part could slide against on the
effector head. This enabled the robot to place the part and then overshoot the pins while the
vacuum was still on, causing the part to move until it reached the pins, then remain stationary
while sliding against the effector heads. This alignment is shown in Figure 3-8, with the part
contacting the two back pins to fix orientation and one dimension, then sliding into the third pin
to fix the second dimension.
(a)
(b)
(c)
Figure 3-8: The orientation of a part using three-pin alignment. The part is first brought against the two
farthest alignment pins, which involves some intentional overshooting on the part of the robot. The part is
then moved diagonally with respect to the three pins, causing it to orient and rest against them, fully fixing its
location.
To implement this scheme, the part is placed such that the maximum possible position
error would place the part away from the alignment pins, shown in Figure 3-8 (a). The robot then
moves a fixed increment in x such that contact with the back pins is ensured. To do this the robot
overshoots the point of contact, causing the part to slide on the end effector to accommodate the
motion. Once in contact with the rear pins, the part is now aligned in rotation and x position. A
simple translation in y, again overshooting the expected pin position, creates the y alignment.
This overshoot is carefully selected to both allow for slight variation in the location of the
part on the end effector and to prevent such large overshoot that the part would be removed from
the vacuum holes of the effector head. If a part is pushed off of the vacuum holes, it will come
off of the effector head, falling and causing a slight variation in location. However, by having the
46
part remain on the vacuum holes in spite of the overshoot, the robot is able to lower the part into
place before turning off the vacuum, causing it to be successfully placed with suitably high
precision.
To test the precision of the part placement by the robot, one part was placed in the
functional tester 50 times, and its location and orientation measured each time by the optical
system, which has a resolution of 0.6 pim / pixel. Parts were manually positioned in the taping
machine in between tests, causing them to have a slightly wider range of locations on the end
effector prior to placement. To determine the errors in x and y, the pattern-finding software
described in Section 2.4 first identified the location of the pattern on the part, then drew a box
around the pattern. The change in coordinates and rotation of this box was used to measure the
change in x and y of the part. As seen in Figure 3-9, the maximum linear error is about 30 pm in
x, but is less than 20 gm in y. The maximum angular error is about 0.3 degrees.
As the
functional tester requires linear error of less than 500 jm, and angular error of less than 4
degrees, this precision is well within the acceptable error. The measurements have been shifted
to have an average error of 0 gm.
47
X position of Placement Tests within Functional Tester
40
30 -----
I
I
I
-----
------
-
----
I
I
i
I
a=9.7242pRm
-----
-------------------
------
---
-10
M -20
0
-30
-4L
5
0
------ I-----
---
- ----
1
15
20
2-3-5-045
10
15
20
30
25
Trial Number
-
-
---
-
E 20
5
45
40
35
50
Y position of Placement Tests within Functional Tester
V
4l
------
-----------
-----
30 -------------
-------
-----
-a=
5.8824slam
20
E 10
0
E -10
-20
- -- - - - - ---- --------|------4---- ---- - ------ ---- - - --
C
U)
-30
I
An
-I.',
5
10
|
I
15
20
I|
30
25
Trial Number
35
40
45
50
Angle of Placement Tests within Functional Tester
0.6
---
0.4
= 0.1034 gm
~ ~~
-- , -- --- --- ----- - ---, -- , ---- --- - - --r
0
-0.2
----------- ------'I----- ------- ----- L- ---
0-0.
C
-0.4
0
5
10
15
20
30
25
Trial Number
35
40
45
50
Figure 3-9: The precision of the robot when placing parts in the functional tester over 50 trials. For these
higher-resolution images, a two-pixel margin of error corresponds to slightly more than 1 pm, allowing the
actual part variance to dominate. The maximum linear displacement can be seen to be approximately 30 pm
in x and approximately 20 sm in y, and the maximum angular displacement about 0.3 degrees. As it is
uncertain which position is correct, all errors have been shifted to have a mean of 0 pm.
3.4
Autonomous Programming
Because the system needs to run at high speed for long periods of time, manual operation of the
robot is highly undesirable. As such, the robot was programmed to be able to rapidly move parts
48
throughout the system, concentrating on the system bottleneck at the hot embosser. In order to
accommodate varying machine processing times, as well as potential start states and failure
modes, a task-oriented system was selected over a fixed series of actions.
3.4.1 Specific Tasks
The robot can select an action from seven distinct tasks. Generally, any action that changes what
the robot is holding is "a task." Retrieving a new blank from the dispenser is one task. Placing
that blank in the hot embosser is another task. Retrieving an embossed part from the hot
embosser is a task. Placing an embossed part in the taper and picking up a taped part are both
tasks. Placing a part in the functional tester is a task. Picking up a tested part from the functional
tester and placing it in the completed chips tray is one task, not two, as there were determined to
be no benefits gained from holding a completed part and postponing placing it.
One additional task, which does not impact what parts the robot is holding, consists of
prepositioning. If the robot is idling, it will remain where it was when it ended its previous task.
However, if the robot is only waiting for one machine, it will preposition itself to be close to that
machine in anticipation of the next task it will perform. An example of the programming used to
cause the robot perform a specific task has been included in Appendix A. The points referenced
in the code are included in Appendix B.
From this list of tasks the robot determines which tasks can be completed by looking at
the current state of the system. The hot embossing machine and the functional tester send their
state, finished or running, to the robot in a signal Boolean signal. The robot software keeps track
of how many parts the robot is holding, and whether those parts are blank, embossed, taped, or
tested. The software internal to the robot also keeps track of how many blank parts are left in the
dispenser, and whether the hot embosser and functional tester contain parts, regardless of the
current state of those machines. The taping machine does not provide feedback, and as such a
timer is used to determine whether it has completed running. As the taping machine has a highly
consistent runtime, the alteration of the timing of the taping machine was deemed less critical to
system flexibility than that of the functional tester or hot embossing machine.
Based on the state of the system, the internal software of the robot goes through the list of
potential tasks and disqualifies those that cannot be performed at that time. For example, a task
that requires the retrieval of a part is disqualified if the robot is holding two parts. Tasks that
49
require the placement of a part in a specific state are then disqualified if the robot is not holding
any parts in that state. The state of the embossing and testing machines are then considered.
Tasks that require part retrieval from or placement to a machine that is currently running are
disqualified. Finally, tasks that require a placement of a part to a machine that is currently
holding the maximum number of parts are disqualified.
Two additional factors arethen considered. Several states will cause the system to jam such
that no possible action can be taken. One example occurs when the hot embossing machine has
completed a cycle and the robot is holding two blank parts. The robot is unable to remove the
part from the hot embossing machine, because it is already holding two parts, but at the same
time it cannot place either part it is holding, because the hot embossing machine is full. Tasks
that cause the system to enter an unworkable state are thus removed from the task list. Finally, if
no task can be performed, the robot will consider what task it could perform, independent of
which machines are currently running. If this list has only one task on it, the robot will move to
the machine corresponding to the task in question. The programming governing the selection of
the next task is included in Appendix A.
3.4.2 Task Prioritization
Once the robot has determined the tasks that can be performed, the highest-priority task is
performed. The priority of tasks has been weighted to ensure that the hot embossing machine, the
system bottleneck, is occupied at the highest possible rate. Thus, the retrieval of chips from and
the insertion of new chips to the hot embosser occupy the highest priorities. In order to provide a
rapid turn-around of parts to and from the hot embosser, ensuring that the robot is holding a
blank part with one empty slot are important, and the order of the remaining tasks centers around
making sure this happens as often as possible. Figure 3-10 shows an overview for the actions of
the robot as they are prioritized.
50
START
Iyes
a chip in the hot
embosser?
I Can the robotput
I
no
Is the robotcurrently
holding a blank chip?
I
-f
H'I
Can the robot pick up a chip
from the hot embosser?
Can the robot put a chip in the
testingmachine?
yes
I
\ /no
I
IZ
I
"1*@
!F
-
Can the robot pick up a blank chip?
I
yes
no
Can the robot take a chip out ofthe
testing machine and drop it?
I yes
'Ino
Can the robot put achi in the toping machine? |
I no
yes
Can the robot take a chip from the hot embosser?
I
no
yes
Can the robot pick up a chip from the taping machine?
zero
I1no
How many machines are currently running?
mo
one
System complete ll
w~I
Go to &hemachin that is running
Figure 3-10: The top-level priority system for the actions of the robot. Each time the robot completes an
action, a new action is selected based on this priority system.
51
To ensure that the correct task is being performed, a more comprehensive flowchart is
also necessary, documenting the exact state of the system and mapping the action of the robot
accordingly. For simplicity, the system state has been split by whether or not the dispenser has
additional blank parts remaining and the robot is holding one or fewer parts. Note that the case
where the robot is holding two parts is identical regardless of whether or not the dispenser has
parts remaining, and is included in the case where there are parts remaining. Figure 3-11 shows
the robot action flowchart for the case where the dispenser has parts remaining, and Figure 3-12
shows the robot action flowchart for the case where there are no parts remaining and the robot is
holding one or fewer parts.
52
0t o
o
CW
E
rA0
eD=
m* -
0
-~
0
C
CL
CL
M C
running
Wait
*F
Wait by the
hot embosser
machine full?
empty
no
Isthe taping
machine full?
state?
no
no
sembossed
F--machine running?
ysmachine
ye
isthe taping
no
machine fl?
ysn
T_k a patfo h
functional tester and
-it away
no
Isthe hot
embosser full?
ta
Take a part
from the tapingmachine
Sal
o
yes
no
u
at=nh
e
esrrunnfrom
tserungL__emboser~
Is the functional
Is the taping
machine running?
no
te ho mbse
running?
es
no
Take a part from
the taping machine
aeapr
the hot
empty/
running
a part from the functiona
tester and put it away
done
tal
Take a part from the hot embosser
taping machine
State of the
functional tester?
ysWait
wait by the taping
machine (drop-off)
Is the taping
machine running?
machine
e
ys
Wait by the taping
(drop-off)
taping
functional tester?
part?
Vmoser
Istheraprtnth
no
Put a part in the
functional tester
~~~What
isthe tpd
tp
embossed
j
ve
It
What isthe
other part? blank
mbseI--is the taping ys
the functional
full?
tster ullmachine
ta
Pu a part in the
-Pick up a blank part~Take
yes
machine
running?
is the taping
nebssr
from the hrot
IYes
71s the functional
tse runig
e teput
done
a part
i the
empty
no
the hot
functional
Take apart from
tester
the functional
tester and put it
awayis
yes
Is the taping
Taeaprte
Hot embosser
state?
done
done
Functional
teserstaePut
tester state?
running
Put
apart in the
tempty
Hot embosser
stte
-'
running
embossed
blank
hot
embossern
Dikdu?
prs t- be
W-ait
no part
yes
the robot is holding?
Go to other
~
blank
fiowchart
flowchart
Are there blanky 'no
Is there a part in ysother
Pick up a blank part
tap
no
is the functional
tester full?
What is the
othFpa
yes
s there a part in the
i~- p~,- n -- he,
etr
fntoa
Htped
functional tester
IIno
no part
START: What is the least-processed part
eeD
CL
o
CL
W~
e9
.1
04
9+
o *-
e'D
4
SYSTEM
etr
frmche
Tak e
~ ~~
r
emby/ Se
e
t embo-ser
mp
Wait
o
japr
tn
s
a nie
hot
ex
~~ ~
machinefull?
emtn
th e
it
Semoe
rputn
hmdnazrchi
machine
fntinltester and
par
aes an nlnk p
running
oneser y
taped
part frm h
o h o on
Is ttpn~a~h e
t
apig achn
emply~~n
Takeo
at dr ett eo
eembsssr?
dnWi
(rn-ing)
atb the taping 4e t
machine
r
dopynta e
ucioaesse
dsoneepig
roboh in g ul ?
mahnefbosuctsaemcin
e Iwybak htprs the
boser
n
P
emps
wcatemt
hotsr?
rnn
State of the
e
tester
Stat oh the
runinning ser
hotndone
eof
oss e
fromthg
ebsser
the Put
hoembse
3i
emb
n
Wait neo eerG
e running?
maie runnindg? W
t yth d
a p u
n eyfe
Tok fewrr noo Gothehre
ch
e
sero rnig
oote
bthtan
machin (pickup)n ak aprtro
Wai
Taskheapn ys Watb ah pat byo the tpn
pikp
Stat
et boser ?
one
Innigys
a aer;fomssie
empty
artunningu pr nth rmth o untoa tseTaeapr
runicioa mucia
teser
Ho matys Istetp n y parts pty
e r obotg hosd ?
Wap it byuei
TssTeT? robot isholdin ?
U Pr
mac e fllb
running
fucinl
epy htebse
done
s.emosr
s mt ucinltsee tate of the hot
empHwtyypat i embosser? rnigysTk
et
,,SaRTchie rbis
of the holon
Take a part from thetaping machine
yes ah efum
m
State
hot
~ ~ ~ ~ ~~ ~~ ~~morState
~ ~ of~the~
em ofe
by sh
taping
Wai
mosrIs the
tap ing fr yt e s dachin
o
yes e s
ake a
st e
,tat
och ne
noAn m ho
empty|~~emoser
p
neItet
taigtta igch
as
them
COMPLETE
unn
si
An alternate control scheme has the robot do parts in a predetermined order. The robot
would have a list of tasks, and as each task was completed, the robot would perform the next task
on the list. Figure 3-13 shows a sample sequence of tasks that the robot could perform under
such a system. This format is not desirable, however, as it is not flexible enough to quickly deal
with a variations in system timing or any faults that may arise while the system is running.
Pick up a new parm
Take a part from the
functional tester.
a part from the
STake
embossing machine.
K
Put a part in the embossing
machine.I
functional tester.
I
Take a part from the taping
machine and drop it.
Put a part in the
taping mach
Put a part in the
;
Figure 3-13: A sample task structure where the robot performs tasks sequentially, rather than based on the
state of the system.
3.4.3 System Fault Recovery
As the system has been created to perform robust manufacturing, the recovery of the system
from various faults is an important consideration. The autonomous recovery faults internal to the
robot software are those concerned with the loss of a part in between retrieval and placement.
Because of the task-based nature of the system, however, the system state merely needs to be
updated to account for a missing part, and the robot may then select the highest priority task as
normal. This is especially important concerning the hot embossing machine, as it is the
bottleneck. Given the high priority of doing so, a part missing from the hot embossing machine
will cause the system to place a new part in the hot embossing machine as soon as possible, often
immediately.
55
3.4.4 One Effector Head
To increase system flexibility, the system has also been programmed to account for the
possibility that one of the effector heads is broken or otherwise inoperable for some reason. In
this state, only one of the two effector heads may be used, and the possible tasks are updated
accordingly. This includes the tasks that may potentially render the system inoperable. The
system priorities are not updated. This is because if system efficiency is a concern, it will
generally be more advisable to repair the broken effector head and accommodate the associated
downtime than to run the system with only one effector head.
3.5
System Communications
Because of the wide variety of hardware and software in the system, a way for the various
machines to communicate during the running of the system was crucial. LabView was selected
owing to its ability to interface with both the hardware used and the RC+ software used by the
Epson robot. Additionally, the Arduino controller used in the taping machine received hard
electrical signals using the bank of switches included inside the RC- 180 controller for the Epson
robot. The overall
communication scheme used is shown in Figure 3-14. Whether
communication and processing occur via hardware, LabView, or RC+ is indicated by color. The
data transferred at each juncture is listed at the bottom.
56
System Computer
Feedback
Analysis/Process Brain
System Information Hub
Chip Quality to Process Alterations
HEM Status, Testing Machine
Image Analysis/Data
Acquisition
Status
Images to Chip Quality Parameters,
Testing Machine Status
HEM Controls
Process Parameters
I
Robot Brain
Chip Locations, Chip Motion
decision making
0
Hot Embossing
Machine
Hardware
Labview
Epson RC+
4,
2Functional
Tester
Images
Taping
Robot
Controller
Machine
HEM
>
Computer <
Temperature data
<
> Temperature control
Pressure data
<
> Functional Tester
Computer C
-
Image 1
Image 2
> Cycle Status
1E
> Force control
'
-
Computer
Displacement data
<
Robot <
Start
-)
Robot Control
-
Rr+ Pro rammin
g
> Taper
c
g
> Motion Sequence
Robot Status
Figure 3-14: A top-level view of the system communications. The mechanism by which the communication
occurs is indicated by color. Locations labels include the data stored at that location. The data communicated
at each junction is listed at the bottom.
The hot embosser and the functional tester both have their own LabView VIs, as does the
robot, which are part of a project on the same computer. These VIs communicate via global
variables. The hot embossing machine and functional tester use similar communication schemes,
while the taping machine, because of its simplicity, has its own communication set-up. While
most communications take place on a much smaller timescale than the rest of the system, the
interface between RC+ and Labview is slightly slower, resulting in a delay of somewhere
between 0.1 seconds and 0.5 seconds in between each of the actions of the robot.
When the robot has placed a part in either the hot embosser or the functional tester, the
RC+ turns on a start flag for the machine in question. This start flag is then propagated to the
Labview VI for the robot, where it turns on the global variable corresponding to the appropriate
machine start flag. Once the machine receives the start flag, it starts its cycle. The start flag is
57
turned off by the robot after a given duration of time. This duration was chosen to be 2 seconds
to give sufficient time for the signal to propagate without risking giving a machine multiple start
triggers. Upon the completion of the cycle, the machine activates. a 'completed' flag, which in
turn propagates back to the robot. Once this has occurred, the robot removes the part from the
machine and activates a 'reset' flag, again for 2 seconds. This reset signal causes the machine to
deactivate the 'completed' flag as well as ready it for a new cycle. One additional flag internal to
the robot makes sure that the 'completed' signal will not trigger a second part retrieval before the
machine was reset. Table 3-1 shows these flags in the order that they occur during a cycle, as
well as what activates and deactivates them.
Turned Off By
Effect
Data Flag
Turned On By
Machine Start
The robot, when a The robot, after a given Causes the machine to
Cycle Completed
duration of time
The machine, when
The machine, when it is Causes
it
has
Reset Machine to The
robot,
removing
the
robot
to
finished reset to prepare it for the remove the part from the
next cycle
processing a part
"Ready"
start its processing cycle
part is placed
a
machine when it can
while The robot, after the part
Changes the machine from
part has been removed from
the completed state to be
from the machine
the machine
ready for a new part
Table 3-1: The information communicated between the robot and the hot embossing machine and functional
tester during the course of system operations. The hot embossing machine and functional tester have the
same communication scheme. Data flags are listed in the order that they will occur in a typical cycle, first
triggering the machine, then communicating that the machine is done, then resetting the machine to ready it
for a new process trigger.
With respect to the taping machine, the Epson RC-180 controller used in conjunction
with the Epson G10 robot includes a bank of switches that can be triggered by the robot's
internal software. One of these switches was used to send a voltage to the Arduino controlling
the taping machine, which signaled the start of the taping process. This switch was activated for
two seconds upon the placement of a part in the taping machine, then not activated again for at
least the 25 seconds required for the taping machine to complete its cycle. There was no
feedback from the Arduino to the rest of the system.
58
3.6
System Failure Modes
During the process of integrating the system, several failure modes became apparent which were
not present in the individual portions of the system. Not all failure modes occur or occurred
during every cycle, and as faults have been discovered, the system has been modified to provide
a very high overall success rate.
3.6.1 Hot Embossing Machine Lower Platen Height
In the hot embossing machine's current design, the lower platen is raised to the upper platen,
then force applied from the air spring. Because of this design, the start height of the lower platen
is not critical to the hot embossing process. However, for accurate part placement and retrieval, a
known height is needed. To account for this, a hard stop was added to the hot embosser's lower
platen, which causes it to rest at a fixed height. However, the amount of time it takes for the
platen to reach the rest state is also important for the system processing. After observing a slow
unclamping, a new air spring was obtained to increase the rate at which the lower platen reached
its hard stop.
3.6.2 Taping Machine Part Placement
Several issues arose when parts were placed in the taping machine by the robot, which required
small modifications. When parts were first placed on the taping belt, concerns arose that they
might be too far forward or too far back. To deal with this, a brush was created to push parts
against the small divisions on the taping belt that formed hard stops. The part was placed forward
of the stops, then pushed back to the appropriate position, increasing the precision of its location
to the level needed by the taping machine. The second issue arises after the system had been run
for a few parts. After several parts have been made by the hot embossing machine, all subsequent
parts picked up by the robot do not fall off the effector head onto the taping belt once the vacuum
is turned off. The cause for this is currently unknown. However, hard stops above the part
placement in the taping machine cause the part to be knocked off the effector head and onto the
belt. The part is then positioned by the taping machine to account for the error arising from the
drop height.
59
3.6.3 Functional Testing Machine Dye Contamination
The functional tester determines the mixing location of parts by flowing red dye through one port
and water through the other port. [13] The mixing of the two flows can then be determined
optically. To flow these fluids through the part, fluid channels exposed to air via o-rings were
embedded in the functional testing platform. When the part was placed on the platform and
clamped in place, the application of pressure would then cause the appropriate fluid flow to
occur. However, owing to the combination of pressure for the fluid flow and the exposure to air,
fluid remained in the o-rings when the part was unclamped. This fluid would form a slight
bubble, which would adhere to the part during the part retrieval process. Because of the direction
the part was moved, this caused the red dye to contaminate the water supply, causing poor results
for the mixing location. This process is depicted in Figure 3-15.
(a)
(b)
(c)
(d)
Figure 3-15: Dye contamination occurs due to the back pressure in the functional tester causing bubbles of
both water and dye to form (a). When the part is inserted into the functional tester, it makes contact with the
red dye bubble (b), and, as it is inserted, drags that bubble into the bubble of water (c). When the part is
placed, the water inlet has red dye in it (d).
To fix this, a number of approaches were considered. Because of the height of the fluid
bubble, increasing the height at which the part was removed from the machine was not an option.
The height of the bubble could be periodically decreased using a siphon, although this method
was slightly error-prone owing to the timing involved and the rate at which the bubble resumed
its original height. The disabling of fluid flow and reliance on the first channel width image was
60
also considered, although this reduced the amount of data retrieved from the machine.
Ultimately, the combination of high cycle time, the issues with the mixing location computation
described in Section 2.4, and the issue of dye contamination resulted in the fluid flow being
disabled for the initial process control studies.
61
62
CHAPTER
MINIMUM SYSTEM CYCLE TIME
To maximize throughput, the robot had to rapidly move chips throughout the system and avoid
starving the bottleneck machine. The bottleneck of the system was identified as the hot
embosser, with a cycle time of 115 seconds. The cycle times of the functional tester and the
taping machine, 17 seconds and 15 seconds, respectively, were much lower. Thus, a good
measure of the performance of the system was the percentage of time the hot embosser was
running.
4.1
Simulation
To determine whether or not the system was performing as expected, a simulation was created to
time various aspects of the system. This simulation took into account the robot movement and
operation times, the machine cycle times, the capacity of the robot, and the capacity of each of
the machines. This simulation was then used to test the robot prioritization system, which was
discussed in section 3.4.2. Simulations were done using 60 parts, to mirror the number of parts
typically made in one session by the system.5 This number also provided a good compromise
between long-term parts and computing time. The simulation is included in Appendix D.
4.1.1 Simulation Timing
To increase the accuracy of the simulation, robot movements and actions were performed
and timed using the clock internal to the Epson software. The times resulting from these tests
were shown to be consistent to within 0.01 seconds. Between this precision and the operation
times of the machines, a time step of 0.1 seconds was selected for the system. Timing was
5 Part sessions of 60 parts were selected owing to several constraints. The upper limit on the number of parts to be
produced at one time is 110, the number of parts that fit in the dispenser. However, because of the high time
investment, making 110 parts at once was undesirable. The 60 part quantity was ultimately selected to provide at
least 50 good parts.
63
broken down into two categories, operation times and movement times. Because of the slight
variations between the two effector heads on the robot, each effector head had a slightly different
operation time at each station. The largest variation was less than 1 second, and typical betweenport variation was approximately 0.3 seconds. Table 4-1 shows the times determined for each
task that the robot can perform. However, it should be noted that these are not the minimum
times for each of the tasks. The system in its current state is generally operated in low power
mode, which limits the robot's speed to 3% of the maximum. While speeds higher than 20% of
the robot's maximum cause undesirable vibrations within the system, these times could easily be
reduced by a factor of 5 should the need arise.
Robot Task
Time
to
Perform
Time to Perform
Task (Port 0)
Task (Port 1)
Retrieving a blank part
7.6s
7.7s
Placing a part in the hot embosser
6.8 s
7.1 s
Retrieving a part from the hot embosser
10.5 s
10.8 s
Placing a part in the taping machine
16.4 s
16.8 s
Retrieving a part from the taping machine
9.9 s
9.0 s
Placing a part in the functional tester
8.9 s
9.0 s
Retrieving a part from the functional tester and
15.7 s
15.5 s
placing it
Table 4-1: The operation times for each of the tasks of the robot while operating in low power mode. Both
ports had to be taught their points separately, resulting in slightly varied cycle times between the ports.
Operating in high power mode could reduce these speeds by a factor of 5 or more.
Each operation the robot can perform on the system starts and ends at a specific point
associated with the machine in question. Between each set of two points, the robot will follow a
specific path to keep from colliding with any system machines. The movement times between
each of these sets of points were then recorded for use in the simulation. Table 4-2 shows the
movement times of the robot between each pair of machines within the system.
64
Dispenser
Port
Dispenser
Port 0
Dispenser
Port I
HEM
Port 0
HEM
Port I
Taping
Start 0
Taping
Start I
Taping
End 0
Taping
End I
Functional
Tester
Port 0
Functional
Tester
Port I
0
Dispenser
Port I
HEM
Port 0
HEM
Port I
Taping
Start
0
Taping
Start I
Taping
End
0
Taping
FT
FT
End I
Port 0
Port I
O.Os
2.9s
4.3 s
4.3s
4.2s
4.8s
16.Os
16.0 s
16.1 s
16.3 s
2.9s
O.Os
4.3 s
4.3s
4.2s
4.2s
16.Os
16.Os
16.1 s
16.3s
4.3s
4.3s
O.Os
2.9s
1.6s
4.1s
12.6s
12.6s
12.7s
12.9s
4.3s
4.3s
2.9s
O.Os
1.7s
1.6s
12.6s
12.6s
12.7s
12.9s
4.2s
4.2s
1.6s
1.7s
O.Os
2.9s
12.7s
12.7s
12.8s
13.Os
4.8s
4.2s
4.1 s
1.6s
2.9s
O.Os
12.7s
12.7s
12.8s
13.Os
16.Os
16.Os
12.6s
12.6s
12.7s
12.7s
O.Os
2.9s
3.2s
3.7s
16.Os
16.Os
12.6s
12.6s
12.7s
12.7s
2.9s
O.Os
4.8s
3.7s
16.1 s
16.1 s
12.7s
12.7s
12.8s
12.8s
3.2s
4.2s
O.Os
3.Os
16.3s
16.3s
12.9s
12.9s
13.Os
13.Os
3.7s
3.7s
3.Os
O.Os
Table 4-2: The travel times of the robot between the machines of the system. These times are largely
consistent between ports that are far apart, but for ports close together the time to turn the effector head
starts to dominate.
Here there are much larger discrepancies between effector head 0 and effector head 1
when travel times are concerned. The largest of these discrepancies arises when the robot is
remaining at one machine and switching between the effector heads. This rotation of the end
effector takes 2.9 seconds. Similar time increases can appear when the robot is moving between
two machines which are close together. Larger travel distances, generally those taking longer
than 4 or 5 seconds, are nearly identical regardless of which effector head starts and ends facing
each of the machines in question. One additional note of significance is the directionless nature
of the robot motions from a timing perspective. Going from point A to point B and going from
point B to point A have been repeatedly demonstrated to have a timing difference of less than 0.1
seconds.
4.1.2 Simulation Organization
Using this data, a simulation of the robot's actions within the system could be run. This
simulation was used to determine the expected takt time of the system, as well as the hot
embosser utilization rate. The time step of the system was given as 0.1 seconds, with each
65
machine, including the robot, updated every time step. Machines that held a part longer than the
number of time steps corresponding to their cycle time were considered to have completed their
cycle. When moving, the robot's location was updated once sufficient time steps had passed for
it to have moved between the two machines in question. A similar method was used to determine
when it had completed an action. The simulation recorded the time steps at which each part was
processed by each machine, as well as the time steps when each part entered and left the system.
The method for task determination by the simulated robot was the same as used by the
actual robot, discussed in section 3.4.2. Tasks were again removed from the potential task list by
disqualifying tasks which were impossible because of the system state, then disqualifying those
that would cause the system to jam. The prioritization method was still used to some extent.
However, different cases did not take into account the state of the parts the robot was holding at
the time. This was done to enable rapid testing of a wide variety of prioritization cases, to
determine the best possible series of priorities.
4.2
Results
4.2.1 Current System Limitations
Because of the dominance of the system bottleneck, a straightforward calculation can be done to
determine the minimum system cycle time. Between the start of the hot embossing machine
cycles, the hot embosser must run and the part inside must be replaced. The running of the hot
embosser takes, as previously mentioned, 110 seconds. Replacing the part requires the extraction
of the part from the hot embosser, a minimum of 10.5 seconds; rotating the effector head, 2.9
seconds; and the placement of the new part in the hot embosser, a minimum of 6.8 seconds.
Thus, the absolute minimum cycle time of the system is 130.2 seconds.
4.2.2 Simulation
Using the prioritization detailed in section 3.3, the simulation was run to determine the expected
cycle time at steady state, as well as the hot embosser utilization rate. At steady state, the takt
time for the system is 136.4 seconds. The slight discrepancy between the bottleneck rate and the
simulation rate is caused by a slight delay in the communications between the computer and the
robot. This delay, on the order of 1/10 of a second, adds up to slightly more than a second over
the course of a cycle, and stems from the imperfect nature of the LabVIEW-RC+ interface.
66
Given the system, the hot embosser is able to finish its cycle before the robot has completed the
rest of the required actions for a completed part, resulting in a slightly longer cycle time.
4.2.3 Physical System
To compare to the simulation, data from the physical system was used on some of the occasions
where the system was run for longer than 50 parts. As the functional tester provides a timestamp
for each image taken, these timestamps could be used to provide the intervals at which the parts
were placed in the functional tester. This data was then used to determine both the average cycle
time and the consistency of the cycle times. A histogram of the cycle times is shown in Figure
4-1, which also shows that the cycle time is consistent to within several tenths of a second across
two separate runs of 50 parts each. The average cycle time for those parts was 141.5 seconds.
However, it is clear that the most common takt time is 141.6 seconds. This discrepancy was
caused by the small number of much lower cycle times.
Histogram of Part Takt Times
45
40
i
35
30
0
.0
2
25
20
15
10
5
0
<141.4
141.4
141.5
141.6
141.7
141.8
Time between cycles (second
141.9
142.0
142.1
Figure 4-1: Showing the consistency between cycles and average cycle time for the system, as determined by
the functional tester.
The variations in cycle times are approximately normally distributed, although four
cycles were significantly shorter than expected. The normal distribution is expected, as the cycle
67
time is the sum of a number of shorter operations, each with its own variance, implying an
overall normal distribution from the Central Limit Theorem. The faster cycle times did not
appear in any noticeable pattern within the runs, and vary in length from 139.2 seconds to 140.1
seconds. The slight variation in part time is likely owing to small variations in computer
operating times, as the operation times of the machines and movement times of the robot are all
highly consistent. While the load on the computer is not great, the communications between the
robot and the computer can be slow when a number of them happen at once, which occurs
periodically within the system.
Part Number
Cycle Time (s)
110
140.1
128
140.1
130
139.7
148
140.3
J5
139.2
J25
139.8
Table 4-3: The part numbers and corresponding cycle times for parts with much lower cycle times than
normally displayed by the system. These cycle times are between 1.5 and 2.5 seconds lower than expected
from the rest of the data. These lower cycle times likely result from computer communications discrepancies.
Once the initial cycle time data was taken, several alterations were made to decrease
cycle times. The functional tester code had previously waited 5 seconds for the comparatively
fast clamping operation. This time was shortened from 5 seconds to 2 seconds. The hot
embossing code had previously afforded no time for unclamping, which required the robot code
to account for this. This resulted in a 5 second dead time while the robot waited for the hot
embosser to open, regardless of how long previously the hot embosser had finished its cycle. The
code accounting for the unclamping time was thus transferred from the robot to the hot
embosser, enabling the overall system to be faster. The time the robot spent waiting for the
taping machine was also decreased, from 10 seconds to 0 seconds. This was done because the
taping machine process was fast enough that, should the robot ever interact with the taping
machine twice in a row, the taping machine would still already have finished its cycle. These
changes reduced the system cycle time from 141.5 seconds to 134.7 seconds. Figure 4-2
68
illustrates the new histogram of part takt times for the 43 parts made in a run after the changes
took place.
Histogram of Takt Times after System
Efficiency Modifications
50
45
430
-
35
-
-
40
25
20
15
10
5
n
<134.3
134.3
134.4
134.5
134.6
134.7
134.8
(s)
Time between cycles
134.9
135
>135
Figure 4-2: The takt time of parts after slight modifications to the hot embossing and functional testing code
to increase efficiency. The overall cycle time has decreased by almost 7 seconds, and there are fewer outliers.
4.2.4 Functional Testing Times
Although the functional tester in the current system only takes about 12 seconds to perform its
operation, longer functional testing times will be desirable in the future. The current time is
achieved by disabling the fluid flow and subsequent picture acquisition and analysis, which will
provide important fluid flow data in the future. In order to predict how this would affect the
system, the simulation was run using multiple processing times for the functional tester. The
results of this simulation are shown in Figure 4-3. The system cycle time increases linearly with
the testing time while the robot is travelling from the functional tester to the hot embosser or
removing a part from the functional tester when the hot embosser completes its cycle. The abrupt
spike occurs when the robot is performing an action during the completion of the hot embossing
cycle, as this prevents the robot from immediately travelling to the hot embosser. Once the
functional tester takes long enough that the robot no longer is in the process of performing
69
another action during the completion of the hot embossing cycle, the system cycle time lowers to
a new consistent rate until the functional testing time is at least 55 seconds long.
Simulated Cycle Times as a Result of Increased Functional Testing Time
I aI JJI
-- Hot Embosser Cycle Time
CD
E
a)
160 k---
4-- 0
-- -
- ----
L
- --
150 F
*
0
E 140
a)
C,)
.--
C/)
I.
0
- --
--- -- - - -
-
-
------
----------
--
.
-------
170 F
130
120 H
I
110'
10
I
I
I
20
I
40
30
Functional Testing Time
50
60
Figure 4-3: The simulated system cycle times as a function of the functional testing time. Cycle times increase
linearly with the functional tester while the robot completes its task shortly before the hot embosser opens.
The peak corresponds to the robot performing an action while the hot embosser is waiting for a part.
As the system was programmed assuming the hot embossing machine was the bottleneck,
an alternate set of priorities provide different system cycle times with respect to functional
testing time. One alternate set of priorities, which are listed in the order a part would go through
the system (i.e. being removed from the functional tester is the lowest priority, as it occurs last),
has its data shown in Figure 4-4. Here, the initial linear trend and spike are the same, but the
value that occurs during longer functional testing cycle times is much lower.
70
Simulated Cycle Times as a Result of Increased Functional Testing Time
180 ~~
I
-Hot Embosser Cycle Time
170-L-
a)
E
160-
-----
4
---
150-
E 140-
-0
0
----
r
a)
- - - --
U)
00 00
00
----------------
1307---
120110
)
1
-
C,)
--------
--- -- ------
1
I
I
I
I
I
I
20
40
30
Functional Testing Time
50
60
Figure 4-4: The system cycle time as a function of the functional tester processing time, using a different
priority set for the robot. While similar to Figure 4-3, the cycle times after the peak are lower.
71
72
CHAPTER
5
INITIAL EXPERIMENTS
OF
SYSTEM CHARACTERIZATION
When characterizing a system for process control, it is important to identify all sources of
variation in an attempt to minimize as many of them as possible. To this end, a series of
experiments were performed to identify the various sources of variation.
5.1
Experimental Method
To ensure consistency between experiments, a number of steps were taken. The workpiece
blanks, which came in packets of ten, were numbered by hand and placed in the dispenser. The
order of the parts was not shuffled prior to numbering for the initial system characterization
experiments, but was shuffled prior to the designed experiment described in Section Error!
Reference source not found.. This was done to respectively preserve and remove any variation
that might be inherent to the packets of ten parts.
Once the parts had been labeled and placed in the dispenser, all portions of the system
were turned on. Between 2 and 5 sample parts were made by placing them in the hot embosser
using the RC+ interface for the robot, with the hot embosser then being run through the manual
start on its VI. These parts were placed in the taping machine by hand, which was started through
the RC+ interface. Five blank parts previously designated as "taping machine pushers" were then
used to move the sample parts through the taping machine. The sample parts were placed in the
functional tester, whose VI was triggered through the manual override. The channel widths of the
sample parts were examined to make sure that the system was behaving as it had been the
previous time the system had been run. For more information on the machines used to make the
parts, see Bageant [12] and Reyda [13].
After the system was functioning as expected, the parameters were set in the robot
labview VI. For all experiments, the functional tester and hot embosser started with no parts, and
73
the taping machine started with 5 unembossed parts in it, which were removed manually and not
accounted for by the system programming. The system was then started and observed to make
sure that all of the machines were triggering correctly.
Periodically, the taping machine would jam because of tape sticking to the belt. When
this occurred, the part immediately prior to the jam was removed from the taping machine, along
with all subsequent parts. This removal was ideally done prior to the cutting step of the taping
process [see Reyda [13]], as this prevented any incorrectly located parts from being damaged by
the cutter. The tape was then sliced using a razor blade to get a clean edge on the parts, and the
parts were placed back in the cutting machine after the cutting step. These parts were placed one
at a time in the proper order, with each subsequent part being placed after the previous part had
been removed by the robot.
The robot was run in low power mode for safety purposes, so the system was rarely
stopped while running to perform maintenance. In addition to the removal of parts from the
jammed taping machine, parts would periodically get flung by or jammed in the cutter,
necessitating their relocation to enable the robot to pick them up. Parts that were not successfully
picked up by the robot were also placed in the functional tester manually. Approximately 3% of
the time, embossed parts would also inexplicably be dropped from the robot. These parts were
placed in the taping machine manually.
Once the system had embossed all of the blank parts in the dispenser, the robot would
shut off. The data from the measured parts was then compared with the raw image data to
determine which parts had not been measured. These parts were identified by their number and
placed in the functional tester a second time to ensure complete measurement. Parts that had
been visibly mis-measured were also placed in the functional tester a second time, and the new
measurement used.
5.2
Blank Parts
Initially, the blank parts for the system were cut from sheets of PMMA using a laser-cutter.
However, because of poor quality control of the sheets, the parts cut, while nominally 1.45 mm
thick, would range from 1.1 mm to 1.8 mm, which was a sufficient range to cause handling
problems. This necessitated the switch from laser-cut PMMA to injection-molded PMMA parts
from QuickParts, which have a thickness tolerance of 0.01 mm. Part orders are customized, but
74
thus far have been for lots of 1000 parts each. Blanks arrive in groups of ten, although it is
unclear if these groups are manufactured in sequence. Groups of ten are loose within the order
box, so overall manufacturing order is unclear.
When switching from the first lot of 1000 parts to the second lot of 1000 parts, parts were
made consecutively to see if the new parts would be noticeably different from the old parts. The
relevant portion of the corresponding run chart is shown in Figure 5-1. During the creation of
these parts, no other changes were made than the order number for the blank parts. At the point
of switching between orders, denoted by the red dotted line, a small change in the overall
channel width is noticed. After approximately 6-10 parts, however, this change has been
reversed.
84
82
80
78
76
74
72
70
S*
12
14
16
+1
18
*
Parts Made from Two Different Orders of Blanks
20
22
Part Number
24
26
28
30
Figure 5-1: A run chart showing parts made from two different orders of the PMMA blanks. The red dotted
line indicates where the run switched from the first order to the second. A small but noticeable drop in the
average channel width occurs at this point.
To determine the statistical significance of the observed drop, an ANOVA test was done
using JMP. The results of this test are shown in Figure 5-2. The ANOVA test concluded that
there was at least a 98% chance of a mean shift between the two groups of parts. However, at the
time of the part switch, the system was largely not in a state of statistical control, as can be seen
in Figure 6-4. This makes the ANOVA test less reliable, as the standard error in each case is
inaccurate.
75
AwOneway
Analysis of Mean Column Width By Part Order
81.5
81-
805
-c0
:80r-E79.5-
U379C:
S78.578
77.5old part
new part
Part Order
A4Analysis of Variance
Smxwce
Part Order
Error
C. Total
DF
1
16
17
Squares Mem Sqpre
5.584127
5.58413
14.150335
0.88440
19.734463
F RaiD Prob > F
63141
0,0231*
A Means for Oneway Anova
Level
Number
new part
11
old part
7
Mean StdError Lwer95% Upper95%
79.0707
0.28355
78A70
79.672
80.2132
035545
79A60
80.967
Std Error uses a pooled estimate of error variance
Figure 5-2: The box plots of and the results of an ANOVA test on the mean channel widths the parts
immediately preceding and immediately following the switch in part orders. The probability of a mean shift
occurring given the data is greater than 98%.
In addition to the slight shift when switching from one order of parts to the next,
variations have sometimes, but not always, been noticed between the packets of 10 that the parts
are received in. One example of this shown in Figure 5-3, with the data drawn from a run of 60
parts. (Parts J61 to J120 were made on the same day and under the same forming conditions as
parts J1 to J60, but at a different time of day.) This run chart shows the average channel width of
the 60 parts in the order they were formed. During this run, parts J91 to J 100 show a clear
increase in both average channel width, as well as variance. As parts from this run were grouped
in the original packets of 10, this increase in both width and variance is believed to be because of
76
the particular packet of those parts. However, the other five packets that comprise the run are
indistinguishable, suggesting that packets will not always be a source of variation.
Parts J61 to J120
90
-70
6
5
S60
60
70
80
90
Part Number
100
110
120
Figure 5-3: The average channel width of parts J61 to J120, where parts J91 to J100 have both a higher
average value and a significantly higher variation than the rest of the parts. Each ten parts came from its own
packet, although only one of the six packets used appears to be distinct.
An ANOVA test was then done to compare the extreme ten-part group to the rest of the
parts, to determine if a true mean shift happened. The results of this ANOVA test are shown in
Figure 5-4. Based on this data, a clear mean shift has been detected for the ten parts between J91
and J100. However, while those parts did correspond to a distinct packet, it is not certain as to
whether the blanks used were the source of the increased mean, or another parameter was at
work.
77
1iIOneway Analysis of Average Channel Width By Offset
0C
U-,
0
80
C
CU
75
70-
n
y
offset
4Analysi of Variance
Sowte
Offset
Error
C. Total
DF
1
58
59
Sum of
Sqam Mean Square
26010744
260107
257A7718
4A39
51758462
F Rato h
58.5925
> IF
<.0001*
Means for OnewayAnova
Level Number
Mean Std Error Lowser95% Upper 95%
n
50 73.7897
029797
74386
73.193
80.710
78.043
0.66628
10 793765
y
Std Error uses a pooled estimate of error variance
Figure 5-4: The boxplot and ANOVA test for the group of ten parts which appear to be outliers. Based on this
run data, something almost certainly changed. However, whether this was due to the ten part group or some
other factor is uncertain.
5.3
Hot Embossing Machine
When the hot embosser runs, it has a set temperature and force for part forming. Both of these
parameters are closed-loop controlled, and their values recorded. By reviewing the temperature
and forming force over a series of runs, the variance of the hot embosser's process parameters
can be determined.
78
Figure 5-5 shows the force applied by the hot embosser over the course of 60 cycles. The
hot embosser is first brought to 100 N for the heating of the part, then the force is increased to
1000 N for the forming of the part. The system has a high overshoot before settling to the set
force. This overshoot should not occur, and is indicative of an improperly tuned force actuator.
This may cause over forming of the parts, and thus should be corrected before subsequent
experiments are done. The noise is caused by electrical interference from the heaters in the
system. However, in spite of these things, the force profile is highly consistent across the 60
parts.
The temperature profiles are shown in Figure 5-6 and Figure 5-7. Figure 5-6 shows the
temperature profiles of the lower heater, positioned below the part, and Figure 5-7 shows the
temperature profiles of the upper heater. The upper heater has slightly more variance during the
initial heating and late cooling processes, although both heaters have much higher variance
during those portions. During the forming process, which occurs between 30 and 60 seconds, the
temperatures are reasonably consistent. Looking over the 60 parts formed, no clear trend can be
seen from the heater temperatures.
79
Actuator Force over 60 Parts
60
55
10W
50
45
800-
40
35
CD
E
30 z
.
a)
600-
0
LL
25
400-
20
15
200
10
5
n
0
40
20
60
Time (s)
100
80
Actuator Force over 60 Parts
60
1 180-
0
UL
55
1 160-
50
1 140-
45
1120-
40
11001080-
35.o
E
30 z
1060-
25a
1040-
20
15
1020-
10
1000
5
980
60
65
70
80
75
Time (s)
85
90
95
Figure 5-5: The force applied by the actuator on the part during forming, over many cycles. While slightly
noisy, the applied force is highly consistent between cycles.
80
Upper Heater Temperature over 60 Parts
120
60
110
55
50
45
? 100
40
35.
90-
E
E
30z
25
80
a)
20
70-
15
CL
10
60'
5
40
20
0
60
Time (s)
80
120
100
Upper Heater Temperature over 60 Parts
60
55
118,
50
116
45
40
S114a) 112
-
~35
CL
-
-
30 z
25
20
1
M 110
L 108
10
1061
5
40
50
70
60
Time (s)
80
90
Figure 5-6: The upper heater temperature of the hot embosser over 60 part cycles. There is increased
variance during the heating and cooling steps. During the forming step, temperature is consistent to within
about 1 degree Centigrade. No clear trends are shown.
81
Lower Heater Temperature over 60 Parts
60
55
110
50
45
2 100
40
E
35
90
-
C-
E
30Z
Cu
8025
20
15
70-
10
60 -5
0
20
40
60
80
100
Time (s)
Lower Heater Temperature over 60 Parts
60
55
116-
50
c
114
40
35
E c112 -
-E
30 z
25
110
m
20
0108
15
10
106-
5
40
50
60
70
80
90
Time (s)
Figure 5-7: The temperature of the lower heater during part forming over 60 part cycles. Because of its lower
power, the lower heater had a lower overall temperature than the upper heater, as well as a longer rise time.
5.4
Functional Tester
Because the measurement of the functional tester is the main indicator of quality for the entire
system, a good characterization of this measurement is important. When parts are placed in the
functional tester both the lighting and the position play a part in the measurement determined by
the image-finding algorithm. Because parts are placed in the functional tester by the robot, the
82
repeatability of the functional tester was measured by placing the same part in the functional
tester 50 times, using the robot. Figure 5-8 shows the average of the four channel measurements
as a function of the measurement. The grand mean of the data was 65.3 pm, with a standard
deviation of 0.31 pm.
Functional Tester Repeatability Test
66.4
66.2
66
4
*
65.8
65.6
S65.4*
4
65.2
4
*
~65
64.8
64.6
0
10
20
30
Part Placement Repitition
40
50
Figure 5-8: The measurements taken by the functional tester when the same part was placed into it
repeatedly. These measurements are the average of the four channel widths visible to the functional tester.
The grand mean is 65.33 sIm, with a standard deviation of 0.31 pm.
To better understand the data, a normal probability plot was created. This normal plot is
shown in Figure 5-9. The data is not normally distributed, as channel widths substantially above
the mean are more likely than would be expected in a normal distribution. This may be due to
part placement periodically causing a large change in the measurement software's pattern
recognition.
83
Normal Probability Plot for Functional Tester Variation
-
---
---
4--4-
-
--
--
-
--
T--
--
-
-----
------
-
-
-
-
-
-
---
-
0.99
0.98
0.95
0.90
*+
0.75
+-
(U
-0
0.50
2..
IOL
0.25
--
-1-
64.8
- --L- - - - - - -L - -- -- - - - - - -- - - - -- - - ---- - - -L ---- --- - ---- - -- - -
65
- -r-- - - - - - - - - -- - - - - -- - - ---- -
65.6
65.8
65.2
65.4
Average Channel Width (gm)
-
--
-
0.10
0.05
0.02
0.01
-
--
66
Figure 5-9: A normal probability plot for the functional tester repeatability test. The data is not completely
normally distributed, as higher values are more likely than would be expected.
Since the functional tester measures four distinct channels and then averages them, some
additional insight can be gained by looking at the individual channel measurements. Figure 5-10
shows the averages of each of the four channels, with the standard deviations of the
measurements indicated. The average of the four channels has a smaller standard deviation than
any of the individual channels, but even with the larger standard deviations, the variation
between channels is more than can be attributed to measurement error. However, the averaging
of the four channels helps create a more repeatable measurement. None of the four channels
appear to have a significantly greater measurement variability.
84
Functional Tester Repeatability by Channel
with One Standard Deviation Shown
67
66.5
E
66
65.5
65
64.5
AL
64
63.5
63
Channel 1
Channel 2
Channel 3
Channel 4
Average
Figure 5-10: The averages of each of the four channels measured during the functional tester repeatability
test. The error bars shown correspond to one standard deviation. The inter-channel variation is greater than
the variation in the measurements for a given channel.
In order to determine the effects of lighting on the functional tester measurements, two
experiments were done, considering the primary lighting source and secondary lighting sources.
The main lighting source for the functional tester is a light box with a dimmer, which can be
adjusted. A number of parts were measured, then the primary lighting was slightly increased, and
the parts were measured again. Figure 5-11 shows part El1 under both light settings for
comparison.
Figure 5-11: Part Eli with the light source on a lower setting (left) and a higher setting (right). The higher
light setting has reduced the amount of shadow around the channel, which caused the edge detection software
to measure the right picture as having a channel 4 ptm narrower.
85
Owing to the decreased shadow resulting from a higher intensity light source, the parts
were measured to have narrower channels. Figure 5-12 shows the measurements for each part
under both measurements. After the light was increased, parts were measured as having channels
approximately 4 pm narrower. Because of how the edge detection software works, shadows on
the parts register as the channel edges. This causes parts with more shadow to appear to have
larger channels. However, as long as lighting is consistent, process control can be performed on
the parts, as the parts will have the appropriate relative widths and an increase or decrease in
channel width can be detected.
Effect of Primary Light Source on Measured
Width (E Series)
72
?70
A6
64
0
10
20
30
Measurement
Al6 A0 A* AANInitial
A
A
AU A
50
40
Part Number
A
A Increased Lighting
A
60
70
80
90
Figure 5-12: The channel widths recorded by the functional tester under two conditions with the primary
lighting source. When the lighting was increased, the average part width decreased by about 4 pm, owing to a
decrease in the number of shadows seen by the optical measurement.
In order to determine the effect that secondary lighting had on the system, the same part
was measured under a variety of different lighting conditions. The part was measured 10 times
each at various times of day, on both cloudy and sunny days. The overhead lighting was on for
all of these measurements. The part was also measured at night, with the overhead lighting off.
Figure 5-13 shows the average measured width and standard deviation as a function of the time
of day that the measurements were taken. The weather conditions have also been indicated. As
86
the variations present in these measurements are within those expected by repeated functional
testing measurements, the secondary lighting conditions can be concluded to not be a significant
source of system variance.
Secondary Lighting Test with 1 Standard Deviation
Shown
66.7
66.65
66.6
66.55
66.5
.
66.45
*Cloudy
66.4
0-A
0 Sunny
* 66.35
U
A Dark
66.3
X Lights Off
66.25
66.2
66.15
12:00
13:12
14:24
15:36
16:48
18:00
Time of Day
19:12
20:24
21:36
Figure 5-13: Measurements from the same part at varying times of day, as well as with the overhead lighting
off. These tests show that the secondary lighting conditions do not significantly impact the part
measurements.
In order to make sure that the zoom levels of the camera had not been changing over
time, an optical target was obtained, which was then measured using the functional tester. A
portion of the resulting image, converted to binary, is shown in Figure 5-14. Each stripe is 50 gm
wide, and the stripes are 50 gm apart. The stripes and the spacing between them were then
measured at varying locations along the image. The average values for both the stripe and
spacing width, as a function of image position, are show in Figure 5-15. The 50 gm stripes and
spacing correspond to a distance of 80 pixels, showing that one pixel corresponds to 0.625
sm.
This is consistent with the original calibration of the functional tester, so the zoom level is not a
source of variance for the system.
87
Figure 5-14: A portion of the optical target, as seen from the functional tester. This image was used to
confirm the calibration of the functional tester. The lines on the optical target are exactly 50 pm wide.
88
Widths Measure by the Functional Tester
100_
Line
Between Lines
''
90-
c
80-
UJ70-
60
0
5
10
15
20
25
Position
Figure 5-15: The measured spacing of the 50 pm lines and between those lines on the optical target image, at
25 distinct points along the image. The line width is 80 pixels, indicating that I pixel corresponds to .625 ptm.
5.5
Taping Machine
To determine the variation caused by the taping machine, several parts were put through the
taping machine, measured, then put through the taping machine again. Tape was removed
between cycles. This cycle was repeated 10 times for each of 6 parts. Figure 5-16 shows each of
the 60 measurements obtained from this experiment. The mean value and standard deviation for
each part has been indicated. While the taping machine alone provided a standard deviation of
about 0.3 pm, the combination of the two results in a measurement standard deviation of
between 0.35 jim and 0.8 gm, meaning that the taping machine is an additional source of
variation for the system.
89
Taping Machine Variation Tests
72
o
=0.7
LIM
-----------
u = 68.92gm
I--,
68
p
3 pm
p_=67*77m_ (Y =0.5 pm
1
a =0.44 m
*
p70O4pm
70
= 68.62pm
*
o =0.45 pm
___a
p =67.48pm o=0.65 pm
cc
66
-
*
p64.86pm
ai =0.53 pm A
0
0
-----
-------------------------------------------------
Part 1
Part 2
Part 3
Part4
Part5
" Part 6
" Part 7
0a) 64
p = 62.98pm
*
"
"
"
"
Y =0.53 pm
-
--
62
60
C
1
2
3
4
5
6
Trial Number
7
8
9
10
Figure 5-16: The test for taping machine variability. Six parts were put through the taping machine 10 times
each, with the resulting measurements then recorded. The mean and standard deviation for each part are
indicated. The taping machine is a non-negligible source of system variation.
90
CHAPTER
6
STATISTICAL PROCESS CONTROL
RESULTS AND DISCUSSIONS
In order to be able to run the system with appropriate feedback, the system first must be
characterized. To obtain accurate characterization data, the system must be in a state of statistical
control. As the system was initially not in control, sources of variation were removed until
control was regained. Once this had been done, a designed experiment was run to characterize
the effects of various process parameters on the system.
6.1
Statistical Control
In order to successfully implement feedback on the system, experiments needed to be done while
the system was in a state of statistical control. During initial runs, the system was not in a state of
statistical control, prompting a number of these runs to be done. Table 6-1 indicates the different
runs that were done, the date each was done on, the number of parts produced, and any
significant factors about the setup for each run. Unless specified otherwise, the runs each used
the same settings on the hot embosser. The forming temperature was set to 115 C, the cooling
temperature was set to 120 C, the heating time was set to 60 seconds, the forming time was set to
30 seconds, the cooling time was set to 20 seconds, and the forming force was set to 1000 N.
91
Date
Designation
Additional Notes
Number
Letter
of Parts
E
1/16/14
60
First run with more than 5 parts made in sequence
I
3/13/14
60
Second run attempting statistical control, 60 parts
J
4/14/14
120
The first 60 parts used two different orders of blank parts,
the second 60 parts used a forming temperature of 120 C
K
4/16/14
60
The forming temperature was 120 C
L
4/24/14
60
The forming temperature was 120 C, the heating time was
50 seconds, and the cool time was 30 seconds
Table 6-1: Showing the different part runs done to attempt to achieve statistical control, along with the letter
used to designate each of those runs. Unless specified otherwise, each run had a forming temperature of 115
C, a cooling temperature of 60 C, a forming force of 1000 N, a heating time of 60 seconds, a forming time of
30 seconds, and a cool time of 20 seconds.
Figure 6-1 shows the first run chart created by the system. An upward trend begins after
about the first 60 parts. The upward trend can be more clearly seen in Figure 6-2, the CuSum
chart for this run.
E Series (Initial Experiment) Run Chart
70
168
~66
* .
~64
..
.
.
..
.
..
62
60
58
0
10
20
30
40
Part Number
50
60
70
80
Figure 6-1: The run chart for the first run of the system to make a statistically significant number of parts.
While the system was in control for the first 60 parts, a mean shift occurred at the end.
92
Initial Process Run CuSum Chart
14
212
10
g8
6
2
0
,+,
5
2
-4
e
w+,
*
*
. 4 0
15
20
25
30
Part Grouping (n =3)
Figure 6-2: The CuSum chart for the initial process run, using groups of n =3. With this chart, the process
mean shift can clearly be seen.
Several sources were considered as the cause for this mean shift. The measurements
taken by the functional tester were determined to be consistent across repeated measurements, as
discussed in Section 5.4. Because of the passage of time, a second run was done to determine if
the mean shift was still present. The run chart for this process can be seen in Figure 6-3, which
again contains a mean shift. However, this mean shift starts at the beginning of the process, then
levels off. This, combined with the channel width values from the previous long run, implies that
the mean shift was a long-term occurrence that continued between runs.
The tool for the system was also cleaned, by soaking in a bath of acetone for several
days, then being wiped by a soft-brushed dermal. This process is used to reduce the amount of
PMMA adhering to the tool, as the repeated manufacturing of parts can cause slight buildup,
which would widen the tool channels and thus the part channels.
93
I Series Run Chart
74
~70
*
~68
+ *
***b
~66.
264
# 62
0
10
20
30
Part Number
40
50
60
Figure 6-3: A run chart for the second of the long runs, again showing a mean shift. In this process, the mean
shift starts at the beginning and then levels off.
In order to determine the potential causes of a long-term mean shift, various factors were
considered. Owing to the random nature of the order in which the raw material was used, it was
discounted as the cause for a long-term mean shift. The taping machine was also discounted, as
closer studying of the images showed that actual quality of the embossing on the parts had
changed, rather than the shift arising from a difference in the tape quality.
The displacement of the hot embossing machine was examined to see if parts had been
deforming the same amount under the applied force and displacement. However, closer
examination showed that the LVDT used to measure force had been broken for the duration of
both long runs. As it only recorded data and did not provide feedback to the system, this failure
had not impacted the overall system, but did result in a lack of data pertaining to the deformation
of the parts in each run.
Two issues were noted with the hot embossing machine. One source of error was
determined to be the heaters for the system, which were then recalibrated. The electronics were
also modified to increase shielding, and components were replaced in an attempt to remove any
defective parts of the circuit. A third run, the J Series, was then attempted. During this run, the
last of the initial order of blank parts was used, prompting the use of the second order as well.
This shift happened at part J19. The run chart for the J Series can be seen in Figure 6-4, which
shows a largely in-control process, after a 12-part startup transient. This startup transient,*
94
however, was only observed in this run, and is not expected for the system. Because of how the
hot embosser is heated, all thermal cycling is rapid and occurs while the part is being produced.
This means that there should not be a startup transient of any source within the system. The
cause of this startup is currently unknown.
J Series, Parts 1-60
90
+
85 -
80
*-
75.
65
-
70
0
10
20
30
40
50
60
Figure 6-4: The run chart for the first 60 parts of the J Series, or third long run. The initial portion of the run
shows what appears to be a startup transient, which then levels off, with the rest of the run being largely
uniform. A slight discontinuity occurs between parts J19 and J20, where the blank parts were switched from
the initial batch ordered to the second batch. However, this switch does not coincide with the end of the
startup transient.
These parts was made on the same day, slightly over an hour after the previous run had
been made, and none of the equipment was turned off between the two runs. The same run letter
was thus used for these parts as well as the parts previously formed. Figure 6-5 shows the run
chart for parts J61 to J120. This process is in control for the majority of the run, but there is an
upwards mean shift between parts J90 and J 100. This mean shift is thought to be because of the
blanks, which come in randomly sorted packs of 10. The cause of the large mean shift between
parts J60 and J61 is unknown.
95
J Series Run Chart, Parts 61-120
85
83
i81
79
10
*
71
.
~.
PC 73
75
****
*
79
477
69
67
65
60
70
80
90
Part Number
100
110
120
Figure 6-5: A run chart after the system appeared to be in control. While the process is almost in control,
there is a mean shift for approximately ten parts between J90 and J100. There is also a significant mean shift
between parts J60 and parts J61, although the only change was that the system was left on for a little over an
hour between the parts.
Although the process appeared to be in control, at least for sets of 60 parts, the channel
width was larger than desired. To remedy this, more parts were made, using a forming
temperature of 120 C instead of the 115 C used previously. This resulted in a well-controlled
process, the run chart for which can be seen in Figure 6-6. The average channel width dropped
from about 75 pm to about 65 gm, which is much closer to the desired result. During the
beginning of the K series run, two parts appeared to be outliers. The first part created had the
lowest average channel width, which was much smaller than expected given the variance of the
system. Similarly, and the fourth part created had an the highest average channel width which
was also larger than expected given the variance of the system. The cause for the narrow outlier
is unknown, but the fourth part, with its high value, is thought to be due to the tape not properly
adhering to the part, preventing a good measurement of the part walls. The image corresponding
to part K4 can be seen in Figure 6-7, with the large number of bubbles on the surface of the part
being caused by improper taping.
96
K Series Run Chart
68
67
65
I
64
63
Q 62
61
*
66
60
59
0
10
20
I
50
40
30
60
70
Part Number
Figure 6-6: The run chart for the K series, with the forming temperature set to 120 C instead of 115 C. This
caused the parts to have a much lower channel width, which was the desired effect. The process continues to
be in control.
57.94 urr
6.32 ur
56.14
m
6.88 Um
Figure 6-7: The high outlier from the K series, part K4. The tape has not properly adhered to the part,
causing large amounts of bubbling, which may have prevented the part from being properly measured.
At this point, several slight adjustments were made to the system. The heaters were
observed to be lagging slightly, so the PID controllers on the heaters were tuned to better match
the desired temperature profile. This enabled the heating time for the system to be decreased
97
from 60 to 50 seconds. However, the cooling time was increased from 20 to 30 seconds after the
temperature profiles were observed not to decrease as fast as previously anticipated. The linear
air spring was replaced, as it had stiffened slightly, causing a dramatic increase in unclamping
time for the hot embosser. To make sure that the process was still in control, parts were again
made with the forming temperature of 120 C. The data from this run is shown in Figure 6-8.
L Series Run Chart
67
=66
*
0
~65
- 63
62
61
S60
59
58
0
0
10
20
30
Part Number
40
50
60
Figure 6-8: The process run again with the high temperature at 120 C after a number of minor hardware
tweaks. The L series pictured provides the same data from the K series run before the minor hardware
tweaks, indicating that the process is still in control.
In the L series, there are three parts which are lower than would be suggested by the
variance, parts L32, L36, and L37. The reason for this lower variance is also unknown. An
ANOVA test in JMP, show in Figure 6-9, indicated that the mean channel width between this run
and the K series was not demonstrably different. The normal probability plot for the combined K
and L series is shown in Figure 6-10, and indicates that the process is not normal, largely due to
the number of outliers with low channel widths. The process was ultimately determined to be in
control.
98
A Analysis of Variance
Source
Series
Effr
C.Total
SamOf
Sqwes Mean Sqmwe
0.4133
0.4133
1.8180
183A8867
18393001
DF
1
116
117
F Ratio ?Prob > F
05984
02790
A Means for Onmay Anova
evd Nu*er
Mem SWdEror Lower95% Upper95%
64A67
016514
63.813
K
58 641401
L
60 642624
016237
63941
64.584
Std Error uses a pooled estimate of error variance
Figure 6-9: The ANOVA test done between the K series and the L series, which shows no significant mean
shift.
Normal Probability Plot for K and L Series
0.997
0.99
0.98
0.95
0.90
+
"T
I
+
I
----
-----
-
I-----
-
0.75
-U
-0
-
-
-I
I-
0.50
- -- - ---
0.25
I
-
- ....I
~I
-
-
62
-
61
-
-
--
4
I
- - - - - T--------I
- ----
-
--
I
-
0.10
0.05
0.02
0.01
0.003
-
59
60
63
64
65
Average Channel Width (pm)
66
Figure 6-10: The normal probability plot for the combined K and L series. The process is not normal, largely
due to the number of outliers with narrower channels. The cause for these outliers is not currently known.
99
100
CHAPTER
7
PROCESS CHARACTERIZATION
USING DESIGNED EXPERIMENTS
To appropriately characterize the embossing process, a designed experiment was run to
determine the effects of specific process parameters on the final channel width. A full 33 factorial
test was selected, with 5 parts being created at each point. The forming temperature, forming
time, and forming force were the three parameters selected as inputs, with each being given a
low, medium, and high value. Table 7-1 shows the parameters altered in the experiment, along
with each of the three values of the parameters during the experiment. The full data resulting
from the DOE can be seen in Appendix C.
Parameter
Low Value
Medium Value
High Value
Forming Temperature
115 C
120 C
125 C
Forming Time
20 seconds
30 seconds
40 seconds
Forming Force
1000 N
1100N
1200 N
Table 7-1: The parameters to be altered during the designed experiment, as well as the values selected for
those parameters. A full 33 factorial test was selected for this experiment, with each point having five
repetitions.
7.1
Measurement Errors
Over the course of the DOE, several issues arose with the measurement tool, which was not
designed to measure as wide a range of parts as was produced by this experiment. Parts with
extremely wide channels incurred the problem shown in Figure 7-1. Part DOE 2, one of most
poorly-formed parts, had three channels which registered as extremely wide and one channel
which registered as significantly more narrow. Looking at the image more closely, it can be seen
that the edge detection software registered the inner edge of one of the channel walls, rather than
the outer edge. Parts DOE 1-10, excluding part DOE 4, all suffered from this error. These parts
101
correspond to a forming temperature of 115 C, a forming time of 20 seconds, and forming forces
of 1000 N and 1100 N.
Figure 7-1: One measurement error incurred during the DOE. The left image shows the measurements of the
four channels from part DOE 2. The left-most channel clearly has a much narrower measurement than the
other three, and upon closer examination, as seen in the image on the right, the software has measured the
distance from the outside of one channel to the inside of the other, rather than the distance between the
outside of both channels.
A second measurement error occurred when making very well-formed channels. When
the measurement tool was developed, the average channel width on parts was approximately 70
gm, and the software was calibrated accordingly. Because of this, some parts with narrow
channels had measurements with lower accuracy. Figure 7-2 shows both the pattern used to by
the measurement software to match parts, with channels approximately 70 pm wide, and a part
with channels much narrower than expected by the software.
Figure 7-2: The pattern used by the image matching software to determine that a part is present (left) and a
part which the measurement software had trouble detecting, owing to how narrow its channels were (right).
102
The most common measurement error in well-formed parts is shown in Figure 7-3. The
part in question can be seen to have two narrow channels, and two channels which are much
wider. A close-up of the base of the wider channels reveals that the outline of the channels has
been drawn several pixels away from the actual channel wall. Because the edge finding is
calibrated for the much darker walls of the less-formed parts, the lighter parts are not always
correctly measured. Channels with poor measurements were discounted in the DOE data.
Figure 7-3: A part where two of the channels have been measured, and a close-up of the two channels that
were improperly measured. The edge-finding has recorded the channels as being wider than they actually
are.
7.2
DOE Results
The channel width per set of parameters is shown in Table 7-2. This number was determined by
taking the average channel width of the four channels for each part, then averaging the result per
group of five parts with the same parameter values. The standard deviation and number of
samples is also indicated. Two parts, DOE 51 and DOE 117, were removed from the data list
owing to being significantly different from the other four parts in their groups, as they were thus
determined to be outliers. Parts DOE 92, DOE 98, and DOE 102 were slightly off from the rest
103
of their groups, causing the standard deviations of greater than 2 gm in the initial groups with a
forming temperature of 125 C.
104
Forming
Forming
Forming
Average Channel
Channel Width
Number of
Temperature (C)
Force (N)
Time (s)
Width (pm)
St. Dev. (pm)
Samples
115
1000
20
93.93
3.07
5
115
1100
20
91.45
3.69
5
115
1200
20
84.98
1.75
5
115
1000
30
80.07
1.33
5
115
1100
30
75.09
0.58
5
115
1200
30
72.96
1.22
5
115
1000
40
72.60
1.72
5
115
1100
40
70.64
1.12
5
115
1200
40
68.16
1.33
5
120
1000
20
68.46
1.82
5
120
1100
20
65.83
1.29
4
120
1200
20
65.03
0.82
5
120
1000
30
64.78
0.38
5
120
1100
30
62.29
1.41
5
120
1200
30
61.65
1.34
5
120
1000
40
63.78
1.19
5
120
1100
40
62.36
1.10
5
120
1200
40
61.54
0.92
5
125
1000
20
63.58
2.31
5
125
1100
20
63.39
2.47
5
125
1200
20
61.15
2.31
5
125
1000
30
60.83
1.12
5
125
1100
30
59.39
1.78
5
125
1200
30
57.51
0.37
4
125
1000
40
58.83
0.75
5
125
1100
40
57.47
0.56
5
125
1200
40
57.82
0.81
5
Table 7-2: The results of the hot embosser DOE. Five parts were made at each of three levels of the forming
temperature, forming force, and forming time. The average channel width, standard deviation, and number
of parts at each parameter are shown. Two parts were removed owing to being significant outliers.
105
The data is also shown as a series of three 3D mesh plots. Figure 7-6 shows the parts
which have been formed at 115 C. In this plot, most of the parts have channels much wider than
the tool width of 50 gm. Parts formed at this temperature have channels ranging from 68 to 94
pm, with parts formed at higher form times and forming forces having narrower channels.
Because this forming temperature is so close to the glass transition temperature of the PMMA
used, 114 C, the plastic does not easily flow, resulting in parts with poorly formed features.
DOE, Thot = 115 C
,-95
E
90
85
u70
20
< 65
1200
11501100
1050
1050
10004
1000 40
30
I-,.'
Force (N)
Figure 7-4: The average channel widths of parts formed at 115 C, as a function of forming force and forming
time. Parts formed at 115 C in this range have a much higher width than the forming parts, as the PMMA
only begins to flow at 114 C. Increased form time and force both result in smaller channels.
The average values for the parts formed at 120 C are shown in Figure 7-5. At this
temperature, like at 115 C, increased form time and forming force cause decreased average
channel width. Parts have significantly lower channel widths than those formed at 115 C,
however, with part widths ranging from 61 jm to 70 jim. At the highest forming force,
increasing the forming time from 30 seconds to 40 seconds does not decrease the channel width,
suggesting at a limit at this temperature and force.
106
DOE, Thot = 120 C
66
cu 64
CU
C2
> 60
1200
20
25
1150
30
1103
1050
1000
40
Form time (s)
Force (N)
Figure 7-5: The average channel width for parts formed at 120 C. Parts at this temperature, given higher
form times and forming forces, get closer to ideal channel width of less than 60 gm, but do not reach it at
these parameters. Increased forming force and form time both decrease channel width, except at the highest
forming force when
increasing the form time from 30 seconds to 40 seconds.
At the highest temperature examined, 125 C, the parts form-ed once again had narrower
channel widths. This data is shown in Figure 7-6. Here, a theoretical limit is again visible.
Increasing the force while the form time is 40 seconds and increasing the forming time from 30
seconds to 40 seconds at a forming force of 1200 N both do not provide significant decreases to
the part width. Because the measurement software measures the outside of the channel walls, the
minimum channel width expected is approximately 55pm. The parts with the smallest channels
formed at 125 C begin to approach that limit, indicating why the plot begins to plateau.
107
DOE, Thot =125C
64
E 63
CU
S58
20
57
12001150
1150
1100
1050
1000
40
3
Form time (s)
Force (N)
Figure 7-6: The average channel widths of parts formed at 125 C. Here, many of the parts are below 60 pm in
channel width, and the graph starts to level off at high form times and forming forces.
In order to get a better sense for how the data altered across all parameters, an additional
plot was created to compare the average channel width, the forming temperature, and the
approximate forming strain, computed by multiplying the forming force and forming
temperature. This graph, shown in Figure 7-7, indicates that, in the region explored, forming
strain makes a minimal difference at temperatures more than 5 degrees higher than the glass
transition temperature of the parts, while at lower temperatures, forming strain has a large
impact.
108
Hot Embosser Designed Experiment
80'
0
115E2
50
115
12032
125
104
4X
5
Force
Temperature (C)
*
t
(N*s)
Figure 7-7: The average channel width as a function of forming temperature and forming strain. Forming
strain is given by the forming force times the forming time. In this region, forming strain has a much larger
impact on the part at temperatures close to the glass transition temperature of the part.
Using a least squares fit in JMP to analyze the data, all the primary factors were found to
be statistically significant, as were all of the cross terms. The square term for force was not
statistically significant, but the square terms for forming time and forming temperature where.
The impact of each parameter is shown in Figure 7-8, along with the probability that the term in
question is significant. To determine the fit of the model, Figure 7-9 shows the expected values
plotted against the predicted values, and has a correlation of R-squared = .96, indicated that the
fit is good.
109
Parameter Estimates
Term
Estimate Std Error t Ratio Prob>jtj
Intercept
T.hot
359.09739 7.388907 48.60
-2.185614 0.055425 -39.43
Force
-0.019084 0.002308
t-form
(Thot-119.018)*(TLhot-119.018)
(Thot-119.018)*(Force-109554)
(Force-1095.54)*(Force-1095.54)
(T_hot-119.018)*(tiform-28.8393)
(Force-1095.54)*(tform-28.8393)
(tform-28.8393)*(tform-28.8393)
-0.494235
0.3163492
0.0041442
1.8417e-5
0.1334081
0.0008571
0.035343
0.025935
0.017666
0.000645
3.962e-5
0.008085
0.000293
0.004118
-8.27
-19.06
17.91
6.43
0.46
16.50
2.92
8.58
<.0001'
<.0001*
<.0001*
<.0001*
<.0001*
<.0001*
0.6431
<.0001*
0.0043*
<.0001*
Figure 7-8: The impact of each term and cross-term, along with the probability that the given parameter is
statistically significant. All parameters except for the force curvature term are highly significant.
1
-
-- ---- ---- ---
---
95
90
85
4.)
0
80
U)
U)
75
70
.
...........
...
65
55
60
65
70
75
80
85
90
Average Predicted P<.0001 RSq=0.96 RMSE=1.965
95
100
Figure 7-9: The residuals for the least-squares fit model of the DOE data. The predicted fit is highly
correlated with the data.
110
CHAPTER
8
CONCLUSIONS
Microfluidics devices are important for the medical industry, and research is currently ongoing
about their manufacturing. Injection molding, while common in industry and higher-rate than
many other methods, has an undesirable start-up cost and initial time investment. To investigate
a method with both cheaper and more flexible tooling, a factory was created which used the
method of hot embossing parts to create the microfluidics features. Due to the eventual desire to
mass-produce embossed microfluidics devices, the consistency of the manufacturing process was
crucial.
Using previously built machines, this small factory was constructed which could create
microfluidics parts with a takt time of 135 seconds. Parts were then made in batches of 60 and
the sources of variation within the system examined and reduced until the system was in a state
of statistical control. Once this was done, a designed experiment was run on the hot embosser
using the full system. A least squares regression analysis on the data gathered by this experiment
determined that the forming time, forming temperature, forming force, all cross-terms, the square
term for forming temperature and the square term for forming time were all statistically
significant. More than 1000 parts were made using this system, which had a minimized cycle
time in order to quickly produce parts.
To create this factory, an Epson GlO robot was programmed to move parts throughout
the system and interact with the existing machines. The motions of the robot through the system
were set to enable parts to be placed in each of the machines with low positional variation. The
robot was programmed to determine which tasks could be performed at a given time, and then to
select a task to perform based on a pre-determined list of priorities. The robot software was then
coordinated with the LabView software for the other machines to create a fully automated
111
system. A simulation of this system was created to verify that the system was operating as
expected, using the expected and actual cycle times as a metric.
Sources of variation within the system were identified. The hot embosser, given
consistent settings, was shown not to be a significant source of cycle-to-cycle variation. The
taping machine was shown to not introduce a significant source of variance to the system, as was
the placement in the functional tester. Secondary lighting of the functional tester was shown to
not be a source of variance for the system. Primary lighting was shown to be a source of
variance, which is why the primary lighting was held constant through the manufacture and
testing of all parts.
When considering the takt time of the system, several parameters are relevant. The hot
embosser, which is the system bottleneck, may be able to have a lower cycle time if the forming
time is decreased, and the other parameters raised to compensate for this. Increasing the
processing time on the functional tester also impacts the takt time of the system, depending on
the series of actions the robot will perform. In one experiment, when the functional tester was
unable to provide a 'done' signal, the robot switched to a different order of actions. When the
functional tester issue was remedied, the order of actions once again changed over a period of
several parts, before finally settling at its usual steady-state order of operations.
While the designed experiment indicated that more well-formed parts could be created by
increasing forming temperature, forming force, and forming time, several issues were noted that
were not captured in the channel width data. The difficulty of the functional tester to recognize
well-formed parts would make cycle-to-cycle control on parts of that quality difficult, as
feedback would not provide the necessary information. The well-formed parts also cause more
problems with the taper either having tape stuck to the belt, the cutting machine failing to cut, or
the robot failing to pick up the part. This may be due to the bulk deformation of the most wellformed parts, which corresponded to an approximately 3.5% increase in area. While this is not a
large increase in area, the corresponding slight change in shape of the part may have interfered
with the part registration against hard edges, such as those in the taping machine and the talon on
the robot.
112
8.1
Next Steps
Now that the system has been confirmed to be in control, and the designed experiment has
found the impacts of the hot embossing parameters, a closed-loop cycle-to-cycle control of the
system can be implemented. An appropriate control scheme will have to be selected, as the
current taping machine causes a buffer of 5 to 6 parts between the hot embossing machine
operation and the measurement operation. The creation of closed-loop cycle-to-cycle control will
also require the alteration of the measurement code to directly output the measured data into
LabVIEW, rather than recording it in a separate spreadsheet file. Once this has been done, the
hot embossing software can be modified to reference global variables in the functional tester
software, and use those to compute the appropriate process parameters.
To test this, a number of experiments can be done. A step change in part quality can be
induced by switching from parts with the glass transition temperature of 114 C to parts with a
higher or lower glass transition temperature. A similar step change can also be implemented by
simply changing the reference value for the desired channel widths of the parts.
To improve the system, a few additional changes may be done. By altering the taping
machine, the buffer between the hot embossing machine and the functional tester can be
decreased by several parts. The functional tester software should also be modified to improve the
reliability when observing parts with thin walls. Additionally, some sort of filtering on the
functional tester results, to either discard or modify results where one channel has been
incorrectly measured, would greatly improve the overall accuracy of the automated software.
Once these things have been done, the system can be modified with a new bulk metallic
glass hot embossing tool and a new pattern for the measurement software. This would enable the
system to begin producing parts that can then be used in other labs for a variety of microfluidics
tests. The system can also be modified to dramatically increase its scale, which would enable the
production of microfluidics devices for commercial applications, using the cycle to cycle control
to produce a minimum of faulty parts.
113
114
APPENDIX
ROBOT SAMPLE CODE
To aid future programmers of the robot, the following functions have been included to help give
a sense of the current type of programming done for the system.
The function Chip2HE is one task the robot may perform, which consists of placing the part in
the hot embosser, then triggering the hot embosser to begin running:
Function Chip2HE
GoToZoneO
'ifport 0 is holding a blank chip
If (Memln(Port0Chip) = 1) Then
FastSpeed
'approch the HE, then go through the placement sequence
Go HEAppO
'place chip
MidSpeed
Go HEInOa
Go HEInOb
Move HEInOc
'push to make sure chip is against the pins
Go HEPush0a
Go HEPushOb
Go HEPlaceO
Off Vacuum0
Wait 1
'leave HE without disturbing chip
Go HEPlaceUpO
Go HEOut0
Go HEAppO
'change the status of port 0 from'holding a blank chip' to 'not holding a chip'
MemOut (PortOChip), 0
ElseIf(Memln(PortlChip) = 1) Then
MidSpeed
Go HEAppl
Go HEInla
Go HEInIb
115
Go HEInIc
Go HEPushla
Go HEPushlb
Off Vacuuml
Wait 1
Go HEPlaceUpI
Go HEOutI
Go HEAppI
MemOut (PortIChip), 0
Else
'If the robot isn't holding any blank chips, throw an error
Error 8003
EndIf
FastSpeed
'turn on the variable corresponding to a chip in the hot embosser
MemOn (HEChip)
'turn off the variable which resets the hot embosser
MemOff (HEReset)
'run the code for sending the start flag to the hot embosser
Xqt HEStartFlag
'run the code for checking if the hot embosser detected a missing
'chip
Xqt HEChipCheck
Fend
The function PickTask details the selection process of a new task, and how it is accomplished.
Function PickTask
'function that will be called by labview
'this function enables the robot to select the next task to
'be performed, then calls that task
'booleans for the eight basic tasks that can be performed
Boolean Blank2Arm, Arm2HE, HE2Arm, Arm2Tape, Tape2Arm
Boolean Arm2Test, Test2Arm
'booleans detailing which chips are on the arm
Boolean ArmEmpty, ArmBlank, ArmHE, ArmTape
Boolean NoArmChips, OutOfCom
'set NoArmChips to false
'if it is true it will become true later
NoArmChips = False;
'determine which chips the arm has
If ((Memln(Port0Chip)= 0) Or (Memln(PortlChip) = 0)) Then
'if at least one port on the arm isn't holding a chip
'set ArmEmpty to true
ArmEmpty = True;
If ((Memln(Port0Chip)= 0) And (MemIn(PortlChip)= 0)) Then
'if BOTH ports on the arm aren't holding chips
'set NoArmChips to true
116
'(otherwise it must be false)
NoArmChips = True;
EndIf
Else
'otherwise, if both ports on the arm ARE holding chips,
'will be false, so set ArmEmpty to true
ArmEmpty = 0;
EndIf
'set whether or not a blank chip is on the arm
If ((Memln(Port0Chip) = 1) Or (MemIn(PortlChip) = 1)) Then
ArmBlank = 1;
Else
ArmBlank = 0;
EndIf
'set whether or not there is an embossed chip on the arm
If ((Memln(PortOChip)= 2) Or (Memln(PortlChip)= 2)) Then
ArmHE = 1;
Else
ArmHE = 0;
EndIf
'set whether or not there is a taped chip on the arm
If ((MemIn(PortOChip) = 3) Or (Memln(PortlChip)= 3)) Then
ArmTape = 1;
Else
ArmTape = 0;
EndIf
'determine which actions the arm can perform
'if there is a spot on the arm and there are still blank chips
'left, then the robot can pick up a new blank chip
If (ArmEmpty And (Not (-MemSw(NoBlanks)))) Then
Blank2Arm= 1;
Else
Blank2Arm = 0;
EndIf
'if there isn't a chip in the heat exchanger and the arm is
'holding a blank chip, then a chip can be added to the
'heat exchanger
If ((Not (-MemSw(HEChip))) And ArmBlank) Then
Arm2HE = 1;
Else
Arm2HE = 0;
EndIf
'if there is a spot on the arm and the heat exchanger is done
'then the chip can be taken from the heat exchanger
If (ArmEmpty And MemSw(HEDone)) Then
HE2Arm= 1;
Else
HE2Arm= 0;
EndIf
'if the taper isn't running and the arm is holding
'an embossed chip, and there is room in the taper, then a chip can be
'added to the taper
If ((Not (-MemSw(TaperRunning))) And ArmHE And (Not (-MemSw(TaperFull)))) Then
117
Arm2Tape = 1;
Else
Arm2Tape = 0;
EndIf
'if there is an open port on the arm and the taper has the maximum number
'of chips and the taper is not running then the robot can pick up a chip
'from the taper
If (Not (-MemSw(TaperRunning)) And ArmEmpty And (MemSw(TaperFull))) Then
Tape2Arm= 1;
Else
Tape2Arm= 0;
EndIf
'if there is a taped chip on the arm and no chip in the tester
'then the robot can put a chip in the tester
If ((Not (-MemSw(FTChip))) And ArmTape) Then
Arm2Test = 1;
Else
Arm2Test = 0;
EndIf
'if the robot has an open port and the taper is finished
'then the chip can be removed from the taper
If (MemSw(FTDone) And ArmEmpty) Then
Test2Arm= 1;
Else
Test2Arm= 0;
EndIf
'remove things that will jam the robot
'if the robot is holding a blank chip and there is a chip in
'the hot embosser, don't pick up another blank chip
If (ArmBlank And MemSw(HEChip)) Then
Blank2Arm= 0;
EndIf
'if the robot is holding a chip and the hot embosser and tester
'have chips in them, don't pick up another blank chip or
'another chip from the taper
If ((Not (NoArmChips)) And MemSw(HEChip) And MemSw(FTChip)) Then
'as long as the chip on the arm isn't an embossed chip, don't pick up a
'chip from the taping machine
If (Not (ArmHE)) Then
Tape2Arm= 0;
Endlf
'if the chip on the arm isn't an embossed chip, OR the taping machine is
'full, don't pick up a chip from the taping machine
If (Not (ArmHE) Or MemSw(TaperFull)) Then
Blank2Arm 0;
EndIf
EndIf
'if the robot is holding at least one chip and the hot
'embosser and taper are full, don't pick up another blank chip
If ((Not (NoArmChips)) And MemSw(HEChip) And (MemSw(TaperFull))) Then
Blank2Arm= 0;
118
EndIf
'if the robot is holding a non-embossed chip and there's a chip in the
'tester, don't pick up a chip from the taper
If ((Not (NoArmChips)) And MemSw(FTChip) And Not (ArmHE)) Then
Tape2Arm= 0;
EndIf
'if the hot embosser hasn't been successfully reset from the last time you took a chip out,
'don't try to take another chip out
If (Not (-MemSw(HEResetSuccess))) Then
HE2Arm= 0;
EndIf
'if the functional tester hasn't been successfully reset from the last time you took a chip out,
'don't try to take another chip out
If (Not (-MemSw(FTResetSuccess))) Then
Test2Arm= 0;
EndIf
'debug code
'if either of the ports is out of comission (state 5) set
'OutofCom to true
If ((MemIln(PortOChip)= 5) Or (Memln(PortlChip)= 5)) Then
OutOfCom= 1;
Else
OutOfCom= 0;
EndIf
'if both ports are out of comission why would you be running
'anything
'if one of the ports is out of comission (state 5) then
If (OutOfCom) Then
'don't let the robot pick up a chip if there is a chip in the hot
'embosser
If (MemSw(HEChip)) Then
Blank2Arm= 0;
EndIf
'if the taper is full, don't pick up a chip from the hot embosser
If (MemSw(TaperFull)) Then
HE2Arm= 0;
EndIf
'if the tester is full, don't pick up a chip from the taper
If (MemSw(FTChip)) Then
Tape2Arm= 0;
EndIf
EndIf
'end debug code
'task priority
If (Arm2HE) Then
'put chip in HE
Print "Chip to HE."
119
MemOn (Chip2HEFlag)
Chip2HE
ElseIf ((ArmBlank) And HE2Arm) Then
'ElseIf ((ArmBlank Or MemSw(NoBlanks)) And HE2Arm) Then
'take chip from HE if robot is holding a blank chip
Print "Chip from HE."
MemOn (ChipFromHEFlag)
ChipFromHE
ElseIf (Arm2Test) Then
'put a chip in the functional tester
Print "Chip to tester."
MemOn (Chip2FTFlag)
Chip2Test
ElseIf (Blank2Arm) Then
'get a new chip
Print "Get new chip."
MemOn (NewChipFlag)
NewChip
ElseIf (Test2Arm) Then
'take a chip from the functional tester and drop it
Print "Get tested chip."
MemOn (ChipFromFTFlag)
ChipFromTest
ElseIf (Arm2Tape) Then
'put a chip in the taping machine
Print "Chip to taper."
MemOn (Chip2TapeFlag)
Chip2Tape
ElseIf (Tape2Arm) Then
'take a chip from the taping machine
Print "Get taped chip."
MemOn (ChipFromTapeFlag)
ChipFromTape
ElseIf (HE2Arm) Then
'take a chip from the HE even though the robot isn't holding
'a blank chip
MemOn (ChipFromHEFlag)
Print "Getting chip from HE without returning one."
ChipFromHE
ElseIf (MemIn(WaitCount)= 0) Then
'if this is the first time the robot is waiting for something, check
'to see if it can do something useful while it is waiting
Print "Checking for next task."
MemOn (WaitFlag)
WaitTask
Else
Print "Waiting for task."
MemOn (WaitFlag)
NoTask
EndIf
'if the system had to wait this time, increase the number of times
'in a row the system had to wait by one
If (MemSw(WaitFlag)) Then
MemOut (WaitCount), Memln(WaitCount) + 1
'otherwise, set that variable to zero
120
Else
MemOut (WaitCount), 0
EndIf
'turn off the memory bits to signal that the task selected above has been completed
MemOff (NewChipFlag)
MemOff (Chip2HEFlag)
MemOff(ChipFromHEFlag)
MemOff (Chip2TapeFlag)
MemOff (ChipFromTapeFlag)
MemOff(Chip2FTFlag)
MemOff (ChipFromFTFlag)
MemOff(FinishedChipFlag)
MemOff (WaitFlag)
ChipsDoneCheck
MemOff (0)
Fend
The function DisconnectRecovery is performed by the robot after an shutdown, to make sure that
it begins operating from a safe position without colliding with a machine.
Function DisconnectRecovery
'function for returning the robot to a neutral position without hitting
'anything after it has abruptly disconnected
'should NOT be used if someone was moving the robot around while it
'was powered down
'the motor must be on to run this function
'make sure the robot is moving as slowly as possible
Power Low
Speed 1
Accel 100, 100
'get the robot's current coordinates
Double xpos, ypos, zpos, upos
PO = CurPos;
xpos = CX(PO);
ypos = CY(PO);
zpos = CZ(PO);
upos = CU(PO);
'display the robot's current coordinates
Print xpos, ypos, zpos, upos
'if the robot is in the hot embosser, move out of it
If ((xpos > -500) And (xpos < -450) And (zpos > -409)) Then
121
If ((ypos > -60) And (ypos < 0)) Then
If (upos < 150) Then
Go HEOutO
Go HEAppO
Else
'coordinates for leaving the hot embosser from port 1
Go HEOutI
Go HEAppI
EndIf
EndIf
EndIf
'if the robot is in the dispenser, move out of it
If ((xpos > -60) And (xpos < -40) And (zpos > -409)) Then
If ((ypos > 35) And (ypos < 45)) Then
If (upos < 150) Then
Go DispAppO
Else
Go DispAppI
EndIf
EndIf
EndIf
If (zpos < -409) Then
'if the robot is in the taper entrance, move out of it
If ((xpos > -570) And (xpos < -470) And (ypos > 140) And (ypos < 170)) Then
If (upos > 40) Then
Go Tapeln0a
Go TapeDownO
Go TapeAppO
Else
Go TapeInla
Go TapeDownl
Go TapeAppI
EndIf
'if the robot is in the taper pickup area, move out of it
ElseIf ((xpos > -550) And (xpos < -450) And (ypos > 520) And (ypos < 590)) Then
If (upos < 70) Then
Go GetTapeIn0a
Go GetTapeDownO
Go GetTapeAppO
Else
Go GetTapeInla
Go GetTapeDowni
Go GetTapeAppI
EndIf
'if the robot is in the testing area, move out of it
ElseIf ((xpos > -366) And (xpos < -214) And (ypos > 668) And (ypos < 720)) Then
If (upos < 30) Then
Go TestIn0a
Go TestDown0
Go TestAppO
Go GetTapeAppO
Else
Go TestInla
Go TestDownl
122
Go TestAppI
Go GetTapeAppI
EndIf
'if the robot is in Zone 1, move out of it
ElseIf (ypos > 500) Then
Go TestDown0
Go TestAppO
Go GetTApeAppO
'otherwise, if the robot is too low to move back to neutral safety,
'move straight up from its current location
Else
CZ(PO)= -313
Go PO
EndIf
EndIf
'if the robot is in the testing area, move out of it
If ((xpos > -366) And (xpos < -214) And (ypos > 600) And (ypos < 694)) Then
If (upos < 30) Then
Go GetTapeAppO
Else
Go GetTapeAppI
EndIf
EndIf
Go Neutral
MemOn (Zone0)
MemOff (Zone 1)
Fend
123
124
APPENDIX
B
ROBOT
POINTS
The following points are used by the robot to move parts throughout the system. Explanations for
each point have been included. Each effector head has its own set of points, so each pair of
points corresponds to the same explanation, but for effector heads.
Neutral: Starting position from which any full system code can be safely run.
DispAppO/DispAppl: Position approaching the dispenser for the purposes of picking up a part.
This position can be moved to from the Neutral position.
AboveDispO/AboveDispl: Position directly above DispEnterO/DispEnterl for the purposes of
picking up a part.
DispEnterO/DispEnterl: Position where the effector head has been lowered into the dispenser,
with the talon not yet touching the parts. This position is directly below
AboveDispO/AboveDispl.
DispAlignO/DispAlignl: Position where the talon has slid the part slightly out of the dispenser
for the purpose of alignment.
DispDownO/DispDownl: Position directly below DispAlign/O/DispAlign1, to enable the effector
head to be in good contact with the part. The vacuum is then turned on in preparation for
DispSideO/DispSidel.
DispSideO/DispSidel: Position where the effector head has dragged the part against one side of
the dispenser for the purpose of alignment. This alignment is perpendicular to that done by
DispAlignO/DispAlignl.
DispPullO/DispPull 1: Position where the effector head has pulled the part most of the way out of
the dispenser from DispSideO/DispSidel. The part is still in contact with other parts in the
dispenser.
DispPickupO/DispPickupl: Position directly above DispPullO/DispPulll, where the effector head
has lifted the part away from the spring-loaded parts still in the dispenser, to prevent an impulse
from moving the part.
125
HEAppO/HEApp1: Position for approaching the hot embosser for the purposes of picking up or
placing a part. This position can be moved to from the Neutral position.
HEInOa/HEInla: First of three positions for placing a part in the hot embosser. This position
places the part sufficiently above the lower platen to avoid hitting it. When withdrawing a part,
this is the third of three positions to pull it out.
HEInOb/HEInIb: Second of three positions for placing a part in the hot embosser. This position
lowers the part directly onto the platen from HEInOa. When withdrawing a part, this is the
second of three positions to pull it out.
HEInOc/HEInIc: Third of three positions for placing a part in the hot embosser. This position
slides the part along the platen and under the hot embosser fingers from HEInOb/HEInib. When
withdrawing a part, this is this first of three positions to pull it out; this position lowers the
effector head over the part from HEGetO/HEGetI.
HEPushOa/HEPushla: First of two positions to push the part against the three alignment pins.
This position pushes the part against the two back alignment pins slightly, but not far enough to
knock the part off of the vacuum ports on the effector head.
HEPushOb/HEPushlb: Second of two positions to push the part against the three alignment pins.
This position pushes the part against the side alignment pin, as well as keeping it pressed against
the back alignment pins.
HEPlaceO/HEPlacel: Position directly below HEPush0b, this allows the part to be placed in the
hot embosser, rather than dropping it and incurring a positioning error.
HEPlaceUpOa/HEPlaceUpla: Position for moving the effector head out of the hot embosser after
a part has been placed. This position is directly above HEPlaceO/HEPlacel to prevent moving
the part while the robot is withdrawing.
HEOutO/HEOutl: This position moves the robot effector head out of the hot embosser when a
part has been placed. It is distinguished from HEAppO/HEAppi and HEInOa/HEInla in that the
height is appropriate to provide clearance between the talon on the effector head and a part that
has been placed in the hot embosser. It is also used when picking up a part, before moving to
HEGetO/HEGeti.
HEGetO/HEGeti: This position moves the effector head to directly above a part in the hot
embosser, so that the effector head can be lowered onto the part without disturbing its placement.
This position is directly above HEDownO/HEDownl.
HEDownO/HEDownl: This position lowers the effector head directly over a part for the purpose
of moving it out of the hot embosser.
TapeAppO/TapeApp1: First of two positions for approaching the taping machine for the purpose
of placing a part. This position can be moved to from the neutral position.
126
TapeDownO/TapeDownl: Second of two positions for approaching the taping machine for the
purpose of placing a part. This position lowers the effector head to slightly above the taping
machine belt and is directly below TapeAppO/TapeApp 1.
Tapeln0a/Tapelnla: First of two positions for placing a part in the taping machine. This position
moves the effector head to directly above the taping belt.
TapeInOb/TapeInlb: Second of two positions for placing a part in the taping machine. This
position moves the part to between the belt and the IR sensor.
TapeUpO/TapeUp 1: Position for moving the effector head directly above the IR sensor. This
position enables the part to be removed from the effector head if turning off the vacuum does
not.
TapeOutO/TapeOutl: Position for movement away from the taper after the effector head has
moved to above the IR sensor.
GetTapeAppO/GetTapeAppl: First of two positions for approaching the pickup side of the taping
machine for the purpose of picking up a taped part. This position can be moved to from Neutral
position.
GetTapeDownO/GetTapeDownl: Second of two positions for approaching the pickup side of the
taping machine for the purpose of picking up a taped part. This position lowers the effector head
to slightly above the taping machine surface and is directly below GetTapeAppO/GetTapeApp 1.
GetTapelnOa/GetTapelnla: First of three positions for approaching the taped part for pickup.
This position is in the taping machine at the appropriate height.
GetTapelnOb/GetTapelnIb: Second of three positions for approaching the taped part for pickup.
This position is directly above the taped part.
GetTapelnOc/GetTapelnl c: Third of three positions for approaching the taped part for pickup.
This position has the robot almost in contact with the part, and is directly below
GetTapeInOb/GetTapeInlc.
GetTapeAlignO/GetTapeAlignl: This position pulls the part slightly out of the taping machine
using the talon on the effector head. This causes the part to be aligned with the effector head.
GetTapeSideO/GetTapeSidel: This position moves the part against the side of the taping
machine, using the vacuum, to make sure it is appropriately located on the effector head.
GetTapePullO/GetTapePulll: Position which moves the part the rest of the way out of the taping
machine.
GetTapePickupO/GetTapePickupI: This position lifts the part out of the taping machine. It is
directly above GetTapePul1O/GetTapePull 1.
127
TestAppO/TestApp1: First of two positions for approaching the functional tester. This position
can be moved to from the neutral position.
TestDownO/TestDownl: Second of two positions for approaching the functional tester. This
position moves the effector head down to approximately the level of the functional tester.
TestInOa/TestInl a: First of three positions for placing a part in the functional tester. This position
moves the part to directly outside of the opening of the functional tester, aligned with the
opening.
TestInOb/TestInib: Second of three positions for placing a part in the functional tester. This
position moves the inside the functional tester without overshooting the alignment pins.
TestPushO/TestPushl: This position moves the part against the three alignment pins in the
functional tester with minimal overshoot against the back alignment pins to prevent the part from
being knocked off the vacuum holes on the effector head.
TestPlaceO/TestPlacel: This position lowers the part to the base of the functional tester. This
position is directly below TestPushO/TestPushl to keep the part against the three alignment pins.
TestPlaceUpOa/TestPlaceUpla: First of two positions for removing the effector head from the
functional tester after placing a part without disturbing the placed part. This position is directly
above TestPlaceO/TestPlaceI. This is also the second of two positions for moving the effector
head above placed parts in the functional tester for the purpose of removing them.
TestPlaceUpOb/TestPlaceUplb: Second of two positions for removing the effector head from the
functional tester after placing a part. This position moves the effector head out of the functional
tester without causing a collision with the sides of the part clamping device. This is also the first
of two positions for moving the effector head above placed parts in the functional tester for the
purpose of removing them.
TestGetO/TestGetl: This position is used when removing a part from the functional tester. It is
used to align the part to the effector head. This position slightly pulls the part straight out of the
testing machine from TestPlaceO/TestPlacel.
TestPickupO/TestPickupl: This position picks up the part from within the functional tester to
remove it without causing collisions with the sides of the part clamp. This position is directly
above TestGetO/TestGetl.
DropChipUpO/DropChipUpl: Position directly above TestAppO/TestAppI which is used to
prepare for dropping a part in the finished parts bin, without colliding with parts already in the
bin.
DropChipBoxO/DropChipBoxI: Position above the finished parts been, from which parts can be
dropped to fall into that bin.
128
APPENDIX
DOE DATA
33 Factorial DOE
All parts formed with theat = 50s, tcoo = 30s, and Tc 01 = 60 C
Part
Thot
Force
tfom,
Channel 1
Channel 2
Channel 3
Channel 4
Average
Number
(C)
(N)
(s)
(gm)
(prm)
(pm)
(jm)
(pm)
DOE 1
115
1000
20
N/A
89.50
92.78
92.75
91.68
DOE 2
115
1000
20
N/A
95.49
95.43
95.76
95.56
DOE 3
115
1000
20
N/A
89.41
98.87
98.99
95.76
DOE 4
115
1000
20
94.52
92.83
102.15
98.18
96.92
DOE 5
115
1000
20
N/A
88.64
89.52
91.04
89.73
DOE 6
115
1100
20
N/A
88.44
88.27
89.94
88.88
DOE 7
115
1100
20
N/A
83.61
89.82
90.28
87.90
DOE 8
115
1100
20
N/A
92.75
95.75
96.62
95.04
DOE 9
115
1100
20
N/A
94.24
96.89
96.29
95.81
DOE 10
115
1100
20
N/A
87.04
89.85
92.00
89.63
DOE 11
115
1200
20
83.73
82.01
83.88
83.54
83.29
DOE 12
115
1200
20
86.42
84.45
89.87
84.77
86.38
DOE 13
115
1200
20
85.22
84.32
89.52
89.94
87.25
129
DOE 14
115
1200
20
82.68
83.43
88.71
82.61
84.36
DOE 15
115
1200
20
84.40
80.33
86.52
83.22
83.62
DOE 16
115
1000
30
79.21
78.98
82.18
83.26
80.91
DOE 17
115
1000
30
78.21
77.87
80.98
77.57
78.66
DOE 18
115
1000
30
81.17
79.99
82.23
82.71
81.53
DOE 19
115
1000
30
76.73
79.79
79.82
78.32
78.67
DOE 20
115
1000
30
80.13
78.95
80.93
82.28
80.57
DOE 21
115
1100
30
74.08
74.37
75.77
75.37
74.90
DOE 22
115
1100
30
74.63
74.32
76.10
77.02
75.52
DOE 23
115
1100
30
75.18
74.40
75.58
76.40
75.39
DOE 24
115
1100
30
72.68
76.19
74.45
73.33
74.16
DOE 25
115
1100
30
74.55
73.48
78.83
75.08
75.49
DOE 26
115
1200
30
72.12
71.14
76.39
75.41
73.77
DOE 27
115
1200
30
73.63
72.14
76.23
76.78
74.70
DOE 28
115
1200
30
72.87
71.85
72.90
71.78
72.35
DOE 29
115
1200
30
71.22
71.15
72.23
73.95
72.14
DOE 30
115
1200
30
70.73
71.53
74.45
70.74
71.86
DOE 31
115
1000
40
71.01
70.03
72.52
71.32
71.22
DOE 32
115
1000
40
70.35
71.22
70.70
69.46
70.43
DOE 33
115
1000
40
72.82
72.93
73.57
72.55
72.97
DOE 34
115
1000
40
72.61
75.97
75.37
73.72
74.42
DOE 35
115
1000
40
72.26
73.31
74.40
75.88
73.96
130
DOE 36
115
1100
40
69.63
72.48
74.10
73.01
72.31
DOE 37
115
1100
40
69.59
73.57
70.68
69.12
70.74
DOE 38
115
1100
40
70.44
69.72
71.14
70.47
70.44
DOE 39
115
1100
40
67.24
68.19
72.47
68.79
69.17
DOE 40
115
1100
40
70.05
71.35
69.83
70.90
70.53
DOE 41
115
1200
40
66.71
67.36
69.47
66.67
67.55
DOE 42
115
1200
40
66.03
65.35
69.99
67.22
67.15
DOE 43
115
1200
40
68.76
70.09
69.14
69.61
69.40
DOE 44
115
1200
40
65.05
66.47
68.43
67.70
66.91
DOE 45
115
1200
40
67.14
70.62
70.77
70.52
69.76
DOE 46
120
1000
20
67.71
70.38
73.46
71.01
70.64
DOE 47
120
1000
20
66.24
68.96
67.76
67.36
67.58
DOE 48
120
1000
20
68.75
69.68
71.46
70.09
70.00
DOE 49
120
1000
20
66.77
66.89
70.49
67.29
67.86
DOE 50
120
1000
20
65.04
66.21
67.70
65.88
66.21
DOE 51
120
1100
20
59.08
N/A
N/A
59.15
59.12
DOE 52
120
1100
20
65.07
68.03
67.69
64.96
66.44
DOE 53
120
1100
20
64.22
65.21
67.04
65.67
65.54
DOE 54
120
1100
20
65.43
69.45
68.48
65.27
67.16
DOE 55
120
1100
20
63.82
63.43
64.87
64.58
64.18
DOE 56
120
1200
20
62.82
65.65
65.49
63.83
64.45
DOE 57
120
1200
20
64.12
64.80
68.14
64.95
65.50
131
DOE 58
120
1200
20
64.50
65.25
67.55
67.73
66.26
DOE 59
120
1200
20
63.48
64.43
65.18
64.49
64.40
DOE 60
120
1200
20
63.14
65.16
65.02
64.84
64.54
DOE 61
120
1000
30
65.63
62.37
66.38
62.33
64.18
DOE 62
120
1000
30
63.87
63.26
65.62
66.29
64.76
DOE 63
120
1000
30
64.02
65.08
65.93
65.14
65.04
DOE 64
120
1000
30
63.45
65.09
66.84
65.28
65.17
DOE 65
120
1000
30
64.56
64.06
65.49
64.83
64.74
DOE 66
120
1100
30
61.55
61.19
64.91
63.62
62.82
DOE 67
120
1100
30
64.60
62.42
66.86
63.49
64.34
DOE 68
120
1100
30
62.98
62.70
62.69
59.92
62.07
DOE 69
120
1100
30
61.73
61.72
63.04
60.09
61.65
DOE 70
120
1100
30
59.78
59.96
63.57
58.91
60.56
DOE 71
120
1200
30
61.23
62.05
59.99
60.84
61.03
DOE 72
120
1200
30
62.79
66.24
63.45
61.73
63.55
DOE 73
120
1200
30
59.79
59.36
62.81
57.64
59.90
DOE 74
120
1200
30
62.17
60.87
62.67
62.05
61.94
DOE 75
120
1200
30
62.00
62.85
62.63
59.75
61.81
DOE 76
120
1000
40
61.81
61.65
64.05
60.62
62.03
DOE 77
120
1000
40
64.71
63.16
64.71
63.12
63.93
DOE 78
120
1000
40
63.88
62.66
64.73
63.47
63.69
DOE 79
120
1000
40
65.16
64.09
67.02
65.28
65.39
132
DOE 80
120
1000
40
63.69
64.30
64.48
63.08
63.89
DOE 81
120
1100
40
62.13
62.92
64.30
62.68
63.01
DOE 82
120
1100
40
60.15
59.96
65.52
57.90
60.88
DOE 83
120
1100
40
60.86
63.06
61.11
61.10
61.53
DOE 84
120
1100
40
61.83
66.29
63.44
60.03
62.90
DOE 85
120
1100
40
62.43
61.90
64.75
64.86
63.49
DOE 86
120
1200
40
62.70
60.70
65.89
61.70
62.75
DOE 87
120
1200
40
59.94
60.30
60.69
60.42
60.34
DOE 88
120
1200
40
60.63
65.04
62.68
58.53
61.72
DOE 89
120
1200
40
61.19
63.48
61.98
61.04
61.92
DOE 90
120
1200
40
62.85
59.33
61.49
60.18
60.96
DOE 91
125
1000
20
63.87
64.93
66.07
63.86
64.68
DOE 92
125
1000
20
59.13
60.34
60.51
58.66
59.66
DOE 93
125
1000
20
63.10
63.45
65.69
64.82
64.27
DOE 94
125
1000
20
63.95
65.63
66.67
66.38
65.66
DOE 95
125
1000
20
62.24
63.74
64.93
63.66
63.64
DOE 96
125
1100
20
61.83
62.43
62.28
60.14
61.67
DOE 97
125
1100
20
59.79
61.97
63.21
64.14
62.28
DOE 98
125
1100
20
64.38
67.26
70.72
68.45
67.70
DOE 99
125
1100
20
61.80
61.02
66.65
63.35
63.21
DOE 100
125
1100
20
59.43
64.75
63.74
60.49
62.10
DOE 101
125
1200
20
63.56
61.62
64.54
64.07
63.45
133
DOE 102
125
1200
20
57.41
56.23
58.75
57.65
57.51
DOE 103
125
1200
20
61.55
57.21
62.48
61.16
60.60
DOE 104
125
1200
20
61.17
62.41
60.85
61.50
61.48
DOE 105
125
1200
20
61.04
61.33
64.71
63.70
62.70
DOE 106
125
1000
30
61.12
61.75
61.88
62.13
61.72
DOE 107
125
1000
30
59.60
58.61
62.49
58.79
59.87
DOE 108
125
1000
30
59.95
58.95
62.20
58.00
59.78
DOE 109
125
1000
30
60.05
58.75
63.01
60.21
60.51
DOE 110
125
1000
30
60.00
63.62
62.96
62.47
62.26
DOE 111
125
1100
30
61.18
59.68
59.81
57.15
59.46
DOE 112
125
1100
30
62.38
61.49
65.50
60.46
62.46
DOE 113
125
1100
30
59.13
57.65
58.97
58.38
58.53
DOE 114
125
1100
30
57.68
59.39
59.35
56.95
58.34
DOE 115
125
1100
30
59.03
56.63
N/A
58.86
58.17
DOE 116
125
1200
30
58.14
56.17
57.93
56.26
57.13
DOE 117
125
1200
30
62.18
64.94
67.08
64.36
64.64
DOE 118
125
1200
30
N/A
55.95
57.92
60.18
58.02
DOE 119
125
1200
30
59.38
57.28
58.67
54.67
57.50
DOE 120
125
1200
30
56.97
55.75
58.89
58.06
57.42
DOE 121
125
1000
40
58.24
59.01
57.54
57.76
58.14
DOE 122
125
1000
40
N/A
56.75
60.59
56.85
58.06
DOE 123
125
1000
40
58.86
59.93
N/A
60.70
59.83
134
DOE 124
125
1000
40
N/A
60.53
59.12
57.12
58.92
DOE 125
125
1000
40
60.25
59.18
60.29
57.13
59.21
DOE 126
125
1100
40
57.06
57.97
59.45
54.78
57.32
DOE 127
125
1100
40
59.32
56.30
56.61
56.52
57.19
DOE 128
125
1100
40
N/A
56.96
59.74
56.45
57.72
DOE 129
125
1100
40
58.58
57.31
60.76
56.56
58.30
DOE 130
125
1100
40
59.02
58.50
55.38
54.43
56.83
DOE 131
125
1200
40
54.34
59.96
58.75
56.40
57.36
DOE 132
125
1200
40
58.63
56.15
58.76
55.82
57.34
DOE 133
125
1200
40
N/A
56.57
60.85
57.00
58.14
DOE 134
125
1200
40
56.74
56.70
59.00
56.22
57.17
DOE 135
125
1200
40
59.08
N/A
N/A
59.15
59.12
135
136
APPENDIX
D
MATLAB SIMULATION
The program housing the simulation:
close
h = figure;
set(h,'Position',[150 100 1050 550])
DisplayChips = false;
Monitor = false;
RunCharts = false;
global TaperCapacity
TaperCapacity = 6;
%total chips in the system
TotalChips = 60;
FinishedChips = 0;
BlankChips = TotalChips - FinishedChips;
TimeStep = .1;
TotalTime = 0;
global PriorityList
%PriorityList = [2 3 6 17 4 5 8];
PriorityList = [2 13 4 5 6 7 8];
%locations of all the chips, state of chips
%column 1 gives location
%0 = in blank stack
%1 = in HEM
%2 = in taper
%3=in FT
%4=complete
%5 = on port 0
%6 = on port 1
%-1 = error
%column 2 gives state
%I = blank
%2 = embossed
137
%3 =taped
O4 = finished
%-1 = dropped
ChipData = zeros(TotalChips,4);
ChipData(:,2) = 1;
TempChipData = zeros(TotalChips+1,2);
TempChipData(1,:) = -1;
HEUtCount = 0;
%total chips the robot arm can hold
ArmChipMax = 2;
%ArmChips gives the chips the arm is holding currently
%0 = no chip
%I = blank chip
%2 = embossed chip
%3 = taped chip
O4 = tested chip
ArmChips = zeros(ArmChipMax,l);
%Arm starts in position 1
%position 1 = blank parts port 0
%position 2= blank parts port 1
%position 3= HEM port 0
%position 4= HEM port 1
%position 5= tape place port 0
%position 6= tape place port 1
%position 7= tape pickup port 0
%position 8= tape pickup port 1
%position 9= FT port 0
%position 10 = FT port 1
ArmPos = 1;
%Available Tasks: a zero at the given index means the task cannot currently
%be performed, a 1 at the given index means the task can currently be
%performed
%1, take chip from blank parts stack
%2, put chip in hot embosser
%3, remove chip from hot embosser
0 A, put chip in taper
%5, remove chip from taper
%6, put chip in tester
%7, remove chip from tester
%8, wait for a task to become available
%9, move to the hot embosser while waiting for a task
%10, move to the taper drop-off while waiting for a task
%11, move to the taper pick-up while waiting for a task
%12, move to the tester while waiting for a task
138
Tasks = zeros(12,1);
CurTask = 0; %task the robot is currently performing
%randomness factors
MoveFactor = 0;
HEFactor = 0;
TaperFactor = 0;
TestFactor = 0;
HEDropChance = 0.00;
%HEState: 0 = no chip, n = chip has been in for n timesteps,
HEState = 0;
HEDonePrime = 115; %timesteps until chip is done
HEDone = HEDonePrime + HEFactor*randn;
%TapeState: same as HEState, with one index per chip
TaperState = zeros(TaperCapacity, 1);
%TaperProcessing = 15; %amount of time between taper inputs
TaperDonePrime = 2; %timesteps until chip is done
TaperDone = TaperDonePrime + TaperFactor*randn;
%TestState: same as HEState
TestState = 0;
TestDonePrime = 11.8;
TestDone = TestDonePrime + TestFactor*randn; %timesteps until chip is done
%keep running the loop until all the chips are in the finished parts buffer
while(FinishedChips<(TotalChips-5))
%update task list
%MACHINE TASKS AVAILABLE
%the 'put a finished chip in the bin' task can be performed until the
%buffer is depleted
if(BlankChips > 0)
Tasks(1) = 1;
else
Tasks(1) = 0;
end
%HE states
if(HEState
==
0)
%ifthere is no chip in the hot embosser, the hot embosser can
%accept a chip
Tasks(2) = 1;
Tasks(3) = 0;
Tasks(9) = 0;
elseif(HEState>HEDone)
%ifthere is a chip in the hot embosser and it has been in for the
%appropriate length of, a chip can be removed from
%the hot embosser but the hot embosser cannot accept a chip
Tasks(2)= 0;
139
Tasks(3) = 1;
Tasks(9)= 0;
else
%otherwise, the hot embosser can neither accept nor can a chip be
%removed from the hot embosser, but waiting by the hot embosser is
%a valid task
Tasks(2) =0;
Tasks(3) =0;
Tasks(9) = 1;
end
%taper state
if(min(TaperState)==0)
if(-any(TaperState))
%ifthere is free space and there are no chips in the taper, the
%taper can accept a chip
Tasks(4) = 1;
Tasks(10)= 0;
elseif(min(TaperState(TaperState-=0))>TaperDone)
%ifthere is free space and the previous chip (if there was one)
%has been accepted into the taper, the taper can accept a chip
Tasks(4)= 1;
Tasks(10)= 0;
elseif(min(TaperState(TaperState-=0))<TaperDone)
%ifthere is free space in the taper and the taper is running,
%waiting by the taper is a valid action
Tasks(4)= 0;
Tasks(10) = 1;
end
else
%otherwise, the taper cannot accept a chip
Tasks(4)= 0;
Tasks(10) = 0;
end
if(min(TaperState)>TaperDone)
%ifevery chip has been in the taper for an appropriate length of time,
%and the taper is full, a chip can be removed
Tasks(5)= 1;
Tasks(11) = 0;
elseif((min(TaperState)>0) &&(min(TaperState)<TaperDone))
%if the taper is full but running, waiting by the taper is a valid
%action
Tasks(5) = 0;
Tasks(11)= 1;
else
%if the taper is not full, chips cannot be picked up from the taper
Tasks(5) = 0;
Tasks(1 1) = 0;
end
%testing states
if(TestState == 0)
140
%ifthere is no chip in the tester, the tester can accept a chip
Tasks(6) = 1;
Tasks(7)= 0;
Tasks(12) = 0;
elseif(TestState > TestDone)
%otherwise, if the chip has been in the tester for the appropriate
%length of time, it can be removed, but a chip cannot be added
Tasks(6)= 0;
Tasks(7) = 1;
Tasks(12) = 0;
else
%if neither of the above states are true, the tester can neither
%accept nor provide a chip, but waiting by the functional tester
%is a valid action
Tasks(6)= 0;
Tasks(7)= 0;
Tasks(12)= 1;
end
%AVAILABLE PARTS TASKS UPDATE
%update by which parts the robot arm is holding
if(min(ArmChips)> 0)
%ifthe robot is holding the maximum number of chips, then none of
%the 'take chip from X' tasks can be performed
Tasks(1) = 0;
Tasks(3) = 0;
Tasks(5) = 0;
Tasks(7)= 0;
Tasks(9)= 0;
Tasks(1 1) = 0;
Tasks(12)= 0;
end
if(sum(ArmChips==1)==0)
%ifthe robot isn't holding any blank chips, a chip cannot be added
%to the HE
Tasks(2)= 0;
end
if(sum(ArmChips==2)=0)
%ifthe robot isn't holding any embossed chip, no chip can be added
%to the taper
Tasks(4)= 0;
Tasks(10)= 0;
end
if(sum(ArmChips==3)==0)
%if the robot isn't holding any taped chips, no chip can be added
%to the tester
Tasks(6)= 0;
end
%if the robot is not currently performing a task, assign it one based
%on the priority function
141
if(CurTask == 0)
if(sum(Tasks)==0)
CurTask= 8;
else
%parameters needed to determine what the next task should be
ChipInHE = (HEState>0);
ChipInTester = (TestState>0);
ChipsInTaper
=
sum(TaperState>0);
[CurTask,TaskPort] = GetTask(Tasks,ArmChips,ChipInHE,ChipsInTaper,ChipInTester);
end
if(CurTask == 8)
%if no tasks are available, check every second until a task
%becomes available
TotTaskTime = 1;
else
%determine the time needed to complete the given task
TotTaskTime = DetTaskTime(CurTaskArmPos,TaskPort);
end
%the amount of time that has been spent on this task is 0 seconds
TaskTime = 0;
end
%Things Happen
%machine time progresses
if(HEState>O)
HEState = HEState + TimeStep;
%if the hot embosser is done
if(HEState>HEDone)
%determine if there is a chip in the hot embosser that doesn't
%think it's been embossed
ChipIndex = find((ChipData(:, I)=1)&(ChipData(:,2)==1),1);
if(-isempty(Chiplndex))
%then set its status to embossed
ChipData(ChipIndex,2)= 2;
end
end
end
if(sum(TaperState)>0)
TaperState = TaperState + (TaperState>0)*TimeStep;
%determine number of chips in the taper that should be taped
NumTaped = sum(TaperState>TaperDone);
%determine number of chips in the taper that have been taped
TapeChip = find((ChipData(:, l)==2)&(ChipData(:,2)==3));
%ifthere are fewer taped chips than there should be
while(size(TapeChip,l)<NumTaped)
%for each chip that isn't taped that should be
ChipIndex = find(((ChipData(:, l)==2)&(ChipData(:,2)==2)),1);
%set its status to taped
ChipData(Chiplndex,2)= 3;
142
TapeChip
=
find((ChipData(:,1)=-2)&(ChipData(:,2)==3));
end
end
if(TestState>O)
TestState = TestState + TimeStep;
%if the tester is done
if(TestState>TestDone)
%determine if there is a chip in the tester that doesn't think
%it's been tested
ChipIndex = find((ChipData(:, 1)==3)&(ChipData(:,2)==3), 1);
if(~isempty(ChipIndex))
%then set its status to tested
ChipData(ChipIndex,2)= 4;
end
end
end
%all chips in the process have an increased timestep
temp = ((ChipData(:,1)-0)&(ChipData(:,1)-=4));
ChipData(:,3) = ChipData(:,3)+temp*TimeStep;
if(TaskTime >= TotTaskTime)
switch CurTask
case 1
%task 1: remove a chip from the blank chips buffer, add a
%blank chip to the arm at the appropriate location
ArmChips(TaskPort+1) = 1;
BlankChips = BlankChips - 1;
%update chip data
ChipIndex = find((ChipData(:, 1)==O)&(ChipData(:,2)= 1), 1);
ChipData(Chiplndex,1) = 5+TaskPort;
%update arm state
ArmPos = TaskPort + 1;
case 2
%task 2: move a blank chip from the arm to the HE
ArmChips(TaskPort+1)= 0;
HEState = 1;
%update chip data
ChipIndex = find((ChipData(:, 1)==(TaskPort+5)), 1);
ChipData(ChipIndex,1) = 1;
%update arm state
ArmPost = TaskPort + 3;
TempChipIndex = find(TempChipData(:, 1), 1,'last')+1;
TempChipData(TempChipIndex, 1) = TotalTime;
%small chance the part is missing
temp = rand;
if(temp < HEDropChance)
ChipData(Chiplndex,1)= -1;
143
ChipData(ChipIndex,2) = -1;
%the HEM isn't running
HEState = 0;
%there is one fewer chip in the system
TotalChips = TotalChips - 1;
end
case 3
%task 3: move an embossed chip from the HE to the arm
ArmChips(TaskPort+1)= 2;
HEState =0;
HEDone = HEDonePrime + HEFactor*randn;
%update chip data
ChipIndex = find((ChipData(:,1)==1)&(ChipData(:,2)==2),1);
ChipData(Chiplndex,1) = 5+TaskPort;
%update arm state
ArmPost = TaskPort + 3;
TempChipIndex = find(TempChipData(:,2),1,'last')+1;
TempChipData(TempChipIndex,2) = TotalTime;
case 4
%task 4: move an embossed chip from the arm to the taper
ArmChips(TaskPort+1)= 0;
%make sure the chip storage data goes in the right location
TaperIndex = find(TaperState==0,1);
TaperState(TaperIndex)= 1;
%update chip data
ChipIndex = find((ChipData(:, 1)==(5+TaskPort)),1);
ChipData(ChipIndex,1)= 2;
%update arm state
ArmPost = TaskPort + 5;
case 5
%task 5: move a taped chip from the taper to the arm
ArmChips(TaskPort+1)= 3;
%pick up the chip that's been in the taper the longest
[-,TaperIndex] = max(TaperState);
TaperState(TaperIndex)= 0;
TaperDone = TaperDonePrime + TaperFactor*randn;
%update chip data
ChipIndex = find((ChipData(:, 1)==2)&(ChipData(:,2)==3), 1);
ChipData(ChipIndex,1) = TaskPort+5;
%update arm state
ArmPost = TaskPort + 7;
case 6
%task 6: move a taped chip from the arm to the tester
ArmChips(TaskPort+1)= 0;
TestState = 1;
%update chip data
ChipIndex = find((ChipData(:, 1)==(TaskPort+5)), 1);
ChipData(ChipIndex,1)= 3;
144
%update arm state
ArmPost = TaskPort + 9;
case 7
%task 7: move a tested chip from the taper to the finished
%parts bin
%move a tested chip from the taper to the arm, then to the
%finished parts area
TestState = 0;
TestDone = TestDonePrime + TestFactor*randn;
%update chip data
ChipIndex = find((ChipData(:, 1)=3)&(ChipData(:,2)==4), 1);
ChipData(ChipIndex,1)= 4;
ChipData(Chiplndex,4) = TotalTime;
FinishedChips = FinishedChips + 1;
%update arm state
ArmPost = TaskPort + 9;
case 9
%task 9: move to the hot embosser
ArmPos = 3+TaskPort;
case 10
%move the arm to the taper drop-off
ArmPos = 5+TaskPort;
case 11
%move the arm to the taper pickup
ArmPos = 7+TaskPort;
case 12
%move the arm to the functional tester
ArmPos = 9+TaskPort;
end
CurTask = 0;
end
%CHIP DISPLAY
if(DisplayChips) %set to 'true' if you want to see the chips moving
%display things
if(mod(TotalTime,100)==O)
ChipLocations = zeros(3,4);
%data for the chips the arm is holding
for i = 1:4
ChipLocations(1,i) = sum(ArmChips==i);
end
%data for the HE
ChipLocations(2,1) = sum(HEState>O)-sum(HEState>HEDone);
ChipLocations(2,2) = sum(HEState>HEDone);
%data for the taper
ChipLocations(3,2) = sum(TaperState>0)-sum(TaperState>TaperDone);
ChipLocations(3,3) = sum(TaperState>TaperDone);
%data for the tester
ChipLocations(4,3) = sum(TestState>0)-sum(TestState>TestDone);
145
ChipLocations(4,4) = sum(TestState>TestDone);
Locations = ('Arm', 'HE', 'Taper', 'Test'};
subplot(2,1,1)
bar([ 1,2,3,4],ChipLocations,'stacked')
set(gca,'xticklabel',Locations)
set(gca,'YLim',[O TaperCapacity])
title(['Timestamp ='num2str(TimeStep)]);
legend('Blank', 'Embossed', 'Taped', 'Tested')
%determine which chips are currently part of the process
ActiveChips = find((ChipData(:,1)-=O)&(ChipData(:,1)-=4));
%go through each chip being processed and label it on the graph
for i = 1:size(ActiveChips)
Loc = ChipData(ActiveChips(i),1);
switch Loc
case 1
xCord = 1;
%if there's only one chip on the arm, this must be
%that
if(sum(ChipData(:,1)==1)==1)
yCord= .5;
else
%otherwise, if the other chip on the arm is
%more advanced than this chip, this chip is on
%the botton
TempArmChips = find((ChipData(:,1))== 1);
ThisChip = ActiveChips(i);
OtherChip = TempArmChips(TempArmChips
ThisChip);
if(ChipData(ThisChip,2)< ChipData(OtherChip,2))
yCord
=
.5;
elseif(ChipData(ThisChip,2)> ChipData(OtherChip,2))
yCord = 1.5;
%if both chips are in the same state, the one
%that has the earlier indexing is on the bottom
elseif(ThisChip<OtherChip)
yCord= .5;
else
yCord= 1.5;
end
end
case 2
xCord=2;
yCord = .5;
case 4
xCord = 3;
%determine how many chips there are in the taper
TempTapeChips = find(ChipData(:, 1)==4);
%set the y coordinate based on the index of this
%chip
yCord = size(TempTapeChips,1)+.5 - find(TempTapeChips
146
=
ActiveChips(i));
case 7
xCord = 4;
yCord = .5;
end
temp = text(xCord,yCord,num2str(ActiveChips(i)));
set(temp,'fontsize',20)
end
subplot(2,5,7)
bar(1,BlankChips,'stack')
set(gca,'xticklabel','Blank Chips')
set(gca,'YLim',[O TotalChips])
subplot(2,5,9)
bar(1,FinishedChips,'stack')
set(gca,'xticklabel','Finished Chips')
set(gca,'YLim',[O TotalChips])
pause(. 1)
end
elseif(Monitor)
if(mod(TimeStep,1000)==O)
%display the blank and finished chips only
subplot(1,2,1)
bar(1,BlankChips,'stack')
set(gca,'xticklabel','Blank Chips')
set(gca,'YLim',[O TotalChips])
subplot(1,2,2)
bar(1,FinishedChips,'stack')
set(gca,'xticklabel','Finished Chips')
set(gca,'YLim',[O TotalChips])
pause(. 1)
end
end
%task time progresses
TaskTime = TaskTime + TimeStep;
%total time progresses
TotalTime = TotalTime + TimeStep;
if((HEState>O)&&(HEState<HEDone))
HEUtCount = HEUtCount + TimeStep;
end
if((HEState>1000)1I(max(TaperState)>10000)1I(TestState> 1000))
disp('Something has gone horribly wrong.')
disp(Tasks)
disp(ArmChips)
147
disp(HEState)
disp(TaperState)
disp(TestState)
return;
end
end
disp(['Total time taken: ' num2str(TotalTime) 'seconds'])
disp(['Time per chip: 'num2str(TotalTime/TotalChips)' seconds'])
disp(['Hot embosser utilization: 'num2str(HEUtCount*l00/TotalTime) '%'])
disp(['Time for system to reach steady state: 'num2str(ChipData(1,4))' seconds'])
close
global
global
global
global
HEUt
TaktStd
SteadyTime
Time2Finish
HEUt = HEUtCount/TotalTime;
temp = ChipData(:,4);
temp = temp(temp>O);
SteadyTime = min(temp);
Time2Finish = TotalTime;
temp = sort(temp);
temp2 = temp(2:end)-temp(1:end-1);
TaktStd = std(temp2);
if(RunCharts)
h = figure;
set(h,'Position',[200 100 850 550])
subplot(2,1,1)
CompletedChips = ChipData((ChipData(:,4)>0),:);
plot(CompletedChips(:,3));
xlabel('Chip Number')
ylabel('Time in System (s)')
title(['Average Takt Time: 'num2str(TotalTime/(TotalChips-5))' seconds'])
% subplot(3,1,2)
% plot(ChipData(:,4));
% xlabel('Chip Number')
% ylabel('Timestep Completed')
subplot(2,1,2)
plot(CompletedChips(2:end,4)-CompletedChips(1:end-1,4));
xlabel('Chip Number')
ylabel('Time Between Completion (s)')
end
148
Programs called by the Simulation:
function time = ArmOpTimes(Action,Port)
%function gives the time to perform the operation at the given position
%row one is for port 0
%row two is for port 1
%actions the arm can perform
%action 1 = get blank part
%action 2 = hot embosser placement
%action 3 = hot embosser pickup
%action 4 = taper placement
%action 5 = taper pickup
%action 6 = test station placement
%action 7 = test station pickup
OpMat = [7.6 6.8 10.5 16.4 9.9 8.9 15.7
7.7 7.0 10.8 16.8 9.1 9.0 15.5];
time = OpMat(Port+1,Action);
function time = DetTaskTime(CurTask,CurPos,TaskPort)
%determine the location the robot will move to based on the current task
switch CurTask
case 1
%getting a blank part = move to dispenser
NewPos = 1;
case 2
%putting a part in HEM = move to HEM
NewPos = 3;
case 3
%getting a part from HEM = move to HEM
NewPos = 3;
case 4
%putting a part in taper = move to taper drop-off
NewPos = 5;
case 5
%getting a part from taper = move to taper pick-up
NewPos = 7;
case 6
%putting a part in FT = move to FT
NewPos = 9;
case 7
%getting a part from FT = move to FT
NewPos = 9;
case 8
149
%waiting = don't move
NewPos = CurPos;
case 9
%waiting by HEM = move to HEM
NewPos = 3;
case 10
%waiting by taper drop-off= move to taper drop-off
NewPos = 5;
case 11
%waiting by taper pick-up = move to taper pick-up
NewPos =7;
case 12
%waiting by FT = move to FT
NewPos = 9;
end
%include the port that will be used in the movement location
NewPos = NewPos + TaskPort;
%determine the movement time
MoveTime = MovementTimes(CurPosNewPos);
%determine the operation time based on the task
if(CurTask < 8)
OpTime = ArmOpTimes(CurTask,TaskPort);
else
OpTime = 0;
end
%find the total time
time = MoveTime + OpTime;
function [Task,Port] = GetTask(Tasks,ArmChips,ChipInHE,ChipsInTaper,ChipInTester)
%GetTask accepts the matrix of available tasks, then returns the task the
%robot should next perform
global TaperCapacity
global PriorityList
%default task is Task 0: get new task
Task = 0;
UseRules = true;
%Available Tasks: a zero at the given index means the task cannot currently
%be performed, a 1 at the given index means the task can currently be
%performed
% 1, take chip from blank parts stack
150
%2, put chip in hot embosser
%3, remove chip from hot embosser
%4, put chip in taper
%5, remove chip from taper
%6, put chip in tester
%7, remove chip from tester
%8, wait for a task to become available
%9, move to the hot embosser while waiting for a task
%10, move to the taper drop-off while waiting for a task
%11, move to the taper pick-up while waiting for a task
%12, move to the tester while waiting for a task
ChipsOnArm = sum(ArmChips>O);
%STUFF THAT NEEDS TO BE DONE OR THE SYSTEM WILL GET JAMMED
%if the arm is holding a blank chip and there is a chip in the HE,
%don't pick up another blank chip
if((sum(ArmChips==1)>)&&ChipInHE)
Tasks(1) = 0;
end
%if there is a chip in the HE and a chip in the tester, don't pick
%up a second blank chip AND don't pick up a second chip from the taper
if(ChipInTester&&ChipInHE&&(ChipsOnArm == 1))
Tasks(1) = 0;
Tasks(5) = 0;
end
%if the taper is full AND the embosser is full AND the robot is holding a
%chip, don't pick up another blank chip
if((ChipsInTaper>=TaperCapacity)&&(ChipInHE)&&(ChipsOnArm==1))
Tasks(1) = 0;
end
% %ifthe tester is full AND the robot is holding a chip, don't pick up
% %any chips from the taper
% if(ChipInTester&&(ChipsOnArm==1))
% Tasks(5) = 0;
% end
%if the taper is full and the robot is holding an embossed chip, don't pick
%up a second embossed chip
if((ChipsInTaper>=TaperCapacity) && (sum(ArmChips==2)>0))
Tasks(3)= 0;
end
%get the index of all the available tasks
Avail = find(Tasks);
if(~UseRules)
if(isempty(Avail)&&(Task==0))
%if no tasks are avaiable, do task 8: wait for a task
Task = 8;
Port = 0;
151
elseif(Task==O)
%otherwise, pick a random task and do it
Selection = ceil(rand*size(Avail, 1));
Task = Avail(Selection);
switch Task
case 2
%the port with a blank chip will place that chip in the HEM
if(ArmChips(l) == 1)
Port = 0;
else
Port = 1;
end
case {4,10}
%the port with an embossed chip will place it in the taper
if(ArmChips(1)== 2)
Port =0;
else
Port = 1;
end
case 6
%the port with the taped chip will put it in the tester
if(ArmChips(1) == 3)
Port = 0;
else
Port = 1;
end
otherwise
%the port not holding a chip will be used
if(ArmChips(1)== 0)
Port = 0;
else
Port = 1;
end
end
end
end
%list of priorities for the tasks of the system
% if(sum(ArmChips == 1)>0)
% PriorityList =
% %PriorityList
%else
% PriorityList =
% %PriorityList
%end
[2 3 6 17 4 5 8];
= [12 3 4 5 6 7 8];
[2 6 17 4 5 3 8];
= [12 3 4 5 6 7 8];
check= 1;
while(Task== 0)
%starting with the highest priority, check to see if that task is
%available
if(Tasks(PriorityList(check)))
152
%if it is, set that as the task to be done
Task = PriorityList(check);
end
%if we get to task 8, assign it as the task to be done
if(check == 8)
Task= 8;
end
%otherwise, go to the next highest priority and try again
check = check + 1;
end
if(UseRules)
switch Task
case 1
%if the robot can pick up a blank chip, do so
%use the empty port
if(ArmChips(1) == 0)
Port =0;
else
Port= 1;
end
case 2
%if a chip can be added to the HE, do that
%if port 0 is a blank chip, use that, otherwise use port 1
if(ArmChips(1)=- 1)
Port =-0;
else
Port= 1;
end
case 3
%if a chip can be removed from the HE AND the robot is holding a
%blank chip, take the chip out of the HE
%if port 0 is empty, use that, otherwise use port 1
if(ArmChips(1) == 0)
Port = 0;
else
Port= 1;
end
case 4
%put a chip in the taper
%use the port with the embossed chip
if(ArmChips(1)== 2)
Port = 0;
else
Port= 1;
end
case 5
%remove a chip from the taping machine
%use the empty port
if(ArmChips(1)== 0)
Port = 0;
153
else
Port= 1;
end
case 6
%put a chip in the testing machine
%use the port holding the taped chip
if(ArmChips(1) == 3)
Port = 0;
else
Port= 1;
end
case 7
%remove chip from tester
%use the empty port
if(ArmChips(l) == 0)
Port =0;
else
Port= 1;
end
case 8
%if only one of the 'go to a machine and wait' tasks apply, do that
%one
if(sum(Tasks(9:12)==1))
for i= 9:12
if(Tasks(i))
%do the only 'go to a machine' task available
Task= i;
if i== 10
%use the port holding an embossed chip
if(ArmChips(l)== 2)
Port =0;
else
Port = 1;
end
else
%use the empty port
if(ArmChips(1)
0)
Port =0;
else
Port= 1;
end
end
end
end
end
end
end
if(Task == 8)
Port = 0;
end
154
function time = MovementTimes(ArmPos,NewPos)
%function provides the time for the robot arm to move from one position to
%the next
%position
%position
%position
%position
%position
%position
%position
%position
%position
%position
1 = blank parts port 0
2= blank parts port 1
3 = HEM port 0
4= HEM port 1
5 = tape place port 0
6 = tape place port 1
7= tape pickup port 0
8 - tape pickup port 1
9 = FT port 0
10 = FT port 1
timeMat = [
2.9
4.3
4.3
4.2
4.8
16.0
16.0
16.1
16.3
0.0 2.9 Z.3 4.3 4.2 4.8
16.0 1 6.0 16.1 1 6.3
0.0 4.3 4.3 4.2 4.2 16.0 16.0 16.1 16.3
4.3 0.0 2.9 1.6 4.1 12.6 12.6 12.7 12.9
4.3 2.9 0.0 1.7 1.6 12.6 12.6 12.7 12.9
4.2
1.6 1.7 0.0 2.9 12.7 12.7 12.8 13.0
4.2 4.1
1.6 2.9 0.0 12.7 12.7 12.8 13.0
16.0 12.6 12.6 12 .7 12.7 0.0 2.9 3.2 3.7
16.0 12.6 12.6 12 .7 12.7 2.9 0.0 4.2 3.7
16.1 12.7 12.7 12 .8 12.8 3.2 4.2 0.0 3.0
16.3 12.9 12.9 13 .0 13.0 3.7 3.7
3.0 0.0];
time = timeMat(ArmPos,NewPos);
155
156
CHAPTER
9
REFERENCES
[1] A. A. Perez, C. Olle and S. Tandon, «Hot Embossing of Microfluidics Devices,
Massachusetts Institute of Technology, Cambridge, 2013.
[2] G. M. Whitesides, «The origins and the future of microfluidics, Nature,
T.
442, NX 27, pp.
368-373, 2006.
[3] G. T. Valadisavljevi5, N. Khalid, M. A. Neves, T. Kuroiwa, M. Nakajima, U. Kunihiko, S.
Ichikawa and I. Kobayashi, «Industrial lab-on-a-chip: Design, applications and scale-up for
drug discovery and delivery,
Advanced Drug Delivery Reviews,
T.
65, pp. 1626-1663,
2013.
[4] M. Heckele and W. K. Schomburg, «Review on micro molding of thermoplastic polymers,
JournalofMicromechanics and Microengineering,T. 14, pp. RI -Ri 4, 2004.
[5]
Q.
Wang, «Process Window and Variation Characterization of the Micro Embossing
Process, Tsinghua University, Bejing, China, 2000.
[6] C.-W. Tsao and D. L. DeVoe, «Bonding of thermoplastic polymer microfluidics,
MicrofluidNanofluid, T. 6, pp. 1-16, 2009.
[7] F.-C. Huang, Y.-F. Chen and G.-B. Lee, «CE chips fabricated by injection molding and
polyethylene/thermoplastic elastomer film packaging methods, Electrophoresis, T. 28, pp.
1130-1137, 2007.
[8] S. H. Park, W. I. Lee, S. N. Moon, Y.-E. Yoo and Y. H. Cho, «Injection molding micro
patterns wit high aspect ratio using a polymeric flexible stamper,
eXPRESS Polymer
Letters, T. 5, N2 11, pp. 950-958, 2011.
[9] M. Tichem, F. Schmitz, S. Kunz, H. P. Gruber and G. Popovic, «A classification scheme for
quantitative analysis of micro-grip principles, Assembly Automation, T. 24, 2004.
[10] Y. Ansel, F. Schmitz, S. Kunz, H. P. Gruber and G. Popovic, «Development of tools for
157
handling
and
assembling
microcomponents,
Journal of Micromechanics and
Microengineering,T. 12, pp. 430-437, 2002.
[11] D. Hardt and T. Siu, «Cycle to cycle manufacturing process control,
B
Innovation in
ManufacturingSystems and Technology, Singapore-MIT Alliance, 2002.
[12] M. R. Bageant, «Development of a Precision Hot Embossing Machine with In-Process
Sensing, MIT, 2011.
[13] C. J. Reyda, «Development of Adhesive Bonding and Functional Testing Systems for InProcess Inspection of Hot Embossed Microfluidic Devices, MIT, 2011.
[14] N. Zarrouati, «A Precision Manipulation System for Polymer Microdevice Production,
MIT, 2008.
[15] D. L. Henann, V. Srivastava, H. K. Taylor, M. R. Hale, D. E. Hardt and L. Anand, «Metallic
glasses: viable tool materials for the production of surface microstructures in amorphous
polymers by micro-hot-embossing,
Journalof Micromechanics and Microengineering, Nk
19, 2009.
[16] B. Ganesan, <Process Control for Micro Embossing: Initial Variability Study, MIT, 2004.
[17] M. E. Dirckx, «Demolding of Hot Embossed Polymer Microstructures, MIT, 2010.
[18] M. Hale, «Development of a Low-Cost, Rapid-Cycle Hot Embossing System for Microscale
Parts, MIT, 2007.
[19] C. Lim, «Bonding apparatus for microfluidic devices,
MTU School of Mechanical and
Aerospace Engineering, 3023.
[20] W. Sim, «Semi-automated tape bonding apparatus for microfluidic devices, NTU School
of Mechanical and Aerospace Engineering, 2013.
[21] Epson, SCARA G I0/G20 Manipulator Manual, 2011.
[22] V. Mengeaud, J. Josserand and H. H. Girault, «Mixing processes in a zigzag microchannel:
finite element simulations and optical study, Analytical Chemistry, T. 74, N2 16, pp. 42794286, 2002.
158
Download