Ошибка типа: объект 'GKVariable' не вызывается - PullRequest
2 голосов
/ 11 марта 2020

Я получаю ошибку при запуске следующего кода:

from gekko import GEKKO
m = GEKKO()
U1 = m.Param()
A1 = m.Param()
T2 = m.Var()
T1 = m.Var()
V1 = m.Var()
m.Equation(V1() == U1*A1*(T2-T1))
m.solve()
Traceback (most recent call last):
  File "C:\Users\johnh\Desktop\test.py", line 8, in <module>
    m.Equation(V1() == U1*A1*(T2-T1))
TypeError: 'GKVariable' object is not callable

Как я могу решить эту ошибку?

1 Ответ

0 голосов
/ 14 марта 2020

Ошибка с V1(). Либо оставьте скобку, чтобы сделать ее просто V1, либо добавьте производную по времени с V1.dt(). Если это энергетический баланс, вы можете сделать V1 функцией температуры, такой как m*cp*T1.dt() с массой m и теплоемкостью cp.

Вот динам c симуляция:

from gekko import GEKKO
m = GEKKO()
m.time = [0,1,2,3,4,5]
U1 = m.Param(1)
A1 = m.Param(1)
T2 = m.Param(1.1)
T1 = m.Param(1)
V1 = m.Var(0)
m.Equation(V1.dt() == U1*A1*(T2-T1))
m.options.IMODE = 4 
m.solve()
print(V1.value)

Это дает решение V1 = [0,0.1,0.2,0.3,0.4,0.5]

...