Azzera filtri
Azzera filtri

Best Curvefit method for Viscoelastic Material

11 visualizzazioni (ultimi 30 giorni)
Hello, I currently have a curvefit code in place to curvefit and find the required parameters for experimental data.
Please find attached the data file if needed.
The Code I am using is as following. While I am satisfied with the results, Can anyone help me in knowing if this is the best possible way to do it.
See attached code.
if true
if ~exist('Processed','dir')
mkdir('Processed')
end
Files = dir('*.xls')
numfiles = length(Files);
for num = 1:numfiles
Data = xlsread(Files(num).name);
time=Data(:,1);
load_data=Data(:,5);
depth=Data(:,2);
[M,I] = max(load_data(:));
tR=time(I)+0.01;
time=time(I:length(time));
contact_depth=depth(I);
load_data=load_data(I:length(load_data));
lowest_load = load_data(end);
k=0.0025;
R=2.5e-06;
x0=[1e6 4e6 1e8];
% x0=[2e4 4e4 1e6]; % Initial design point
xl=[-inf -inf -inf];
xu=[inf inf inf];
sample=strtok(Files(num).name,'.');
[fitresult,gof,fig]=createFit(time,load_data,tR,k,R,x0,sample,xl,xu);
E1out=fitresult.E1; E2out=fitresult.E2; etaout=fitresult.eta; R2=gof.rsquare; xls_data{1,1}='E1= '; xls_data{2,1}='E2= '; xls_data{3,1}='eta= '; xls_data{4,1}='R2= '; xls_data{5,1}='Peak Load= '; xls_data{6,1}='Einf= '; xls_data{7,1}='Z= '; xls_data{8,1}='Lowest load='; xls_data{1,2}=E1out; xls_data{2,2}=E2out; xls_data{3,2}=etaout; xls_data{4,2}=R2; xls_data{5,2}=M; Einf=((E1out)*(E2out))/((E1out)+(E2out)); xls_data{6,2}=Einf; xls_data{7,2}=contact_depth; xls_data{8,2}=lowest_load;
xlswrite([strcat('\Processed\',Files(num).name)], xls_data, 1, 'A1'); % xlswrite([strcat('\\Output\Optimized_Values_',sample ,'.xls')], xls_data, 1, 'a1') end end

Risposte (0)

Categorie

Scopri di più su Get Started with Curve Fitting Toolbox in Help Center e File Exchange

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by