You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

40 lines
1.2 KiB

function [ch,chda,chdb,chdc]=fitting_val(a0,b0,c0)
E = 1; m = 0.33;
p = E / ( (1+m) * (1-2*m) );
D = [p*(1-m) p*m p*m 0 0 0
p*m p*(1-m) p*m 0 0 0
p*m p*m p*(1-m) 0 0 0
0 0 0 p*(0.5-m) 0 0
0 0 0 0 p*(0.5-m) 0
0 0 0 0 0 p*(0.5-m)];
y0=[D(1,1),D(1,2),D(1,3),D(2,2),D(2,3),D(3,3),D(4,4),D(5,5),D(6,6)];
ch0=zeros([9,size(a0)]);
chda0=zeros([9,size(a0)]);
chdb0=zeros([9,size(a0)]);
chdc0=zeros([9,size(a0)]);
load('FittingParam.mat', 'paramFitting')
for i=1:9
b_reg = paramFitting(:,i);
[y,da,db,dc]=derivativeFromFitting(a0,b0,c0,b_reg);
ch0(i,:,:,:)=y.*(1+a0+b0+c0>0)+y0(i).*(1+a0+b0+c0<=0);
ch0(i,:,:,:)=max(ch0(i,:,:,:),y0(i)*1e-9);
chda0(i,:,:,:)=da.*(1+a0+b0+c0>0);
chdb0(i,:,:,:)=db.*(1+a0+b0+c0>0);
chdc0(i,:,:,:)=dc.*(1+a0+b0+c0>0);
end
ch=zeros([12,size(a0)]);
chda=zeros([12,size(a0)]);
chdb=zeros([12,size(a0)]);
chdc=zeros([12,size(a0)]);
idx = [1,2,3, 2,4,5, 3,5,6, 7,8,9];
for i=1:12
ch(i,:,:,:)=ch0(idx(i),:,:,:);
chda(i,:,:,:)=chda0(idx(i),:,:,:);
chdb(i,:,:,:)=chdb0(idx(i),:,:,:);
chdc(i,:,:,:)=chdc0(idx(i),:,:,:);
end
end