Я работаю над симуляцией Cantera в Python и смотрю на концентрации некоторых продуктов и топлива. Я успешно смоделировал концентрации для разных видов топлива. Однако, как только я пытаюсь вычитать 2 значения концентрации друг от друга, чтобы получить квадрат ошибки, я получаю следующее сообщение об ошибке:Почему эти результаты NoneType?
Traceback (most recent call last): File "<stdin>", line 1, in <module> File "Comparison.py", line 145, in <module> SEPOSF2 = (ConcPOSF-ConcPOSF2)^2 TypeError: unsupported operand type(s) for -: 'NoneType' and 'NoneType'
Мои вопросы:
- Почему
ConcPOSF
иConcPOSF2
типаNoneType
? - Как я могу обойти эту проблему, чтобы получить разницу?
Вот код до того момента, когда он разбивается:
(Примечание: Каждый результат до последней строки сюжетно-состоянии, но печатает, как None, почему.?)
import cantera as ct
T = 1200
#Pb is P in bar
Pb = 1
P = Pb*101325
tn = 100
reactors = 'POSF10264:1'
gas = ct.Solution('mech10264C2.cti')
gas.TPY = T, P, reactors
r = ct.IdealGasReactor(gas)
net = ct.ReactorNet([r])
gas2 = ct.Solution('5k410k.cti')
gas2.TPY = T,P,reactors
r2 = ct.IdealGasReactor(gas2)
net2 = ct.ReactorNet([r2])
tim = []
Temp = []
Pres = []
p = []
t = []
x0 = []
x1 = []
x2 = []
x3 = []
x4 = []
x5 = []
x6 = []
x7 = []
y0 = []
Temp2 = []
Pres2 = []
p2 = []
t2 = []
x02 = []
x12 = []
x22 = []
x32 = []
x42 = []
x52 = []
x62 = []
x72 = []
y02 = []
timen = []
for n in range(tn):
time = (n+1)*(0.001)
net.advance(time)
net2.advance(time)
timen = tim.append(time * 1000)
Temp = t.append(r.T)
Pres = p.append(r.thermo.P)
ConcPOSF = x0.append(r.thermo['POSF10264'].X[0])
ConcC2H4 = y0.append(r.thermo['C2H4'].X[0])
ConcC3H6 = x1.append(r.thermo['C3H6'].X[0])
ConcC4H81 = x2.append(r.thermo['C4H81'].X[0])
ConciC4H8 = x3.append(r.thermo['iC4H8'].X[0])
ConcC6H6 = x4.append(r.thermo['C6H6'].X[0])
ConcC6H5CH3 = x5.append(r.thermo['C6H5CH3'].X[0])
ConcH = x6.append(r.thermo['H'].X[0])
ConcCH3 = x7.append(r.thermo['CH3'].X[0])
Temp2 = t2.append(r2.T)
Pres2 = p2.append(r2.thermo.P)
ConcPOSF2 = x02.append(r2.thermo['POSF10264'].X[0])
ConcC2H42 = y02.append(r2.thermo['C2H4'].X[0])
ConcC3H62 = x12.append(r2.thermo['C3H6'].X[0])
ConcC4H812 = x22.append(r2.thermo['C4H81'].X[0])
ConciC4H82 = x32.append(r2.thermo['iC4H8'].X[0])
ConcC6H62 = x42.append(r2.thermo['C6H6'].X[0])
ConcC6H5CH32 = x52.append(r2.thermo['C6H5CH3'].X[0])
ConcH2 = x62.append(r2.thermo['H'].X[0])
ConcCH32 = x72.append(r2.thermo['CH3'].X[0])
SEPOSF2 = (ConcPOSF-ConcPOSF2)^2 #### BOOM
Aah, прохладно. Спасибо, что помогли мне! Я понял одну проблему и столкнулся с другой. На данный момент я буду работать над этим. Спасибо! – Sari
Если это помогает, пожалуйста, примите ответ :) – Kikohs
Я не знал об этом. Спасибо, что дали мне знать. – Sari