![]() |
求助:高手请看看while循环的问题
时间走不动,貌似是死循环了,请大家帮忙看看我这个while循环出了什么问题。
谢谢大家! ----------------------------------------------------------------------- function v0best = fcn(vzmin,vzmax,va0,vb0,vc0,ia,ib,ic,f,C)%参数都是恒定值。 v0=vzmin; v0best=v0;%v0从vzmin开始取值 u0best=1000;%任意设定初始值 while v0<vzmax%判断v0值是否满足条件 va=va0+v0;%以下是计算取此v0时的u0 vb=vb0+v0; vc=vc0+v0; tla=(va-floor(va))/f; tlb=(vb-floor(vb))/f; tlc=(vc-floor(vc))/f; if va>0 ta=(1/f)-tla; else ta=tla; end if vb>0 tb=(1/f)-tlb; else tb=tlb; end if vc>0 tc=(1/f)-tlc; else tc=tlc; end i0=ia*ta+ib*tb+ic*tc; u0=abs(i0/(f*C));%得到此时的u0值 if u0<u0best%比较得出较小u0对应的V0 u0best=u0; v0best=v0; end deltavz=min(min(1-va+floor(va),1-vb+floor(vb)),min(1-vb+floor(vb),1-vc+floor(vc)));%计算v0下次的叠加量 v0=v0+deltavz; %v0增加 end end |
所有时间均为北京时间。现在的时间是 15:16。 |
Powered by vBulletin
版权所有 ©2000 - 2025,Jelsoft Enterprises Ltd.