Raw File
%%% summary: RUNME (Minimal test script)
%%% project: emgr - Empirical Gramian Framework ( https://gramian.de )
%%% authors: Christian Himpe ( 0000-0003-2194-6754 )
%%% license: BSD-2-Clause (2019)

if(exist('OCTAVE_VERSION','builtin'))	% Use Octave Version
    EMGR = @emgr_oct;
elseif(verLessThan('matlab','9.1'))	% Use Matlab Legacy Version
    EMGR = @emgr_lgc;
else					% Use Standard Version
    EMGR = @emgr;
end

EMGR_VERSION = EMGR('version')

% Linear System
A = -eye(4)				% System Matrix
B = [0;1;0;1]				% Input Matrix
C = [0,0,1,1]				% Output Matrix

P = zeros(4,1);				% Parameter Vector
Q = [zeros(4,1),[0.25;0.5;0.75;1.0]];	% Min and Max Parameter Box

f = @(x,u,p,t) A*x + B*u + p;		% (Affine) Linear Vector Field
g = @(x,u,p,t) C*x;			% Linear Output Functional
h = @(x,u,p,t) A'*x + C'*u;		% Adjoint Vector Field

% (Empircal) Controllability Gramian
WC = EMGR(f,g,[1,4,1],[0.01,1.0],'c',P)

% (Empirical) Observability Gramian
WO = EMGR(f,g,[1,4,1],[0.01,1.0],'o',P)

% (Empirical) Cross Gramian
WX = EMGR(f,g,[1,4,1],[0.01,1.0],'x',P)

% (Empirical) Linear Cross Gramian
WY = EMGR(f,h,[1,4,1],[0.01,1.0],'y',P)

% (Empirical) Sensitivity Gramian
WCWS = EMGR(f,g,[1,4,1],[0.01,1.0],'s',Q); WS = WCWS{2}

% (Empirical) Identifiability Gramian
WOWI = EMGR(f,g,[1,4,1],[0.01,1.0],'i',Q); WI = WOWI{2}

% (Empirical) Cross-Identifiability Gramian
WXWJ = EMGR(f,g,[1,4,1],[0.01,1.0],'j',Q); WJ = WXWJ{2}
back to top