- 新增工程运行期限、折现率、年损耗小时数参数配置 - 实现总费用计算功能(包含电缆投资NPV和电费损耗NPV) - 修复total_investment函数调用时机问题,确保GUI模式正确计算 - 优化电缆单价显示为万元/km单位 - 总长度显示单位改为公里 - 方案对比结果新增总费用列,支持全生命周期成本比选 - 代码格式化和导入顺序优化 - 添加IFLOW.md项目上下文文档
72 lines
2.8 KiB
Python
72 lines
2.8 KiB
Python
import pandas as pd
|
|
import numpy as np
|
|
|
|
def create_template(output_file='windfarm_template.xlsx'):
|
|
# Create sample data similar to the internal generator
|
|
data = []
|
|
|
|
# Add Substation
|
|
data.append({
|
|
'Type': 'Substation',
|
|
'ID': 'Sub1',
|
|
'X': 4000,
|
|
'Y': -800,
|
|
'Power': 0,
|
|
'PlatformHeight': 0
|
|
})
|
|
|
|
# Add Turbines (Grid layout)
|
|
n_turbines = 30
|
|
spacing = 800
|
|
n_cols = 6
|
|
|
|
for i in range(n_turbines):
|
|
row = i // n_cols
|
|
col = i % n_cols
|
|
x = col * spacing
|
|
y = row * spacing
|
|
data.append({
|
|
'Type': 'Turbine',
|
|
'ID': i,
|
|
'X': x,
|
|
'Y': y,
|
|
'Power': np.random.uniform(6.0, 10.0),
|
|
'PlatformHeight': 0
|
|
})
|
|
|
|
df = pd.DataFrame(data)
|
|
|
|
# Create Cable data
|
|
cable_data = [
|
|
{'CrossSection': 35, 'Capacity': 150, 'Resistance': 0.524, 'Cost': 8, 'Optional': ''},
|
|
{'CrossSection': 70, 'Capacity': 215, 'Resistance': 0.268, 'Cost': 12, 'Optional': ''},
|
|
{'CrossSection': 95, 'Capacity': 260, 'Resistance': 0.193, 'Cost': 15, 'Optional': ''},
|
|
{'CrossSection': 120, 'Capacity': 295, 'Resistance': 0.153, 'Cost': 18, 'Optional': ''},
|
|
{'CrossSection': 150, 'Capacity': 330, 'Resistance': 0.124, 'Cost': 22, 'Optional': ''},
|
|
{'CrossSection': 185, 'Capacity': 370, 'Resistance': 0.0991, 'Cost': 27, 'Optional': ''},
|
|
{'CrossSection': 240, 'Capacity': 425, 'Resistance': 0.0754, 'Cost': 35, 'Optional': ''},
|
|
{'CrossSection': 300, 'Capacity': 500, 'Resistance': 0.0601, 'Cost': 45, 'Optional': ''},
|
|
{'CrossSection': 400, 'Capacity': 580, 'Resistance': 0.0470, 'Cost': 60, 'Optional': ''}
|
|
]
|
|
df_cables = pd.DataFrame(cable_data)
|
|
|
|
# Create System Parameters data
|
|
param_data = [
|
|
{'Parameter': 'Voltage (kV) / 电压 (kV)', 'Value': 66},
|
|
{'Parameter': 'Power Factor / 功率因数', 'Value': 0.95},
|
|
{'Parameter': 'Electricity Price (元/kWh) / 电价 (元/kWh)', 'Value': 0.4},
|
|
{'Parameter': 'Project Lifetime (years) / 工程运行期限/年', 'Value': 25},
|
|
{'Parameter': 'Discount Rate (%) / 折现率%', 'Value': 8},
|
|
{'Parameter': 'Annual Loss Hours (hours) / 年损耗小时数/小时', 'Value': 1400}
|
|
]
|
|
df_params = pd.DataFrame(param_data)
|
|
|
|
# Save to Excel
|
|
with pd.ExcelWriter(output_file) as writer:
|
|
df.to_excel(writer, sheet_name='Coordinates', index=False)
|
|
df_cables.to_excel(writer, sheet_name='Cables', index=False)
|
|
df_params.to_excel(writer, sheet_name='Parameters', index=False)
|
|
print(f"Created sample file: {output_file} with sheets 'Coordinates', 'Cables', and 'Parameters'")
|
|
|
|
if __name__ == "__main__":
|
|
create_template() |