Time-delay Example 4

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]->0,
(Subscript[x, 2])'[t]->(Subscript[x, 1])[t-1]u[t],
(Subscript[x, 3])'[t]->((Subscript[x, 5])[t-1]-(Subscript[x, 2])[t-1])u[t],
(Subscript[x, 4])'[t]-> 0,
(Subscript[x, 5])'[t]-> (Subscript[x, 4])[t-1]u[t],
(Subscript[x, 6])'[t]-> (Subscript[x, 5])[t-1]u[t]};
vars={(Subscript[x, 1])[t],(Subscript[x, 2])[t],(Subscript[x, 3])[t],(Subscript[x, 4])[t],(Subscript[x, 5])[t],(Subscript[x, 6])[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×7))/(A^(1×6))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],(Subscript[dx, 4])[t],(Subscript[dx, 5])[t],(Subscript[dx, 6])[t],du[t]},τ,A,Relations->True];

aut[[1]]

The autonomous elements τ[1], ..., τ[7] 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 T[1], ...,T[4] (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],τ[4][t],τ[5][t],τ[6][t],τ[7][t]},A]]

Let us consider  the following matrix

MatrixForm[γ=PadRight[#,7]&/@IdentityMatrix[4]]

which corresponds to the position of τ[1], ...,τ[4]. To express τ[5], τ[6] and τ[7] in terms of τ[1], ..., τ[4] 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 four columns of the left inverse S1 of Q, i.e.

S2=Take[#,-4]&/@S1

then we obtain:

Thread[Table[τ[i][t],{i,7}]->ApplyMatrix[S2,{τ[1][t],τ[2][t],τ[3][t],τ[4][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

BookForm[difs={ApplyMatrixD[Rp[[1]],Join[Xt,Ut]]}]

BookForm[sp=SpanK[difs,t]]

IntegrateOneForms[sp]

Let us integrate the one-form defined by τ[4], namely

BookForm[difs={ApplyMatrixD[Rp[[4]],vars]}]

BookForm[sp=SpanK[difs,t]]

IntegrateOneForms[sp]

We are not able to integrate the one-forms defined by τ[2] and τ[3], since they both contain delays.

BookForm[difs={ApplyMatrixD[Rp[[2]],Join[Xt,Ut]]}]

BookForm[difs={ApplyMatrixD[Rp[[3]],Join[Xt,Ut]]}]

We have obtained two autonomous elements (Subscript[x, 1]) and (Subscript[x, 4]) for the nonlinear system.

Serre' s reduction techniques

Let us now prove that L is equivalent to a diagonal matrix. Let us consider the column vector Λ

MatrixForm[Λ =Transpose[-PadRight[#,7]&/@IdentityMatrix[4]]]

and the matrix P obtained by concatenation of L and Λ:

MatrixForm[P=Join[L,Λ,2]]

Let us check again that the matrix P admits a right inverse:

MatrixForm[Pinv=RightInverse[P,A]]

We deduce that the module E, finitely presented by P, is stably free. Let us now check whether or not E is free.

MatrixForm[Q=MinimalParametrization[P,A]]

LeftInverse[Q,A]

We obtain that E is a free module. Let us extract blocs from the matrix Q as follows:

MatrixForm[Q1=Take[Q,7]]

MatrixForm[Q2=Take[Q,-4]]

By theory we know that the left A-module N finitely presented by L is isomorphic to the module finitely presented by Q2.
Let now check that the matrix L is equivalent to the diagonal matrix diag(I(3), Q2). To do that let us compute a basis of the left kernel of Q1:

U1=LeftKernel[Q1,A]

LeftKernel[U1,A]

Let W1 be a right inverse of U1

W1=RightInverse[U1,A]

and W be the unimodular matrix formed by W1 and Q1:

MatrixForm[W=Join[W1,Q1,2]]

Let us check again that W is unimodular:

LeftInverse[W,A]

Let us form the following matrix

X=Join[OreDot[L,W1],Λ,2]

Let us check that X is unimodular:

V=LeftInverse[X,A]

Finally we obtain that L is equivalent to the following diagonal matrix:

MatrixForm[OreDot[V,L,W]]