20wangz 发表于 2012-5-6 08:39:03

PlotLoopData为什么不能指定坐标轴?

Parameter uh=0.3,ul=0.3,ur=0.3;
LoopConstant pai=;
Constant k=1.4,etaC=0.9,etaT=0.9,tauL1=1,D=0.96,Cwf=1,tauH1=4.67;
Constant UT=20;
ConstStr UUH=UT*uh,UUL=UT*ul,UUR=UT*ur;
ConstStr m=(k-1)/k;
Constant CH=1.2,CL=1.2;
ConstStr CHmin=min(Cwf,CH),CLmin=min(Cwf,CL);
ConstStr CHmax=max(Cwf,CH),CLmax=max(Cwf,CL);
ConstStr NH=UUH/CHmin,NL=UUL/CLmin,NR=UUR/Cwf;
ConstStr ER=NR/(NR+1);
ConstStr EH=(1-exp(-NH*(1-CHmin/CHmax)))/(1-(CHmin/CHmax)*exp(-NH*(1-CHmin/CHmax)));
ConstStr EL=(1-exp(-NL*(1-CLmin/CLmax)))/(1-(CLmin/CLmax)*exp(-NL*(1-CLmin/CLmax)));
ConstStr x=pai^m,y=D^m;
ConstStr a1=x*y+(1-x*y)*etaT;
ConstStr a2=-1+x+etaC;
ConstStr a3=-2+2*x+etaC;
ConstStr a4=-x*y+2*(-1+x*y)*etaT;
ConstStr a5=(-1+x)*x*y+(1-x*y)*a3*etaT;
ConstStr k1=Cwf^2;
ConstStr b1=a2*CLmin*Cwf*EL+CHmin*EH*(a2*CLmin*EL*(-1+2*ER)+Cwf*(a2-a3*ER));
ConstStr b2=(-1+x*y)*a2*etaT;
ConstStr b3=(-1+x)*x*y;
ConstStr G=a1*b1+a2*a4*CLmin*Cwf*EL*ER+k1*(b2+b3*(-1+ER)+(1-x*y)*a3*ER*etaT);
ConstStr w=1/G*(x*y*etaC*(CHmin*EH*(Cwf+CLmin*EL*(-1+ER))*tauH1
+CLmin*Cwf*EL*tauL1)-a2*ER*(x*y*CHmin*EH*(Cwf-CLmin*EL)*tauH1
+a4*CLmin*Cwf*EL*tauL1)-a1*(-ER*(a3*CHmin*Cwf*EH*tauH1
+CLmin*(-Cwf+CHmin*EH)*EL*etaC*tauL1)+a2*(CLmin*Cwf*EL*tauL1
+CHmin*EH*(Cwf*tauH1+CLmin*EL*((-1+2*ER)*tauH1+ER*tauL1)))));
ConstStr fenzi=CLmin*EL*(-Cwf*(a2*a4*ER-x*y*etaC+a1*(a2+ER*etaC))*tauL1
+CHmin*EH*(a1*a2*(1-2*ER)*tauL1+etaC*(x*y*(-1+ER)*tauH1+a1*ER*tauL1)));
ConstStr fenmu=CHmin*EH*(x*y*(a2*(Cwf-CLmin*EL)*ER-Cwf*etaC)*tauH1
+a1*(-a3*Cwf*ER*tauH1+a2*(Cwf*tauH1+CLmin*EL*((-1+2*ER)
*tauH1-(-1+ER)*tauL1))));
ConstStr eta=1-fenzi/fenmu;
ConstStr tauH2=1/(G*CH)*((b2*(CH*k1-CHmin*EH*k1)-b3*(-1+ER)*(-CH*k1+CHmin*EH*k1)
+ER*(a2*a4*CLmin*Cwf*(CH-CHmin*EH)*EL+(-1+x*y)*a3*(-CH*k1
+CHmin*EH*k1)*etaT))*tauH1+a1*(b1*CH*tauH1-a2*CHmin*CLmin*Cwf*EH*EL
*(tauH1+(-1+ER)*tauL1)));
ConstStr tauL2=1/(G*CL)*((a1*a2*CL*CLmin*Cwf*EL+a2*a4*CL*CLmin*Cwf*EL*ER-b3*CL*k1
+b3*CLmin*EL*k1+b3*CL*ER*k1-b3*CLmin*EL*ER*k1+b2*(CL*k1-CLmin*EL*k1)
+a3*CL*ER*k1*etaT-x*y*a3*CL*ER*k1*etaT-a3*CLmin*EL*ER*k1*etaT
+x*y*a3*CLmin*EL*ER*k1*etaT)*tauL1+CHmin*EH*(a1*CL*Cwf*(a2-a3*ER)
*tauL1+CLmin*EL*(a1*a2*CL*(-1+2*ER)*tauL1+Cwf*(a1*(1-x+a3*ER)*tauL1
-etaC*(x*y*(-1+ER)*tauH1+a1*tauL1)))));
ConstStr sg=CH*ln(tauH2/tauH1)/Cwf+CL*ln(tauL2/tauL1)/Cwf;
ConstStr E=w-sg;
PassParameter E,w,eta,EH,EL,ER;
PlotLoopData pai,ObjFunction;
MaxFunction E;
uh+ul+ur=1;
0<eta<0.5;使用的软件为1stOpt5.0企业版。在上述问题中,我想得到以pai为x轴,ObjFunction为y轴的图形,结果得到的却总是以循环次数为横座标,pai和ObjFunction为纵座标的图形,后两者还在同一个y轴上。请问我该怎样才能达到我的目的?

同样的代码在1stOpt4.0版中没有这个问题,也可以轻松画出具有两个y轴的图形。为什么在5.0版中不行呢?





luck108 发表于 2012-5-6 20:38:19

这个不是MATHCAD软件吧?

shamohu 发表于 2012-5-7 09:28:43

确实有点奇怪!不过将“PlotLoopData pai,ObjFunction;”换到“ConstStr x=pai^m,y=D^m;”前面似乎就正常了。

20wangz 发表于 2012-5-7 10:33:48

shamohu 发表于 2012-5-7 09:28 static/image/common/back.gif
确实有点奇怪!不过将“PlotLoopData pai,ObjFunction;”换到“ConstStr x=pai^m,y=D^m;”前面似乎就正 ...

谢谢版主!

无法想象您是怎么发现把那个语句挪动一下位置就能解决问题的。感谢之至!

另外,关于1stOpt,我还有一些问题想请教您,不知道方便不方便给我个即时联系方式?

朱老剑客 发表于 2012-5-7 19:58:13

怎么算到第23步的时候,程序就说出错来呢?我也是Opt5.0的用户。

我希望20Wangz如有问题能够在这个论坛里直接说,这样我想对我也有帮助哈!也就省了以后我会问版主同样的问题了。:)
页: [1]
查看完整版本: PlotLoopData为什么不能指定坐标轴?