""" 创建一个明确的测试算例,验证只有风电时弃电量不受限制 这个测试会创建一个风电远超负荷的场景,来验证弃风是否真的不受限制 """ import sys import os sys.path.append(os.path.join(os.path.dirname(__file__), '..', 'src')) import pandas as pd import numpy as np def create_extreme_wind_test(): """创建极端风电测试场景:风电远超负荷""" # 创建24小时数据 hours = list(range(1, 25)) # 风电出力:设计为远超负荷,强制产生弃风 wind_output = [200, 180, 160, 140, 120, 100, 80, 60, 50, 40, 30, 25, 20, 15, 10, 8, 6, 5, 4, 3, 2, 1, 0.5, 0.2] # 光伏出力:全部为0 solar_output = [0.0] * 24 # 火电出力:全部为0 thermal_output = [0.0] * 24 # 负荷需求:较低,确保风电远超负荷 load_demand = [20.0] * 24 # 只有20MW负荷,风电最高200MW # 创建DataFrame data = { '小时': hours, '光伏出力(MW)': solar_output, '风电出力(MW)': wind_output, '火电出力(MW)': thermal_output, '负荷需求(MW)': load_demand } df = pd.DataFrame(data) # 保存为Excel文件 excel_file = 'extreme_wind_test.xlsx' df.to_excel(excel_file, index=False, sheet_name='data') print(f"已创建极端风电测试文件: {excel_file}") print(f"风电总出力: {sum(wind_output):.1f} MWh") print(f"负荷总需求: {sum(load_demand):.1f} MWh") print(f"风电超额: {sum(wind_output) - sum(load_demand):.1f} MWh (应该被弃掉)") return excel_file def create_extreme_solar_test(): """创建极端光伏测试场景:光伏远超负荷""" # 创建24小时数据 hours = list(range(1, 25)) # 风电出力:全部为0 wind_output = [0.0] * 24 # 光伏出力:设计为远超负荷,强制产生弃光 solar_output = [0, 0, 0, 0, 0, 0, 50, 100, 150, 200, 180, 150, 120, 100, 80, 60, 40, 20, 10, 5, 2, 1, 0.5, 0.2] # 火电出力:全部为0 thermal_output = [0.0] * 24 # 负荷需求:较低,确保光伏远超负荷 load_demand = [30.0] * 24 # 只有30MW负荷,光伏最高200MW # 创建DataFrame data = { '小时': hours, '光伏出力(MW)': solar_output, '风电出力(MW)': wind_output, '火电出力(MW)': thermal_output, '负荷需求(MW)': load_demand } df = pd.DataFrame(data) # 保存为Excel文件 excel_file = 'extreme_solar_test.xlsx' df.to_excel(excel_file, index=False, sheet_name='data') print(f"已创建极端光伏测试文件: {excel_file}") print(f"光伏总出力: {sum(solar_output):.1f} MWh") print(f"负荷总需求: {sum(load_demand):.1f} MWh") print(f"光伏超额: {sum(solar_output) - sum(load_demand):.1f} MWh (应该被弃掉)") return excel_file if __name__ == "__main__": print("创建极端单一可再生能源测试文件...") wind_file = create_extreme_wind_test() print() solar_file = create_extreme_solar_test() print() print(f"测试文件已创建完成:") print(f"1. {wind_file} - 极端单一风电场景 (风电远超负荷)") print(f"2. {solar_file} - 极端单一光伏场景 (光伏远超负荷)") print(f"\n预期结果:") print(f"- 如果弃电量不受限制,应该能看到大量的弃风/弃光") print(f"- 如果弃电量受限制,系统会通过其他方式处理超额电力") print(f"\n可以使用以下命令测试:") print(f"uv run python main.py --excel {wind_file}") print(f"uv run python main.py --excel {solar_file}")