1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
| function diff=opt(x,Vds,y);
A=x(1);
B=x(2);
C=x(3);
diff=A*(1+tanh(psi(i)))*(1+(Vds(j)*B))*tanh(Vds(j)*C) - y(i,j);
Vgs=-0.9:0.15:0;
Vds=0:1:6;
Vpk=-0.2;
a0=(-1.561*Vpk)+(1.409*Vpk.^2)-(5.379*Vpk.^3);
a1=1.561-(2*1.409*Vpk)+(3*5.379*Vpk.^2);
a2=1.409-(3*5.379*Vpk);
a3=5.379;
hold on;
for i=1:7,
psi(i)=a0+(a1*Vgs(i))+(a2*Vgs(i)^2)+(a3*Vgs(i)^3);
for j=1:7 ,
y(i,j)=0.761*(1+tanh(psi(i)))*(1+(Vds(j)*0.00739))*tanh(Vds(j)*1.156);
end;
figure(1);
plot(Vds,y(i,:))
pause;
end;
et dans une autre fenetre sur matlab l'optimisation en utilisant LSQNONLIN:
Vds=0:1:6;
y(i,j)=0.761*(1+tanh(psi(i)))*(1+(Vds(j)*0.00739))*tanh(rand(size(Vds(j)))*1.156);
options = optimset('Largescale','off');
X0=[0.761 0.00739 1.156]';
x=lsqnonlin(@opt1,X0,[],[],options,Vds(j),y(i,j)) |
Partager