Tank model 1

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

A=OreAlgebra[Der[t],S[t]]

and the matrix R of ordinary differential time-delay operators which defines a tank model described in Dubois, F., Petit, N. and Rouchon, P.,
Motion planning and nonlinear simulations for a tank containing a fluid, Proceedings of the 5th European Control Conference, Karlsruhe (Germany), 1999.

MatrixForm[R=ToOrePolynomial[{{((S[t])^2),1,-2Der[t]S[t]},{1,((S[t])^2),-2Der[t]S[t]}},A]]

and the left A-module, finitely presented by R, defined by M = (A^(1×3))/(A^(1×2))R.
Let us check whether or not M can be decomposed. We first compute the endomorphisms of M defined a constant matrix P:

MatrixForm[P=Morphisms[R,R,{0,0},p,A]]

From this P, let us try to compute idempotent endomorphisms of M:

MatrixForm/@(PAll=IdempotentMorphisms[P,R,p,A])

Considering the nontrivial idempotent endomorphism PAll[[2]], we obtain the following decomposition:

MatrixForm[Decomposition[R,PAll[[2]],A]]