Applied Energy+C论文复现:考虑泊位分配灵活性的港口综合能源系统优化调度程序代码!

文摘   科学   2024-12-17 09:16   江苏  

简介



仿真平台:Matlab+Yalmip+Gurobi

程序结合了港口独特的工作属性,构建了泊位优化分配的模型,提出了考虑泊位优化和多能协同的港口综合能源运行优化模型。港口运营商根据多种能源供应的成本特性决策船舶停泊的开始/结束时间,改变港口的总负荷需求曲线。程序算例丰富、注释清晰、干货满满,可扩展性和创新性很高!下面对文章和程序做简要介绍!

创新点及主要工作


1)研究了港口综合能源系统内各机组的供能特性,在岸上电力技术基础上,考虑了港口泊位分配需满足的实际约束,并从物流角度出发建立了泊位分配模型。

2)建立了基于冷热电联供系统的港口综合能源系统运行优化模型,由港口向靠泊船舶供应能源。通过优化调度港口多能源供应结果,实现港口运营成本最小化。

对海港多能系统来说,联合优化泊位分配问题和多能源供应问题之后,分别具有大量热负荷和冷负荷需求的邮轮和冷藏集装箱船就成为了具有灵活性的需求,可以实现DR。船舶在到达港口之前,除了向港口上报预计到达时间和预计停泊时长之外,还会提供船舶类型,装载量等信息,港口运营商可以获得船舶的预计负荷需求数据,从而根据多种能源供应的成本特性确定船舶停泊的开始/结束时间。港口综合能源系统可以通过优化船舶停泊顺序,调度具有大量负荷的船舶来改变港口的总负荷需求曲线。所提出的泊位分配DR可以有效降低多能源供应的成本。

泊位分配模型:

对于某一泊位来说,当其被分配给某一船舶后,在该船舶完成停泊期间所需服务之前,不能再次被分配给另一艘船,引入了一个二进制变量来表示不同时刻船舶的停泊状态。

Bk,t0-1变量,ak为船舶上报的停靠时间;

船舶的实际停泊时长与上报的时长相同,即:

gk为船舶上报的停靠时间;

为了避免出现船舶为降低能源成本而经常性进出泊位情况的发生,需要对船舶停泊施加连续性约束,以使决策结果更贴近实际。若港口通过泊位优化安排船舶A在当前时间段开始停泊,那么船舶在执行停泊动作开始之后,在泊状态必须在其需要的停泊时长内维持不变。具体约束如下:

由于港口泊位数量有限,任一时间段在泊船舶数量不得超过泊位总数。

M为港口泊位总数。

港口的热负荷需求主要由邮轮热负荷决定,相似地,港口冷负荷需求主要与冷藏集装箱船的 制冷需求相关。详细地,每一时间段内在泊船舶的总电,热和冷负荷表示如下。

结果对比


程序结果:左侧为参考文献中结果,右侧为复现结果!

部分程序


%% 约束条件%-------泊位分配优化约束------%C=[C,sum(B,2)==g];C=[C,0<=sum(B)<=6];for p=t:1:min((g(k)+t-1),T);C=[C,-B(k,t-1)+B(k,t)-B(k,p)<=0];%负荷需求C=[C,Pves(t)==sum([Pvesc;Pvesr].*B(:,t))];C=[C,Qhvesc(t)==sum(Qvesc.*B(1:11,t))];C=[C,Qcvesc(t)==sum(Qvesr.*B(12:22,t))];%PGU约束C=[C,Fpgu==Ppgu/nitae];C=[C,Qre==Fpgu*nitath*nitare];C=[C,0<=Ppgu<=Pmax(1)*upgu.*ones(1,T)];%PGU约束C=[C,0<=Pgrid<=120];%EB约束C=[C,QEB==PEB*nitaEB];C=[C,0<=QEB<=Pmax(3)*uEB.*ones(1,T)];%AC约束  C=[C,Qacex==Qac*COPac];C=[C,0<=Qacex<=Pmax(4)*uAC.*ones(1,T)];%EC约束 C=[C,QEC==PEC*COPec];C=[C,0<=QEC<=Pmax(5)*uEC.*ones(1,T)];%TES约束C=[C,0<=QHX<=Pmax(2).*ones(1,T)];%充放热状态约束C = [C, u_tdch(1,:) + u_tch(1,:) <= 1];%表示充电,放电,不充不放三种状态%功率约束C = [C, 0 <= p_tdch <= u_tdch*10];C = [C, 0 <= p_tch<= u_tch*10];%容量约束C = [C, E_tes(1,t+1) == E_tes(1,t) + 0.98*p_tch(1,t) - 0.98*p_tdch(1,t)]; C = [C,  0.1<=E_tes(1,:)/30<=0.9];C = [C,  E_tes(1)==E_tes(72)];%ESS约束%充放电状态约束C = [C, u_dch(1,:) + u_ch(1,:) <= 1];%表示充电,放电,不充不放三种状态%功率约束C = [C, 0 <= p_dch <= u_dch*12];C = [C, 0 <= p_ch<= u_ch*12];%容量约束C = [C, E_ess(1,t+1) == E_ess(1,t) + 0.85*p_ch(1,t) - 0.98*p_dch(1,t)]; %--------风光出力约束-----%C = [C,0<=p_wt<=PP_wt];C = [C,0<=p_pv<=PP_pv];%--------功率平衡约束-----%C = [C, Ppgu+Pgrid+p_pv+p_wt+p_dch==PEC+PEB+p_ch+Pves];C = [C, Qre+p_tdch==QHX+Qac+p_tch];C = [C, QHX+QEB==Qhvesc];C = [C, Qacex+QEC==Qcvesc];

部分内容源自网络,侵权联系删除!

欢迎感兴趣的小伙伴点击文末阅读原文获取完整版代码,小编会不定期更新高质量的学习资料、文章和程序代码,为您的科研加油助力!

更多创新性预测及优化程序请点击公众号首页:《预测优化》|《综合能源》链接!

创新优化及预测代码
免费分享研究理论及方法,基础代码资料,努力提供电力系统相关专业预测及优化研究领域的创新性代码,保质保量!面包多地址:https://mbd.pub/o/yc_yh/work
 最新文章