社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

我想知道python gekko优化解决方案

Chris • 2 年前 • 1043 次点击  

我目前正在使用Python。 然而,我正在为一个错误而挣扎。 这是我迄今为止制作的工具。

from gekko import GEKKO
import numpy as np         

m = GEKKO(remote=False)     
m.options.SOLVER = 1        


hour = 24                  
Num_EV = 1                  

p_i =m.Array(m.Var,(hour,Num_EV)) 

TOU = [64.9,64.9,64.9,64.9,64.9,64.9,64.9,64.9,152.6,239.8, 
       239.8,152.6,239.8,239.8,239.8,239.8,152.6,152.6, 
       152.6,152.6,152.6,152.6,152.6,64.9]
n=len(TOU)
inp = m.Array(m.Var, (n), value=0.0, lb=0.0, ub=7.0, integer=True)

# EV min/Max setting
for tt in range(0,hour):
    p_i[tt,0].lower = 30
    p_i[tt,0].upper = 70

# EV Charger min/Max setting
Num_EV_C = 1
p_j = m.Array(m.Var, (hour, Num_EV_C))

for tt in range(0,hour):
    p_j[tt,0].lower = 0
    p_j[tt,0].upper = 7

# s.t : EV SOC
p_i[0,0] = 30              # inital EV SOC

eq_EV_SOC = np.zeros((hour,1))   
eq_EV_SOC = list(eq_EV_SOC)          

for tt in range(0,hour):     
    for i in range(0,Num_EV):
        eq_EV_SOC[tt] = p_i[tt-1,i] + p_i[tt,i] == p_i[tt,0]

m.Equation(eq_EV_SOC)

# s.t : EV charging rate
p_j[0,0] = 0

eq_EV_C = np.zeros((hour,1))  
eq_EV_C = list(eq_EV_C)          

for tt in range(0,hour):     
    for i in range(0,Num_EV_C):
        eq_EV_C[tt] = p_j[tt,0] >= p_j[tt,i]

m.Equation(eq_EV_C)

# Object Function : sum[i=n]*sum[t=T]()

F = np.zeros((hour*Num_EV)) 
F = F.tolist()              

for tt in range(0,hour):
    for i in range(0,Num_EV):
        F[i+tt*Num_EV] = p_i[tt,i] * p_j[tt,i]

F_Obj = m.sum(F)

m.Minimize(F_Obj)
m.solve(disp=True)
Exception: @error: Equation Definition
Equation without an equality (=) or inequality (>,<) true STOPPING...

我想知道这个问题。 以下是约束条件和目标函数的说明。

s.t是约束。第一个约束条件是EV SOC范围。EV SOC最小值为30,最大值为70。EV SOC形式为(初始SOC+时间乘以EV SOC)。第二个限制是电动汽车充电范围。电动汽车充电范围从0到7。 最后,目标函数是最小化tou和充电率的乘积。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/161223
 
1043 次点击  
文章 [ 1 ]  |  最新文章 2 年前