更新 PV/pv_total.py

This commit is contained in:
liujia 2025-03-24 15:18:57 +08:00
parent 37bae4baa0
commit 04a4f39759
1 changed files with 18 additions and 17 deletions

View File

@ -3,8 +3,8 @@ import math
from scipy.optimize import fsolve
# 默认文件路径
TILT_EXCEL_PATH = r"D:/A_software/research/Git/git_home/PV/peak_sunshine.xlsx" #各地区峰值小时数(注意城市名
PV_EXCEL_PATH = r"D:/A_software/research/Git/git_home/PV/pv_product.xlsx" #部分光伏组件数值
TILT_EXCEL_PATH = r"./peak_sunshine.xlsx" #各地区峰值小时数和倾角(注意城市名
PV_EXCEL_PATH = r"./pv_product.xlsx" #部分光伏组件数值
def calculate_pv_metrics(city, component_name, electricity_price, pv_number, q, longitude, latitude,
@ -49,23 +49,24 @@ def calculate_pv_metrics(city, component_name, electricity_price, pv_number, q,
# 1. 获取城市的倾角和峰值日照小时数
def get_tilt_and_peak_hours(city, excel_path=TILT_EXCEL_PATH):
"""从Excel获取城市的倾角和峰值日照小时数"""
try:
df = pd.read_excel(excel_path)
if len(df.columns) < 5:
raise ValueError("Excel文件需包含至少5列城市、倾角、峰值日照小时数等")
row = df[df.iloc[:, 1] == city]
if row.empty:
raise ValueError(f"未找到城市:{city}")
return {"city": city, "tilt": row.iloc[0, 2], "peak_sunshine_hours": row.iloc[0, 14]}
except FileNotFoundError:
raise FileNotFoundError(f"未找到Excel文件{excel_path}")
except Exception as e:
raise Exception(f"读取Excel出错{e}")
"""从Excel获取城市的倾角和峰值日照小时数"""
try:
df = pd.read_excel(excel_path)
if len(df.columns) < 5:
raise ValueError("Excel文件需包含至少5列城市、倾角、峰值日照小时数等")
row = df[df.iloc[:, 2] == city]
if row.empty:
raise ValueError(f"未找到城市:{city}")
return {"city": city, "tilt": row.iloc[0, 3], "peak_sunshine_hours": row.iloc[0, 4]}
except FileNotFoundError:
raise FileNotFoundError(f"未找到Excel文件{excel_path}")
except Exception as e:
raise Exception(f"读取Excel出错{e}")
# 2. 计算倾角和方位角
def get_tilt_and_azimuth(is_fixed, optimize, longitude, city, excel_path=TILT_EXCEL_PATH,
peak_load_hour=peak_load_hour):
def get_tilt_and_azimuth(is_fixed=True, optimize=True, longitude=116, city=None, excel_path=TILT_EXCEL_PATH,
peak_load_hour=16):
"""计算光伏系统的倾角和方位角"""
if optimize and not city:
raise ValueError("优化模式下需提供城市名称")