63 lines
1.9 KiB
Python
63 lines
1.9 KiB
Python
#!/usr/bin/env python3
|
||
"""
|
||
测试浮点数比较逻辑的脚本
|
||
"""
|
||
|
||
import sys
|
||
import os
|
||
sys.path.append(os.path.join(os.path.dirname(__file__), 'src'))
|
||
|
||
from storage_optimization import calculate_energy_balance, SystemParameters
|
||
|
||
def test_float_comparison():
|
||
"""测试浮点数比较逻辑"""
|
||
|
||
# 创建测试数据
|
||
solar_output = [1.0] * 24
|
||
wind_output = [1.0] * 24
|
||
thermal_output = [1.0] * 24
|
||
load_demand = [1.0] * 24
|
||
|
||
# 测试非常小的上网电量比例(接近0)
|
||
params = SystemParameters(
|
||
max_curtailment_wind=0.1,
|
||
max_curtailment_solar=0.1,
|
||
max_grid_ratio=1e-15, # 非常小的值,应该被视为0
|
||
storage_efficiency=0.9,
|
||
discharge_rate=1.0,
|
||
charge_rate=1.0
|
||
)
|
||
|
||
# 计算能量平衡
|
||
storage_capacity = 5.0
|
||
result = calculate_energy_balance(
|
||
solar_output, wind_output, thermal_output, load_demand, params, storage_capacity
|
||
)
|
||
|
||
# 检查结果
|
||
total_grid_feed_in = sum(result['grid_feed_in'])
|
||
print(f"测试非常小的上网电量比例 ({params.max_grid_ratio}):")
|
||
print(f"实际上网电量: {total_grid_feed_in:.6f} MWh")
|
||
|
||
# 测试正常的上网电量比例
|
||
params2 = SystemParameters(
|
||
max_curtailment_wind=0.1,
|
||
max_curtailment_solar=0.1,
|
||
max_grid_ratio=0.1, # 正常值
|
||
storage_efficiency=0.9,
|
||
discharge_rate=1.0,
|
||
charge_rate=1.0
|
||
)
|
||
|
||
result2 = calculate_energy_balance(
|
||
solar_output, wind_output, thermal_output, load_demand, params2, storage_capacity
|
||
)
|
||
|
||
total_grid_feed_in2 = sum(result2['grid_feed_in'])
|
||
print(f"\n测试正常的上网电量比例 ({params2.max_grid_ratio}):")
|
||
print(f"实际上网电量: {total_grid_feed_in2:.6f} MWh")
|
||
|
||
print("\n浮点数比较逻辑测试完成")
|
||
|
||
if __name__ == "__main__":
|
||
test_float_comparison() |