Как реализовать показатель TOU в этом коде? - PullRequest
0 голосов
/ 23 ноября 2018

Я новичок в кодировании.Я пытаюсь найти оптимальный размер батареи с помощью этого кода.этот код использует интерфейс моделирования Pulp для LPsolver.

# Tarrifs
buy = 30.0 # buy price (c/kWh)
sell = 8.0 # sell price (c/kWh)
# formulation works only when sell <= buy

# Battery parameters
Emax = 0 # battery capacity (kWh)
eff = 0.85 # combined battery and inverter efficiency
pmax = (2/7)*Emax # battery max power (kW)
price = (3000.0 + 1000.0)/7 # battery, installation and BOS costs estm ($/kWh)
price = price*100/(15*365*24) # (c/kWh/hr)
# 15 years cycling once per day:
# http://reneweconomy.com.au/2015/tesla-says-battery-storage-already-makes-economic-sense-for-australia-consumers-40655
# We chose the continous power of 2KW for 7kWh model
# It can peak at 3.3kW but no details on for how long
# http://www.teslamotors.com/powerwall

# Battery variables
E = [LpVariable('E_'+str(i), 0, None) for i in range(T)] # battery energy (kWh)
pc = [LpVariable('pc_'+str(i), 0, None) for i in range(T)] # battery charge (kW)
pd = [LpVariable('pd_'+str(i), 0, None) for i in range(T)] # battery discharge (kW)

# Auxiliary variables
p = [LpVariable('p_'+str(i), None, None) for i in range(T)] # total house power (kW)
cpow = [LpVariable('cpow_'+str(i), None, None) for i in range(T)] # power cost (c)

# Optimisation problem
prb = LpProblem('Battery Operation')

# Objective
prb += lpSum(cpow) + price*tstep*T*Emax # sum of costs

# Constraints
for i in range(T):
    prb += p[i] == pc[i] - pd[i] + pload[i] - ppv[i] # total power
    prb += cpow[i] >= tstep*buy*p[i] # power cost constraint
    prb += cpow[i] >= tstep*sell*p[i] # power cost constraint
    prb += E[i] <= Emax # battery capacity
    prb += pc[i] <= pmax
    prb += pd[i] <= pmax

# Battery charge state constraints
# Batteries must start and finish half charged
prb += E[0] == 0.5*Emax + tstep*(eff*pc[0] - pd[0]) # starting energy
prb += E[T-1] == 0.5*Emax # finishing energy
for i in range(1, T):
    prb += E[i] == E[i-1] + tstep*(eff*pc[i] - pd[i]) # battery transitions

# Solve problem
prb.solve()

print('Status ' + str(LpStatus[prb.status]))
print('Cost ' + str(value(prb.objective)))
print('Emax ' + str(value(Emax)))

в этом примере тариф использует розничную цену.у меня вопрос как зарядить розничную цену в цене TOU, чтобы найти накопитель энергии для батареи?

...