我正在尝试开发一种算法(使用scipy.integrate.odeint())来预测细胞、底物和产物(即?,?,?)的浓度随时间的变化,直到系统达到稳定状态(大约100或200小时)。生物反应器中细胞的初始浓度为0.1?/?,初始时反应器中没有葡萄糖或产物。我想测试在0.01?/ℎ和0.25?/ℎ之间的不同流速?的算法,并分析流速对产品生产的影响(即?/ℎ中的?⋅?)。最后,我想生成一个图,显示x轴上的产品生产率(y轴)与流量率?之间的关系。我的目标是估计导致最大(或临界)生产率的流速。这是我到目前为止的代码:
from scipy.integrate import odeint
import numpy as np
# Constants
u_max = 0.65
K_s = 0.14
K_1 = 0.48
V = 2
X_in = 0
S_in = 4
Y_s = 0.38
Y_p = 0.2
# Variables
# Q - Flow Rate (L/h), value between 0.01 and 0.25 that produces best Q * P
# X - Cell Concentration (g/L)
# S - The glucose concentration (g/L)
# P - Product Concentration (g/L)
# Equations
def func_dX_dt(X, t, S):
u = (u_max) / (1 + (K_s / S))
dX_dt = (((Q * S_in) - (Q * S)) / V) + (u * X)
return dX_dt
def func_dS_dt(S, t, X):
u = (u_max) / (1 + (K_s / S))
dS_dt = (((Q * S_in) - (Q * S)) / V) - (u * (X / Y_s))
return dS_dt
def func_dP_dt(P, t, X, S):
u = (u_max) / (1 + (K_s / S))
dP_dt = ((-Q * P) / V) - (u * (X / Y_p))
return dP_dt
t = np.linspace(0, 200, 200)
# Q placeholder
Q = 0.01
# Attempt to solve the Ordinary differential equations
sol_dX_dt = odeint(func_dX_dt, 0.1, t, args=(S,))
sol_dS_dt = odeint(func_dS_dt, 0.1, t, args=(X,))
sol_dP_dt = odeint(func_dP_dt, 0.1, t, args=(X,S))在程序的当前状态中,似乎没有一种方法可以生成P的稳态值。我试图进行这种修改,以获得X的值。
sol_dX_dt = odeint(func_dX_dt, 0.1, t, args=(odeint(func_dS_dt, 0.1, t, args=(X,)),))它会产生以下错误:
NameError: name 'X' is not defined在这一点上,我不确定如何前进。
(编辑1:添加原始公式)
第一个方程

第二个方程和第三个方程

https://stackoverflow.com/questions/47665889
复制相似问题