23 s = RandStream(
" mt19937ar ",
" Seed ",0);
29 m = models.BaseFullModel(
" LinearModelDemo ");
35 m.System.MaxTimestep= m.dt;
40 m.System.A= dscomponents.LinearCoreFun(s.rand(dim,dim));
41 m.System.x0= dscomponents.ConstInitialValue(10*(s.rand(dim,1)-.5));
44 [
t,y,ct,x] = m.simulate;
45 fprintf(
" Simulation time: %g\n ",ct);
54 m.System.C= dscomponents.LinearOutputConv([1; zeros(dim-1,1)]^
t);
57 u1 = @(
t)-200*exp(-(
t-.5).^2/3);
58 u2 = @(
t)200*sin(10*
t).*(
t>.3);
59 m.System.Inputs[1] = u1;
60 m.System.Inputs[2] = u2;
62 plot(m.Times,u1(m.Times),
" r ",m.Times,u2(m.Times),
" b ");
63 legend(
" u1 ",
" u2 ");
65 m.System.B= dscomponents.LinearInputConv([0; 1; zeros(dim-2,1)]);
70 [
t,y,~,x] = m.simulate([],1);
74 [
t,y,~,x] = m.simulate([],2);
80 m.ODESolver= solvers.Heun;
81 [
t,y_heun] = m.simulate([],2);
85 m.ODESolver= solvers.MLode15i;
86 [
t,y_impl] = m.simulate([],2);
89 semilogy(
t,abs(y_impl-y_heun));
93 Mmat = diag(s.randi(20,1,dim)) + s.rand(dim,dim);
94 m.System.M= dscomponents.ConstMassMatrix(Mmat);
95 m.ODESolver= solvers.Heun;
96 [
t,y] = m.simulate([],1);
99 m.ODESolver= solvers.MLode15i;
100 [
t,y2] = m.simulate([],1);
function Basics1_Linear()
Basics_Linear: Demo file for KerMor linear models and reduction.