✅ 博主简介:擅长数据搜集与处理、建模仿真、程序设计、仿真代码、论文写作与指导,毕业论文、期刊论文经验交流。
✅ 具体问题可以私信或扫描文章底部二维码。
(1)典型柔性负荷聚合模型与特性指标
在电能替代战略不断推进的背景下,电力负荷持续走高,而尖峰负荷年持续时间极短,这对电力系统安全经济运行产生了巨大影响。挖掘温控负荷、电动汽车、储能等柔性负荷资源用于电力调峰,是缓解问题的有效途径,不过柔性负荷的可调特性受多种因素制约,挖掘其调节能力困难重重。
对于分体式定频空调这一典型柔性负荷,其功率调节原理较为复杂。空调的运行状态受到环境温度、用户设定温度等多种因素影响。传统的无序调节方式下,由于空调负荷群初始状态各异,比如有的空调处于制冷高功率状态,有的处于低功率待机状态等,这会使得聚合可调功率出现大幅波动。为解决这一问题,提出了有序温控调节方式。这种方式通过合理安排空调的调节顺序和调节幅度,有效稳定了聚合可调功率。
在空调负荷可调功率计算模型方面,基于等值热参数模型是一种途径。它通过对空调的热交换等物理过程进行建模,计算在不同温度环境和调节指令下的功率变化。但该模型存在物理模型参数难以准确实时辨识的问题。于是,引入了 BP 神经网络模型。BP 神经网络具有强大的非线性映射能力,它可以通过大量的历史数据学习空调功率调节与各种影响因素之间的关系,无需依赖精确的物理参数,从而有效避免了因参数不准确带来的计算难题。
电动汽车作为另一类典型柔性负荷,其功率可调性与车辆的充电状态、电池容量、用户的使用习惯等密切相关。基于蒙特卡洛的电动汽车负荷群可调功率计算模型应运而生。蒙特卡洛方法通过对电动汽车的充电开始时间、充电时长、初始电量等随机因素进行大量模拟,得到不同场景下电动汽车负荷群的可调功率分布情况。这种方法能够充分考虑电动汽车使用的随机性和不确定性,准确评估其可调功率。
储能负荷群的可调功率计算则采用基于面积法的模型。储能设备的功率调节主要取决于其储能容量、充放电效率等因素。面积法通过对储能设备的充放电曲线、储能容量变化等进行分析,计算在不同调节需求下的可调功率。
在此基础上,提出了一组柔性负荷群可调特性分析指标。通过设置多种场景,对三类典型负荷的同构和异构聚合群进行分析。例如,对于同构的空调负荷群,在高温天气下和低温天气下的可调特性不同。高温时,空调多处于制冷高功率状态,调节潜力较大,但调节过程中对温度变化敏感;低温时,调节潜力相对较小。而异构负荷群,如空调和电动汽车组成的负荷群,在不同季节和不同时段展现出更复杂但更优的调节性能。在夏季用电高峰,电动汽车可在夜间低谷充电,白天高峰放电,空调则根据温度和有序温控调节方式参与调峰,二者相互配合,比单一类型的同构负荷群更能有效平衡电力峰谷差,提高电力系统的稳定性和经济性。
(2)用户负荷柔性可调潜力评估方法
用户的用电行为具有一定的规律性,同时也存在较大的灵活性。基于用户历史用电负荷数据来挖掘其用电行为规律是关键。大数据聚类算法为这一挖掘工作提供了有力工具。
K - Means 聚类算法在提取用户用电模式中发挥重要作用。它可以将具有相似用电特征的用户数据聚为一类。例如,通过对用户每日用电功率曲线进行分析,将在工作日白天用电功率较低、晚上用电功率较高且周末用电模式较为平稳的用户归为一类,这可能代表了上班族的用电模式;而将白天和晚上用电功率都相对稳定且较低的用户归为另一类,这可能是老年人居多的家庭用电模式。
考虑到用户不同用电模式之间进行切换的可行度是评估用户负荷柔性可调潜力的核心要素。用户并非总是按照固定模式用电,在某些激励因素下,如电费优惠政策、电力供应紧张时的错峰用电呼吁等,用户可能会改变用电模式。这种切换的可行度需要综合考虑多种因素,比如用户对改变用电模式所带来的不便的接受程度、改变用电模式对用户生活或生产的影响等。
这种基于用电模式识别的评估方法具有显著优势。它无需对用户负荷设备的具体型号、参数以及用户用电行为的各种影响因素进行详细建模。传统方法在获取负荷设备运行状态和环境参数时面临诸多困难,如需要安装大量传感器来监测温度、湿度对电器的影响,还需要了解每个电器的详细参数等。而新方法避免了这些难题,能够高效地对用户可调潜力进行量化评估。这对于用户自身而言,可以了解自己在电力调峰中的潜在贡献和可能获得的收益;对于负荷聚合商,能够更好地组织和管理用户负荷资源;对于电网运营商,可依据评估结果制定更合理的调峰策略,实现对柔性负荷聚合调控的科学决策。
(3)柔性负荷群参与电力调峰的多市场主体响应策略
构建以负荷聚合商为纽带的柔性负荷聚合三层调控架构是实现柔性负荷有效参与电力调峰的重要基础。在这个架构中,不同市场主体有着不同的角色和策略。
对于用户而言,提出了计及满意度及竞价成功率的用户申报量价响应策略模型。用户在参与电力调峰时,会考虑自身的满意度。满意度包括用电的便利性、电费成本等因素。例如,如果用户因参与调峰而导致在高峰时段无法正常使用电器,影响生活质量,那么其满意度就会降低。同时,用户也会关注竞价成功率。在电力调峰辅助服务市场中,用户会根据自己的可调负荷资源情况和预期收益来申报量价。如果申报价格过高,可能导致竞价失败;如果申报量过大,可能无法满足实际调节能力,影响满意度。通过建立合理的模型,可以平衡这两个因素,使得用户在参与调峰过程中既能获得一定的经济收益,又能保证自身的用电满意度。
负荷聚合商则需要考虑计及用户利益及竞价成功率的申报量价响应策略模型。负荷聚合商作为连接用户和电网运营商的中间环节,要保障用户的利益。一方面,要确保用户在参与调峰过程中的合理收益,不能因为追求自身利益最大化而损害用户利益。例如,在分配调峰任务和收益时,要公平合理地对待不同用户。另一方面,要提高竞价成功率。负荷聚合商需要综合考虑所聚合的用户负荷资源的整体情况,包括不同用户的可调功率范围、用电模式等,制定合理的申报量价策略,以在电力调峰辅助服务市场中获得更多的业务机会,实现自身的可持续发展。
电网运营商层面提出了计及源荷协同的电力调峰辅助服务市场出清模型。电网运营商需要统筹考虑电源侧和负荷侧的情况。在电源侧,要考虑不同类型发电设备的发电功率、成本等因素;在负荷侧,要充分利用柔性负荷的调节能力。通过源荷协同,实现电力系统的平衡和优化。例如,在风电、光伏发电等可再生能源发电功率波动较大时,利用柔性负荷的调节能力来平衡电力供应。通过建立出清模型,并给出求解算法,可以确定在不同市场条件下的最优调度方案。
以日前电力调峰辅助服务市场为场景进行算例仿真,结果表明这种多市场主体响应策略是有效的。通过价格杠杆,激发了柔性负荷的可调潜力。当电力调峰辅助服务价格合理时,用户愿意调整用电模式,负荷聚合商积极组织资源参与市场,电网运营商能够实现更优化的调度,从而将柔性负荷的潜在调节能力转化为实际的可调资源,实现对柔性负荷资源的最优调用,提高电力系统的安全经济性。
# 用户类
class User:
def __init__(self, name, initial_load, satisfaction_weight, bid_success_weight):
self.name = name
self.initial_load = initial_load
self.satisfaction_weight = satisfaction_weight
self.bid_success_weight = bid_success_weight
self.bid_quantity = 0
self.bid_price = 0
# 计算用户申报量价函数
def calculate_user_bid(user):
# 这里可以根据用户的初始负荷、满意度权重和竞价成功率权重等因素进行计算
# 假设简单的计算方式,实际需要更复杂模型
user.bid_quantity = user.initial_load * 0.5 # 假设申报量为初始负荷的一半
user.bid_price = 10 + user.satisfaction_weight * 5 - user.bid_success_weight * 3 # 简单价格计算示例
return user
# 创建用户实例
user1 = User("User1", 100, 0.6, 0.4)
user2 = User("User2", 120, 0.5, 0.5)
# 计算用户申报量价
calculated_user1 = calculate_user_bid(user1)
calculated_user2 = calculate_user_bid(user2)
print("用户", calculated_user1.name, "申报量:", calculated_user1.bid_quantity, "申报价:", calculated_user1.bid_price)
print("用户", calculated_user2.name, "申报量:", calculated_user2.bid_quantity, "申报价:", calculated_user2.bid_price)
# 负荷聚合商类
class Aggregator:
def __init__(self, name, users):
self.name = name
self.users = users
self.total_bid_quantity = 0
self.total_bid_price = 0
# 计算负荷聚合商申报量价函数
def calculate_aggregator_bid(aggregator):
for user in aggregator.users:
aggregator.total_bid_quantity += user.bid_quantity
aggregator.total_bid_price += user.bid_price * user.bid_quantity
aggregator.total_bid_price /= aggregator.total_bid_quantity # 平均价格计算
return aggregator
# 创建负荷聚合商实例并计算申报量价
aggregator1 = Aggregator("Aggregator1", [calculated_user1, calculated_user2])
calculated_aggregator1 = calculate_aggregator_bid(aggregator1)
print("负荷聚合商", calculated_aggregator1.name, "申报量:", calculated_aggregator1.total_bid_quantity, "申报价:", calculated_aggregator1.total_bid_price)
# 电网运营商类
class GridOperator:
def __init__(self, aggregators, power_supply):
self.aggregators = aggregators
self.power_supply = power_supply
self.allocated_quantity = 0
self.cleared_price = 0
# 简单的市场出清函数
def market_clearing(grid_operator):
total_bid_quantity = 0
for aggregator in grid_operator.aggregators:
total_bid_quantity += aggregator.total_bid_quantity
if total_bid_quantity <= grid_operator.power_supply:
grid_operator.cleared_price = min([aggregator.total_bid_price for aggregator in grid_operator.aggregators])
grid_operator.allocated_quantity = total_bid_quantity
else:
# 这里可以添加更复杂的出清策略,如按比例分配等
grid_operator.cleared_price = 0
grid_operator.allocated_quantity = 0
return grid_operator
# 创建电网运营商实例并进行市场出清计算
grid_operator1 = GridOperator([calculated_aggregator1], 200)
calculated_grid_operator1 = market_clearing(grid_operator1)
print("电网运营商", calculated_grid_operator1.name, "出清价格:", calculated_grid_operator1.cleared_price, "分配量:", calculated_grid_operator1.allocated_quantity)