Brigham Young University Brigham Young University BYU ScholarsArchive BYU ScholarsArchive Theses and Dissertations 2006-11-30 Defining a Model for Tool Consumption Rate on Asphalt Defining a Model for Tool Consumption Rate on Asphalt Reclamation Machines Reclamation Machines Matthew H. Taylor Brigham Young University - Provo Follow this and additional works at: https://scholarsarchive.byu.edu/etd Part of the Mechanical Engineering Commons BYU ScholarsArchive Citation BYU ScholarsArchive Citation Taylor, Matthew H., "Defining a Model for Tool Consumption Rate on Asphalt Reclamation Machines" (2006). Theses and Dissertations. 1293. https://scholarsarchive.byu.edu/etd/1293 This Thesis is brought to you for free and open access by BYU ScholarsArchive. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of BYU ScholarsArchive. For more information, please contact [email protected], [email protected].
191
Embed
Defining a Model for Tool Consumption Rate on Asphalt ...
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Brigham Young University Brigham Young University
BYU ScholarsArchive BYU ScholarsArchive
Theses and Dissertations
2006-11-30
Defining a Model for Tool Consumption Rate on Asphalt Defining a Model for Tool Consumption Rate on Asphalt
Reclamation Machines Reclamation Machines
Matthew H. Taylor Brigham Young University - Provo
Follow this and additional works at: https://scholarsarchive.byu.edu/etd
Part of the Mechanical Engineering Commons
BYU ScholarsArchive Citation BYU ScholarsArchive Citation Taylor, Matthew H., "Defining a Model for Tool Consumption Rate on Asphalt Reclamation Machines" (2006). Theses and Dissertations. 1293. https://scholarsarchive.byu.edu/etd/1293
This Thesis is brought to you for free and open access by BYU ScholarsArchive. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of BYU ScholarsArchive. For more information, please contact [email protected], [email protected].
This thesis has been read by each member of the following graduate committee andby majority vote has been found to be satisfactory.
Date Kenneth W. Chase, Chair
Date Craig C. Smith
Date Carl D. Sorensen
BRIGHAM YOUNG UNIVERSITY
As chair of the candidate’s graduate committee, I have read the thesis of MatthewH. Taylor in its final form and have found that (1) its format, citations, and bibli-ographical style are consistent and acceptable and fulfill university and departmentstyle requirements; (2) its illustrative materials including figures, tables, and chartsare in place; and (3) the final manuscript is satisfactory to the graduate committeeand is ready for submission to the university library.
Date Kenneth W. ChaseChair, Graduate Committee
Accepted for the Department
Matthew R. JonesGraduate Coordinator
Accepted for the College
Alan R. ParkinsonDean, Ira A. Fulton College ofEngineering and Technology
ABSTRACT
DEVELOPING A MODEL FOR TOOL CONSUMPTION RATE ON
ASPHALT RECLAMATION MACHINES
Matthew H. Taylor
Department of Mechanical Engineering
Master of Science
Asphalt and concrete reclamation machines are used to cut roadways when
a repair is required. The performance of these machines can affect the quality of
road repairs, and cost/profitability for both contractors and governments. We believe
that several performance characteristics in reclamation machines are governed by
the placement and pattern of cutting picks on the cutter head. Previous studies,
focused on mining and excavation applications, have shown strong correlation between
placement and wear.
The following study employs a screening experiment (observational study)
to find significant contributors to tool wear, in applications of asphalt milling or
reclamation. We have found that picks fail by two primary modes: tip breakage,
and body abrasive wear. Results indicate that the circumferential spacing of a bit,
relative to neighboring bits, has the strongest effect on tip breakage. We have also
shown that bit skew angle has a large positive effect on body abrasive wear.
ACKNOWLEDGMENTS
This research was mainly supported by Asphalt Zipper, Inc. Asphalt Zipper
has made significant contributions of both equipment and labor to make the study
possible, and they are gratefully acknowledged for their help.
I would like to acknowledge the long patience of Dr. Ken Chase. He has given
many hours of help, and been a great source of advice and ideas. His impact on me
extends beyond the engineering classroom.
I would also like to acknowledge the help of the Mechanical Engineering Faculty
and staff. They have been an immense help to me and have always been there.
Special thanks to Dr. Carl Sorensen for help and support on many difficult problems
encountered in this work. And, to Dr. Craig Smith for his thoughtful input.
Most of all, I would like to thank my wonderful wife. She is truly a pillar
of strength in my life. I am thankful for her patience with long, odd hours, for her
genuine interest in my research, her playful teasing, and her efforts to motivate me
Figure 2.4: Failure paths associated with rock excavation using attack picks[1]
2.3.2 Pick Orientation Effects
For the purposes of our study, we define two primary angles for the orientation
of the attack pick: attack angle and skew angle. These angles have been shown
to directly affect pick performance. Pick manufacturers have issued research-based
20
recommended values for these angles, to be used in designing cutter heads. These
values vary by application.
Figure 2.5: Definitions of pick orientation angles
Attack angle is defined as the angle from a line tangent to the path of the tip
of a pick, to the axis of the pick body, measured in the plane defined by the circular
path traveled by the pick tip. Skew angle is the angle from the plane defined by the
circular path traveled by the pick tip, to the axis of the pick body, measured in a
plane tangent to the circular path traveled by the pick tip. The sketch of Figure 2.5
illustrates the angle definitions. These angles are described in greater detail in the
referenced literature, and in Appendix D.
So far, we have discussed two different forms of the pick skew angle: that
defined in the USBOM study[4], and the definition of Figure 2.5. In future sections,
we will also make use of the absolute value of the skew angle. It should be noted
21
that while we are using multiple forms of skew angle, all three have identical magni-
tude. For the USBOM study, the sign of the skew angle depends on the surrounding
material. As defined here, the sign of the skew angle is relative to the cutter head.
Other forms of the skew angle used here are the absolute skew angle, and the
standard skew angle. Absolute skew angle is simply the absolute value of the angle.
Standard skew angle is the angle found in cutter head measurements (Appendix D).
For asphalt reclamation machines, the attack angle, as shown in Figure 2.5, is
approximately constrained by the shape of the pick holder (hereafter called a block).
The standard block has constraining features that control its placement on a cutter
head. These features are designed to constrain the attack angle, and are fairly effec-
tive. Pick manufacturers have recommended a skew angle of between 4 and 6 degrees
for the present application. But, skew angle is not constrained by the shape of the
block, and is known to vary significantly in manufacturing.
In general, we have observed that pick orientation has a large effect on wear,
and the skew angle seems to have a larger effect than attack angle. Studies have shown
that, by introducing a small material-negative skew angle, forces are generated that
cause the pick to rotate in its holder. This rotation ensures uniform wear around the
pick. When this rotation is not present, a flat spot is generated on the pick, which
causes rapid failure. The US Bureau of Mines study[4], referenced above, showed that
a skew angle of between 5 and 15 degrees was most effective in inducing rotation in
carbide attack picks. For angles approaching 15 degrees, pick manufacturers find that
significant bending stress is introduced into the pick body. But, no recommendation
is given on the tolerance for skew angle variation.
22
2.3.3 Pick Position Effects
Simple experiments in altering relative pick position suggest that pick posi-
tioning has a large impact on pick wear. We have found that, when inserting a new
pick into a cutter head with worn picks, the new pick will wear rapidly to match the
worn state of the neighboring picks. We hypothesize that this phenomenon can be
quantified in terms of volume removed by the new pick.
When a new pick is inserted between worn picks, its relative height may be
as much as 1/8 of an inch greater than the neighboring picks. This additional height
causes the new pick to remove a greater volume of material in each cutting cycle.
When the new pick has worn to match the neighboring picks, the volumes equalize,
and the wear rate between picks equalizes.
To illustrate the effects of pick position on pick volume removal, we make a
rough estimate of the cross-sectional area of the material removed by each pick. The
volume removed by each pick will be approximately proportional to the estimated
cross-sectional area. This illustration focuses on pick numbers 23 and 50, numbered
in order of impact. While these particular picks represent an extreme case, they serve
well to illustrate the potential effect of pattern layout on volume removal.
The cutter head pattern used for this illustration is shown in Figure 2.6, with
each dot representing the tip of an attack pick. This pattern is a 30 inch wide scattered
chevron pattern, and is typical of most cutter head patterns. The location of pick
numbers 23 and 50 are also noted in figure 2.6. Horizontal lines have been drawn
through picks 23 and 50 so that the relative locations of neighboring picks can be
easily identified.
Dimensions defining the location of picks in a particular pattern are defined
in terms of axial position referenced from the edge of the cutter head drum, and in
terms of circumferential spacing around the drum based on an arbitrary starting line
(sometimes a seam in the tubing from which the drum is constructed).
23
�����������
�� ��������� ������� ���������
����������� ������� �� �������
Figure 2.6: Flattened pick lacing pattern in a 30 inch wide scattered chevron pattern
A map of the impact location of each pick in the pattern is shown in Figure 2.7.
This map is based on a cutter head rotational speed of 150 revolutions per minute,
and a machine advance rate of 20 feet per minute. A simple explanation of this map
is obtained by imagining that the map is laid on the ground and then run over by the
machine. In this case, as the machine advances forward, the tip of each pick would
impact at the center of its corresponding circle on the map.
The circles in Figure 2.7 represent an impact-affected zone for each pick, or a
zone in which the pick is removing material from the cut. Overlapping circles indicate
that material has been removed by preceding picks. The size and shape of the impact-
affected zone are chosen arbitrarily for the purposes of this illustration. Figure 2.8
diagrams the difference in cross-sectional area of material removed by pick numbers
23 and 50. From Figure 2.8 we can conclude that Pick 50 will remove a larger volume
of material than pick 23.
24
Figure 2.7: Map of impact locations for each attack pick in a 30 inch wide scatteredchevron pattern
This model is similar to the model used by Chase [2] in his analysis of oil
well drilling heads. However, a simple study of the behavior of asphalt in milling
conditions, as described in later sections, shows that the shape of the material removal
zone is quite different from the shape found in Chase’s study. Later discussions detail
methods for finding a more appropriate model for the actual volume removed by each
pick.
����
���������� �������� ����
�������������
�������� ����
�������������
����������
����
������������������
�������������������������
������
������������������
������
�������������������������
Figure 2.8: Illustration of pattern lacing effect on cutting cross-section for picks 23and 50 of Figure 2.7
25
2.4 Effects of Assembly Tolerance
As we have demonstrated in a previous section, per-pick volume removal is
determined by the axial spacing and angular placement of attack picks. Our earlier
discussion assumes that a cutter head is built exactly to engineering specifications.
Current manufacturing processes allow for variation not only in axial and angular
position, but also in radius. The effects of manufacturing variation, along dimensions
that define pick position, are similar to the effects of lacing pattern design.
The radial height of a pick is measured from the axis of rotation of the cutter
head, to the tip of the pick, measured in the plane defined by the circular path traveled
by the pick tip. Attack angle and skew angle are described in a previous section.
Road milling applications require tighter tolerances on pick position because
of the requirement for uniform depth in shallow cuts. When making shallow cuts in
asphalt, the effect of variation in pick position will be much larger as a percentage of
total depth. Reclamation machines are typically not used for making shallow cuts,
therefore the manufacturing requirements have been relaxed in an effort to reduce
cost.
The cutter heads used in this study have a specified manufacturing tolerance
for pick location of plus or minus 1/8 inch, in any direction (arc-wise, axial or radial).
Typical positional tolerances for the industry range from 1/16 inch to 1/8 inch. How-
ever, we have not been able to locate any studies that would help to define appropriate
tolerances for pick position in asphalt reclamation machines. Part of our objective in
this study is to determine which dimensional characteristics have significant effects
on pick wear, and therefore, where to focus manufacturing improvements.
26
Chapter 3
Modeling Per-Pick Volume Removal
In order to investigate the relationship between per-pick-volume and pick wear,
we first needed to define a model relating per-pick-volume to measurable parameters
of a cutter head. In this section, we show that a close approximation of per-pick
volume can be calculated from geometric, and operational parameters. In simple
terms, we calculate the cross-sectional area of a pick’s cut, at several angles through
the cutting cycle, and then integrate those areas to find volume. A summary of this
process follows.
1. Select a primary pick for which to calculate cut-volume, based on impact order
2. Select a subset of picks that interact with the primary pick
3. Divide the primary pick’s cutting path into angularly incremented sectioning
planes
4. For each sectioning plane:
(a) Calculate an effective radius for each interacting pick, lying in the current
sectioning plane
(b) Find intersection points between cutting profiles for the primary pick, its
own previous cutting cycle, and all interacting picks
(c) Calculate the area enclosed by the intersection points
5. Numerically integrate each of the pick’s cutting section area along its cutting
path
27
3.1 Pick Groove Shape and Material Removal Zone
By studying the shape of the grooves formed by picks as they pass through
asphalt, we have developed a model for cut profile. Figure 3.1 shows an area where
a reclamation machine began a cut in asphalt. The feature noted in this image is
a smooth track caused by the body of a pick contacting unprocessed material. The
hardened steel body of the pick continues to make occasional contact with the solid
portions of asphalt throughout the picks effective life. The observation of pick body
contact suggests that asphalt, not in the direct path of the pick (material between
picks), remains intact after a pick has made a near-by pass.
Figure 3.1: Pick body has been found to leave a smooth track along the inside faceof the pick groove
Based on the above observations, we have chosen to use a “V” shaped cutting
profile, at an angle of 75 degrees. In order to verify the geometry of the material
removal zone, we collected a sample of asphalt that had been cut by a single pick.
28
Figure 3.2 shows a cut-away view of the asphalt sample. A true scale sketch of a pick
has been superimposed on the image. A 75 degree “V” has been added to the sketch
to represent the approximated cutting profile.
Figure 3.2: A simplified pick cutting profile angle of 75 degrees was used to calculateper-pick material volume
3.2 Relative Depth and Cut Cross-Section
Most of the effort required to find volume is centered in finding the cross-
sectional area along a pick’s cutting path. In Section 2.3.3, we demonstrate the
relationship between pick position geometry, machine forward speed, cutter head
rotational speed, and pick cutting cross-section. For a more complete model, we also
consider the overall cutting depth of the machine.
Cross-sectional area for an individual pick is defined in a series of sectioning
planes, like the plane illustrated in Figures 3.3. Sectioning planes are defined by
the cutter head axis of rotation and the tip of the current pick. We describe a
material cross-section using a set of points lying in the sectioning plane. These points
are coordinates of the intersections between the “V” shaped cutting profile for all
neighboring picks. Coordinates for these intersections are based on the axis of rotation
of the cutter head, and the edge of the cutter head skin, in the directions shown in
29
Figure 3.4. The dimensioned sketch in Figure 3.5 shows a set of intersection points,
relative to the tip of the current pick.
Boundary points for the included figures are described in Table 3.1. As dis-
played in Figure 3.4, Lines BF and FD represent material remaining immediately
prior to the current picks cutting cycle. Lines EA and AG represent the new ma-
terial boundary, after the current pick completes its cutting cycle. The shaded area
represents the cross-section of material removed in this cutting cycle.
Figure 3.3: Section view of pick cut paths in an asphalt slab
30
Figure 3.4: A representation of material cross-section for a single pick’s cutting path,from Detail B of Figure 3.3
Table 3.1: Description of labels for cross-section boundary points from Figure 3.4
Label DescriptionA Tip location for current pickB Tip location for a previous pass of an adjacent pickC Tip location for previous pass of current pickD Tip location for a previous pass of an adjacent pickE Intersection point between cut profile of picks A and BF Intersection point between cut profile of picks B and DG Intersection point between cut profile of picks A and D
31
Figure 3.5: Dimensioned sketch (in inches) of a pick’s material cross-section
Table 3.2: Coordinates for pick tip locations shown in Figure 3.4
Label xp yp
A 9.00 18.00B 8.50 17.86C 9.00 16.99D 9.50 17.64
Table 3.3: Coordinates for intersection points shown in Figures 3.4 and 3.5
Label xs ys
A 9.00 18.00E 8.70 17.60F 9.09 17.10G 9.39 17.49
32
The coordinates for the intersection point between any two pick profiles, in
the sectioning plane, are given by Equation 3.1. This equation requires x and y
coordinates for the tip location (xp, yp) of two picks in the sectioning plane. With
the equation in this form, Pick 2 must have x coordinate greater than that of pick 1
(xp2 > xp1). Example pick tip and intersection point coordinates are shown in Tables
3.2 and 3.3 respectively.
xs =(yp2 + m · xp2)− (yp1 −m · xp1)
2m
ys = m · xs + (yp1 −m · xp1); (3.1)
Where:
m = Slope of the line defined by a single side of a pick cutting
profile, lying in the sectioning plane – In this case, m =
tan(90◦ − 75◦
2)
xp = Axial coordinate of a pick tip location, relative to refer-
ence point on edge of cutter head skin: a specific instance
of Da
yp = Radial coordinate of a pick tip location: a specific in-
stance of the variable Re
xs = Axial coordinate of a pick cut profile intersection point,
relative to tip location of current pick
ys = Radial coordinate of a pick cut profile intersection point,
relative to tip location of current pick
Pick tip effective depth within a particular sectioning plane (yp in Table 3.2),
can be found using Equation 3.2. This equation finds an effective radius Re for the
previous pass of a given pick, or the effective depth of its neighboring picks. Variable
definitions for the effective radius equation are listed below, and are illustrated in the
sketch of Figure 3.6.
33
Re = R
sin[π − arcsin
(AR
sin (θ))− θ
]sin (θ)
(3.2)
Where:
Re = Effective pick tip radius for a particular sectioning plane
R = Individual pick tip radius, from rotational axis of cutter
head
A = Machine advance distance between pick impact events
θ = Cutter head rotation angle, measured from negative of
machine advance direction to an individual pick tip
Figure 3.6: Geometry for effective pick radius Re within a sectioning plane at angleθ and advance distance A
34
3.3 Cross-Sectional Area and Volume
A pick’s cutting cross-sectional area can be found using a variation of Green’s
Theorem[6]. Our variation, shown in Equation 3.3, takes a list of ordered intersection
points (calculated in Section 3.2) and returns an enclosed area. The intersection
points for a typical pick are shown in Figure 3.5. Figures 3.3 and 3.4 further illustrate
the context of the plane and geometry in which Green’s theorem is applied.
Ab =1
2
n∑i=1
(xs,iys,i+1 − xs,i+1ys,i) (3.3)
θmin =π
2
θmax = arccos(
Rn −Dc
Rn
)+
π
2
θstep =θmax − θmin
nstep − 1
sstep = Rn · θstep
Vb =nstep∑i=1
(sstep
Ab,i + Ab,i+1
2
)(3.4)
The swept volume of removed material is calculated by numerically integrating
cross-sectional area at intervals along the pick’s path. Equation 3.4 shows the method
for numerically integrating for swept volume. This equation essentially implements
a trapezoidal numerical integration between the angles bmin and bmax, in angular
increments of bstep. The variable sstep is the arc distance along a single angular step,
and nstep is the number of angular steps in the integration.
3.4 Verification of Model Results
In order to confirm the results of the MATLAB calculations, we modeled the
expected volume removed by each pick using a CAD-based solid modeler. Solid vol-
ume calculations returned by this software are quite accurate, however, the processing
35
time for these calculations is excessive. Code used to implement volume calculations,
using an Application Program Interface (API) to the CAD package, is included in
Appendix B. The simplified CAD model, used for volume calculations, is also shown
in Appendix B. Figure 3.8 shows a rendering of the complete CAD model.
Per-Pick Volume Model Comparison
0
1
2
3
4
5
6
7
0 5 10 15 20 25 30
Axial Position (in)
Pick Volume (in3)
CAD Model
MATLAB Model
Figure 3.7: Comparison between CAD and MATLAB models of per-pick volumeremoval rate
The comparison illustrated in Figure 3.7 is a plot of the per-pick volume for
each pick, ordered by axial position on the cutter head. Values found from the
MATLAB model lie almost directly over the CAD values, causing the plot to appear
as one line. These results are based on a MATLAB volume calculation using 30
integration steps (nstep = 30). Because processing time with 30 steps is relatively slow,
we used nstep = 10 for tasks requiring iterative model calls (Monte Carlo Simulations).
The processing time is dramatically reduced, with very little loss of accuracy. Overall,
the MATLAB model performs very well.
36
Figure 3.8: Complete CAD model describing cut simulation used in model validation
It should be noted that both methods described here, for finding per-pick
volume, ignore the forward movement of the machine during a pick’s cutting cycle.
We believe this to be a minimal source of error, considering that a given pick’s cutting
cycle is short compared to the forward speed of the machine. The advance distance
between impacts of a single pick is 0.8 inches, while the advance during cutting is only
about 0.1 inches. This approximation is made for all picks, therefore the net effect
is a change in shape for the volume element removed by a pick, but no significant
change in the magnitude of the volume.
37
3.5 Summary of Chapter Variables
m = Slope of the line defined by a single side of a pick cutting profile, lying
in the sectioning plane – In this case, m = tan(90◦ − 75◦
2)
xp = Axial coordinate of a pick tip location, relative to tip location of current
pick
yp = Radial coordinate of a pick tip location: a specific instance of the vari-
able Re
xs = Axial coordinate of a pick cut profile intersection point, relative to tip
location of current pick
ys = Radial coordinate of a pick cut profile intersection point, relative to tip
location of current pick
R = Individual pick tip radius, from rotational axis of cutter head
Rn = Nominal pick tip radius, specified by engineering drawings
A = Machine advance distance between pick impact events
Re = Effective pick tip radius for a particular sectioning plane
θ = Individual pick tip rotational angle, measured from negative of machine
advance direction
D = Pick tip depth relative to another pick (R−Re)
Ab = Pick cut cross-sectional area, at a particular integration angle
θmin = Rotational angle at which picks begin a cutting cycle (enter the asphalt)
θmax = Rotational angle at which picks end a cutting cycle (exit the asphalt)
θstep = Step size (in rotational angular units) used for volume integration
sstep = Step size (in arc distance units) used for volume integration
Vb = Volume of asphalt removed by a single pick in a single pass
38
Chapter 4
Developing an Experiment
The primary focus of this experiment is to determine the strength of the rela-
tionship between pick position/orientation, and pick failure rate. In previous sections,
we have defined three main variables that will be our primary experiment factors: ab-
solute skew angle, attack angle, and per-pick volume removal. The response variable
for our experimentation is the pick failure rate.
4.1 Designed Experiment vs. Observational Study
Using a designed experiment requires precise control over the factors of inter-
est, in our case pick position and orientation. This study is motivated by the fact
that these factors are difficult to control. Because of this difficulty, we have chosen
to obtain data under an observational study framework.
There are certain trade-offs when choosing between an observational study and
a designed experiment. Typically, a designed experiment would have to be conducted
in a laboratory in order to explicitly control all of the variables. And, some operating
conditions would be impossible to simulate in the lab.
On the other hand, observational studies have certain difficulties. Measure-
ments in the field are expected to be more difficult, and less accurate. In the present
study, we simply collect observations of performance under conditions of natural vari-
ation in all experiment variables. Under these conditions, it is impossible to detect
the presence of lurking variables from statistical analysis of the results. This means
there is a strong potential for confounded results, or results that cannot be verified
by statistical methods. In order to validate our results, we have shown by expert
39
knowledge of the systems involved, that all potential variables have been sufficiently
accounted for.
Designed experiments are setup in such a way that data are collected at the
boundaries of the model space. Since in an observational study we are unable to
choose factor values, the boundaries are not fully explored. This can lead to mislead-
ing results, as some regions of the predictive model actually use extrapolations of the
data.
The specific objective of the experiment was to relate the pick failure rate to
the volume removal and to the orientation of each pick location. Table 4.2 describes
the three primary explanatory variables that make up our experiment. Section 2.3.2
describes in detail how skew and attack angles affect individual pick wear.
4.1.1 Independent Variables and Manufacturing Variation
The attractiveness of an observational study for this research is derived from
the large manufacturing variation observed in the construction of cutter heads. There
are 96 picks in the main pattern of a 48 inch wide cutter head. We assume that each
pick is defined by a set of independent random variables. This situation provides us
with a large amount of data from a single cutter head.
Using the methods described in Chapter 3, we have calculated expected vari-
ation in the volume of material removed by each pick. These calculations are based
on the dimensional tolerance from engineering assembly drawings. Figure 4.1 shows
nominal volume for each pick location on a particular cutter head. Also shown, are
expected variation found from two different methods of calculation. The Monte Carlo
method is simple to implement, but very resource intensive. The Direct Linearization
Method (DLM) returns accurate results, with very few calculations. A comparison
of the two methods can be found in a study by Gao, Chase, and Magleby[7].
40
Volume Tolerance Analysis
0
1
2
3
4
5
6
7
8
9
0 5 10 15 20 25 30
Axial Position (in)
Volume (in3)
MonteCarlo Tolerance
DLM Tolerance
Nominal Volume
Figure 4.1: Expected variation in per-pick volume removal, based on cutter headassembly tolerance
Both the DLM, and the Monte Carlo method produce a root-sum-squares
(RSS) assembly tolerance for per-pick material volume. The error bars on the nominal
volume represent a plus-or-minus three sigma (3σ) variation in per-pick volume. A
separate plot of the one-sided 3σ variation for each of the analysis methods is also
included in Figure 4.1.
It can be seen from the DLM and Monte Carlo tolerance plots, of Figure
4.1, that there is very close agreement between the two methods. There are three
main issues effecting the accuracy of these methods. First, Monte Carlo accuracy
depends on making a large number of model calls, which can be very time intensive
(we performed only 15,000 iterations). Second, DLM performs a linearization on the
input model, which can introduce errors where tolerances are large relative to nominal
dimensions. Third, the DLM assumes a Normal distribution for both manufacturing
tolerances and volume variation, but non-linearity in manufacturing tolerances can
cause the actual distribution of volume variation to be skewed. The DLM method
has been shown to have accuracy equivalent to a Monte Carlo analysis with 30,000
model calls[7].
41
4.2 Characterization of Experiment Variables
The response variable for our experimentation is the locational pick failure
rate. This rate is defined as the number of picks replaced in a particular location on
an existing cutter head, throughout all testing. Note that we have not defined this
rate in terms of time, but rather in terms of count-per-experiment (see Table 4.1).
tipFails Individual pick tip failure count, bycutter head location, for the presentexperiment
bodyFails Individual pick body failure count, bycutter head location, for the presentexperiment
Two main characteristics of the experimental design allow us to ignore time
between failures. First, defining per-pick volume makes each pick location on a cutter
head an independent statistical sample. Second, each pick location will experience
the same amount of run time. Under this scenario, the knowledge gained from the
experiment will only allow us to identify significant factors for predicting failures; we
will not be able to predict time-to-failure for a particular pick location.
The main predictive variables that are the focus of this study are pick absolute
skew angle, attack angle, and per-pick volume removal. These three factors can either
be measured directly, or calculated from direct measurements of a cutter head. The
measurement of the factors of interest is fairly simple, with appropriate equipment
(refer to Section 5.1).
42
Table 4.2: Primary independent variables
Factor Description Factor Handling
Absolute Skew angle Can be directly measured
Attack angle Can be directly measured
Per-pick volume removal Can be calculated from measurableparameters
Pick failure rate is affected by many different conditions present in asphalt
reclamation. For the current experiment, we are able to directly observe only a few
key variables. Several variables, known to contribute to pick consumption rate, are
very difficult to observe. However, the nature of the experiment causes these non-
observed variables to be effectively randomized. On average, all picks will experience
identical levels of these randomized factors. Observable and non-observable factors
are listed in Tables 4.3 and 4.4, respectively. The referenced tables show each of the
factors that we have been able to identify, and the approach we have taken to account
for them.
Table 4.3: Global variables, applying to all picks collectively
Factor Description Factor Handling
Machine depth Although each pick has a different cut-ting radius, all picks will experiencethe same machine depth
Cutter head RPM’s All picks will experience the same cut-ter head RPM
Amount of material being re-worked
In a scattered pattern, all picks willprocess approximately the same vol-ume of rework material
43
Table 4.4: Randomly varying experiment variables, adding noise to the results
Factor Description Factor Handling
Grain size of asphalt On average, all picks will experi-ence the same asphalt grain sizethroughout testing
Hardness of asphalt On average, all picks will experiencethe same asphalt hardness through-out testing
Temperature of asphalt On average, all picks will experi-ence the same temperature of as-phalt throughout testing
Moisture content of asphalt On average, all picks will experiencethe same moisture content, withwater cooling system disabled
Pick manufacturing characteristics The effects of pick manufacturingcharacteristics will be randomizedas picks are destroyed and replaced
Material flow characteristics This should be highly correlatedwith other factors that have alreadybeen accounted for
One potential factor that was not directly handled in this experiment is the
material flow characteristics between picks. When operating in deep applications
(i.e. trenching), a large volume of processed material flows between the picks. This
material flow could interfere with bit rotation, cause side loads on bits, and/or increase
abrasive wear to pick bodies. But, the limited resources of the project, and the
difficulty involved in measuring such parameters, lead us to ignore the effects of this
potential factor. We feel this is a safe decision, based on observations suggesting that
material flow will be highly correlated with other factors in the analysis (see Section
4.2.1).
44
4.2.1 Expanded and Condensed Factor Models
In order to help us develop a more detailed understanding of pick failure, we de-
fine and analyze a few additional factors (Table 4.6). The primary dependent factors,
defined previously, will hereafter be called condensed factors. The additional factors
are an expansion of the main factors of interest. These expanded factors consist of a
set of positional measures based on what we have termed the Tip Proximate Distance
(TipPD) and Body Proximate Distance (BodyPD). As presented in later sections, we
correctly anticipated that the expanded factor set would reveal useful insight into the
performance drivers in cutter head design. A summary of key definitions is provided
in Table 4.5.
Table 4.5: Key definitions relating to proximate distance
Term Definition
Axially adjacent neighbors The two picks having the least axialdistance from the pick of interest (ide-ally, picks have uniform axial spacing)
Angular proximate distance Angular distance between a pick andeither of its axially adjacent neighbors
Radial proximate distance Height difference (from cutter headaxis of rotation) between a pick andeither of its axially adjacent neighbors
Body-side The direction, along the cutter headaxis, toward which a given pick’s bodyis angled by skewing
Tip-side The direction, along the cutter headaxis, away from which a given pick’sbody is angled by skewing (oppositethe body-side)
45
Figure 4.2: Diagram showing definitions and sample values of tip and body sideproximate distance for a selected pick and its axially adjacent neighbors
Tip-side and body-side, for a given pick, are defined by the skew angle for the
pick as shown in Figure 4.2. As labeled in the figure, the body-side of a pick is the
46
direction along the axis of the drum toward which the body of the pick is angled,
by skewing. The Tip PD is the distance from a given pick to the axially adjacent
neighbor on the tip side, along a specified dimension. Tip Radial PD is the radial
distance between a pick and its axially adjacent neighboring picks. Axial PD is the
axial distance between a pick and its axially adjacent neighboring picks.
Angular PD is the angular distance between a pick and either of its axially
adjacent neighboring picks, measured in the forward direction; i.e. angular PD is
measured in the pick’s direction of travel. This is illustrated in Figure 4.2 for the
body-side PD, where angular distance (dimension broken at ‘aBodyPD’) is measured
the long way around the drum.
Using expanded factors allows us to more effectively test the interaction be-
tween per-pick volume and skew angle. The condensed factor set, described in the
preceding section, does not account for the fact that a given pick may cut more as-
phalt on its body side than it does on its tip side. Similarly, a given cutting volume
may have a different effect on the body side than it does on the tip side.
Table 4.6: Additional experiment variables potentially correlated to bit failures
Variable Name Factor Description
xBodyPD Axial body-side proximate distance
xTipPD Axial tip-side proximate distance
rBodyPD Radial body-side proximate distance
rTipPD Radial tip-side proximate distance
aBodyPD Angular body-side proximate distance
aTipPD Angular tip-side proximate distance
47
4.3 Overall Average Pick Consumption Rates
In an effort to approximate the amount of data that would be needed for
significant results, we collected some preliminary data on overall pick consumption
rate per machine. We collected data from information on pick sales and machine
hours. The data were collected from 3 different customers, using information on pick
sales and machine hours. Due in part to a wide variety of applications, the data we
collected had a very large range. The first customer averaged a consumption rate of
30 picks per hour, the second averaged a consumption rate of 1 pick per hour, and
the third averaged 5 picks per hour. By considering the applications in which these
data were collected, we anticipated a pick consumption rate for our experiment of 20
picks per hour. We will show in a later section that this approximation was much
higher than the actual.
4.4 Independent Sampling and Bias
The assumption that each pick location represents an independent observation
is only approximately true. For example, if a particular pick fails, and the machine
continues to operate, the neighboring picks will experience an increased load until
the failed pick is replaced. This situation will cause pick failures in neighboring pick
positions. By stopping the reclamation machine for inspection and data recording at
frequent intervals, the dependency between wear rate of neighboring picks is reduced.
The solution to this dependency problem is to closely monitor the state of each
pick, and replace it as soon as it fails. However, characteristics of asphalt reclamation
make it very difficult to continuously monitor the state of individual picks. As a
result, we are required to collect data at certain intervals in time (i.e. readout data).
Because the precision of our analysis depends on the time resolution of the data
collected, choosing the length of the time interval requires careful consideration.
The ideal interval would approximately match the life of the shortest lived
pick. However, since we have very little predictive capability, we are unable to di-
rectly determine the actual life of any pick. Our approximation of average overall
48
pick consumption rate is useful in determining an initial target for the readout in-
terval, however, the optimum interval is expected to vary by circumstance. In actual
application, we start with an initial target for readout interval, and then adjust that
interval based on observations in that application.
An alternative approach to reducing inter-pick failure dependency is to replace
picks before they completely fail. This could be accomplished by creating a ‘not-go’
gage to be used in determining a uniform level of wear at which a pick is to be
replaced. While this method has attractive statistical attributes, it is difficult to
apply in practice, considering that multiple failure modes have been identified.
4.4.1 Cut Overlap Bias
It was expected that on some jobs, a machine operator would make multiple
adjacent cuts with the reclamation machine. In this case, the machine’s path may
overlap the trench left by a previous path. The result of this situation is that not all
of the picks on the cutter head will be engaging material, which would be a serious
disruption to our experiment. In order to avoid the resulting bias in our data, we
required the machine operator to make several long passes, without significant overlap.
We then discarded data from picks located within a certain distance of the edge of
the cutter head.
49
50
Chapter 5
Conducting the Experiment
5.1 Measuring Actual Pick Position and Orientation
The first task in our experimentation was to make accurate location and orien-
tation measurements for each bit on a particular cutter head. We used a Romer/Cim-
core brand articulated arm CMM (model ‘10 foot Infinite Arm’) to take the measure-
ments. These measurements were performed on empty pick mounting blocks, and
then transformed, based on the shape of the style of pick to be used in our study.
This approach is possible because of the relatively low dimensional variation between
picks. Appendix D details the setup, methods, and results of these measurements.
Based on measurement repetition, we estimate that all measurements are accurate
within ±.015 inches.
Table 5.1: Descriptive statistics for bit placement measurements (no edge bits)
Mean Max Min StDevAxial Spacing 0.5” 0.67” 0.32” 0.08”Tip Radius 17.92” 18.01” 17.84” 0.04”Left Skew -11.5◦ -7.3◦ -18.2◦ 2.3◦
Right Skew 6.0◦ 11.6◦ 1.9◦ 2.1◦
Attack Angle 51.9◦ 53.6◦ 50.2◦ 0.7◦
With precise information on pick location and orientation, we were able to
use the previously discussed computer model to calculate the volume per cutter head
51
revolution removed by each pick, for specified operating parameters. The other factors
of interest, listed in Table 4.2 were also readily available from the transformed CMM
measurements. Descriptive statistics for the bits that were used in the analysis are
shown in Table 5.1.
5.2 Data Collection Methods
Data were collected on various job sites, in various applications. Approximate
times and descriptions of the applications in which we conducted tests are shown in
Table 5.2, comprising a total of 50 hours of operation.
Because of the way asphalt milling attachments are operated, different appli-
cations can affect large changes in some of our factors of interest. Most notable is
the effect of machine forward speed on per-bit-volume. In thin, or soft, material the
machine’s forward speed averaged about 25 feet per minute, whereas in hard or thick
material the machine’s forward speed was between 8 and 10 feet per minute. The
actual average forward speed for the three different material types in our testing were
recorded by the operator, and are shown in Table 5.2.
Table 5.2: Descriptions of Testing Applications
TestingTime
ApplicationDescription
Bit Re-placements
ForwardSpeed
12 hours thin, ‘alligatored’ 27 25 ft/min
35 hours deep, hard 55 10 ft/min
3 hours deep, soft 30 20 ft/min
The first application listed in Table 5.2 is described as ‘alligatored.’ This term
refers to a state of asphalt paving where the material is broken into uniform pieces,
but the material is still in place. An example image of alligatored asphalt is included
in Figure 5.1
52
Figure 5.1: Image of asphalt in ‘alligatored’ condition
Data collected during testing were recorded by the machine operator. The
machine operator reported that in softer materials, some of the bits experienced
a significant amount of body wear. In some cases, the operator was required to
replace these bits before they had completely failed, to avoid damaging the block.
These body-wear-failures represent a separate failure mode of which we were not
previously aware. The number of body and tip failures are compared in Table 5.3.
Total descriptive statistics for the bits considered in our analysis, based on cut overlap,
are presented in Table 5.4.
Table 5.3: Number of failures by failure mode and application
Failure ModeApplications Pick Tip Pick BodyMaterial Type 1 7 20Material Type 2 54 1Material Type 3 0 30
53
Table 5.4: Descriptive statistics for bit failures on bits considered in the analysis
Following are the MATLAB functions and routines used to calculate the vol-
ume removed by each bit on a cutter head. The indented list, shown in Table B.1,
presents the call structure for functions used in calculating per-pick volume removal.
Code and related information for each of the functions are included in the subsequent
listings.
Table B.1: Function call structure for volume calculation
CutterApp.m
↪→ MainVolume.m
↪→ BitVolume.m
↪→ BitArea.m
↪→ Dominance.m
↪→ SectPt.m
93
Listing B.1: Main volume function - cutter head specific1 % CutterApp .m
%% SYNOPSIS% This s c r i p t c a l c u l a t e s per−pick−volume removal f o r each p ick o f a g iven% cu t t e r head . The s p e c i f i c a t i o n s f o r the cu t t e r head are pu l l e d from a
6 % comma de l im i t ed f i l e . Operat iona l parameters are d i r e c t l y ass i gned to% va r i a b l e s wi th in t h i s f i l e . Resu l t s are wr i t t en to a% constant−column−width t e x t f i l e .%% ARGUMENTS
11 % none%% INPUT% cu t t e r head s p e c i f i c a t i o n f i l e (comma de l im i t ed )% − column 1 = ax i a l p o s i t i on
16 % − column 2 = angular po s i t i on% − column 3 = arc d i s t ance po s i t i on% − column 4 = b i t t i p rad ius% − column 5 = skew ang le% − column 6 = at tack ang le
21 % − column 7 = b i t number ( from eng ineer ing drawings )% − column 8 = b i t type%% OUTPUT% column−a l i gned t e x t f i l e
26 % − column 1 = ax i a l index% − column 2 = per−pick−volume% − column 3 = ax i a l p o s i t i on% − column 4 = angular po s i t i on%
31 % OTHER VARIABLES% anaVar : de s c r i b ed in f o l l ow i n g comments% desVar : [ a x i a l p o s i t i o n , angle around drum , t i p r a d i u s ]% ppVol : [ b i t i n d e x , b i t vo lume , a x i a l p o s i t i o n , drum angle ]%
36
clear a l l ;close a l l ;
41 % ana l y s i s v a r i a b l e sVf = 8 ; % 1 forward v e l o c i t y ( f t /min) ranges from 10 to 40Wr = 150 ; % 2 angular v e l o c i t y o f c u t t i n g drum ( rev /min)Za = 75 ∗ pi /180 ; % 3 ang le o f impact a f f e c t e d zone ( rad )Ro = 0 . 0 8 ; % 4 t i p rad ius o f f s e t ( in )
46 Dc = 8 . 0 ; % 5 depth o f cut ( in )Rn = 18 ; % 6 nominal b i t rad ius ( in )Tr = 0 ; % 7 rad i a l p o s i t i o n a l t o l e rance ( in )Ta = 0 ; % 8 ax i a l p o s i t i o n a l t o l e rance ( in )Tc = 0 ; % 9 c i r cumf e r en t i a l p o s i t i o n a l t o l e rance ( in )
51 Gn = 0 . 5 ; % 10 mean gap between b i t s − pro j e c t ed onto drum ax i ss tep = 10 ; % 11 number o f vo lumetr i c i n t e g r a t i on s t ep snEB = 4 ; % 12 number o f edge b i t s per s i d e
anaVar = [ Vf ;Wr; Za ;Ro ;Dc ;Rn ; Tr ;Ta ; Tc ;Gn; s tep ;nEB ] ;56
% des ign v a r i a b l e s [ a x i a l p o s i t i o n , angle around drum , t i p r a d i u s ]inData = dlmread( ’ 48 Locator 2005 −08−31. csv ’ ) ;inData = sort rows ( inData , 1 ) ;
% ppVol = [ b i t i n d e x , b i t vo lume , a x i a l p o s i t i o n , drum angle ]ppVol = MainVolume ( desVar , anaVar ) ;ppVol = sor t rows ( ppVol , [ 3 , 4 ] ) ;
66
save −a s c i i 48 l o ca to r−ppvol 2005 −08−31. txt ppVol
disp ( ’ b i t i nd ex bit vo lume a x i a l p o s i t i o n drum angle ’ ) ;disp ( ppVol ) ;
94
Listing B.2: Main Volume Calculation Routine% MainVolume .m%% SYNOPSIS% This func t i on c a l c u l a t e s volume of mater ia l removed by each cu t t e r ,
5 % neg l e c t i n g forward movement o f machine wh i l e b i t i s engaged%% ARGUMENTS% desVar : an array o f b i t po s i t i on s , SORTED BY AXIAL POSITION, con s i s t i n g o f% − column 1 = ax i a l p o s i t i on o f b i t , measured from edge o f sk in
10 % − column 2 = angular po s i t i on o f b i t measured from drum ’ s weld seam% − column 3 = rad ius o f b i t t i p from drum ax i s% anaVar : a vec tor o f machine parameters (more d e t a i l s below )%% OUTPUT
15 % volArray : An array o f b i t s , by index , wi th volume , a x i a l pos i t i on , and drum% ang le . Inc ludes a l l b i t s , but has NaN va lue s f o r b i t s t ha t% exper ience edge e f f e c t s ( edge b i t s , and b i t s t ha t dominate edge% b i t s ) .% − column 1 = index based on increa s ing a x i a l p o s i t i on
20 % − column 2 = per−pick−volume fo r each b i t% − column 3 = ax i a l p o s i t i on o f b i t , measured from edge o f sk in% − column 4 = angular po s i t i on o f b i t measured from drum ’ s weld seam%% OTHER VARIABLES
25 % bi tPa t t e rn : [ a x i a l p o s i t i o n , angle around drum , t i p r ad i u s , machine advance ]% ordBi ts : [ a x i a l p o s i t i o n i n d e x , angle around drum ]%% REVISION HISTORY% changed 2005−01−28:
30 % removed automatic d e t e c t i on o f number o f edge b i t s% added a var i ab l e , s e t by the user , f o r the number o f edge b i t s%% changed 2005−12−13:% changed volArray from
35 % [ ax i a l i nde x , b i t vo lume , a x i a l p o s i t i o n , machine advance ]% to% [ ax i a l i nde x , b i t vo lume , a x i a l p o s i t i o n , drum angle ]%% changed 2006−01−26:
40 % changed return va lue to inc lude a l l b i t s , wi th NaN for the volume% of non−c a l c u l a t e d edge b i t s%
function volArray = MainVolume ( desVar , anaVar )45
% name the ana l y s i s v a r i a b l e sVf = anaVar (1 ) ; % 1 forward v e l o c i t y ( f t /min) ranges from 10 to 40Wr = anaVar (2 ) ; % 2 angular v e l o c i t y o f c u t t i n g drum ( rev /min)Za = anaVar (3 ) ; % 3 ang le o f impact a f f e c t e d zone ( rad )
50 Ro = anaVar (4 ) ; % 4 t i p rad ius o f f s e t ( in )Dc = anaVar (5 ) ; % 5 depth o f cut ( in )Rn = anaVar (6 ) ; % 6 nominal b i t rad ius ( in )Tr = anaVar (7 ) ; % 7 rad i a l p o s i t i o n a l t o l e rance ( in )Ta = anaVar (8 ) ; % 8 ax i a l p o s i t i o n a l t o l e rance ( in )
55 Tc = anaVar (9 ) ; % 9 c i r cumf r en t i a l p o s i t i o n a l t o l e rance ( in )Gn = anaVar (10) ; % 10 average gap between b i t s ( p ro j e c t ed onto drum ax i s )s tep = anaVar (11) ; % 11 number o f vo lumetr i c i n t e g r a t i on s t ep snEB = anaVar (12) ; % 12 number o f edge b i t s
60 nBits = s ize ( desVar , 1 ) ;
% ana l y s i s f unc t i on s65
% forward v e l o c i t y ( in /min)anaParam . Vi = Vf ∗ 12 ;
% rad/min70 anaParam .Wa = Wr∗2∗pi ;
95
% depth o f cutanaParam .Dc = Dc ;
75 % advance per r e vo l u t i on ( in )anaParam . Ar = anaParam . Vi/Wr;
% ang le from the nega t i v e o f the advance d i r e c t i on to the cut e x i t ang leanaParam .bMax = acos ( (Rn−Dc) /Rn) + pi /2 ;
80
% maximum domination index d i f f e r e n c eDdMax = (Rn + Tr) − (Rn−Tr) ∗( sin ( pi − . . .
85 maxDomDist = DdMax/tan ( pi/2 − Za/2) ;anaParam . maxDomIndex = ce i l (maxDomDist/(Gn − 2∗Ta) ) ;
% ang le o f s i d e o f cut p r o f i l e in the f l a t p laneanaParam . domAngle = pi/2 − Za /2 ;
90
% s lope o f s i d e o f cut p r o f i l e in the f l a t p laneanaParam . domSlope = tan ( anaParam . domAngle ) ;
% l i s t o f r o t a t i on ang l e s at which to eva lua t e b i t cross−s e c t i on s95 s ta r tAng l e = pi /2 ;
stepAng = (anaParam .bMax − s ta r tAng l e ) /( s tep − 1) ;eva lAngles = star tAng l e : stepAng : anaParam .bMax ;
anaParam . eva lAng les = evalAngles ’ ; % ( transposed )
100 % arc d i s t ance between b i t cross−s e c t i on sanaParam . stepArc = Rn ∗ stepAng ;
% l i s t o f r a d i i to a spha l t sur face , a long each eva lAng les d i r e c t i onanaParam . surfRad = ( (Rn + Ro) − Dc) . / cos ( anaParam . eva lAng les − pi /2) ;
105
% edges o f cut ( l e f tmo s t and r igh tmos t b i t s )anaParam . edge = [min( desVar ( : , 1 ) ) ,max( desVar ( : , 1 ) ) ] ;
110
% add machine advance d i s t ance at each b i t ’ s impact% [ a x i a l d i s t , drum angle , t i p r ad i u s , machine advance ]
b i tPat te rn = [ desVar , ( anaParam . Vi ∗ desVar ( : , 2 ) / anaParam .Wa) ] ;
115 % add t i p rad ius o f f s e t to b i t r a d i i ( accounts f o r rounded t i p on b i t )b i tPat te rn ( : , 3 ) = b i tPat te rn ( : , 3 ) + Ro ;
% add a x i a l i n d e x and so r t b i t s by order o f impact% ordBi ts = [ ax i a l i nde x , drum angle ]
120 ordBit s = [ ( 1 : nBits ) ’ , b i tPat t e rn ( : , 2 ) ] ;o rdBit s = sor t rows ( ordBits , 2 ) ;
125 % step through b i t s in order o f impactbitVolArray = [ ] ;lastAdvance = 0 ;for j = 1 : nBits
130 % get next impact b i t and make current (move b i t forward to 2nd drum rev )currBi t Index = ordBit s ( j , 1 ) ; % next b i t a x i a l i n d e xcurrBitData = bi tPat t e rn ( currBitIndex , : ) ; % next b i t data rowcurrBitData (4 ) = currBitData (4 ) + anaParam . Ar ; % move next b i t forward
135 % i f not an edge b i t , c a l l volume func t ion and add to b i t volume arrayi f ( currBi t Index > nEB + 1) && ( currBi t Index < nBits−nEB)
bi tVo l = BitVolume ( b i tPattern , currBit Index , currBitData , anaParam) ;bitVolArray = [ bitVolArray ;
145 % update b i t pa t t e rn to new po s i t i on o f current b i tb i tPat te rn ( currBit Index , : ) = currBitData ;
end
150 volArray = bitVolArray ;
97
Listing B.3: Single Pick Volume Routine% BitVolume .m%% SYNOPSIS
4 % Receives data f o r a s i n g l e b i t l o ca t i on , and re turns i t s cut volume .%% ARGUMENTS% b i tPa t t e rn : an array o f b i t po s i t i on s , sor t ed by a x i a l p o s i t i on :% − column 1 = ax i a l p o s i t i on o f b i t , measured from edge o f sk in
9 % − column 2 = angular po s i t i on o f b i t measured from drum ’ s weld seam% − column 3 = rad ius o f b i t t i p from drum ax i s ( ye t to come)% − column 4 = machine advance d i s t ance s ince s t a r t o f t h i s r e vo l u t i on% currBi t Index : index po s i t i on o f current b i t in b i tPa t t e rn ( prev rev )% currBitData : l i s t o f data f o r current b i t in advanced po s i t i on ( curr rev )
14 % anaParam : l i s t o f ana l y s i s paramaters and func t i on s f o r the machine%% OUTPUT% bi tVo l : volume of mater ia l removed by the b i t at currentBi t Index%
19 % OTHER VARIABLES% se c tB i t s : A sub s e t o f the main b i tPa t t e rn data , conta in ing b i t s w i th in% dominance range o f the current b i t . This avo ids having to search% a l l b i t s f o r dominance .%
24
function bi tVo l = BitVolume ( b i tPattern , currBit Index , currBitData , anaParam)
l im i tL = currBi t Index − 2 ∗ anaParam . maxDomIndex ;29 i f l im i tL < 1
l im i tL = 1 ;endl imitR = currBi t Index + 2 ∗ anaParam . maxDomIndex ;i f l imitR > s ize ( b i tPattern , 1 )
34 l imitR = s ize ( b i tPattern , 1 ) ;ends e c tB i t s = b i tPat te rn ( l im i tL : l imitR , : ) ;
% open f i l e f o r debugging39 %f i d = fopen ( ’ area debug1 . t x t ’ , ’ a+t ’ ) ;
%f p r i n t f ( f i d , ’%10.6 f \ t ’ , b i tPa t t e rn ( currBitIndex , 1 ) ) ;
% c a l c u l a t e current b i t ’ s volumebi tVo l = 0 ;
44 currBitArea = 0 ;for i = 1 : ( s ize ( anaParam . evalAngles , 1 ) )
% get next b i t ’ s volumenextBitArea = BitArea ( s e c tB i t s , currBitData , anaParam , . . .
49 anaParam . eva lAng les ( i ) , anaParam . surfRad ( i ) ) ;
% cen t r a l d i f f e r e n c e i n t e g r a t e f o r t h i s segment o f volumebi tVo l = bitVol + anaParam . stepArc ∗ ( nextBitArea + currBitArea ) /2 ;
54 % s h i f t next area to current areacurrBitArea = nextBitArea ;
% pr in t debug in f o%f p r i n t f ( f i d , ’%10.6 f \ t ’ , currBitArea ) ;
59
end
% c l o s e debugging f i l e%f p r i n t f ( f i d , ’\n ’ ) ;
64 %f c l o s e ( f i d ) ;
98
Listing B.4: Calculate Single Pick Cut Cross-Section1 % BitArea .m
%% SYNOPSIS% This func t i on r e c e i v e s a b i t array and current b i t index , and re turns the% cross−s e c t i o n a l area o f the mater ia l removal zone f o r the s p e c i f i e d b i t at
6 % the s p e c i f i e d ang le .%% Green ’ s Theorem%% 1 n / \
11 % area = − SUM ( x [ i ] y [ i +1] − x [ i +1] y [ i ] )% 2 i=1 \ /%% re f e rence page 9 o f l a b notebook fo r more d e t a i l s%
16 % ARGUMENTS% se c tB i t s : an array o f b i t po s i t i on s , so r t ed by a x i a l p o s i t i on :% − column 1 = ax i a l p o s i t i on o f b i t , measured from edge o f sk in% − column 2 = angular po s i t i on o f b i t measured from drum ’ s weld seam% − column 3 = rad ius o f b i t t i p from drum ax i s ( ye t to come)
21 % − column 4 = machine advance d i s t ance s ince s t a r t o f t h i s r e vo l u t i on% currBitData : l i s t o f data f o r current b i t in advanced po s i t i on ( curr rev )% anaParam : l i s t o f ana l y s i s paramaters and func t i ons f o r the machine% currAngle : ang le o f r o t a t i on fo r current b i t% surfRad : rad ius to a spha l t sur face , a long currAngle
26 %% OUTPUT% bitArea : cross−s e c t i o n a l area o f the current b i t ’ s cut , at the current% cu t t e r head ang le o f r o t a t i on%
31 % OTHER VARIABLES% b i t S e c t 3 : sub s e t o f s e c tB i t s , conta in ing b i t s not dominated by any other b i t% in sec tB i t s , or by current b i t% sec tP t s : s e t o f x , y coord ina te s f o r i n t e r s e c t i o n po in t s between cut% p r o f i l e s o f a l l b i t s ( f o r green ’ s theorem )
36 %
function bitArea = BitArea ( s e c tB i t s , currBitData , anaParam , currAngle , surfRad )
41
% i n i t i a l i z e v a r i a b l e snSect1 = s ize ( s e c tB i t s , 1 ) ;s e c tPt s = [ currBitData (1 ) , currBitData (3 ) ] % coords o f 1 s t v e r t e x [ x , y ]bitArea = 0 ;
46
% f ind r e l a t i v e depths (Dr) f o r the sub s e t o f b i t sR = se c tB i t s ( : , 3 ) ; % co l vec to r o f r a d i iA = currBitData (4 ) − s e c tB i t s ( : , 4 ) ; % co l vec to r o f advance d i s t ance sb = currAngle ;
51 Dr = R .∗ ( sin ( pi − asin (A . / R .∗ sin (b) ) − b) / sin (b) ) ;b i tS e c t 1 = [ s e c tB i t s , Dr ] ;b i tS e c t 3 = [ ] ;
56
% Generate a sub s e t o f non dominated b i t sfor i = 1 : nSect1
domChk = 0 ;61 % f ind domination l im i t s
lowLim = i − anaParam . maxDomIndex ;hiLim = i + anaParam . maxDomIndex ;i f i <= anaParam . maxDomIndex
lowLim = 1 ;66 e l s e i f i >= ( nSect1 − anaParam . maxDomIndex)
hiLim = nSect1 ;end
% f ind dominated b i t s71 for j = lowLim : hiLim
99
i f ( i ˜= j )i f Dominance ( b i tS e c t 1 ( i , [ 1 , 5 ] ) , b i tS e c t 1 ( j , [ 1 , 5 ] ) , . . .
anaParam . domAngle ) == 1domChk = 1 ;
76 break ;end
endend
81 % wri t e non−dominated b i t s to an arrayi f domChk == 0
i f b i tS e c t 1 ( i , 5 ) > surfRadb i tS e c t 3 = [ b i tS e c t 3 ; b i tS e c t 1 ( i , : ) ] ;
else86 % inc lude the b i t anyway fo r the qu ick and d i r t y method ( to
% be changed l a t e r )b i tS e c t 3 = [ b i tS e c t 3 ; b i tS e c t 1 ( i , : ) ] ;
endend
91
end
96 nSect2 = s ize ( b i tSect3 , 1 ) ;lastDomChk = 0 ;
for i = 1 : nSect2
101 % righ t−most b i t ( t h i s b i t to the r i g h t o f the current b i t , and not% dominated by the current b i t )
i f b i tS e c t 3 ( i , 1 ) > currBitData (1 )i f Dominance ( b i tS e c t 3 ( i , [ 1 , 5 ] ) , currBitData ( [ 1 , 3 ] ) , . . .
anaParam . domAngle ) == 0106 % in t e r s e c t i o n − t h i s b i t and new b i t
newSectPt = SectPt ( currBitData ( [ 1 , 3 ] ) , b i tS e c t 3 ( i , [ 1 , 5 ] ) , . . .anaParam . domSlope ) ;
%i f newSectPt (2) < surfRad% change the i n t e r s e c t i o n po in t to be with the sur face
111 % of the aspha l t , ra ther than with the ne ighbor ing b i t%endbitArea = bitArea . . .
+ ( s e c tPt s ( s ize ( sectPts , 1) , 1) ∗newSectPt (2 ) . . .− newSectPt (1 ) ∗ s e c tPt s ( s ize ( sectPts , 1) , 2) ) ;
116 s e c tPt s = [ s e c tPt s ; newSectPt ] ;break ;
endend
121 % non−dominated b i t si f Dominance ( b i tS e c t 3 ( i , [ 1 , 5 ] ) , currBitData ( [ 1 , 3 ] ) , . . .
anaParam . domAngle ) == 0
% l e f t −most b i t ( t h i s b i t not dominated , next b i t dominated , or126 % a f t e r the current b i t )
i f (Dominance ( b i tS e c t 3 ( i +1 , [ 1 , 5 ] ) , currBitData ( [ 1 , 3 ] ) , . . .anaParam . domAngle ) == 1) | | ( b i tS e c t 3 ( i +1 ,1) > currBitData (1 ) ) ;
% in t e r s e c t i o n − t h i s b i t and new b i t131 newSectPt = SectPt ( b i tS e c t 3 ( i , [ 1 , 5 ] ) , currBitData ( [ 1 , 3 ] ) , . . .
anaParam .domSlope) ;
b itArea = bitArea + . . .( s e c tPt s ( s ize ( sectPts , 1) , 1) ∗newSectPt (2 ) − . . .newSectPt (1 ) ∗ s e c tPt s ( s ize ( sectPts , 1) , 2) ) ;
136 s e c tPt s = [ s e c tPt s ; newSectPt ] ;
% in t e r s e c t i o n − t h i s b i t and next b i tnewSectPt = SectPt ( b i tS e c t 3 ( i , [ 1 , 5 ] ) , b i tS e c t 3 ( i +1 , [ 1 , 5 ] ) , . . .
( s e c tPt s ( s ize ( sectPts , 1) , 1) ∗newSectPt (2 ) − . . .
100
newSectPt (1 ) ∗ s e c tPt s ( s ize ( sectPts , 1) , 2) ) ;s e c tPt s = [ s e c tPt s ; newSectPt ] ;
146 end
% dominated b i t selse
% current b i t has l e f t overhang151 i f i == 1
edgePt = [ anaParam . edge (1 ) , b i tS e c t 3 ( i , 5 ) ] ;b i tArea = bitArea + . . .
( s e c tPt s ( s ize ( sectPts , 1) , 1) ∗ edgePt (2 ) − . . .edgePt (1 ) ∗ s e c tPt s ( s ize ( sectPts , 1) , 2) ) ;
156 s e c tPt s = [ s e c tPt s ; edgePt ] ;
% current b i t has r i g h t overhange l s e i f i == nSect2
edgePt = [ anaParam . edge (2 ) , b i tS e c t 3 ( i , 5 ) ] ;161 bitArea = bitArea + . . .
( s e c tPt s ( s ize ( sectPts , 1) , 1) ∗ edgePt (2 ) − . . .edgePt (1 ) ∗ s e c tPt s ( s ize ( sectPts , 1) , 2) ) ;
s e c tPt s = [ s e c tPt s ; edgePt ] ;
166 else% ver t e x o f t h i s b i tnewSectPt = b i tSe c t 3 ( i , [ 1 , 5 ] ) ;b itArea = bitArea + . . .
( s e c tPt s ( s ize ( sectPts , 1) , 1) ∗newSectPt (2 ) − . . .171 newSectPt (1 ) ∗ s e c tPt s ( s ize ( sectPts , 1) , 2) ) ;
s e c tPt s = [ s e c tPt s ; newSectPt ] ;
% in t e r s e c t i o n − t h i s b i t and next b i tnewSectPt = SectPt ( b i tS e c t 3 ( i , [ 1 , 5 ] ) , b i tS e c t 3 ( i +1 , [ 1 , 5 ] ) , . . .
( s e c tPt s ( s ize ( sectPts , 1) , 1) ∗newSectPt (2 ) − . . .newSectPt (1 ) ∗ s e c tPt s ( s ize ( sectPts , 1) , 2) ) ;
s e c tPt s = [ s e c tPt s ; newSectPt ] ;181 end
lastDomChk = 1 ;end
end186
% complete s ec tP t s loop191 newSectPt = sec tPt s ( 1 , : ) ;
b i tArea = bitArea + . . .( s e c tPt s ( s ize ( sectPts , 1) , 1) ∗newSectPt (2 ) − . . .newSectPt (1 ) ∗ s e c tPt s ( s ize ( sectPts , 1) , 2) ) ;
b itArea = bitArea /2 ;196 s e c tPt s = [ s e c tPt s ; newSectPt ] ;
% open f i l e to wr i t ef i d = fopen ( ’ s e c tPt s . txt ’ , ’ a ’ ) ;for i = 1 : s ize ( sectPts , 1 )
201 fpr intf ( f i d , ’%f \ t%f \n ’ , s e c tPt s ( i , : ) ) ;endfprintf ( f i d , ’ \n ’ ) ;fc lose ( f i d ) ;
206 % modify l i s t o f s e c tP t s to account f o r a spha l t sur face emergencei f min( s e c tPt s ( : , 2 ) ) < surfRad && s ize ( sectPts , 1) > 2
newSectPts = [ ] ;for i = 1 : ( s ize ( sectPts , 1 ) − 1)
211
p1 = sec tPt s ( i , : ) ;p2 = sec tPt s ( i +1 , : ) ;
i f surfRad > p1 (2) && surfRad > p2 (2)
101
216 %do nothinge l s e i f surfRad < p1 (2) && surfRad < p2 (2)
%add poin t p1 to the new arraynewSectPts = [ newSectPts ; p1 ] ;
e l s e i f p1 (2) > surfRad && surfRad > p2 (2)221 %f ind the i n t e r s e c t i o n between surfRad and vec tor [ p1 , p2 ]
%add p1 and i n t e r s e c t i o n to the new array in ordernewSectPts = [ newSectPts ; p1 ; [ newSectX , surfRad ] ] ;
226 e l s e i f p2 (2) > surfRad && surfRad > p1 (2)%f ind the i n t e r s e c t i o n between surfRad and vec tor [ p1 , p2 ]newSectX = p1 (1) + . . .
( surfRad − p1 (2) ) ∗( p2 (1 ) − p1 (1) ) /( p2 (2 ) − p1 (2) ) ;%add i n t e r s e c t i o n to the new array
%% SYNOPSIS% This func t i on take s the po s i t i on o f two b i t t i p s , and determines whether% one i s dominated by the other . The f i r s t b i t i s dominated i f the second b i t
6 % has removed i t ’ s mater ia l on an e a r l i e r pass .%% ARGUMENTS% pos1 : Coordinate s e t f o r b i t 1 t i p l o c a t i on% − element 1 = ax i a l ( x ) t i p po s i t i on o f b i t 1
11 % − element 2 = rad i a l ( y ) t i p po s i t i on o f b i t 1% pos2 : Coordinate s e t f o r b i t 1 t i p l o c a t i on% − element 1 = ax i a l ( x ) t i p po s i t i on o f b i t 2% − element 2 = rad i a l ( y ) t i p po s i t i on o f b i t 2% domAngle : S lope o f the cut p r o f i l e ( r i s e /run in the p lane o f the current
16 % b i t s rad ius vec to r )%% OUTPUT% dominated : i n t e g e r va lue% 0 = b i t 1 i s NOT dominated by b i t 2
3 % SYNOPSIS% This func t i on take s the po s i t i on o f two b i t t i p s , and f i n d s the coord ina te s% the coord ina te s at which the cut p r o f i l e s o f each b i t i n t e r s e c t .% NOTE: Bit arguments ( b i t p o s i t i on vec tor o b j e c t s ) must be supp l i e d in l e f t% to r i g h t order ( i . e . the b i t wi th the sma l l e r x must be passed as
8 % the f i r s t argument )%% ARGUMENTS% ( r i s e /run in the p lane o f the current b i t s rad ius vec tor )% pos1 : Coordinate s e t f o r b i t 1 t i p l o c a t i on
13 % − element 1 = ax i a l ( x ) t i p po s i t i on o f b i t 1% − element 2 = rad i a l ( y ) t i p po s i t i on o f b i t 1% pos2 : Coordinate s e t f o r b i t 1 t i p l o c a t i on% − element 1 = ax i a l ( x ) t i p po s i t i on o f b i t 2% − element 2 = rad i a l ( y ) t i p po s i t i on o f b i t 2
18 % domAngle : S lope o f the cut p r o f i l e ( r i s e /run in the p lane o f the current% b i t s rad ius vec to r )%% OUTPUT% sectArray : x−y coord inate po s i t i on o f the i n t e r s e c t i o n between the two
30 dblAdvOffset = 6 .5 ∗ 0 .0254db lAx i a lO f f s e t = 0 .5 ∗ 0 .0254
’ g e t a pp l i c a t i on and model35 Set swApp = Appl i ca t ion . SldWorks
Set swModelDoc = swApp . ActiveDoc ( )
’ g e t cut pa t t e rn data o b j e c tSet swFeature = swModelDoc . FeatureByName ( ”CutPattern” )
40 Set swFeatureData = swFeature . GetDe f in i t i on
’ s e t cut pa t t e rn l o c a t i on s f o r f i r s t r e v o l u t i onswFeatureData . pointArray = varSwPointsboo l s t a tu s = swFeature . Mod i fyDe f in i t i on ( swFeatureData , swModelDoc , Nothing )
45
For i = 0 To UBound( dblSwPoints ) − 1
I f i = 9 ThenDebug . Print ”paused at p ick #” & 9
55 dblSwPoints ( i , 1) + dblMachAdv + dblAdvOffset
’ s i d e s h i f t cut nega t i v e s o l i dswModelDoc . Parameter ( ”AxialPos it ion@CutNegat iveSketch ” ) . SystemValue =
dblSwPoints ( i , 0) + db lAx i a lO f f s e t60
’ r e b u i l d modelboo l s t a tu s = swModelDoc . EditRebui ld3boo l s t a tu s = swModelDoc . EditRebui ld3I f boo l s t a tu s = False Then
65 Debug . Print ” r ebu i l d e r r o r at p ick #” & iDebug . Printboo l s t a tu s = True
105
End I f
70 ’ g e t volumevarMassProp = swModelDoc . Extension . GetMassPropert ies (1 , l n g s t a tu s )dblVolume ( i ) = varMassProp (3 )
’ pause execu t ion fo r s p e c i a l b i t s75 I f i = 22 Or i = 49 Then
Debug . Print ”paused f o r model check ing at p ick #” & iDebug . Print
End I f
80 ’ ad ju s t pa t t e rn array f o r new cut po s i t i onvarSwPoints ( i ∗ 3 + 1) = varSwPoints ( i ∗ 3 + 1) + dblMachAdvswFeatureData . pointArray = varSwPoints
’ r e s e t cut pa t t e rn l o c a t i on s85 boo l s t a tu s = swFeature . Mod i fyDe f in i t i on ( swFeatureData ,
swModelDoc , Nothing )I f boo l s t a tu s = False Then
Debug . Print ” pattern update e r r o r at p ick #” & iDebug . Print
90 boo l s t a tu s = TrueEnd I f
Next i
95 Debug . Print ” ax ia l , machadv , volume”For i = 0 To UBound( dblVolume ) − 1
Debug . Print dblSwPoints ( i , 0) & ” , ” & dblSwPoints ( i , 1) &” , ” & dblVolume ( i )
Next i100
End Sub
105 Function MakePointArray ( dblArray ( ) As Double ) As Variant’ db lArray i s an empty , s i z e d array’ array va lue s i n s e r t e d here as a quick−and−d i r t y method’ f o r g r ea t e r f l e x i b i l i t y , the va lue s shou ld be loaded from a f i l e
110 Dim dblPointArray ( ) As DoubleDim intRows As DoubleDim i n tCo l s As DoubleDim i As IntegerDim j As Integer
115
’ the passed array i s measured to r e s i z e a matching output arrayintRows = UBound( dblArray , 1) + 1in tCo l s = UBound( dblArray , 2) + 1ReDim dblPointArray ( intRows ∗ i n tCo l s − 1)
120
’ machine advance po s i t i o n s f o r each pick ’ s impact event ( meters )dblArray (0 , 0) = 0.01905dblArray (1 , 0) = 0.74295dblArray (2 , 0) = 0.20955
2 ## combined and expanded f a c t o r models on p ick body #### f a i l u r e s ( o u t l i e r removed ) ##############################################################
# load l i b r a r i e s7 l ibrary ( ’ Z e l i g ’ ) ;
l ibrary ( ’ car ’ ) ;l ibrary ( ’ z i c ount s ’ ) ;
#load data12 var body <− read . table ( ’ var body shor t . txt ’ , header = TRUE) ;
17 ################################################ expanded f a c t o r model , wi th i n t e r a c t i o n s ##
# step 0zp body expd . out <− z e l i g (
22 formula =bodyFai l s ˜attack +xBodyPD +xTipPD +
# step 24 alpha = 0.05zp body expd . out <− z e l i g (
72 formula =bodyFai l s ˜xBodyPD +rBodyPD +rTipPD +
77 aBodyPD ,model = ” po i s son ” ,data = var body) ;
82 # model d i a gno s t i czp body expd . diag <− glm . diag ( zp body expd . out ) ;glm . diag . p l o t s ( zp body expd . out , zp body expd . diag ) ;
# ou t l i e r t e s t87 o u t l i e r . t e s t ( zp body expd . out ) ;
# wri t e data to f i l e swrite . table (
92 summary( zp body expd . out )$coeff ic ients ,quote=FALSE,sep=” , ” ,f i l e=”beta body expd shor t . txt ” ) ;
write . table (97 summary( zp body expd . out )$deviance . resid ,
quote=FALSE,sep=” , ” ,f i l e=”deviance r e s i d u a l s body expd shor t . txt ” ) ;
write . table (102 zp body expd . out$residuals ,
quote=FALSE,sep=” , ” ,f i l e=” r e s i d u a l s body expd shor t . txt ” ) ;
write . table (107 zp body expd . diag$h ,
quote=FALSE,sep=” , ” ,f i l e=”hat body expd shor t . txt ” ) ;
write . table (112 zp body expd . diag$cook ,
quote=FALSE,sep=” , ” ,f i l e=”cook body expd shor t . txt ” ) ;
117
# p l o t and summarize r e s u l t sx . out <− s e tx ( zp body expd . out ) ;s . out <− sim ( zp body expd . out , x = x . out ) ;plot ( s . out ) ;
122 summary( zp body expd . out ) ;summary( zp body expd . out )$coef f ic ients ;z . out$residuals ;
111
127
#################################################################### expanded−f a c t o r quas ipo i s son d i s p e r s i on parameter es t imat ion ##
132 # step 24 alpha = 0.05zqp body expd . out <− glm(
formula =bodyFai l s ˜xBodyPD +
137 rBodyPD +rTipPD +aBodyPD ,
family = quas ipo i s son ,data = var body) ;
142
############################################################147 ## zero−i n f l a t e d expanded f a c t o r model , wi th i n t e r a c t i o n s ##
z z ip body cond . out <− z i c oun t s (re sp = bodyFai l s ˜ . ,x = ˜ xBodyPD + rBodyPD + rTipPD + aBodyPD ,
152 z = ˜ xBodyPD + rBodyPD + rTipPD + aBodyPD ,data=var body ,d i s t r = ”ZIP” ) ;
157
################################################# condensed f a c t o r model , wi th i n t e r a c t i o n s ##
177 formula =bodyFai l s ˜attack +absSkew +volume +
182 attack∗absSkew +attack∗volume ,
model = ” po i s son ” ,data = var body) ;
187 # step 2zp body cond . out <− z e l i g (
formula =bodyFai l s ˜attack +
192 absSkew +volume +attack∗volume ,
model = ” po i s son ” ,data = var body) ;
197
# model d i a gno s t i c s
112
zp body cond . diag <− glm . diag ( zp body cond . out )glm . diag . p l o t s ( zp body cond . out , zp body cond . diag )
202
# ou t l i e r t e s to u t l i e r . t e s t ( zp body cond . out )
207 # e f f e c t s p lo t , a t t a c k ang lex . low <− s e tx ( zp body cond . out , at tack = −1)x . high <− s e tx ( zp body cond . out , at tack = 1)s . out <− sim ( zp body cond . out , x = x . low , x1 = x . high )summary( s . out )
212 plot ( s . out )
# e f f e c t s p lo t , a t t a c k ang lex . low <− s e tx ( zp body cond . out , absSkew = −1)x . high <− s e tx ( zp body cond . out , absSkew = 1)
217 s . out <− sim ( zp body cond . out , x = x . low , x1 = x . high )summary( s . out )plot ( s . out )
# e f f e c t s p lo t , a t t a c k ang le222 x . low <− s e tx ( zp body cond . out , volume = −1)
x . high <− s e tx ( zp body cond . out , volume = 1)s . out <− sim ( zp body cond . out , x = x . low , x1 = x . high )summary( s . out )plot ( s . out )
227
# ind i v i d u a l l e v e l p l o t ss . low <− sim ( zp body cond . out , x = x . low )s . high <− sim ( zp body cond . out , x = x . high )plot ( s . low )
232 plot ( s . high )
# wri t e r e s u l t s to f i l ewrite . table (
237 summary( zp body cond . out )$coeff ic ients ,quote=FALSE,sep=” , ” ,f i l e=”beta body cond shor t . txt ” ) ;
write . table (242 zp body cond . out$residuals ,
quote=FALSE,sep=” , ” ,f i l e=” r e s i d u a l s body cond shor t . txt ” ) ;
write . table (247 summary( zp body cond . out )$deviance . resid ,
quote=FALSE,sep=” , ” ,f i l e=”deviance r e s i d u a l s body cond shor t . txt ” ) ;
write . table (252 zp body cond . diag$h ,
quote=FALSE,sep=” , ” ,f i l e=”hat body cond shor t . txt ” ) ;
write . table (257 zp body cond . diag$cook ,
quote=FALSE,sep=” , ” ,f i l e=”cook body cond shor t . txt ” ) ;
262
#################################################################### condensed−f a c t o r quas ipo i s son d i s p e r s i on parameter es t imat ion ##
267
# step 3zqp body expd . out <− glm(
formula =bodyFai l s ˜
272 attack +
113
absSkew +volume +attack∗volume ,
family = quas ipo i s son ,277 data = var body) ;
282 ############################################################### zero−i n f l a t e d condensed f a c t o r model , wi th i n t e r a c t i on s ##
# step 3z z ip body cond . out <− z i c oun t s (
287 re sp = bodyFai l s˜ . ,x= ˜ attack + absSkew + volume + attack∗volume ,z= ˜ attack + absSkew + volume + attack∗volume ,data = var body ,d i s t r = ”ZIP” ) ;
114
B.4 Linear Regression and Plotting Code
Our analysis methods for the present study were fairly different from typical
statistical applications. In particular, we required the regression routine to distinguish
between main factors and interaction factors. Because of these differences, we chose
to develop custom regression and plotting routines. The following code is written for
the Octave scripting language (mostly MATLAB compatible).
Table B.2: Function call structure for backward stepwise regression
WearAnalysis.m
↪→ FactGen.m
↪→ MatVol1.m
↪→ MatVol2.m
↪→ MatVol3.m
↪→ EdgeTrim.m
↪→ BackStepRegres.m
↪→ LatexTabMed.m
↪→ PlotData.m
PlotInteract.m
115
Listing B.9: Main analysis function - calls regression% WearAnalysis .m%% SYNOPSIS
4 % This s c r i p t l oads data and c a l l s f unc t i on s to prepare va r i a b l e s , execute a% backward s t epw i s e regres s ion , generate p l o t data , and wr i t e r e s u l t s t a b l e s .% The only input and output f o r t h i s s c r i p t i s through f i l e s .%% INPUT
9 %% cu t t e r head s p e c i f i c a t i o n f i l e (comma de l im i t ed )% − column 1 = ax i a l p o s i t i on% − column 2 = angular po s i t i on% − column 3 = c i r cumf e r en t i a l p o s i t i on ( arc d i s t ance )
14 % − column 4 = b i t t i p rad ius% − column 5 = skew ang le% − column 6 = at tack ang le% − column 7 = b i t number ( from eng ineer ing drawings )% − column 8 = b i t type
19 %% mater ia l 1 wear data (comma de l im i t ed f i l e )%% mater ia l 2 wear data (comma de l im i t ed f i l e )%
24 % mater ia l 3 wear data (comma de l im i t ed f i l e )%% OUTPUT%% column−a l i gned t e x t f i l e
29 % − column 1 = fa c t o r id% − column 2 = fa c t o r name% − column 3 = c o e f f i c i e n t% − column 4 = p−va lue%
34 %% NOTE: p o s i t i v e skew ang le i s in the c l o ckw i s e d i r e c t i on , viewed from above%
clear a l l ;39 close a l l ;
%se t p a t h s ( ’ l i n s e r v1 ’ ) ;
%dbstop i f warning44 %dbstop in mu l t i r e g r e s .m at 120
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% load experiment data %%
49 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% bitPosData = [% 1 a x i a l d i s t ,% 2 drum angle ,
54 % 3 drum arc dis t ,% 4 t i p r ad i u s ,% 5 skew angle ,% 6 ang l e o f a t t a c k ,% 7 bit num
59 % ]bitPosData = dlmread( ’ cut te r measure data . csv ’ ) ;bitPosData = sort rows ( bitPosData , 7 ) ;
% mat0BitFai l = [ bit num , f a i l c o u n t ]64 mat1BitFai l = dlmread( ’ mate r i a l 1 wear data . csv ’ ) ;
mat1BitFai l = sor t rows ( mat1BitFail , 1 ) ;
mat2BitFai l = dlmread( ’ mate r i a l 2 wear data . csv ’ ) ;mat2BitFai l = sor t rows ( mat2BitFail , 1 ) ;
69
mat3BitFai l = dlmread( ’ mate r i a l 3 wear data . csv ’ ) ;mat3BitFai l = sor t rows ( mat3BitFail , 1 ) ;
116
t i pB i tFa i l = dlmread( ’ t i p wear data . csv ’ ) ;74 t i pB i tFa i l = sor t rows ( t i pB i tFa i l , 1 ) ;
bodyBitFai l = dlmread( ’ body wear data . csv ’ ) ;bodyBitFai l = sor t rows ( bodyBitFai l , 1 ) ;
79 % importData = [% 1 bit num ,% 2 a x i a l d i s t ,% 3 drum angle ,% 4 t i p r ad i u s ,
84 % 5 skew angle ,% 6 a t t ack ang l e ,% 7 mat1 fa i l s ,% 8 mat2 fa i l s ,% 9 mat3 fa i l s ,
89 % 10 t i p f a i l s ,% 11 b o d y f a i l s% ]importData = [ bitPosData ( : , [ 7 , 1 , 2 , 4 , 5 , 6 ] ) , . . .
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% generate r e g r e s s i on vars %%
104 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% edgeTrimDist = d i s tance i n t e r v a l on edges o f cut in which e f f e c t s are% confounded by cut over lap (measured in inches )edgeTrimDist = 1 . 5 ;
109
% generate f a c t o r and response v a r i a b l e s and names[X, Y, fac t , factNames , respNames ] = FactGen ( importData , edgeTrimDist , ’ body ’ ) ;
114
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% run reg r e s s i on ana l y s i s %%
119 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%n = s ize (X, 1 ) ;k = s ize (X, 2 ) ;
% c a l l r e g r e s s i on rou t ine124 % se t s i g n i f i c a n c e t h r e s ho l d to 1.0 i f you want a standard ml r e g r e s s i on ( as
% opposed to a backward s t epw i s e r e g r e s s i on )[ beta , res , s t a t s , f ac t ,X] = BackStepRegres (X, Y, fac t , factNames , 0 . 1 , 0) ;factNames = factNames ( [ f a c t ( : , 1 ) +1 ] , : ) ;
129
% c a l l p l o t t i n g rou t ine%p lo t ma t l a b (X, Y, beta , res , factNames ) ;%p l o t r o t a t e o c t (X, Y, beta , res , means , factNames ) ;%p l o t s t anda r d o c t (X, Y, beta , res , factNames , respNames ) ;
134 %p l o t v o l c o n t r i b (X, Y, beta , res , factNames , respNames ) ;PlotData (X, Y, beta , res , factNames , respNames ) ;
139 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% wri t e t a b l e to f i l e %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% open f i l e to wr i t ef i d = fopen ( ’ m l r r e s u l t s . txt ’ , ’ at ’ ) ;
144
117
% pr in t r e g r e s s i on repor t headerheadFormat = ’%−6s \ t%−26s \ t%8s \ t%7s \n ’ ;bodyFormat = ’%−6s \ t%−26s \ t%8.4 f \ t%6.4 f \n ’ ;
149 p r i n t f ( ’ \n%s \n ’ , respNames {1 ,3} ) ;fpr intf ( f i d , ’ \n%s \n ’ , respNames {1 ,3} ) ;p r i n t f ( headFormat , ’ f a c t o r ’ , ’ d e s c r i p t i o n ’ , ’ c o e f f ’ , ’p−value ’ ) ;fpr intf ( f i d , headFormat , ’ f a c t o r ’ , ’ d e s c r i p t i o n ’ , ’ c o e f f ’ , ’p−value ’ ) ;
154 % pr in t f a c t o r datafor i = 1 : s ize (X, 2 )
p r i n t f ( bodyFormat , factNames{ i , 2} , factNames{ i , 3} , beta ( i , 1 ) , beta ( i , 3 ) ) ;fpr intf ( f i d , bodyFormat , factNames{ i , 2} , factNames{ i , 3} , beta ( i , 1 ) ,beta ( i , 3 ) ) ;
end159
p r i n t f ( ’ \n ’ ) ;fpr intf ( f i d , ’ \n ’ ) ;p r i n t f ( ’%s \n ’ , [ ’R−Square = ’ , num2str( s t a t s (1 ) ) ] ) ;fpr intf ( f i d , ’%s \n ’ , [ ’R−Square = ’ , num2str( s t a t s (1 ) ) ] ) ;
164 p r i n t f ( ’%s \n ’ , [ ’ Adjusted R−Square = ’ , num2str( s t a t s (2 ) ) ] ) ;fpr intf ( f i d , ’%s \n ’ , [ ’ Adjusted R−Square = ’ , num2str( s t a t s (2 ) ) ] ) ;p r i n t f ( ’ \n ’ ) ;
fc lose ( f i d ) ;
118
Listing B.10: Generate regression variables and related information% FactGen .m
2 %% SYNOPSIS% This func t i on accep t s fundamental data from a s p e c i f i c c u t t i n g app l i ca t i on ,% and re turns r e g r e s s i on v a r i a b l e s and r e l a t e d information , f o r the s p e c i f i e d% f a i l u r e mode .
7 %% INPUT%% funData : fundamental data from a s p e c i f i c c u t t i n g app l i c a t i on% column 1 = bit num ,
12 % column 2 = a x i a l d i s t ,% column 3 = drum angle ,% column 4 = t i p r ad i u s ,% column 5 = skew angle ,% column 6 = at tack ang l e ,
17 % column 7 = mat1 fa i l s ,% column 8 = mat2 fa i l s ,% column 9 = mat3 fa i l s ,% column 10 = t i p f a i l s ,% column 11 = b o d y f a i l s
22 %% edgeTrimDist : d i s t ance i n t e r v a l on edges o f cut in which e f f e c t s are% confounded by cut over lap (measured in inches ) . These b i t s% are removed from the ana l y s i s%
27 % mode : f a i l u r e mode s t r ing , c on i s t i n g o f one o f the f o l l ow i n g :% ’ body ’ = body f a i l u r e mode% ’ t ip ’ = t i p f a i l u r e mode%% OUTPUT
32 %% Y: vec tor conta in ing va lue s f o r the dependent or response v a r i a b l e%% X: matrix o f independent v a r i a b l e va lue s ( rows=samples , columns=f a c t o r s )%
37 % fa c t : indexed l i s t o f f a c t o r i n t e r a c t i o n s (number o f rows shou ld equa l% number o f columns in X)% column 1 = fa c t o r number% column 2 = in t e r a c t i on f a c t o r 1 (0 fo r l i n e a r terms )% column 3 = in t e r a c t i on f a c t o r 2 (0 fo r l i n e a r terms )
42 %% factNames : names o f f a c t o r s f o r r epor t ing purposes ( c e l l array )% column 1 = va r i a b l e index% column 2 = va r i a b l e id% column 3 = va r i a b l e name
47 %% example c e l l array : f a c t o r names% −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−% index | v a r i a b l e i d | var iab le name% −−−−−−−+−−−−−−−−−−−−−−−+−−−−−−−−−−−−−−−−−−−−−−−−
52 % 1 | X01 | drum angle% 2 | X02 | t i p r a d i u s% 3 | X03 | skew ang le% 4 | X01X02 | drum angle X t i p r a d i u s% 5 | X01X03 | drum angle X skew ang le
57 % 6 | X02X03 | t i p r a d i u s X skew ang le% −−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−−% factNames (1 ,1 :3 ) = [{1} ,{ ’X01 ’} ,{ ’ drum angle ’ } ] ;%% respNames : name of response v a r i a b l e
62 % column 1 = va r i a b l e index% column 2 = va r i a b l e id% column 3 = va r i a b l e name%
67 function [X,Y, fac t , factNames , respNames ] = FactGen ( funData , edgeTrimDist , mode) ;
119
72 %%%%%%%%%%%%%%%%%%% re s p on s e v a r i a b l e %%%%%%%%%%%%%%%%%%%i f mode==’ body ’
respNames ( 1 , 1 : 3 ) = [{1} ,{ ’Y ’ } ,{ ’Body Fa i l u r e s ( octave ) ’ } ] ;Y = funData ( : , 1 1 ) ;
e l s e i f mode==’ t i p ’77 respNames ( 1 , 1 : 3 ) = [{1} ,{ ’Y ’ } ,{ ’ Tip Fa i l u r e s ( octave ) ’ } ] ;
Y = funData ( : , 1 0 ) ;else
return ;end
82
%%%%%%%%%%%%%%%%%%%% mode l i n t e r c e p t %%%%%%%%%%%%%%%%%%%%87 i n t e r c e p t = ones ( s ize ( funData , 1 ) ,1 ) ;
92
%%%%%%%%%%%%%%%%%%%%%% a t t a c k a n g l e %%%%%%%%%%%%%%%%%%%%%attack = funData ( : , 6 ) ;
97
%%%%%%%%%%%%%%%%%% ab s o l u t e s k ew an g l e %%%%%%%%%%%%%%%%%%absSkew = abs ( funData ( : , 5 ) ) ;
102
107 %%%%%%%%%%%%%%%%%%%% mater ia l−n b i t v o l ume %%%%%%%%%%%%%%%%%%%%
% volume func t ion re turns NaN for b i t s c l o s e to the edge , based% on in t e r a c t i on with the edge o f the cut%
112 % we w i l l u s ua l l y be ab l e to re load p r e v i ou s l y c a l c u l a t e d data to same time%% volume rou t ine v a r i a b l e d e f i n i t i o n s% desVar = [ a x i a l d i s t , drum angle , t i p r a d i u s ]% ppVol = [ ax i a l i nde x , b i t vo lume , a x i a l p o s i t i o n , drum angle ]
117 %desVar = funData ( : , [ 2 , 3 , 4 ] ) ;
% mater ia l 1% ca l c u l a t e per−p ick volume
122 %ppVol1 = MatVol1 ( desVar ) ;%ppVol1 = sortrows ( ppVol1 , [ 3 , 4 ] ) ;%save −a s c i i ppVol1 . t x t ppVol1 ;load ppVol1 . txt ;
127 % mater ia l 2%ppVol2 = MatVol2 ( desVar ) ;%ppVol2 = sortrows ( ppVol2 , [ 3 , 4 ] ) ;%save −a s c i i ppVol2 . t x t ppVol2 ;load ppVol2 . txt ;
132
% mater ia l 3%ppVol3 = MatVol3 ( desVar ) ;%ppVol3 = sortrows ( ppVol3 , [ 3 , 4 ] ) ;%save −a s c i i ppVol3 . t x t ppVol3 ;
137 load ppVol3 . txt ;
i f mode==’ body ’% b i t volume fo r body f a i l u r e svolume = mean( [ ppVol1 ( : , 2 ) , ppVol3 ( : , 2 ) ] , 2 ) ;
142 e l s e i f mode==’ t i p ’% b i t volume fo r t i p f a i l u r e svolume = ppVol2 ( : , 2 ) ;
120
elsereturn ;
147 end
152 %%%%%%%%%%%%%%%%%%%% expanded f a c t o r s %%%%%%%%%%%%%%%%%%%%
aBodyPD = [ ] ;aTipPD = [ ] ;rBodyPD = [ ] ;
157 rTipPD = [ ] ;xBodyPD = [ ] ;xTipPD = [ ] ;
% get l e f t edge case162 i f funData (1 , 5 ) < 0 % t i p l e f t
f a c t = [ f a c t ; [ 4 3 , 7 , 8 ] ] ;factNames ( 4 5 , 1 : 3 ) = [{44} ,{ ’X44 ’ } ,{ ’ rTipPD x aTipPD ’ } ] ;
X = [X, X( : , 8 ) .∗ X( : , 1 0 ) ] ;f a c t = [ f a c t ; [ 4 4 , 7 , 9 ] ] ;
442 factNames ( 4 6 , 1 : 3 ) = [{45} ,{ ’X45 ’ } ,{ ’aBodyPD x aTipPD ’ } ] ;X = [X, X( : , 9 ) .∗ X( : , 1 0 ) ] ;f a c t = [ f a c t ; [ 4 5 , 8 , 9 ] ] ;
447
return ;
125
Listing B.11: Trim bit data, removing confounding edge effects% EdgeTrim .m
2 %% SYNOPSIS% This func t i on modi f i e s the X and Y matr ices by removing data r e l a t i n g to% b i t s l o ca t ed wi th in a ce r t a in d i s t ance o f the edge o f the cut . Candidate% b i t s are i d e n t i f i e d us ing fundamental measured data .
7 %% INPUT%% X: matrix o f independent v a r i a b l e va lue s ( rows=samples , columns=f a c t o r s )%
12 % Y: vec tor conta in ing va lue s f o r the dependent or response v a r i a b l e%% funData : fundamental data from a s p e c i f i c c u t t i n g app l i c a t i on% column 1 = bit num ,% column 2 = a x i a l d i s t ,
17 % column 3 = drum angle ,% column 4 = t i p r ad i u s ,% column 5 = skew angle ,% column 6 = at tack ang l e ,% column 7 = mat1 fa i l s ,
22 % column 8 = mat2 fa i l s ,% column 9 = mat3 fa i l s ,% column 10 = t i p f a i l s ,% column 11 = b o d y f a i l s%
27 % edgeTrimDist : d i s t ance i n t e r v a l on edges o f cut in which e f f e c t s are% confounded by cut over lap (measured in inches ) . These b i t s% are removed from the ana l y s i s%% OUTPUT
32 %% X trim : trimmed vers ion o f the X matrix%% Y trim : trimmed vers ion o f the Y matrix%
37
function [ X trim , Y trim ] = EdgeTrim(X, Y, funData , edgeTrimDist )
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% remove edge over lap confounding %%
42 %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%X trim = X;Y trim = Y;
l e f tEdge = min( funData ( : , 2 ) ) ;47 r ightEdge = max( funData ( : , 2 ) ) ;
% trim l e f t confounded b i t swhile ( funData (1 , 2 ) < l e f tEdge + edgeTrimDist )
%% SYNOPSIS% This func t i on performs a backward s t epw i s e r e g r e s s i on . I t i s cu r r en t l y% implemented to wr i t e a f i l e conta in ing a l a t e x t a b l e f o r each s t ep o f the
6 % regre s s i on .%%% INPUT%
11 % Y : vec tor conta in ing va lue s f o r the dependent or response v a r i a b l e%% X : matrix o f independent v a r i a b l e va lue s ( rows=samples , columns=f a c t o r s )%% fa c t : indexed l i s t o f f a c t o r i n t e r a c t i o n s (number o f rows shou ld equa l
16 % : number o f columns in X)% : column 1 −> f a c t o r number% : column 2 −> i n t e r a c t i on f a c t o r 1 (0 f o r l i n e a r terms )% : column 3 −> i n t e r a c t i on f a c t o r 2 (0 f o r l i n e a r terms )%
21 % factNames : names o f f a c t o r s f o r r epor t ing purposes ( c e l l array )% column 1 = va r i a b l e index% column 2 = va r i a b l e id% column 3 = va r i a b l e name%
26 % a : s i g n i f i c a n c e l e v e l ( t y p i c a l l y 0 .05)%% z : ( op t i ona l )% : z=0 −> f o r c e zero i n t e r c e p t ( or non−zero i n t e r c e p t inc luded in X)% : z=1 −> f i t non−zero i n t e r c e p t ( d e f a u l t )
31 %%% OUTPUT%% beta
36 % B hat : l e a s t squares c o e f f i c i e n t% T : t−s tuden t p r o b a b i l i t y f o r each c o e f f i c i e n t% P : p−va lue s f o r each c o e f f i c i e n t%% res
41 % Y hat : p r ed i c t ed response% E : r e s i d u a l s% Z : z−score o f r e s i d u a l s ( f o r normal p r o b a b i l i t y p l o t )% var Y hat : error in p red i c t ed response%
46 % s t a t s% R2 : propor t ion o f exp la ined va r i a t i on ( r−squared )% R2 adj : ad jus td r−squared% t s i g : 0.05 s i g n i f i c a n c e l e v e l f o r c o e f f i c i e n t s%
51 % means ( inc l ud ing i n t e r c e p t )% X mean : f a c t o r mean at each d i s c r e t e response l e v e l% Y mean : s e t o f d i s c r e t e response l e v e l s% Y hat mean : p r ed i c t i on at l e v e l mean% Y hat error : var iance in pred i c t ed response f o r means
56 %% trend% X trend : s e t o f appropr ia te x va lue s f o r each f a c t o r% Y trend : trend o f p r ed i c t ed response at X trend% Y error : standard dev in pred i c t ed response ( Y trend )
61 %%% IMPORTANT NOTE: To f i t an MLR model , the number o f% samples must be g r ea t e r than the number o f independent% va r i a b l e s . As the number o f v a r i a b l e s g e t s c l o s e r to
66 % the number o f samples , the X’X inve r s e matrix may become% uns tab l e and may not e x i s t ( i . e . , s i n gu l a r X’X matrix ) .%
71 function [ beta , res , s t a t s , f ac t ,X] = BackStepRegres (X,Y, fac t , factNames , a , z ) ;
127
% load octave func t i on wrappers f o r c ompa t i b i l i t y with matlab%path ( path , ’ / home/mht/ octave /wrappers ’ ) ;
76
% se t v a r i a b l e sf a c t i n = f a c t ;X in = X;
81 % check order o f i n t e r a c t i on f a c t o r sintOrder = s ize ( fac t , 2 ) −1;
% check fo r zero−i n t e r c ep t−f l a g86 i f nargin < 3
z=1;endi f z == 1
X = [ ones ( [ length (Y) , 1 ] ) , X ] ;91 f a c t = [ [ 0 , 0 , 0 ] ; f a c t ] ;
end
n = length (Y) ; % number o f samplesk = s ize (X, 2 ) ; % number o f f a c t o r s
96
% check to see t ha t n >= k ( samples >= independent vars )i f k>n
error ( ’More v a r i a b l e s than samples , ’ , . . .’ use l e s s v a r i a b l e s and/ or omit i n t e r c e p t ’ )
101 end
% maximum number o f i t e r a t i o n s equa l to number o f v a r i a b l e sstep num = 0 ;
106 while 1
k = s ize (X, 2 ) ; % number o f f a c t o r s
% c o e f f i c i e n t s and p r ed i c t i on s111 X ha l f i nv = inv (X’ ∗ X) ;
X inv = X ha l f i nv ∗ X’ ;B hat = X inv ∗ Y;Y hat = X ∗ B hat ;
116
% model c l o s ene s s (R−Squared , Adjusted R−Squared )SSE = (Y − X ∗ B hat ) ’ ∗ (Y − X ∗ B hat ) ;SST = sum( [ (Y − mean(Y) ) . ˆ 2 ] ) ;R2 = 1−SSE/SST ;
121 i f (0 )R2 adj = 1 − (1 − R2) ∗ ( ( n − 1) /(n − k − 1) ) ;
elseR2 adj = 1 − (1 − R2) ∗ ( ( n − 1) /(n − k ) ) ;
end126
% s t a t i s t i c a l s i g n i f i c a n c e o f c o e f f i c i e n t s (T−Value , P−Value )S2 = SSE/(n−k ) ;var B hat = diag ( X ha l f i nv ) ∗ S2 ;
131 s td B hat = var B hat . ˆ (1/2) ;T = B hat .∗ (1 . / std B hat ) ;t s i g = abs ( t inv ( 0 . 0 5/2 , ( n−k ) ) ) ;P = tcd f (−abs (T) , ( n−k ) ) ∗2 ;
136
% prec i s i on o f p r e d i c t i on svar Y hat = X ∗ X ha l f i nv ∗ X’ ∗ S2 ;
141 % check model assumptions ( r e s i dua l s , normal p r o b a b i l i t y )E = Y − Y hat ; % re s i d u a l sE ord = [E, [ 1 : n ] ’ ] ;E ord = [ [ 1 : n ] ’ , so r t rows ( E ord , 1 ) ] ; % re s i d u a l s ordered by s i z e
128
Z ord = norminv ( ( E ord ( : , 1 ) −0.5) / max( E ord ( : , 1 ) ) , 0 , 1 ) ;146 Z ord = [ E ord ( : , 3 ) , Z ord ] ; % Z−Score f o r E ord
Z = sort rows ( Z ord , 1 ) ;Z = Z ( : , 2 ) ; % Z−Score o f r e s i d u a l s in o r i g i n a l order
% arrange r e g r e s s i on r e s u l t s151 beta = [ B hat , T, P, var B hat ] ;
r e s = [ Y hat , E, Z ] ;s t a t s = [R2 , R2 adj , t s i g ] ;
% wri t e r e g r e s s i on r e s u l t s from t h i s s t ep to l a t e x t a bu l a r f i l e156 LatexTabMed( step num , fac t , factNames , s t a t s (1 ) , s t a t s (2 ) ,beta ( : , 3 ) ,beta ( : , 1 )
) ;
% f ind drop candidatefFact = [ fac t ,P, zeros ( s ize ( fac t , 1 ) , 1 ) ] ;
161 for j = 1 : s ize ( fac t , 1 )[ int , b ] = find ( fFact ( : , 2 : 3 )==fFact ( j , 1 ) ) ;i f length ( i n t )==0
% drop current f a c t o r from fa c t o r l i s t , f a c t o r names , and from X matrixi f fFact ( dFact , 4 ) > a
171 f a c t ( dFact , : ) = [ ] ;X( : , dFact ) = [ ] ;factNames ( dFact , : ) = [ ] ;
elsebreak
176 endstep num = step num + 1 ;
end
181 % wri t e f i n a l r e g r e s s i on r e s u l t s to l a t e x t a bu l a r f i l eLatexTabMed( step num , fac t , factNames , s t a t s (1 ) , s t a t s (2 ) ,beta ( : , 3 ) ,beta ( : , 1 ) ) ;
129
Listing B.13: Produce medium verbosity latex table for each regression step% LatexTabMed .m%
3 % SYNOPSIS% Produce a medium ve r b o s i t y l a t e x t ab l e , conta in ing r e g r e s s i on r e s u l t s f o r% each s t ep in the backward s t epw i s e r e g r e s s i on .%%
8 % INPUT%% stepNum : s t ep number in the s t epw i se r e g r e s s i on%% fa c t : indexed l i s t o f f a c t o r i n t e r a c t i o n s (number o f rows shou ld equa l
13 % number o f columns in X)% column 1 = fa c t o r number% column 2 = in t e r a c t i on f a c t o r 1 (0 fo r l i n e a r terms )% column 3 = in t e r a c t i on f a c t o r 2 (0 fo r l i n e a r terms )%
18 % factNames : names o f f a c t o r s f o r r epor t ing purposes ( c e l l array )% column 1 = va r i a b l e index% column 2 = va r i a b l e id% column 3 = va r i a b l e name%
23 % rSq : r−square va lue f o r current r e g r e s s i on s t ep%% rSq : r−square va lue f o r current r e g r e s s i on s t ep%% pVal : p−va lue f o r each f a c t o r at the current r e g r e s s i on s t ep
28 %% bHat : c o e f f i c i e n t s f o r each f a c t o r at the current r e g r e s s i on s t ep%% OUTPUT%
33 % mlr s t ep x . t e x : t e x t f i l e conta in ing a s p l i t column l a t e x t a b l e o f r e s u l t s%
function funcStat = LatexTabMed( stepNum , fac t , factNames , rSq , aRSq , pVal , bHat ) ;
38
% open f i l ef i d = fopen ( [ ’ m l r s t ep ’ ,num2str( stepNum) , ’ . tex ’ ] , ’wt ’ ) ;
43 % s t a r t t a b l e environmentfpr intf ( f i d , ’ \\ f o o t n o t e s i z e \n ’ ) ;fpr intf ( f i d , ’ \\ t ab l i n e s ep =4.0 pt\n ’ ) ;fpr intf ( f i d , ’ \\ begin { tabu la r }{ l l r c l l r }\n ’ ) ;
48 % wri t e t a b l e headerfpr intf ( f i d , ’ \ t \ t \\multicolumn {7}{ c }{\\ bf Step Number %i }\\\\\n ’ , stepNum) ;fpr intf ( f i d , ’ \ t \\ h l i n e \n ’ ) ;
58 headRow = [ headRow , ’ {\ bf P−Value} ’ ] ;fpr intf ( f i d , ’ \ t \ t%s \ t&\t { }\ t&\t%s \\\\\n ’ ,headRow , headRow) ;fpr intf ( f i d , ’ \ t \\ c l i n e {1−3} \\ c l i n e {5−7}\n ’ ) ;
% get t ab l e ’ s row s p l i t po in t63 nRows = s ize ( fac t , 1 ) ;
spl itRow = ce i l (nRows/2) ;
% wri t e t a b l e bodyfor i = 1 : spl itRow
68
% get t ab l e ’ s l e f t columnbodyRowL = [ ] ;bodyRowL = [ bodyRowL , sprintf ( ’{%s } ’ , factNames{ i , 2} ) ] ;
fpr intf ( f i d , ’ \ t \ t%s \ t&\t { }\ t&\t%s \\\\\n ’ ,bodyRowL , bodyRowR) ;
end
98 % wri t e t a b l e f o o t e rfpr intf ( f i d , ’ \ t \\ h l i n e \n ’ ) ;footRow = [ ] ;footRow = [ footRow , ’ \multicolumn {7}{ l } ’ ] ;footRow = [ footRow , sprintf ( ’ {$Rˆ2$ = %4.3 f , \\ hskip 20pt Adjusted $Rˆ2$ = %4.3 f }
’ , rSq , aRSq) ] ;103 fpr intf ( f i d , ’ \ t \ t%s \\\\\n ’ , footRow ) ;
% end t a b l e environmentfpr intf ( f i d , ’ \\end{ tabu la r }\n ’ ) ;fpr intf ( f i d , ’ \\ normalfont \n ’ ) ;
108
% c l o s e f i l efc lose ( f i d ) ;
131
Listing B.14: Export data for generating plots of regression results% PlotData .m%% SYNOPSIS% Export data f o r genera t ing p l o t s o f r e g r e s s i on r e s u l t s . Requires f unc t i ons
5 % from ’< t h e s i s >/ana l y s i s / octave /m’%% INPUT%% X: matrix o f independent v a r i a b l e va lue s ( rows=samples , columns=f a c t o r s )
10 % Y: vec tor conta in ing va lue s f o r the dependent or response v a r i a b l e%% beta% B hat : l e a s t squares c o e f f i c i e n t% T : t−s tuden t p r o b a b i l i t y f o r each c o e f f i c i e n t
15 % P : p−va lue s f o r each c o e f f i c i e n t% var B hat : var iance o f c o e f f i c i e n t s%% res% Y hat : p r ed i c t ed response
20 % E : r e s i d u a l s% Z : z−score o f r e s i d u a l s ( f o r normal p r o b a b i l i t y p l o t )%% factNames : names o f f a c t o r s f o r r epor t ing purposes ( c e l l array )% column 1 = va r i a b l e index
25 % column 2 = va r i a b l e id% column 3 = va r i a b l e name%% OUTPUT%
30 % mlr data . t x t : column−a l i gned t e x t f i l e% − column 1 . . . nFact = reg r e s s i on f a c t o r s% − column nFact+1 = r e s i d u a l s% − column nFact+2 = z−score o f r e s i d u a l s% − column nFact+3 = response
35 %% respNames : name of response v a r i a b l e% column 1 = va r i a b l e index% column 2 = va r i a b l e id% column 3 = va r i a b l e name
40
function p l o t d a t a f i l e (X, Y, beta , res , factNames , respNames ) ;
45 % open f i l e f o r wr i t i n gf i d = fopen ( ’ mlr data . txt ’ , ’wt ’ ) ;
% generate format and header s t r i n g s50 factHead = factNames {1 ,3} ;
65 % wri t e main t a b l emainHead = [ factHead , ’ \ t ’ , presHead , ’ \ t ’ , respHead , ’ \n ’ ] ;mainBody = [ factBody , ’ \ t ’ , presBody , ’ \ t ’ , respBody , ’ \n ’ ] ;fpr intf ( f i d , mainHead ) ;for i = 1 : s ize (X, 1 )
70 fpr intf ( f i d , mainBody , [X( i , : ) , r e s ( i , : ) , Y( i ) ] ) ;end
132
% fac t o r mean at each d i s c r e t e response l e v e l75 fpr intf ( f i d , ’ \n ’ ) ;
fpr intf ( f i d , [ factHead , ’ \ t ’ , respHead , ’ \n ’ ] ) ;factMean = [ ] ;for i = 0 :max(Y)
l o c = find (Y == i ) ;80 i f s ize ( loc , 1 ) ˜= 0
levelMean = mean( [X( loc , : ) ,Y( loc , 1 ) ] , 1 ) ;fpr intf ( f i d , [ factBody , ’ \ t ’ , respBody , ’ \n ’ ] , levelMean ) ;
endend
85
% c l o s e f i l efc lose ( f i d ) ;
133
Listing B.15: Generate interaction plots in SVG format% Plo t In t e r a c t .m
2 %% SYNOPSIS% Export data f o r genera t ing p l o t s o f r e g r e s s i on i n t e r a c t i on r e s u l t s .% Octave only .%
7 % INPUT% beta% column 1 = B hat , l e a s t squares c o e f f i c i e n t% column 2 = T, t−s tuden t p r o b a b i l i t y f o r each c o e f f i c i e n t% column 3 = P, p−va lue s f o r each c o e f f i c i e n t
12 % var B hat : var iance o f c o e f f i c i e n t s% factNames : names o f f a c t o r s f o r r epor t ing purposes ( c e l l array )% column 1 = va r i a b l e index% column 2 = va r i a b l e id% column 3 = va r i a b l e name
17 % fa c t : indexed l i s t o f f a c t o r i n t e r a c t i o n s (number o f rows shou ld equa l% number o f columns in X)% column 1 = fa c t o r number% column 2 = in t e r a c t i on f a c t o r 1 (0 fo r l i n e a r terms )% column 3 = in t e r a c t i on f a c t o r 2 (0 fo r l i n e a r terms )
22 % in t e r : i n d i c a t e whether the model i n c l ude s a non−zero i n t e r c e p t%% OUTPUT% in t e r a c t i o n p l o t . svg : s c a l a b l e vec to r graph ic s f i l e conta in ing i n t e r a c t i on% p l o t s f o r a l l i n t e ra c t i on s , on a s i n g l e page
27 %
function P lo t I n t e r a c t (beta , factNames , f ac t , i n t e r ) ;
close a l l ;32
c = beta ( : , 1 ) ;v = find ( f a c t ( : , 2 ) ˜=0) ;
automat i c r ep l o t =0;gnup l o t r aw ” reset\n ” ;
47
xS ize = pCols ∗240 ;yS ize = pRows∗180 ;strTerm = ’ g n u p l o t s e t te rmina l svg s i z e %i %i fname ” Ar i a l ” f s i z e 14 ’ ;cmd = sprintf ( strTerm , xSize , yS i ze ) ;
52 eval (cmd) ;
g n u p l o t s e t output ’ t i p i n t e r a t i o n p l o t s . svg ’ ;
57 for i =1: length ( v )j = v ( i ) ;
% get vec to r p o s i t i o n s from fa c t o r i nd i c e sixFact1 = find ( f a c t ( : , 1 )==f a c t ( j , 2 ) ) ; % fac t o r 1 array index
62 ixFact2 = find ( f a c t ( : , 1 )==f a c t ( j , 3 ) ) ; % fac t o r 2 array index
% put the l a r g e r f a c t o r f i r s ti f abs ( c ( ixFact2 ) ) > abs ( c ( ixFact1 ) )
ixFact2 = find ( f a c t ( : , 1 )==f a c t ( j , 2 ) ) ; % fac t o r 2 array index67 ixFact1 = find ( f a c t ( : , 1 )==f a c t ( j , 3 ) ) ; % fac t o r 1 array index
end
% generate fac tor−low pr ed i c t i on equat ion c o e f f i c i e n t s
134
72 v l = zeros (2 , length ( c ) ) ;v l ( : , 1 ) = i n t e r ; %in t e r c e p tv l (1 , ixFact1 ) = −1;v l (2 , ixFact1 ) = 1 ;v l ( : , ixFact2 ) = −1;
77 v l ( : , j ) = v l ( : , ixFact1 ) .∗ v l ( : , ixFact2 ) ;
% generate fac tor−high p r ed i c t i on equat ion c o e f f i c i e n t sv h = zeros (2 , length ( c ) ) ;v h ( : , 1 ) = i n t e r ; %in t e r c e p t
82 v h (1 , ixFact1 ) = −1;v h (2 , ixFact1 ) = 1 ;v h ( : , ixFact2 ) = 1 ;v h ( : , j ) = v h ( : , ixFact1 ) .∗ v h ( : , ixFact2 ) ;
87 % generate p r ed i c t i on equat ion s o l u t i o n sp l = v l ∗ c ;p h = v h ∗ c ;
92 % pr in t p l o t va lue s%p r i n t f ( ’ rows=%i , c o l s=%i , index=%i \n ’ , pRows , pCols , i ) ;plotVect = [ v l ( : , ixFact1 ) , p l , p h ] ;p r i n t f ( ’# %s \n ’ , factNames{ j , 3} ) ;p r i n t f ( ’# %s \ t%s \ t%s \n ’ , ’ x ’ , ’ p l ’ , ’ ph ’ ) ;
97 p r i n t f ( ’%f \ t%f \ t%f \n ’ , p lotVect ( 1 , : ) ) ;p r i n t f ( ’%f \ t%f \ t%f \n ’ , p lotVect ( 2 , : ) ) ;p r i n t f ( ’ \n ’ ) ;
% p l o t format and t i t l e102 subplot (pRows , pCols , i ) ;
c l e a r p l o t ( ) ;s t r T i t l e = ’ g n u p l o t s e t t i t l e ”%s ” font ”Aria l , 14” ’ ;cmd = sprintf ( s t rT i t l e , [ factNames{ ixFact1 , 3} , ’ x ’ , factNames{ ixFact2
, 3 } ] ) ;eval (cmd) ;
107 g n u p l o t s e t nokey%ax i s ( ’ square ’ ) ;% g n u p l o t s e t s i z e r a t i o 0.5
% x ax i s format t ing112 g n u p l o t s e t x t i c s border nomirror (”−1” −1, ”0” 0 , ”1” 1) font ”Aria l
, 8”g n u p l o t s e t xrange [ −1 : 1 ] no reve r s e nowriteback
cmd = sprintf ( ’ g n u p l o t s e t x l ab e l ”%s ” 0 , 0 . 7 ’ , factNames{ ixFact1 , 3} ) ;eval (cmd) ;
g n u p l o t s e t xlabel f on t ”Aria l , 10”117
% y ax i s format t ingg n u p l o t s e t ylabel ” Fa i l u r e s ” 0 . 9 , 0g n u p l o t s e t ylabel f on t ”Aria l , 10”
ymin = f loor (min(min ( [ p l , p h ] ) ) ) ;122 ymin = 1.1∗ ymin ;
ymax = ce i l (max(max( [ p l , p h ] ) ) ) ;ymax = 1.1∗ymax ;strYTics = ’ g n u p l o t s e t y t i c s border nomirror ’ ;s t rYTics = s t r c a t ( strYTics , ’ (”%d” %d ,”0” 0,”%d” %d) font ”Aria l , 8” ’ ) ;
127 cmd = sprintf ( strYTics , ymin , ymin , ymax , ymax) ;eval (cmd) ;strYRange = ’ g n u p l o t s e t yrange [ %d : %d ] noreve r s e nowriteback ’ ;cmd = sprintf ( strYRange , ymin , ymax) ;eval (cmd) ;
132 g n u p l o t s e t ylabel f on t ”Aria l , 11”
% p l o t to the f i g u r eplot ( v l ( : , ixFact1 ) , p l , ’ −3;Lo ; ’ , v h ( : , ixFact1 ) , p h , ’ −1;Hi ; ’ ) ;
137 end
automat i c r ep l o t =1;onep lot ( ) ;
135
136
Appendix C
Regression Procedure
Count data, especially at low mean values, follow the Poisson distribution. Our
dependent variable, pick failures, is a count of failures events, over the experiment as
described in the previous section. Therefore, we have made extensive use of Poisson
regression analysis in the following work. In particular, we have applied a backward
stepwise regression method for building a meaningful model.
In an observational study, the factors being studied have only natural variation
whereas, in a designed experiment, special variation would be intentionally introduced
to the model. For each factor, variation about the mean is smaller than would be
introduced in a designed experiment. This condition has the effect of reducing factor
significance in general, and especially that of higher order interaction terms. In view
of this, we have limited our analysis to linear terms and their first order interactions.
Our initial approach to modeling the experimental data used a linear regres-
sion method. Some of the tools and methods are included, for reference, in another
appendix. The results of the linear regression were similar to those found with Poisson
regression, but the underlying assumptions of linearity were clearly inappropriate.
Regression analysis of non-saturated models requires that the number of sam-
ples must be greater than the number of fitted independent variables. As the number
of variables gets closer to the number of samples, the solution may become unsta-
ble and may not exist (i.e., singular X ′X matrix). Because we have many variables
that are similar to each other, the regression is especially sensitive to the number of
independent variables. By limiting the factor set to first order interactions, we have
avoided problems with matrix singularity.
137
C.1 Regression Model Trimming
P-Value is defined as the probability that the statistical null hypothesis is true
. . . in other words, the probability that there is no correlation between a factor and
the response variable (bit failures). Assuming a 95% confidence interval, any factor
with P-Value greater than 0.05 is considered to be non-significant. In Section 4.2, we
defined two factor sets, of three and nine variables, to be analyzed in relation to pick
failure. Including first order interactions, the two models consist of, respectively, five
and eighteen total variables for study.
In accordance with the law of parsimony, most statisticians hold that a trimmed
regression model is more appropriate than a full model. Trimming a model is accom-
plished through a process of iteratively running the regression analysis with the least
significant factor removed (also termed Backward Stepwise Regression). The process
is stopped when only significant factors remain in the model. Most statisticians rec-
ommend that if factor interactions are included in the model, then their contributing
factors should also be included, whether or not they are significant.
In an effort to gain additional insight into pick failure phenomenon we have
included an expanded-factor variable set. This variable set is comprised of several
variables, contributing to per-pick volume, and relative to skew angle. In order to
reduce multi-collinearity, we have dropped skew angle and volume from the expanded
models. We expected that these additional regression variables would have strong
interactions. In some cases we have encountered interactions between these vari-
ables that are significant, where the underlying linear terms are not. For the results
presented and discussed here we have included these non-significant linear terms.
All models were defined using a p-value threshold of α = 0.05. An example
regression run is provided in Section C.5.
C.2 Factor Scaling and Similarity
Data for this experiment were collected in 3 different applications, as explained
in Section 5.2. Rather than developing a complete predictive model, our purpose here
has been to develop a general overview of the significant contributing factors to pick
138
wear. Because of this limitation on the scope of the analysis, we will work exclusively
with scaled factors. Working with scaled factors greatly simplifies data analysis and
display. Most plots have been generated from predicted values of the scaled regression
model.
We showed in Section 5.2 that the depth and machine advance rate varied
between experiment applications (job sites). Variation in these parameters causes
variation in the factor ‘per-pick volume’. Because per-pick volume has an approxi-
mately linear relationship to the operational parameters of the machine, the scaled
values from the different applications are similar. When comparing results from sim-
ilar material types, the scaled per-pick volumes are nearly identical. From Table 5.3,
we can see that applications one and three experienced mostly pick body failures, and
have similar operational parameters. We have therefore used an average pick volume
between material types one and three for analyzing pick body failures. For analysis of
pick tip failures, we have used the per-pick volume calculated from material type two.
The following tables present descriptive statistics for un-scaled and scaled regression
variables.
Table C.1: Descriptive statistics for un-scaled regression variables
factor min max mean stdev
attack 0.88 0.93 0.91 0.01
absSkew 0.03 0.32 0.15 0.06
volume 2.25 4.88 3.49 0.47
xBodyPD 0.32 0.67 0.50 0.08
xTipPD 0.32 0.67 0.50 0.08
rBodyPD -0.14 0.10 0.00 0.05
rTipPD -0.12 0.14 0.00 0.05
aBodyPD 0.64 5.80 5.01 1.41
aTipPD 0.48 5.57 1.22 1.33
139
Table C.2: Descriptive statistics for scaled regression variables
factor min max mean stdev
attack -1.00 1.00 -0.02 0.45
absSkew -1.00 1.00 -0.16 0.43
volume -1.00 1.00 -0.04 0.34
xBodyPD -1.00 1.00 0.06 0.45
xTipPD -1.00 1.00 0.07 0.46
rBodyPD -1.00 1.00 0.19 0.38
rTipPD -1.00 1.00 -0.10 0.37
aBodyPD -1.00 1.00 0.69 0.55
aTipPD -1.00 1.00 -0.71 0.52
C.3 Regression Results
We conducted two regression analyses, for each of the two main failure modes.