Time varying system

Example 1

Let us introduce the following Ore algebra

A=OreAlgebra[Der[t]]

and the two matrices Emat and Fmat:

Emat =ToOrePolynomial[{{0,1},{-1,0}},A]

Fmat =ToOrePolynomial[{{Cos[t]},{Sin[t]}},A]

We can form the matrix of differential operators R = (Der[t] I - Emat, -Fmat) which corresponds to the system (OverDot[x]) = Emat x + Fmat u.

MatrixForm[R=Join[ToOrePolynomial[DiagonalMatrix[{Der[t],Der[t]}],A]-Emat,-Fmat,2]]

Let us introduce the finitely presented left A-module M =(A^(1×3))/(A^(1×2))R.
Let us now compute the adjoint Radj 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])

Since the first matrix is identity, M is torsion-free. Hence the corresponding system is controllable.
Let us now check whether or not M is free.

T=Simplify[LeftInverse[Q,A]]

Since the parametrization Q admits a left inverse, we know that M is a free left A-module of rank 1, i.e. the corresponding system is flat. Finally a flat output ξ is defined by

ApplyMatrix[T,{(Subscript[x, 1])[t],(Subscript[x, 2])[t],u[t]}][[1]]

and an injective parametrization of the flat system is given by:

Thread[{(Subscript[x, 1])[t],(Subscript[x, 2])[t],u[t]}->ApplyMatrix[Q,{ξ[t]}]]

Example 2

Let us introduce the following Ore algebra

A=OreAlgebra[Der[t]]

and the two matrices Emat and Fmat:

Emat =ToOrePolynomial[{{0,1},{-1,0}},A]

Fmat =ToOrePolynomial[{{Cos[t]},{-Sin[t]}},A]

We can form the matrix of differential operators R = (Der[t] I - Emat, -Fmat) which corresponds to the system (OverDot[x]) = Emat x + Fmat u.

MatrixForm[R=Join[ToOrePolynomial[DiagonalMatrix[{Der[t],Der[t]}],A]-Emat,-Fmat,2]]

Let us introduce the finitely presented left A-module M =(A^(1×3))/(A^(1×2))R.
Let us now compute the adjoint Radj 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])

Since the first matrix is not identity, we deduce that M admits nontrivial torsion elements and thus the corresponding system admits autonomous elements τ[1] and τ[2], defined by:

AutonomousElements[R,{(Subscript[x, 1])[t],(Subscript[x, 2])[t],u[t]},τ,A,Relations->True]

The first list gives the definition of the autonomous elements τ[1] and τ[2], the second list gives the equations they satisfy and the last list gives the relations between τ[1] and τ[2].

The controllable part of the system is defined by:

Thread[ApplyMatrix[Rp,{(Subscript[x, 1])[t],(Subscript[x, 2])[t],u[t]}]==0]

Finally let us compute a flat output of the controllable part:

ApplyMatrix[LeftInverse[Q,A],{(Subscript[x, 1])[t],(Subscript[x, 2])[t],u[t]}][[1]]

Example 3

Let us introduce the following Ore algebra

A=OreAlgebra[Der[t]]

and the two matrices Emat and Fmat:

Emat =ToOrePolynomial[{{t,1,0},{0,(t^3),0},{0,0,(t^2)}},A]

Fmat =ToOrePolynomial[{{0},{1},{1}},A]

We can form the matrix of differential operators R = (Der[t] I - Emat, -Fmat) which corresponds to the system (OverDot[x]) = Emat x + Fmat u.

MatrixForm[R=Join[ToOrePolynomial[DiagonalMatrix[{Der[t],Der[t],Der[t]}],A]-Emat,-Fmat,2]]

Let us introduce the finitely presented left A-module M =(A^(1×4))/(A^(1×3))R.
Let us now compute the adjoint Radj 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])

Since the first matrix is identity, M is torsion-free. Hence the corresponding system is controllable.
Let us now check whether or not M is free.

T=Simplify[LeftInverse[Q,A]]

Since the parametrization Q admits a left inverse, we know that M is a free left A-module of rank 1, i.e. the corresponding system is flat. Finally a flat output ξ is defined by

ApplyMatrix[T,{(Subscript[x, 1])[t],(Subscript[x, 2])[t],(Subscript[x, 3])[t],u[t]}][[1]]

and an injective parametrization of the flat system is given by:

Thread[{(Subscript[x, 1])[t],(Subscript[x, 2])[t],(Subscript[x, 3])[t],u[t]}->ApplyMatrix[Q,{ξ[t]}]]

Finally, we note that the flat output is defined when (t^2) (((2-3 t+(t^2)-2 (t^3)+(t^4)))^2) is not equal to zero, that is to say, when t≠0 and not equal to:

sol=Solve[2-3 t+(t^2)-2 (t^3)+(t^4)==0,t]

N[sol]

Two last solutions should be excluded since they are complex numbers.