一种用于冰箱的分散式负载控制算法(Python代码实现)

分布式冰箱负载控制算法:Python实现与性能分析
本文介绍了一种基于连续时间控制方法的分布式算法,用于冰箱的能耗管理,强调低计算复杂性和处理离散时间步长的能力。算法通过仿真展示其在精确功率控制和鲁棒性方面的性能,同时讨论了TCL作为电网灵活性资源的潜力和控制挑战。文章还包含Python代码实现的部分。

 💥💥💞💞欢迎来到本博客❤️❤️💥💥

🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。

⛳️座右铭:行百里者,半于九十。

📋📋📋本文目录如下:🎁🎁🎁

目录

💥1 概述

📚2 运行结果

🎉3 参考文献

🌈4 Python代码实现


💥1 概述

文献来源:

恒温控制负载(如冰箱)特别适合作为灵活的需求资源。本文推导了一种用于冰箱的分散式负载控制算法。它改编自现有的连续时间控制方法,旨在实现低计算复杂性,并能够处理可变长度所需特征的离散时间步长,以嵌入设备和高通量模拟。大量异构设备的仿真结果表明,该器件对功耗的精确聚合控制和高计算效率。将跟踪精度量化为种群大小和时间步长的函数,并研究了跟踪误差的相关性。该控制器对模型规格中的错误和随机冰箱门打开形式的突然扰动具有鲁棒性。

冰箱和其他恒温控制负载 (TCL) 的物理特性使它们特别适合作为电网灵活性的低成本供应商:它们的功耗可以改变数十分钟,而不会对冷却性能产生明显影响。然后,这种灵活性可用于提供响应和储备服务,以降低极端负载水平并缓解斜坡限制[1]。

将 TCL 部署为灵活性资源的根本挑战源于这样一个事实,即大多数此类负载仅具有高功率和低功耗状态(尽管存在例外情况,并导致明显的挑战 [2])。尽管这种开/关 TCL 的频率响应概念已经存在了几十年 [3],但近年来,自 Short 等人以来,它越来越受欢迎 [4] 说明了如何使用迟滞控制器的简单调整来促进频率稳定性。简单的控制机制是有效的,但可能会导致由公共频率信号调制的电器同步[5]。为了防止这个问题,已经提出了临时随机化策略[6],但最近Webborn [7]认为,器具固有的异质性足以在实际应用中抑制这种影响。

第二个发展是希望开发控制器,不仅可以稳定电网,还可以准确跟踪调节信号。这可以通过(概念上)直接使用实时通信基础设施直接测量和控制电器(例如[8])以直接的方式实现。但是,出于对隐私和容错的考虑,通常更倾向于考虑仅依赖于全局或不频繁测量的系统。这可以通过结合器件级温度动力学模型[9][10]并考虑聚集体动力学来实现,例如以马尔可夫转移模型(“温度箱模型”)[11]的形式,用于改进聚集体状态估计。

此外,由于许多 TCL 被大量部署,因此控制其总功率是随机控制方案的自然应用。早期的此类方案[5]的缺点是它只能控制渐近功耗,无法保护单个电器的温度限制。最近采用随机对照的文章[12]–[16]使用温度的显式表示来防止不必要的温度偏移。其中,[13]、[14]注重真实感,包括压缩机循环限制和非恒定功率需求等细节。 另一方面,[16]侧重于开发一个更通用的连续时间控制框架。

本文扩展了 [12], [17] 中引入的分散随机控制策略。该策略具有理想的功能,即它只需要单向广播信息,但可以立即跟踪预期的参考信号(即,对于大量数字精确),而不会违反单个设备的温度限制。

📚2 运行结果

# Four subplots, the axes array is 1-d
fig, axarr = plt.subplots(4, sharex=True)
axarr[0].plot(time_list/3600, pi_profile,'k')
axarr[1].plot(time_list/3600, z_list,'k')
axarr[2].plot(time_list/3600, control_list,'k')
axarr[3].plot(time_list/3600, temperature_list,'k')
axarr[3].plot(time_list/3600, Tmin_list,'k--')
axarr[3].plot(time_list/3600, Tmax_list,'k--')

fig.set_size_inches(3.5,6.0)
axarr[3].set_xlabel('time [h]')
axarr[0].set_ylabel('reference $\Pi$')
axarr[0].set_ylim((0.5,1.5))
axarr[1].set_ylabel('parameter $z$')
axarr[2].set_ylabel('control state $c$')
axarr[3].set_ylabel('temperature [${}^\circ C$]')
axarr[3].set_ylim((1.2,7.8))
fig.savefig('../results/figure2.pdf', bbox_inches="tight")
# Four subplots, the axes array is 1-d
fig, axarr = plt.subplots(4, sharex=True)
axarr[0].plot(time_list/3600, pi_profile,'k')
axarr[1].plot(time_list/3600, z_list,'k')
axarr[2].plot(time_list/3600, control_list,'k')
axarr[3].plot(time_list/3600, temperature_list,'k')
axarr[3].plot(time_list/3600, Tmin_list,'k--')
axarr[3].plot(time_list/3600, Tmax_list,'k--')

fig.set_size_inches(3.5,6.0)
axarr[3].set_xlabel('time [h]')
axarr[0].set_ylabel('reference $\Pi$')
axarr[0].set_ylim((0.5,1.5))
axarr[1].set_ylabel('parameter $z$')
axarr[2].set_ylabel('control state $c$')
axarr[3].set_ylabel('temperature [${}^\circ C$]')
axarr[3].set_ylim((1.2,7.8))
fig.savefig('../results/figure2.pdf', bbox_inches="tight")

 

 

 

🎉3 参考文献

文章中一些内容引自网络,会注明出处或引用为参考文献,难免有未尽之处,如有不妥,请随时联系删除。

🌈4 Python代码实现

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值