基于SAC在citylearn模块实现电力需求曲线的削峰填谷———调参记录2

article/2025/9/15 19:33:28

参考几篇DRL调参技巧总结
https://zhuanlan.zhihu.com/p/345353294
https://zhuanlan.zhihu.com/p/434495366

1

增大batch size,减小样本误差
减小辅助reward,使其不影响最终reward,并使其正负均衡

辅助reward属于在每个step均出现,用于引导智能体不断接近得到最终reward,其主要设计原则有两个:
1>正负均衡,均负则智能体最终策略趋于保守,均为正则智能体最终策略,所以针对稠密的辅助reward值R_tAsst设计一定要正负均衡;
2>大小上不得影响最终reward值R_tfinal,即其值在经γ帖现因子乘积后值应不大于最终reward值,因此需要首先对完成步数进行估计即t_done,必须满足条件:R_tFinal > R_tAsst * (1 - γ)^ (t_done)
3> 辅助reward不可过大或过小,建议介于-1 到 +1之间,而最终reward可以设置在满足最小条件的同规模数据上。

加入SAC特有超参数奖励放缩 reward scale

经验上进行reward目标调整的值主要是将整个epsiode的累积收益范围落在-1000 ~ +1000以内

参数

hidden_dim = 128
batch_size = 128
replay_buffer_size = 3500
learn_rate = 0.0005 
reward_scale = 0.5

奖励函数

# 鼓励晚上充电,白天放电if env.time_step % 24 == 0:#print('net_electric_consumption in one day ', sum(env.net_electric_consumption[-24:-1]))# 如果白天放电,reward_day = 0,否则为-300if np.array(action_day[0:20]).mean() > 0.0:reward_day = -30else:reward_day = 30# 如果夜晚充电,reward_day = 300,否则为-300if np.array(action_day[22:-1]).mean() > 0.1:reward_night = 30elif np.array(action_day[22:-1]).mean() < 0.0:reward_night = -30else:reward_night = 0reward = reward_scale * reward + reward_day + reward_night

结果
在这里插入图片描述

2

注意到 输出action的范围是【-1,1】,但citylearn模型要求为[-1/c, 1/c],在模型相应位置修改

hidden_dim = 128
batch_size = 128
replay_buffer_size = 1440
learn_rate = 0.0003
reward_scale = 0.5
# 鼓励晚上充电,白天放电if env.time_step % 24 == 0:#print('net_electric_consumption in one day ', sum(env.net_electric_consumption[-24:-1]))# 如果白天放电,reward_day = 0,否则为-300if np.array(action_day[0:20]).mean() > 0.0:reward_day = -30else:reward_day = 30# 如果夜晚充电,reward_day = 300,否则为-300if np.array(action_day[22:-1]).mean() > 0.1:reward_night = 30elif np.array(action_day[22:-1]).mean() < 0.0:reward_night = -30else:reward_night = 0reward = reward_scale * reward + reward_day + reward_night#print('reward: ', reward)reward_epoch += reward_scale * reward  #控制reward_epoch在-1000-1000之间

在这里插入图片描述
reward曲线未趋于平稳,且波动过大

3

在这里插入图片描述
我们看到reward前面部分是电力需求的平方,对奖励函数做出同样修改

			# 鼓励晚上充电,白天放电if env.time_step % 24 == 0:#print('net_electric_consumption in one day ', sum(env.net_electric_consumption[-24:-1]))# 如果白天放电,reward_day = 0,否则为-300if np.array(action_day[0:20]).mean() > 0.0:reward_day = -penaltyelse:reward_day = penalty# 如果夜晚充电,reward_day = 300,否则为-300if np.array(action_day[22:-1]).mean() > 0.1:reward_night = 2 * penaltyelif np.array(action_day[22:-1]).mean() < 0.0:reward_night = -penaltyelse:reward_night = 0reward = reward_scale * reward ** 2 + reward_day + reward_night# print('reward: ', reward)reward_epoch += reward   # 控制reward_epoch在-1000-1000之间

参数

MAX_EPISODES = 100
sim_period = 720
reward_scale = 0.001
penalty = 4
hidden_dim = 128
batch_size = 128
replay_buffer_size = 3600
learn_rate = 0.00001

结果
SAC---没有训练痕迹
但在DQN上却效果还行
在这里插入图片描述
SAC中其他cost指标也没有变化
在这里插入图片描述

经检查,q_value_loss和value_loss数据一样

q_value_loss tensor(33.4076, device='cuda:0', grad_fn=<MseLossBackward0>)
value_loss tensor(33.4076, device='cuda:0', grad_fn=<MseLossBackward0>)

http://chatgpt.dhexx.cn/article/xx99G7cC.shtml

相关文章

电动汽车,削峰填谷

MATLAB代码&#xff1a;面向削峰填谷的电动汽车多目标优化调度策略 关键词&#xff1a;电动汽车 削峰填谷 多目标 充放电优化 参考文档&#xff1a;店主自己整理的说明文档&#xff0c;公式、约束、数据齐全&#xff0c;可联系我查看 仿真平台&#xff1a;MATLAB YALMIPCPLEX 优…

《面试补习》--来聊聊削峰填谷!

概述 今天想和大家聊聊削峰填谷&#xff0c;最近 B 站发生的机房断电事件&#xff0c;和A站的服务雪崩&#xff0c;让我们对高可用关注了起来&#xff0c;之前梳理了高可用三剑客 限流&#xff0c;熔断和降级&#xff0c;今天想继续聊聊削峰填谷,也为后面的高性能篇 做一下铺垫…

电动汽车有序充电参与电网负荷削峰填谷

电动汽车有序充电参与电网负荷削峰填谷。 ID:24400645773662896

考虑储能削峰填谷的含DG配电网可靠性评估

考虑储能削峰填谷的含DG配电网可靠性评估。 1、基于序贯蒙特卡洛的配电网可靠性评估&#xff1b; 2、基于序贯蒙特卡洛的含DG配电网可靠性评估&#xff1b; 3、基于区间迭代法优化储能出力进行削峰填谷&#xff1b; 4、基于上述内容进一步考虑配电网可靠性。 &#xff08;MATLA…

进度模型方法论,利用“削峰填谷”进行资源优化

对进度模型中的活动进行调整,从而使资源使用情况满足资源限制要求,这种技术就是资源平滑。如下图所示。 资源平滑不会改变项目关键路径,完工日期也不会延迟。 利用此方法,我们可以采用一种削峰填谷的方式对进度网络进行资源优化。如下图为某项目在一段时间内的资源使用曲…

利用RabbitMQ实现消息投递削峰填谷

目录 异步和同步如何选择 异步线程 同步收发消息 一、导入依赖库 二、创建RabbitMQ配置类 三、创建消息任务类 异步和同步如何选择 依靠多线程&#xff0c;Java代码可以同步执行也可以异步执行 RabbitMQ提供了同步和异步两种收发消息模式 我们采用 Java异步线程 MQ同步…

【2023A题】电采暖负荷参与电力系统功率调节的技术经济分析(思路、代码)

目录 &#x1f4a5;1 概述 &#x1f4da;2 Matlab代码实现 &#x1f389;3 参考文献 &#x1f308;4 运行结果 &#x1f4a5;1 概述 建设以新能源为主体的新型电力系统是应对全球气候变化挑战的重要举措。高比例新能源接入导致电力系统调节能力稀缺&#xff0c;亟需开发新的调…

面向削峰填谷的电动汽车多目标优化调度策略

面向削峰填谷的电动汽车多目标优化调度策略 关键词&#xff1a;电动汽车 削峰填谷 多目标 充放电优化 参考文档&#xff1a;自己整理的说明文档&#xff0c;公式、约束、数据齐全 仿真平台&#xff1a;MATLAB YALMIPCPLEX 主要内容&#xff1a;代码主要实现了考虑电动汽车参与…

【电动车】基于削峰填谷的电动汽车多目标优化调度策略研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

面向削峰填谷的电动汽车多目标优化调度策略——附代码

目录 摘要&#xff1a; 背景介绍&#xff1a; 考虑V2G的电动汽车充放电模型&#xff08;无非凸约束&#xff09; 基于负荷实时变化的分时电价模型 充放电优化调度目标函数 &#xff08;1&#xff09;综合负荷成本以及电动汽车电池退化损耗成本 &#xff08;2&#xff09…

充电站储能削峰填谷方案设计测算报告

1、背景 近年来&#xff0c;为推进我国储能技术朝着商业化应用发展&#xff0c;国家出台了多项政策。从现有政策解读可知&#xff0c;虽然国家鼓励在用户侧建设分布式储能系统&#xff0c;但暂未出台针对用户侧电池储能的充放电标杆电价、容量补贴细则、充放电补贴细则、用户容…

MQ如何快速实现流量削峰填谷

问&#xff1a;站点与服务&#xff0c;服务与服务上下游之间&#xff0c;一般如何通讯&#xff1f; 答&#xff1a;有两种常见的方式 一种是“直接调用”&#xff0c;通过RPC框架&#xff0c;上游直接调用下游。 在某些业务场景之下&#xff08;具体哪些业务场景&#xff0c;见…

削峰填谷,你只知道消息队列?

https://baijiahao.baidu.com/s?id1707302054121107350&wfrspider&forpc 概述 今天想和大家聊聊削峰填谷&#xff0c;最近 B 站发生的机房断电事件&#xff0c;和A站的服务雪崩&#xff0c;让我们对高可用关注了起来&#xff0c;之前梳理了高可用三剑客 限流&#xff…

21.面向削峰填谷的电动汽车多目标优化调度策略

说明书 MATLAB代码&#xff1a;面向削峰填谷的电动汽车多目标优化调度策略 关键词&#xff1a;电动汽车 削峰填谷 多目标 充放电优化 参考文档&#xff1a;店主自己整理的说明文档&#xff0c;公式、约束、数据齐全&#xff0c;可联系我查看 仿真平台&#xff1a;MATLAB YA…

MQ,究竟如何做到削峰填谷?

MQ&#xff0c;很多的应用场景&#xff0c;是消息的订阅发布&#xff0c;是系统上下游的解耦&#xff0c;MQ的还有一个典型应用场景是缓冲流量&#xff0c;削峰填谷&#xff0c;本文将简单介绍下&#xff0c;MQ要怎么实现缓冲流量&#xff0c;削峰填谷。 站点与服务上下游之间&…

MQ实战-削峰填谷

对于突然到来的大量请求&#xff0c;您可以配置流控规则&#xff0c;以稳定的速度逐步处理这些请求&#xff0c;起到“削峰填谷”的效果&#xff0c;从而避免流量突刺造成系统负载过高。 1、场景 请求的到来&#xff0c;往往是没有规律的。 例如&#xff0c;某应用的处理能力…

MQ,如何做到削峰填谷

问&#xff1a;为什么会有本文&#xff1f; 答&#xff1a;上一篇文章《到底什么时候该使用MQ&#xff1f;》引起了广泛的讨论&#xff0c;有朋友回复说&#xff0c;MQ的还有一个典型应用场景是缓冲流量&#xff0c;削峰填谷&#xff0c;本文将简单介绍下&#xff0c;MQ要实现…

MATLAB代码:面向削峰填谷的电动汽车多目标优化调度策略

MATLAB代码&#xff1a;面向削峰填谷的电动汽车多目标优化调度策略 关键词&#xff1a;电动汽车 削峰填谷 多目标 充放电优化 参考文档&#xff1a;自己整理的说明文档&#xff0c;公式、约束、数据齐全 仿真平台&#xff1a;MATLAB YALMIPCPLEX 优势&#xff1a;代码注释详实&…

数据中心水蓄冷削峰填谷的经济性分析

摘要 结合国内三大城市的全年气象参数及大型数据中心常用的空调系统&#xff0c;分析数据中心在常用工况下&#xff0c;采用水蓄冷进行削峰填谷的经济性&#xff0c;并指出了大型数据中心采用削峰填谷措施具有良好的经济性。 关键词 &#xff1a;削峰填谷 &#xff1b;数据中心…

01-初探MQ-MQ的三大使用场景:应用解耦、异步提速、削峰填谷

初探MQ 什么是MQ 关于MQ的概念&#xff0c;想必都不陌生&#xff0c;MQ是 Message Queue&#xff08;消息队列&#xff09; 的缩写&#xff0c;所以他首先是一个队列&#xff0c;有先进先出的特性&#xff0c;其次是一个存放消息的队列。常用在分布式系统中进行通信。 为什么…