使用fsolve时出错:使用非方形系统

时间:2017-11-24 10:39:13

标签: matlab

我有以下功能,我定义了一些参数如下:

function F = solar5d(x)    
    q = 1.60217662*10^-19;    
    k = 1.38064852*10^-23;    
    T = 298.15; % Temperature in degrees 25. This one is in Kelvin.    
    Ns = 72;    
    Np = 1;    
    Voc = 44.6;    
    Vm = 35.43;    
    Isc = 5.43;    
    Im = 4.95;    
    n = 1.086;    
    % These are my unknown parameters I am looking for:    
    Iph = x(1);    
    Io = x(2);    
    Rs = x(3);    
    Rp = x(4);    
    Vt = x(5);    
    % The following are the six questions I have to solve the system:    
    F(1) = Vt - n*k*T/q;    
    F(2) = Np*Iph - Np*Io*(exp(Voc/Ns*Vt)-1) - (Np*Voc)/(Ns*Rp);    
    F(3) = Np*Iph - Np*Io*(exp((Isc*Rs)/(Np*Vt)) - 1) - (Isc*Rs)/Rp -     Isc;    
    F(4) = Np*Iph - Np*Io*(exp(((Vm/Ns)+(Im*Rs)/Np)/Vt) - 1) - Np*((((Vm/Ns)+((Im*Rs)/Np))/Rp)) - Im;    
    F(5) = (((Np/Ns*Vt)*Io*(exp((Vm + ((Im*Ns*Rs)/Np))/Ns*Vt)) +   (1/(Ns*Rp)/Np))/(1 + (Rs*Vt)*Io*(exp((Vm + ((Im*Ns*Rs)/Np))/Ns*Vt)) + (Rs/Rp))) - (Im/Vm);        
    F(6) = (((-Np/Ns*Vt)*Io*(exp(Voc/Ns*Vt)) - (1/Ns*Rp/Np)) / (1 + (Rs/Vt)*Io*(exp(Voc/Ns*Vt)) + (Rs/Rp))) + 1/Rs;    
end

但我收到以下错误:

  

警告:FSOLVE的Trust-region-dogleg算法无法处理   非方形系统;使用Levenberg-Marquardt算法代替。 >在   fsolve(第298行)使用levenbergMarquardt时出错(第16行)目标   函数在初始点返回未定义的值。 fsolve不能   继续。

     

fsolve中的错误(第397行)levenbergMarquardt(funfcn,x,verbosity,options,defaultopt,f,JAC,caller,...

请你帮我解决我的问题?

0 个答案:

没有答案