Greybox parameter identification for structurally restricted MTI models
Structurally restricted MTI-models can be obtained by utilizing orthogonal ternary vector lists (OTVL). Detailed descriptions of the dependencies between OTVL and MTI-models can be taken from [1,2].
Representation of multilinear equations as OTVL
We have multilinear equations
Equation 1: multilinear equations
with OTVL
representing the structure of the state equations.
Those equations can be represented as OTVL:
%create OTVL structures for state equations
myTvlStruct1 = false(0,0,2);
myTvlStruct1(:,:,1) = zeros(0,3); %position of dont cares
myTvlStruct1(:,:,2) = zeros(0,3); %Boolean values
myTvlStruct2 = false(3,3,2);
myTvlStruct2(:,:,1) = [0 0 0; 0 0 1; 0 0 0]; %position of dont cares
myTvlStruct2(:,:,2) = [0 0 1; 1 0 0; 0 1 0]; %Boolean values
myTvlStruct3 = false(2,3,2);
myTvlStruct3(:,:,1) = [0 1 0; 0 1 0]; %position of dont cares
myTvlStruct3(:,:,2) = [0 0 0; 1 0 1]; %Boolean values
myOTvl1 = otvl(myTvlStruct1);
myOTvl2 = otvl(myTvlStruct2);
myOTvl3 = otvl(myTvlStruct3);
The Boolean values of the OTVL are represented in a 3D-array, with the third dimension indicating the 0, 1 and − of the OTVL.
Create a structurally restriced MTI model
In order to obtain a structurally restricted MTI model, continuous valued parameters are added to the multilinear equations:
Equation 2: parametized state equations
Those parameters are saved in arrays of dimensions
. When setting all
to values of 1 and all
and
to values of 0, the structural model information contained in Equation 1 is obtained. myPhi = ones(5,1); %dimension: total TVL rows x 1
myA = zeros(2,3); %dimension: 2 x number of variables
myC = zeros(3,1); %dimension: number of equations x 1
%adjusting the model parameters
Structural model information and parameters are then summarized in an otvlTens object.
oTens = otvlTens(myPhi, myA, myC, myOTvl1, myOTvl2, myOTvl3)
oTens =
Warning: Warning: inputCount is fixed to zero, as only autonomous systems are implented currently
> In otvlTens/get.inputCount (line 205)
In matlab.internal.editor.VariableOutputPackager.isolatedDisplaying
In matlab.internal.editor.VariableOutputPackager.getStringFromVar
In matlab.internal.editor.VariableOutputPackager.getTruncatedStringFromVar
In matlab.internal.editor.VariableOutputPackager.packageVarOther
In matlab.internal.editor.VariableOutputPackager.packageOutput
In LiveEditorEvaluationHelperE1488043560 (line 29)
otvlTens with properties:
structure: {[1×1 otvl] [1×1 otvl] [1×1 otvl]}
FPhi: [5×1 double]
Fa: [2×3 double]
Fc: [3×1 double]
equationCount: 3
inputCount: 0
Now a multilinear state space system can be created:
omss = mss(oTens,timestep)
omss =
Warning: Warning: inputCount is fixed to zero, as only autonomous systems are implented currently
> In otvlTens/get.inputCount (line 205)
In mss/get.m (line 177)
In matlab.internal.editor.VariableOutputPackager.isolatedDisplaying
In matlab.internal.editor.VariableOutputPackager.getStringFromVar
In matlab.internal.editor.VariableOutputPackager.getTruncatedStringFromVar
In matlab.internal.editor.VariableOutputPackager.packageVarOther
In matlab.internal.editor.VariableOutputPackager.packageOutput
In LiveEditorEvaluationHelperE1488043560 (line 31)
mss with properties:
F: [1×1 otvlTens]
G: [0×0 mtiTens]
n: 3
m: 0
p: 0
ts: 1
Simulation of a structurally restricted MTI model
A simulation of a structurally restricted MTI model can be performed by providing initial conditions and a vector of timesteps.
x0 = [1 1 1]; %initial condition
myX = msim(omss,[],1:tEnd,x0);
Warning: Warning: inputCount is fixed to zero, as only autonomous systems are implented currently
ylabel('simulation states')
Identification of the model parameters of a structurally restricted MTI model
Multilinear model identification for a given multilinear structure can be performed for data, that is given as an iddata object. The maximum identification rank is currently set to 1.
[sysID, costID] = mlgreyest(xDataNoisy,rank,oTens,"Focus","prediction", "Display","on");
Warning: Rank limitation is currently only implemented through the strucutral restrictions
Identification finished: number of iterations: 199, number of initializations: 1, final cost: 0.25476

%simulation of identified model
omssID = mss(sysID, timestep)
omssID =
Warning: Warning: inputCount is fixed to zero, as only autonomous systems are implented currently
> In otvlTens/get.inputCount (line 205)
In mss/get.m (line 177)
In matlab.internal.editor.VariableOutputPackager.isolatedDisplaying
In matlab.internal.editor.VariableOutputPackager.getStringFromVar
In matlab.internal.editor.VariableOutputPackager.getTruncatedStringFromVar
In matlab.internal.editor.VariableOutputPackager.packageVarOther
In matlab.internal.editor.VariableOutputPackager.packageOutput
In LiveEditorEvaluationHelperE1488043560 (line 47)
mss with properties:
F: [1×1 otvlTens]
G: [0×0 mtiTens]
n: 3
m: 0
p: 0
ts: 1
simID = msim(omssID, [],1:tEnd, xDataNoisy.y(1,:));
Warning: Warning: inputCount is fixed to zero, as only autonomous systems are implented currently
newcolors = [0 0.5 1; 0.5 0 1; 0.7 0.7 0.7];
plot(1:length(xDataNoisy.y), xDataNoisy.y,1:tEnd+1,simID, '--')
ylabel('simulation states')
legend('x1 given', 'x2 given', 'x3 given', 'x1 ID', 'x2 ID', 'x3 ID');
References
[1] M. Engels, G. Lichtenberg, and S. Knorn, “An approach to structured multilinear modeling with relaxed Boolean output functions” in 22nd IFAC World Congress, Yokohama, Japan, 2023
[2] M. Engels, G. Lichtenberg, and S. Knorn, “An approach to parameter identification for Boolean-structured multilinear time-invariant models” in ECC 2024, Stockholm, Sweden