Linearization of MTI Models

This demo showcases the linearization of some small examples, and a large-scale randomly generated continuous-value, continuous-time explicit multilinear model, [1].
Open Live Script in Matlab
Table of Contents
clear all

Autonomous MTI model example

Create multilinear state-space model

To create the following explicit MTI model in continuous time
we define the structural matrix of the norm-1 CPN format and the parameter matrix
U=[0.5 -0.5; 1 0; 0 1]; % structural matrix
phi=[2 0; 4 6;0 8]; % parameter matrix
which allows to create the norm-1 CPN decomposed tensor of the explicit MTI model as a CPN1 object as follows
obj=CPN1(U,phi) % Norm-1 CPN decomposed tensor
obj =
CPN1 with properties: equationCount: 3 inputCount: 0 U: [3×2 double] phi: [3×2 double]
With the model stored as an CPN1 object we can create an explicit multilinear state-space system of type mss, which is similar to the linear state-space model from Matlab stored as an ss-object.
msys=mss(obj)
msys =
mss with properties: F: [1×1 CPN1] G: [0×0 mtiTens] n: 3 m: 0 p: 0 ntype: '1' ts: 0
If the Symbolic Math Toolbox is installed, you can check your system by showing your explicit MTI model msys as a set of symbolic equations by the command symbolicEquations(msys).

Linearize

x_op=[-1;1;3];
lsys=linearize(msys,x_op) % Linearization
Warning: No Outputs defined, assuming states as outputs.
lsys = A = x1 x2 x3 x1 1 0 0 x2 -7 0 6 x3 -12 0 8 B = Empty matrix: 3-by-0 C = x1 x2 x3 y1 1 0 0 y2 0 1 0 y3 0 0 1 D = Empty matrix: 3-by-0 Continuous-time state-space model. Model Properties

MTI model with one input

Create multilinear state-space model

We follow the same procedure as above for an explicit continuous-time MTI model with two states and one input.
U=[0.5 -0.5; 1 0; 0 1]; % structural matrix
phi=[2 0; 4 6;]; % parameter matrix
obj=CPN1(U,phi) % Norm-1 CPN decomposed tensor
obj =
CPN1 with properties: equationCount: 2 inputCount: 1 U: [3×2 double] phi: [2×2 double]
msys=mss(obj)
msys =
mss with properties: F: [1×1 CPN1] G: [0×0 mtiTens] n: 2 m: 1 p: 0 ntype: '1' ts: 0
If the Symbolic Math Toolbox by Matlab is installed, you can uncomment the following command to show the symbolic equations of your continuous-time explicit MTI model.
%expand(symbolicEquations(msys))

Linearize

x_op=[-1;1]; % operating point x
u_op=[3]; % operating point u
lsys=linearize(msys,x_op,u_op) % Linearization
Warning: No Outputs defined, assuming states as outputs.
lsys = A = x1 x2 x1 1 0 x2 -7 0 B = u1 x1 0 x2 6 C = x1 x2 y1 1 0 y2 0 1 D = u1 y1 0 y2 0 Continuous-time state-space model. Model Properties

Large Scale Example

Generate random MTI model

We can generate a large random continuous sparse MTI model
n=1e5; % number of states
m=5; % Number of inputs
p=2; % number of outputs
r=1e2; % rank of the model
 
msys=rmss(n,m,p,r); % random continuous-time sparse MTI model

Linearize

x_op=rand(n,1); % operating point states
u_op=rand(m,1); % operating point inputs
lsys=linearize(msys,x_op,u_op) % linearization
Sparse continuous-time state-space model with 2 outputs, 5 inputs, and 100000 states. Model Properties Use "spy" and "showStateInfo" to inspect model structure. Type "help sparssOptions" for available solver options for this model.

References

[1] Christoph Kaufmann, Diego Crespí de Valldaura Garcia, Gerwald Lichtenberg, Georg Pangalos, and Carlos Cateriano Yáñez, "Efficient Linearization of Explicit Multilinear Systems using Normalized Decomposed Tensors", IFAC World Congress 2023, DOI: 10.1016/j.ifacol.2023.10.344