Time-delay Example 3

Example from the paper by C. Califano, S. Li, C.H. Moog.

Let us consider the following differential time-delay nonlinear system:

eqs={
(Subscript[x, 1])'[t]->(Subscript[x, 2])[t-1]u[t],
(Subscript[x, 2])'[t]->(Subscript[x, 3])[t]u[t],
(Subscript[x, 3])'[t]->u[t]};
vars={(Subscript[x, 1])[t],(Subscript[x, 2])[t],(Subscript[x, 3])[t],u[t]};
TableForm[eqs]

Let us introduce the following Ore algebra A of differential time-delay operators

replA=ModelToReplacementRules[eqs,t];
A=OreAlgebraWithRelations[Der[t],S[-1][t],replA]

and the matrix R of ordinary differential time-delay operators which defines the generic linearization of the above nonlinear system

MatrixForm[R=ToOrePolynomialD[eqs,vars,A]]

and the left A-module, finitely presented by R, defined by M = (A^(1×4))/(A^(1×3))R.

Let us compute the adjoint of R:

MatrixForm[Radj=Involution[R,A]]

Let us check whether or not M is torsion-free:

MatrixForm/@({Ann,Rp,Q}=Exti[Radj,A,1])

aut=AutonomousElements[R,{(Subscript[dx, 1])[t],(Subscript[dx, 2])[t],(Subscript[dx, 3])[t],du[t]},τ,A,Relations->True];

aut[[1]]

The autonomous elements τ[1], τ[2], τ[3] satisfy the following equations:

aut[[2]]

The A-linear relations among the autonomous elements are given by:

aut[[3]]

Let us now prove that the set of autonomous elements can be generated by τ[1] (our guess or inspection of aut[[3]]). Let us introduce the matrix L, defining aut[[3]]:

MatrixForm[L=ToOrePolynomialD[aut[[3]],{τ[1][t],τ[2][t],τ[3][t]},A]]

Let us consider  the following row vector

γ={{1,0,0}};

which corresponds to the position of τ[1]. To express τ[2] and τ[3] in terms of τ[1] we first check whether or not the matrix Q formed by stacking L with γ admits a left inverse.

S1=LeftInverse[Q=Join[L,γ],A]

If we consider the last column of the left inverse S1 of Q, i.e.

S2=List/@Transpose[S1][[-1]]

then we obtain:

Thread[{τ[1][t],τ[2][t],τ[3][t]}->ApplyMatrix[S2,{τ[1][t]}]]

From this point we will use some procedures which are not freely available (see NLControl website  http://www.nlcontrol.ioc.ee).
Let us integrate the one-form defined by τ[1], namely

difs={ApplyMatrixD[Rp[[1]],vars]}

BookForm[sp=SpanK[difs,t]]

Integrability[sp]

IntegrateOneForms[sp]

We finally obtain the above autonomous element of the nonlinear system.