We have defined some metrics for good analyses previously post. This method still requires some manual selection to remove clusters of analyses that produce bad analyses.

Baseline Analysis

  • segment size (10:5:400)
  • overlap requirement low (>10%)
  • R2 for zero point low (>0.5)
  • Modulus must be real
  • No judgment on quality of stress-strain curve

Analysis Work Flow

  • iterate through segments with the three linear fits saving only necessary variables for filtering
  • plot distributions 3D scatter plot of filtered analyses
  • plot stress-strain curves of a few selected analyses particularly at the boundaries of the scatter plot
  • iterate through filtering using the distributions and 3D scatter plot to determine cutoffs until the majority of the stress-strain curves are acceptable
  • calculate stress-strain and plastic properties for all acceptable analyses
  • verify yield strengths are correctly determined from offset or back extrapolated
  • calculate the statistics of the modulus, yield strength, and hardening
  • save work space

Case Study

Sample is CPTi, 16um indenter radius, 2014-02-26 Batch #00002. 892 data points. 32,378 Analyses.

Iteration 1

Filt ={ 'Modulus', [1000 10]}

Example Hist 1

Example Search 3

Iteration 2

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90}  

Example Hist 2

Iteration 3

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90; 'P*', 0.1100}  

Example Hist 3

Saved Search Scatter Plot and Example Stress-Strain Curves

Example SS 3.1

Example SS 3.2

Example SS 3.3

Example SS 3.4

Iteration 4

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90; 'P*', 0.1100; 'dP', 0.001}

Example Hist 4

Iteration 5

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90; 'P*', 0.1100; 'dP', 0.001; 'MAR1', 0.04} 

Example Hist 5

Iteration 6

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90; 'P*', 0.1100; 'dP', 0.001; 'MAR1', 0.04; 'MAR4', 0.1}

Example Hist 6

Iteration 7

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90; 'P*', 0.1100; 'dP', 0.001; 'MAR1', 0.04; 'MAR4', 0.1; 'p_change', [0.06 0]}

Example Hist 7 Saved Search Scatter Plot and Example Stress-Strain Curves

Example Search 6

Example SS 6.1

Example SS 6.2

Example SS 6.3

Saved all Stress-Strain Data

Estat = 
  mean: 100.0200
median: 99.2786
 stdev: 4.6270
   min: 92.4900
   max: 118.6119

Ystat = 
  mean: 0.8365
median: 0.8220
 stdev: 0.0610
   min: 0.7394
   max: 1.0960

Hstat = 
  mean: 13.4397
median: 13.3776
 stdev: 1.4401
   min: 11.1772
   max: 19.1546

Iteration 8

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90; 'P*', 0.1100; 'dP', 0.001; 'MAR1', 0.04; 'MAR4', 0.1; 'p_change', [0.06 0]; 'MAR2', 0.5}

Example Hist 8

Iteration 9

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90; 'P*', 0.1100; 'dP', 0.001; 'MAR1', 0.04; 'MAR4', 0.1; 'p_change', [0.06 0]; 'MAR2', 0.5; 'Hr', [-0.3 -0.5]}

Saved Search Scatter Plot and Example Stress-Strain Curves

Example Search 8

Example SS 8.1

Example SS 8.2

Example SS 8.3

Saved all Stress-Strain Data

Estat = 
  mean: 105.8270
median: 105.7222
 stdev: 2.2997
   min: 100.9116
   max: 112.5039

Ystat = 
  mean: 0.9153
median: 0.9173
 stdev: 0.0325
   min: 0.8437
   max: 1.0199

Hstat = 
  mean: 15.1464
median: 14.9451
 stdev: 0.6875
   min: 13.9577
   max: 16.6392  

Iteration 10

Filt ={ 'Modulus', [1000 10]; 'R21', 0.95; 'R22', 0.90; 'R23', 0.90; 'P*', 0.1100; 'dP', 0.001; 'MAR1', 0.04; 'MAR4', 0.09; 'p_change', [0.06 0]; 'MAR2', 0.49}

Example Hist 10

Saved all Stress-Strain Data

Estat = 
  mean: 105.2801
median: 105.5839
 stdev: 2.4332
   min: 99.7603
   max: 110.0666

Ystat = 
  mean: 0.9071
median: 0.9156
 stdev: 0.0338
   min: 0.8320
   max: 0.9784

Hstat = 
  mean: 15.0195
median: 14.8722
 stdev: 0.7281
   min: 13.4207
   max: 16.2188

Progression of number of good analyses based on Filt variables for 10th iteration of Filt.

npoints =
   32378
   32353
   13270
   12875
   11073
   11029
    9651
    8721
    2051
    2025
     434

There is not much more reasoning in filtering the data further

note: Images labeled 6 and 8 are actually for iterations 7 and 9 and correctly positioned in this post. The orientation of the grain where the indent was run is not (0,0,0)

The matlab code and data used for this analysis can be found here: code and data