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].
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
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
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