NI Stress-Strain Analysis Automation for Elastically Anisotropic Polycrystalline Ti

Goals

  1. Determine and document criteria for acceptable analysis and best analysis
  2. Record statistics of acceptable analysis: mean, median, stdev
  3. Determine if results are sensitive to input/number of possible analyses: segment_size
  4. Record best analysis and closest to Average Expected Modulus answer (ignore anisotropy)

Final Plots

  • Euler angle (Phi) vs Mean Indentation Modulus with Stdev as error bars.
  • Euler angle (Phi) vs Best Answer Indentation Modulus
  • Euler angles (Phi, phi2?) vs Mean Indentation Yield Strength
  • Euler angles (Phi, phi2?) vs Best Answer Indentation Yield Strength

Goal 1. Determine and document criteria for acceptable analysis and best analysis.

a. The overlap between the zero point and modulus fit segments must be greater than 95%. The reason for this is that in selecting a segment for the zero point, it is assumed to follow Hertzian contact and therefore should also produce the correct modulus. If the zero point corrections are so large that the corrected load and displacement shift more than 5% of the data to be negative.This seems strict but gets rid of a lot of poor to mediocre analyses.

Note: The end of the segments is always the same and the length of the modulus fit segment can be less than or equal to the length of zero point segment. Length is the number of data points.

Selected part of NIAnalyze.m concerning Goal 1.a.

h_new=h-h_star;  % Displacement (nm)
P_new=P-P_star;  % Load (mN)

h_new_fit=h_new(segment_start:segment_end);
P_new_fit=P_new(segment_start:segment_end);

% Remove the negative values that result from shifting
% the data.
last_neg_ii = find(P_new_fit < 0, 1, 'last');

h_new_fit = h_new_fit(last_neg_ii+1:end);
P_new_fit = P_new_fit(last_neg_ii+1:end);

modulus_start = last_neg_ii + segment_start - 1;

analysis.h_change = (h(modulus_start) - h(segment_start)) / (h(segment_end) - h(segment_start)); %new! 5/30/014
analysis.p_change = (P(modulus_start) - P(segment_start)) / (P(segment_end) - P(segment_start)); %new! 5/30/2014

analysis.modulus_start = modulus_start;
analysis.modulus_length = length(P_new_fit);

percent = length(h_new_fit)/length(h_new(segment_start:segment_end));

seg_overlap = 0.95;
analysis.seg_overlap = seg_overlap;
if(percent < seg_overlap)
    return;**
end

b. The R-squared values of linear fits for zero point and modulus determination must be greater than 0.8 x max(R2). Not using a hard value of 0.8 because the noise in data can vary with material, tip, and test parameters.

Selected part of MyPlotSearch.m SearchResults.ModulusRange = ModRange;

Fit1 = [FR.Fit1];
Fit2 = [FR.Fit2];
F1max=max([Fit1.Rsquared]);
F2max=max([Fit2.Rsquared]);
FRmax=max([FR.FinalRsquared]);
SegMax = max([FR.segment_length]);

% limit based on R^2 value of first two fits
GoodR = FR([Fit1.Rsquared] > (F1max*R(1)) & [Fit2.Rsquared] > (F2max*R(2)));
% R is a two value array with the R2 criteria

% limits points based on modulus range
GoodR = GoodR([GoodR.E_star]<ModRange(2) & [GoodR.E_star]>ModRange(1));

c. The indentation modulus must be in a selected range. In order not to bias the answer, the range should be selected broadly. This step could be skipped or set the limits to 0 and Inf if there are any moral objections.

Selected part of MyPlotSearch.m

% limits points based on modulus range
GoodR = GoodR([GoodR.E_star]<ModRange(2) & [GoodR.E_star]>ModRange(1));

d. Remove any poor stress-strain curves from the Search Results (produced from steps a,b, and c). A poor stress-strain curve includes

  • data does not start near the origin (dH, dP measure the distance from the origin. h_change, and p_change also seem to trend with distance from the origin but are measures of segment overlap)
  • non-linear elastic segment (R2 values are okay, but average absolute residual and max abs residual between the modulus line and elastic stress-strain data are better. This is called the final fit.)
  • poor agreement between the modulus line and the elastic stress-strain data (same as above)
  • too few data points for the elastic stress-strain data i.e. when your fit is on the order of the variability within what appears to be a linear elastic region of the stress-strain curve (look at modulus_length or use R2 which typically favors longer segments)

The poor curves can be the result of the analysis parameters. If all the curves look poor, it is likely a bad data. To remove the poor analyses, use the filter variable to select the top analyses based on the available variables: dP, dH, p change, h change, R2 (final), AARf (final), modulus length.

Goal 2. Compute Statistics on the Acceptable Analsyis.

What remains are acceptable analyses for computing statistics to determine the uncertainty in a single test.

Goal 3. Determine Sensitivity to Number of Input Analyses

The most input analyses possible would be an array of segment lengths which increase by 1 point. The result can be compared against this case.

Goal 4. Record Best and Closest to the Mean Expected Value

The closest to the Mean Expected Value will be manually selected. The best analysis will be manually selected based on the criteria bulleted above Goal 1.d.

Next Steps

  • Confirm FEM indentation modulus range for CP Ti elastic constants.
  • Re-analyze nanoindentation data with above protocol. (50-100 tests)
  • Collect more data if necessary.