I am trying to simulate a combination of PDEs and ODEs, given below.
$$ \begin{matrix} -L\dfrac{\partial}{\partial t}I(t,z)&=&\dfrac{\partial}{\partial z}V(t,z)+RI(t,z)\\ C\dfrac{\partial}{\partial t}V(t,z)&=& -GV(t,z)-\dfrac{\partial}{\partial z}I(t,z) \end{matrix}\hspace{8mm}0<z<1 $$
$$ \begin{matrix} -L_0\dfrac{d}{d t}I(t,0)&=&R_0I(t,0)+V(t,0)-E_0(t)\\ \dfrac{d}{dt}E_0(t)&=&-K_p\left(I(t,0)-I_d\right)-K_d \dfrac{\partial}{\partial t}I(t,0) \end{matrix}~\;\;\;z=0\\ $$
$$ \begin{matrix} -L_1\dfrac{d}{d t}I(t,1)&=& R_1I(t,1)-V(t,1)+v(t)\\ C_1\dfrac{d}{dt}v(t)&=& I(t,1)-\dfrac{v(t)}{R_C} \end{matrix}~\;\;\;\;z=1 $$
All constants can be taken as 1
.
PS: I have tried the following:
l = 1; l0 = 1; l1 = 1; c = 1; c1 = 1;
r = 1; g = 1; r0 = 1; r1 = 1; rc = 1;
Ki = 1;
Kd = 2;
Ib0d = 5;
simtime = 10;
var = {Is[t, x], Vs[t, x], Ib0[t], Ib1[t], Vb1[t], Eb0[t]} // Flatten
varInit = var /. {t -> 0};
pde = Inverse[
DiagonalMatrix[{-l, c}]].{D[Vs[t, x], x] +
r*Is[t, x], -g*Vs[t, x] - D[Is[t, x], x]};
MatrixForm[pde];
ode = Inverse[
DiagonalMatrix[{-l0, -l1, c1}]].{r0*Ib0[t] + Vs[t, 0] - Eb0[t],
r1*Ib1[t] + Vb1[t] - Vs[t, 1], Ib1[t] - Vb1[t]/rc};
MatrixForm[ode];
uode = {-Ki*(Ib0[t] - Ib0d) - Kd*(r0*Ib0[t] + Vs[t, 0] - Eb0[t])/-l0};
MatrixForm[uode];
f = {pde, ode, uode} // Flatten;
DAE = {Thread[D[var, t] == f], Ib0[t] == Is[t, 0], Ib1[t] == Is[t, 1],
Thread[ varInit == Flatten[RandomReal[{0, 1}, {1, 6}]]]} //
Flatten; MatrixForm[DAE]
uval = NDSolve[DAE, {x, 0, 1}, {t, 0, simtime}]
but it is not working, giving me an underdetermined system
error.
uval = NDSolve[DAE, var, {x, 0, 1}, {t, 0, simtime}]
, but this reveals a more fundamental problem, mixing ODEs and PDEs. $\endgroup$