I’m new to the diffeq landscape and am working on solving a First Order Plus Dead Time (FOPDT) model:
\tau_p \frac{dy(t)}{dt} = -y(t) + K_p u\left(t-\theta_p\right)
I have data for y(t) and data for u(t) and am having trouble figuring out how to translate this to the DifferentialEquations
package. Here’s my translation from what I see in the beginner docs for ODE
s:
-
y(t) \rightarrow variable
u
-
\tau_p, K_p, \theta_p \rightarrow parameters
p
- start and end time of data as a tuple \rightarrow
t
- u(t) \rightarrow ??
I’m unsure of what to do with u(t) from the FOPDT definition here. I wouldn’t think of it as a parameter since it’s actually just raw data. I did see a python implementation for solving an FOPDT and they ended up taking the data and making an interpolation function via scipy.interpolate.interp1d
and passing that as a parameter to the odeint
method of scipy
.
Given that the FOPDT model has a time delay (u(t-\theta_p)) I thought this may be a good use case for a Delay Differential Equation (DDEProblem
). However, I’m unsure if this is the proper use of a DDEProblem
since u(t) is what I want historical values of and not past values of the diffeq’s solution.
This may seem a bit vague but I’m hoping someone could lead me in the right direction. Thanks for the help.