matlab-yalmip 2019-10-29 09:56 采纳率: 0%
浏览 497

使用yamlip求解,出现了inf是为什么?该怎么修改呢?

下面的是所编辑的代码的文字版,上传的第一张图片是代码的图片,第二张图片是出现的问题

%%设置决策变量
Ut=binvar(24,1,'full');
Un=binvar(24,1,'full');
ich=binvar(24,1,'full');
idis=binvar(24,1,'full');
Kt=binvar(24,1,'full');
rch=binvar(24,1,'full');
rdis=binvar(24,1,'full');
RCHPon=sdpvar(24,1,'full');
RCHPoff=sdpvar(24,1,'full');
RLoss=sdpvar(24,1,'full');
RW=sdpvar(24,1,'full');
RP=sdpvar(24,1,'full');
Sef=sdpvar(24,1,'full');
Shf=sdpvar(24,1,'full');
Qr=sdpvar(24,1,'full');
Tz=sdpvar(24,1,'full');
Tw=sdpvar(24,1,'full');
Tout=sdpvar(24,1,'full');
PB=sdpvar(24,1,'full');
PCHP=sdpvar(24,1,'full');
PF=sdpvar(24,1,'full');
Pech=sdpvar(24,1,'full');
Pedis=sdpvar(24,1,'full');
Phch=sdpvar(24,1,'full');
Phdis=sdpvar(24,1,'full');
Qfw=sdpvar(24,1,'full');
Qactw=sdpvar(24,1,'full');
Qfpvt=sdpvar(24,1,'full');
Qactpvt=sdpvar(24,1,'full');
Ee=sdpvar(24,1,'full');
Rbio=sdpvar(24,1,'full');
Vbio=sdpvar(24,1,'full');
Eh=sdpvar(24,1,'full');
Ebio=sdpvar(24,1,'full');
Le=sdpvar(24,1,'full');
Lh=sdpvar(24,1,'full');
Lg=sdpvar(24,1,'full');
for u=1:24
if u==1
Un(u)=Ut(u);
else
Un(u)=Ut(u-1);
end
end
%%目标函数
Cchp=sum(RCHPon.*Ut.*(d-Un)+RCHPoff.*Un.*(d-Ut));
Ct=sum(RLoss.*((PB./NB+Sef).*(d-NB)+PCHP.*(d-NeCHP-NhCHP)./NeCHP+PF.*(d-NF)./NF));
Cl=sum(RLoss.*(Pech.*(d-Nech)+Pedis.*(d-d./Nedis)+Phch.*(d-Nhch)+Phdis.*(d-d./Nhdis)));
Cp=sum(RW.*(Qfw-Qactw)+RP.*(Qfpvt-Qactpvt));
f=Cchp+Ct+Cl+Cp;
%%约束
% 储电、储热装置的充放能约束
for i=2:24
F=[Ee(i)==Ee(i-1)+Nech(i).*Pech(i)-Nedis(i).*Pedis(i),0<=Ee<=Ee2,ich+idis<=d,ich.*Pech1<=Pech<=ich.*Pech2,idis.*Pedis1<=Pedis<=idis.*Pedis2];% 储电装置约束
end
for j=1:23
F=F+[rch+rdis<=1,rch.*Phch1<=Phch<=rch.*Phch2,rdis.*Phdis1<=Phdis<=rdis.*Phdis2,Eh(j+1)==Eh(j)+Nhch(j).*Phch(j)-Nhdis(j).*Phdis(j),0<=Eh<=Eh2];% 储热装置约束
end
% % 风机、PVT系统、电锅炉、沼气炉出力约束与沼气池状态约束
F=F+[0<=Qactw<=Qfw,0<=Qactpvt<=Qfpvt,0<=PF<=PF2,0<=PB<=PB2];% 风机、PVT系统、电锅炉、沼气炉出力约束
F=F+[Tz1<=Tz<=Tz2,Ebio==a.*abs(Tz-35*ones(24,1))+b,Qr==NB.*Sef+Shf,(Tw-Tz)./(Rin+Rw/2)+Qr==Cz.*Tz,(Tz-Tw)./(Rin+Rw/2)+(Tout-Tw)./(Rout+Rw/2)==Cw.*Tw];% 沼气池状态约束
% % CHP设备约束与储气装置约束
for k=2:24
F=F+[Ut.*PeCHP1<=PCHP<=Ut.*PeCHP2,Ut.*PhCHP1<=PCHP.*NhCHP./NeCHP<=Ut.*PhCHP2,abs(PCHP(k)-PCHP(k-1))<=rCHP(k)];% CHP设备约束
end
for p=2:24
F=F+[Rbio(p)==Rbio(p)-Vbio(p),Rbio1<=Rbio<=Rbio2,Kt.*Vbio1<=Vbio<=Kt.*Vbio2];% 储气装置约束
end
% 能量平衡约束
for y=1:24
F=F+[[Le(y);Lh(y);Lg(y)]==[1 0.45 0 1 0 0 -1/0.75 1 0 -1 0;
0 0.55 0 0 1 0 1 0.4/0.55 1 0 -1;
0 0 1 0 0 1 0 -1/3.366 -1/4.59 0 0]*[Qactw(y);Qactpvt(y);Ebio(y);Pedis(y);Phdis(y);Vbio(y);PB(y);PCHP(y);PF(y);Sef(y);Shf(y)]];
end
%%结果
result=solvesdp(F,f);
f_star=double(f);
图片说明
图片说明
该怎么去修改代码

  • 写回答

1条回答 默认 最新

  • threenewbee 2019-10-29 11:15
    关注

    从字面理解,Inf应该是 infinite,无穷的意思。如果不正常,那么可能是除数太小,或者指数太大造成的。

    评论

报告相同问题?

悬赏问题

  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))
  • ¥20 5037端口被adb自己占了
  • ¥15 python:excel数据写入多个对应word文档