The code below runs nonstop, and the results are not shown. why is that?
3 次查看(过去 30 天)
显示 更早的评论
syms J1 J5 J6 J7 Jm T1 T2 T3 T4 T5 T6 Tm
%Jm = 1000; %5077.12;
Js = 301.32;
Je = 7;%330.136;
A2 = 449200;
A4 = 519000;
Fms = 0.305;
Fm1 = 0.45;
Fme = 0.245;
F1s = 0.610;
F1m = 0.389;
eps = 0.85;
Te = 215;
K1 = 60; %solar cell
L1 = 0.2e-3; %solar cell
R1 = 0.6e-4;
K2 = 15; %solar panel
L2 = 0.03; %solar panel
F5e = 0.1;
F5s = 0.03;
Fem = 0.1;
Fe5 = 0.01;
S0 = -Jm + eps*5.67e-8*Tm^4 + ((1-eps)*5*1360);
S1 = -(5.67e-8*Tm^4 - Jm)*(A2*eps)/(1-eps) + (Jm - Js)*(A2*Fms) + (Jm - J1)*(A2*Fm1) + (Jm - Je)*(A2*Fme);%J1
S2 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (J1 - Js)*(A4*F1s) + (J1 - Jm)*(A4*F1m);%T1
S3 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (T1-T2)*K1*A4/L1;%T2
S4 = -(T1 - T2)*K1/L1 + (T2-T3)/R1;
S5 = -(T2-T3)/R1 + (T3-T4)/L2*K2;
S6 = -(T3 - T4)/L2*K2 + (5.67e-8*T4^4 - J6)*A4*eps/(1-eps);
S7 = -(5.67e-8*T4^4 - J6)*eps/(1-eps) + (J6 - J7);
S8 = -(J6-J7) + (5.67e-8*T5^4 - J7)*eps/(1-eps) - 185.95;
S9 = -(5.67e-8*T5^4 - J7)*eps/(1-eps) + (T5 - T6)*K2/L2;
S10 = -(5.67e-8*T6^4 - J5)*eps/(1-eps) + (J5 - Je)*F5e + (J5 - J1)*F5s;
S11 = -(5.67e-8*Te^4 - Je)*eps/(1-eps) + (Je - Jm)*Fem + (Je- J5)*Fe5;
S = [S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11];
vars = [J1, J5, J6, J7, Jm, T1, T2, T3, T4, T5, T6, Tm];
sol = solve(S, vars);
T1_val = real(double(sol.T1(1)))
T2_val = real(double(sol.T2(1)))
T3_val = real(double(sol.T3(1)))
T4_val = real(double(sol.T4(1)))
T5_val = real(double(sol.T5(1)))
T6_val = real(double(sol.T6(1)))
0 个评论
回答(1 个)
Torsten
2024-5-26
编辑:Torsten
2024-5-26
The code below runs nonstop, and the results are not shown. why is that?
"solve" won't succeed for your system of equations because it is too complicated. Try the numerical solver "fsolve" instead. I hope you know better initial guesses for the solution variables than just random values.
x0 = rand(12,1);
options = optimset('MaxIter',300000,'MaxFunEvals',300000);
x = fsolve(@(x)fun(x(1),x(2),x(3),x(4),x(5),x(6),x(7),x(8),x(9),x(10),x(11),x(12)),x0,options)
function res = fun(J1,J5, J6, J7, Jm, T1, T2, T3, T4, T5, T6, Tm)
%Jm = 1000; %5077.12;
Js = 301.32;
Je = 7;%330.136;
A2 = 449200;
A4 = 519000;
Fms = 0.305;
Fm1 = 0.45;
Fme = 0.245;
F1s = 0.610;
F1m = 0.389;
eps = 0.85;
Te = 215;
K1 = 60; %solar cell
L1 = 0.2e-3; %solar cell
R1 = 0.6e-4;
K2 = 15; %solar panel
L2 = 0.03; %solar panel
F5e = 0.1;
F5s = 0.03;
Fem = 0.1;
Fe5 = 0.01;
S0 = -Jm + eps*5.67e-8*Tm^4 + ((1-eps)*5*1360);
S1 = -(5.67e-8*Tm^4 - Jm)*(A2*eps)/(1-eps) + (Jm - Js)*(A2*Fms) + (Jm - J1)*(A2*Fm1) + (Jm - Je)*(A2*Fme);%J1
S2 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (J1 - Js)*(A4*F1s) + (J1 - Jm)*(A4*F1m);%T1
S3 = -(5.67e-8*T1^4 - J1)*(A4*eps)/(1-eps) + (T1-T2)*K1*A4/L1;%T2
S4 = -(T1 - T2)*K1/L1 + (T2-T3)/R1;
S5 = -(T2-T3)/R1 + (T3-T4)/L2*K2;
S6 = -(T3 - T4)/L2*K2 + (5.67e-8*T4^4 - J6)*A4*eps/(1-eps);
S7 = -(5.67e-8*T4^4 - J6)*eps/(1-eps) + (J6 - J7);
S8 = -(J6-J7) + (5.67e-8*T5^4 - J7)*eps/(1-eps) - 185.95;
S9 = -(5.67e-8*T5^4 - J7)*eps/(1-eps) + (T5 - T6)*K2/L2;
S10 = -(5.67e-8*T6^4 - J5)*eps/(1-eps) + (J5 - Je)*F5e + (J5 - J1)*F5s;
S11 = -(5.67e-8*Te^4 - Je)*eps/(1-eps) + (Je - Jm)*Fem + (Je- J5)*Fe5;
res = [S0;S1;S2;S3;S4;S5;S6;S7;S8;S9;S10;S11];
end
4 个评论
Torsten
2024-5-29
You specify 13 equations for 12 unknowns. Usually, such a system is unsolvable and only permits as least-squares solution.
另请参阅
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!