专栏文章

【补】铺设太阳能板的最大化收益~

科技·工程参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@mipxena6
此快照首次捕获于
2025/12/03 19:30
3 个月前
此快照最后确认于
2025/12/03 19:30
3 个月前
查看原文
先贴出代码
PYTHON
import pulp
from math import *
angle=float(input("θi="))
angle=pi*(angle/360)
altitude=float(input("θ="))
altitude=pi*(altitude/360)
i=float(input("I="))
area=float(input("S="))
width=float(input("Width="))
t=float(input("t="))
name=['SunPower Maxeon','REC Alpha Pure-RX','Jinko Solar Eagle G6','LONGi Hi-MO5 LR8-48HPB','Canadian Solar HiKu 6']
type=['Monocrystalline','Monocrystalline','Monocrystalline','Monocrystalline','Monocrystalline']
cost=[2376,2016,1649,1356,1458]
#Data comes from ebay
etah=[0.228,0.226,0.225,0.213,0.2]
amac=[75,70,67,65,55]
w=[0,0,0,0,0]
print("")

for j in range(5):
    w[j]=(float(i)*etah[j])*cos(altitude)
    print(name[j])
    print(type[j])
    print(cost[j],'RMB/m²')
    print(w[j],'W/m²')
    print("")
print("")
distance=(width*cos(altitude))+(1.0/tan((pi/2)-angle-altitude))*(sin(altitude)*width)
print("distance=",distance)
area*=(width/distance)
linear_programming=pulp.LpProblem("LP_Problem", pulp.LpMaximize)
x1 = pulp.LpVariable("x1", lowBound=0, cat="Integer")
x2 = pulp.LpVariable("x2", lowBound=0, cat="Integer")
x3 = pulp.LpVariable("x3", lowBound=0, cat="Integer")
x4 = pulp.LpVariable("x4", lowBound=0, cat="Integer")
x5 = pulp.LpVariable("x5", lowBound=0, cat="Integer")

linear_programming+=((w[0]*x1+w[1]*x2+w[2]*x3+w[3]*x4+w[4]*x5)*t/1000
                     -(amac[0]*x1+amac[1]*x2+amac[2]*x3+amac[3]*x4+amac[4]*x5)*(t/8766)
                     -(cost[0]*x1+cost[1]*x2+cost[2]*x3+cost[3]*x4+cost[4]*x5))

linear_programming+=x1+x2+x3+x4+x5<=area
linear_programming+=cost[0]*x1+cost[1]*x2+cost[2]*x3+cost[3]*x4+cost[4]*x5<=10000000
linear_programming+=w[0]*x1+w[1]*x2+w[2]*x3+w[3]*x4+w[4]*x5>=100000
linear_programming+=amac[0]*x1+amac[1]*x2+amac[2]*x3+amac[3]*x4+amac[4]*x5<=500000
linear_programming+=((-4*x1)+x2+x3+x4+x5)/5<=500
linear_programming+=(x1-4*x2+x3+x4+x5)/5<=500
linear_programming+=(x1+x2-4*x3+x4+x5)/5<=500
linear_programming+=(x1+x2+x3-4*x4+x5)/5<=500
linear_programming+=(x1+x2+x3+x4-4*x5)/5<=500
print(linear_programming)
linear_programming.solve()
print("状态:", pulp.LpStatus[linear_programming.status])
print("最优解:")
print("x1 =", pulp.value(x1))
print("x2 =", pulp.value(x2))
print("x3 =", pulp.value(x3))
print("x4 =", pulp.value(x4))
print("x5 =", pulp.value(x5))
print("目标函数最优值 =", pulp.value(linear_programming.objective))
print("\n")
print("@QYH")



本代码解决了不同海拔高度与铺设面积的太阳能板能源收益,代码同步发布在Github上~
论文嘛……隐藏!!!

评论

0 条评论,欢迎与作者交流。

正在加载评论...