%%% 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}