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,无穷的意思。如果不正常,那么可能是除数太小,或者指数太大造成的。

    评论

报告相同问题?

悬赏问题

  • ¥15 对于相关问题的求解与代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 信号傅里叶变换在matlab上遇到的小问题请求帮助
  • ¥15 保护模式-系统加载-段寄存器
  • ¥15 电脑桌面设定一个区域禁止鼠标操作
  • ¥15 求NPF226060磁芯的详细资料
  • ¥15 使用R语言marginaleffects包进行边际效应图绘制
  • ¥20 usb设备兼容性问题
  • ¥15 错误(10048): “调用exui内部功能”库命令的参数“参数4”不能接受空数据。怎么解决啊
  • ¥15 安装svn网络有问题怎么办