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

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

程序创新点:

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

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

考虑泊位优化的目的:

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

泊位分配模型:

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

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

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

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

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

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

M为港口泊位总数。

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

程序结果:左侧为APEN中结果,右侧为复现结果

部分程序:

%% 约束条件
%-------泊位分配优化约束------%
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];

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

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/429452.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用postman测试若依登录接口API-2

请求方式 由于登录控制器可知&#xff1a;该请求方式为Post请求 请求地址 在请求路径栏输入请求地址&#xff0c;如下图所示&#xff1a; 参数体 在Body键入所需参数&#xff0c;类型选择raw,数据格式选择"JSON"&#xff1a;如下图所示&#xff1a; 认证成功与失败…

特征值和特征向量及其在机器学习中的应用

特征值和特征向量是线性代数中的概念&#xff0c;用于分析和理解线性变换&#xff0c;特别是由方阵表示的线性变换。它们被用于许多不同的数学领域&#xff0c;包括机器学习和人工智能。 在机器学习中&#xff0c;特征值和特征向量用于表示数据、对数据执行操作以及训练机器学…

NOIP 2009普及组初赛试题及解析

NOIP 2009普及组初赛试题及解析 一. 单项选择题 &#xff08;共20题&#xff0c;每题1.5分&#xff0c;共计30分。每题有且仅有一个正确答案.&#xff09;。二. 问题求解&#xff08;共2题&#xff0c;每题5分&#xff0c;共计10分&#xff09;三. 阅读程序写结果&#xff08;共…

Vue.js 深度解析:模板编译原理与过程

&#x1f90d; 前端开发工程师、技术日更博主、已过CET6 &#x1f368; 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 &#x1f560; 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 &#x1f35a; 蓝桥云课签约作者、上架课程《Vue.js 和 E…

网络学习:SMart link技术与Monitor link技术

目录 一、SMart link技术 1.1、SMart link技术简介 1.2、SMart link技术原理及基础知识点 1、应用场景&#xff08;举例&#xff09;&#xff1a; 2、运行机制 3、保护vlan 4、控制VLAN 5、Flush报文 6、SMart link的负载分担机制 7、SMart link角色抢占模式 二、Mo…

YOLOv5目标检测学习(1):yolo系列算法的基础概念

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、基于深度学习的目标检测需要哪些步骤&#xff1f;二、数据准备&#xff08;即准备数据集&#xff09;1.目标检测的数据集如何获取&#xff1f;2.数据集包括…

Python报错ModuleNotFoundError: No module named ‘numpy‘

原因&#xff1a;缺少“numpy” 进入python安装路径&#xff0c;script路径内 在路径下启动终端 01.更新numpy python -m pip install --upgrade pip 02.安装 pip install numpy 03.运行python python 04.导入包 from numpy import * 问题已解决。

MySQL学习Day25——数据库其他调优策略

一、数据库调优的措施: 1.调优的目标: (1)尽可能节省系统资源&#xff0c;以便系统可以提供更大负荷的服务 (2)合理的结构设计和参数调整&#xff0c;以提高用户操作的响应速度 (3)减少系统的瓶颈&#xff0c;提高MySQL数据库整体的性能; 2.如何定位调优:用户的反馈、日志…

政安晨【TypeScript高级用法】(二):泛型与命名空间

TypeScript的泛型允许我们在定义函数、类和接口时使用参数化类型&#xff0c;使得这些实体可以适应不同类型的数据。泛型可以增加代码的重用性和灵活性。 同时&#xff0c;TypeScript的命名空间提供了一种在全局命名空间中组织代码的方式&#xff0c;可以避免全局变量污染和命…

项目打包时报错 There are test failures.

报错原因是 test测试类有问题 我们可直接选择跳过测试类打包 如下 此时再次打包就成功了

高级软件开发知识点

流程 算法题简历上项目用到技术、流程、遇到问题HR 准备 常考的题型和回答思路刷100算法题&#xff0c;理解其思想&#xff0c;不要死记最近一家公司所负责的业务和项目&#xff1a; 项目背景、演进之路&#xff0c;有哪个阶段&#xff0c;每个阶段主要做什么项目中技术选型…

vue2和vue3的区别介绍

Vue.js 是一个流行的前端JavaScript框架&#xff0c;用于构建用户界面和单页应用程序。自从Vue.js首次发布以来&#xff0c;它就因其简洁的API、灵活的架构和易于上手的特点而受到了广泛的欢迎。Vue.js的第二个主要版本&#xff08;Vue 2&#xff09;发布于2016年&#xff0c;而…

AutoGPT实现原理

AutoGPT是一种利用GPT-4模型的自动化任务处理系统&#xff0c;其主要特点包括任务分配、多模型协作、互联网访问和文件读写能力以及上下文联动记忆性。其核心思想是通过零样本学习&#xff08;Zero Shot Learning&#xff09;让GPT-4理解人类设定的角色和目标&#xff0c;并通过…

正则表达式在QT开发中的应用

一.正则表达式在QT开发中的使用&#xff1a; 1.模式匹配与验证&#xff1a;正则表达式最基本的作用就是进行模式匹配&#xff0c;它可以用来查找、识别或验证一个字符串是否符合某个特定的模式。例如&#xff0c;在表单验证中&#xff0c;可以使用正则表达式来检查用户输入的邮…

微擎安装,卡在“安装微擎”界面

进入install.php&#xff0c;点击【在线安装】 下一步配置数据库&#xff0c;开始安装系统 然后显示进度条&#xff0c;进度条一闪而过 然后就没有进度条显示了&#xff0c;一直卡在这里 第一次等了好久&#xff0c; 删除目录下的文件&#xff0c;重装还是这样 再重启服务器&…

C语言数组作为函数参数

有两种情形&#xff1b; 一种是数组元素作为函数实参&#xff1b;一种是数组名作为函数参数&#xff1b; 新建一个VC6单文档工程&#xff1b; void printshz(int , CDC* , int , int ); double getav(int a[5]); ...... void CShzcshView::OnDraw(CDC* pDC) {CShzcshDoc* pDo…

electron+vue3全家桶+vite项目搭建【29】封装窗口工具类【3】控制窗口定向移动

文章目录 引入实现效果思路声明通用的定位对象主进程模块渲染进程测试效果 引入 demo项目地址 窗口工具类系列文章&#xff1a; 封装窗口工具类【1】雏形 封装窗口工具类【2】窗口组&#xff0c;维护窗口关系 封装窗口工具类【3】控制窗口定向移动 很多时候&#xff0c;我们想…

python识别并控制操作已打开的浏览器进行自动化测试

前提&#xff1a;已安装python和selenium 一、将浏览器以debugger模式打开 打开方法&#xff1a; 1.右击浏览器&#xff0c;选择属性&#xff1a; 2.在目标中加上 --remote-debugging-port9222 --user-data-dir"C:\selenum\AutomationProfile" 二、识别代码 from…

npm、cnpm、pnpm使用详细

简介&#xff1a; npm&#xff1a;npm&#xff08;Node Package Manager&#xff09;是Node.js的包管理工具&#xff0c;用于安装、更新、卸载Node.js的模块和包。它提供了一个命令行界面&#xff0c;使得开发者可以轻松地管理项目依赖。npm 是 nodejs 中的一部分&#xff0c;…

[linux] 使用 kprobe 观察 tcp 拥塞窗口的变化

tcp 中拥塞窗口用来做拥塞控制。 在发送侧&#xff0c;要发送数据的时候会基于拥塞窗口进行判断&#xff0c;当前这个包还能不能发送出去。 tcp 发包函数是 tcp_write_xmit()&#xff0c;在这个函数中调用 tcp_cwnd_test() 来判断当前拥塞窗口让不让发包。从 tcp_cwnd_test() 函…
最新文章