| 查看: 245 | 回复: 0 | ||
sunjiahuan铜虫 (小有名气)
|
[求助]
if 语句循环求助
|
|
syms Rs1 Rp1 x y for h=1.0:0.001:1.4 G=950;T=298;Iph=3.278;Io=1.036e-6;Iodb=1.019e-6;Ns=36;k=1.3854e-23;q=1.6022e-19; Im=2.995;Isc=3.277;Vm=17.440;Voc=21.700;a=0.00055;B=-0.0046;Ix=3.258;Vx=10.85; Ixx=2.256;Vxx=19.55; P=1; Trr=0.0381*P^4-0.8626*P^3+6.4143*P^2-15.051*P+16.769; G1=G*(1-Trr/100); Ta=293;V1=1; T1=Ta+G1*(0.32/(8.91+2.0*V1)); Tdb1=T1+5; Iph1=(G1/G)*Iph*(1+a*(T1-T)); Eg1=(1.166-0.000473*T1^2/(T1+636))*q; Io1=Io*(T/T1)^3*exp((Ns*q*Eg1/(h*k))*(1/T-1/T1)); Im1=(G1/G)*Im*(1+a*(T1-T)); Ix1=(G1/G)*Ix*(1+a*(T1-T)); Ixx1=(G1/G)*Ixx*(1+a*(T1-T)); Isc1=(G1/G)*Isc*(1+a*(T1-T)); Vt1=Ns*k*T1*h/q; Vm1=Vm*(1+B*(T1-T)); Voc1=Voc*(1+B*(T1-T)); Vx1=Vx*(1+B*(T1-T)); Vxx1=Vxx*(1+B*(T1-T)); b1=(Rp1*(Iph1+Io1))/(Rs1+Rp1); c1=Vt1/Rs1; d1=(Rs1*Rp1*Io1)/(Vt1*(Rs1+Rp1)); e1=(Rp1*Rs1*(Iph1+Io1))/(Vt1*(Rs1+Rp1)); f1=Rp1/(Vt1*(Rs1+Rp1)); g1=Rs1+Rp1; F=[b1-c1*lambertw(d1*exp(e1+f1*Vm1))-Vm1/g1-Im1; b1 - Vm1*(1/g1 + (c1*f1*lambertw(0, d1*exp(e1 + f1*Vm1)))/(lambertw(0, d1*exp(e1 + f1*Vm1)) + 1)) - c1*lambertw(0, d1*exp(e1 + f1*Vm1)) - Vm1/g1]; [r]=mulNewton(F,[450 0.3]); b11=(r(1,1)*(Iph1+Io1))/(r(2,1)+r(1,1)); c11=Vt1/r(2,1); d11=(r(2,1)*r(1,1)*Io1)/(Vt1*((r(2,1)+r(1,1)))); e11=(r(1,1)*(r(2,1)*(Iph1+Io1)))/(Vt1*((r(2,1)+r(1,1)))); f11=r(1,1)/(Vt1*((r(2,1)+r(1,1)))); g11=r(2,1)+r(1,1); y=solve(b11-c11*lambertw(d11*exp(e11+f11*x))-x/g11,x); z=abs(Voc1-y)*100/Voc1; z1=vpa(z,4); u=b11-c11*lambertw(d11*exp(e11)); w=abs(Isc1-u)*100/Isc1; m=b11-c11*lambertw(d11*exp(e11+f11*Vx1))-Vx1/g11; n=abs(Ix1-m)*100/Ix1; j=b11-c11*lambertw(d11*exp(e11+f11*Vxx1))-Vxx1/g11; p=abs(Ixx1-j)*100/Ixx1; root=sqrt((z^2+w^2+n^2+p^2)/4); disp(h); disp(r); disp(z); disp(w); disp(n); disp(p); disp(root) end 程序如上,我想算出h=1.4:0.001:1.53时每一个disp()里面的值,但当h=1.0左右的时侯,出现Warning: Matrix is close to singular or badly scaled.Results may be inaccurate. RCOND = 2.058430e-137;或者出现RCOND=NaN;程序就停止了,h也不再执行下一个循环,主要原因是[r]=mulNewton(F,[450 0.3])这里的结果为r=NaN;NaN;所以后面的值无法计算;但当h=1.3左右的时候,r为数字,程序能正常运行,但1.0左右的时候的程序停止让我很烦恼,还要重新修改h值,要试好多次才可以成功,各位专家看有没有什么方法让程序在1.0左右的时候即遇到r=NaN;NaN时;重新开始for 循环。谢谢! |
» 猜你喜欢
拟解决的关键科学问题还要不要写
已经有11人回复
救命帖
已经有5人回复
限项规定
已经有5人回复
为什么nbs上溴 没有产物点出现呢
已经有9人回复
招博士
已经有3人回复
存款400万可以在学校里躺平吗
已经有35人回复
最失望的一年
已经有18人回复
求推荐博导
已经有4人回复
求推荐英文EI期刊
已经有5人回复
疑惑?
已经有5人回复
找到一些相关的精华帖子,希望有用哦~
【求助】关于未知树状结构存储的问题?请大虾指教!
已经有11人回复
【整理】今天整理硬盘上的资料,偶然发现的好玩的小东西就直接发上来吧
已经有105人回复
【求助】如何写FORTRAN程序实现求平均最近邻距离
已经有34人回复
【求助】求UDF高手帮忙看看我的问题
已经有18人回复
【求助】f77的ifdef语句
已经有18人回复
【求助】关于编程的一个问题
已经有4人回复
【求助】有很多错误的程序,找不出来了
已经有18人回复
【求助】Fortran 如何读取文件中特定行的内容
已经有16人回复
【求助】一个方程,怎么解??
已经有3人回复
科研从小木虫开始,人人为我,我为人人













回复此楼
点击这里搜索更多相关资源