57 this =
this@models.BaseSecondOrderSystem(model);
63 this.
addParam(
" d1 ",1,
" Range ",[0 2]);
65 this.
addParam(
" d2 ",.05,
" Range ",[0 .1]);
67 this.
addParam(
" gravity constant ",9.81,
" Range ",[-20 20]);
71 this.
Inputs[1] = @(
t)[1; 0; 0; -1];
72 this.
Inputs[2] = @(
t)[1; -1; 0; 0];
73 this.
Inputs[3] = @(
t)[1; 0; -1; 0];
75 this.
Inputs[4] = @(
t)[1; sin(
t); 0; 0];
76 this.
Inputs[5] = @(
t)[1; sin((
t/10)*2*pi); cos((
t/10)*2*pi); 0];
77 this.
Inputs[6] = @(
t)[1; 0; sin((
t/10)*2*pi); cos((
t/10)*2*pi)];
95 M_lok = e[
k].getLocalMassMatrix;
96 K_lok = e[
k].getLocalStiffnessMatrix;
97 index_glob = e[
k].getGlobalIndices;
99 [li,lj] = meshgrid(index_glob);
109 M = sparse(i,j,
M,7*nk,7*nk);
111 M =
M(m.free,m.free);
112 this.
M= dscomponents.ConstMassMatrix(
M);
114 this.
K0= sparse(i,j,K,7*nk,7*nk);
115 K = this.
K0(m.free,m.free);
119 this.
f= models.beam.DLTNonlinearCoreFun(
this);
128 d = dscomponents.AffLinCoreFun(
this);
129 d.addMatrix(
" mu(1) ",
M);
130 d.addMatrix(
" mu(2) ",-K);
133 dim = length(m.free);
139 this.
x0= dscomponents.ConstInitialValue(zeros(dim,1));
144 B = dscomponents.AffLinInputConv;
149 f_const = f_const(m.free);
156 u(m.dir_u) = m.u_dir;
158 f_const = f_const + f_dir(m.free);
160 Fconst = sparse(dim,4);
161 Fconst(:,1) = f_const;
162 B.addMatrix(
" 1 ",Fconst);
168 F_lok = e[
k].getLocalForceMatrix^
t;
169 index_glob = e[
k].getGlobalIndices;
171 [li,lj] = meshgrid(index_glob,1:3);
178 F = sparse(i,j,F,7*nk,3);
182 F = [sparse(size(F,1),1)
F];
183 B.addMatrix(
" mu(3) ",F);
184 B.CoeffClass=
" InputConvCoeffs ";
197 je = m.JKerMorExport;
201 f(1).Type =
" Displacement3D ";
203 f(2).Type =
" RealValue ";
204 f(2).Name =
" X-Velocity ";
205 f(3).Type =
" RealValue ";
206 f(3).Name =
" Y-Velocity ";
207 f(4).Type =
" RealValue ";
208 f(4).Name =
" Z-Velocity ";
function updateSparsityPattern()
The state space vector (NumTotalDofs) is composed of x: Original state space of second order model...
The base class for any KerMor detailed model.
function updateDimensions()
dscomponents.AInputConv B
The input conversion.
Model
The Model this System is attached to.
function val = getDerivativeDirichletValues(double t)
Computes the derivative dirichlet values dependent on the current time.
K0
The stiffness matrix for t=0, used in the linear model and also in the nonlinear model to compute C...
LinearCoreFun(A)
No system reference needed for constant linear core fun.
Base class for all KerMor second-order dynamical systems.
DynLinTimoshenkoSystem(models.BaseFullModel model)
dscomponents.LinearCoreFun D
The damping matrix of the second order system.
dscomponents.AInitialValue x0
Function handle to initial state evaluation.
Inputs
The system's possible input functions. A cell array of function handles, each taking a time argument ...
dscomponents.LinearOutputConv C
The output conversion Defaults to an LinearOutputConv instance using a 1-matrix, which just forwards ...
dscomponents.ACoreFun f
The core f function from the dynamical system.
dscomponents.AMassMatrix M
The system's mass matrix.
u
The current input function as function handle, [] if none used.
double MaxTimestep
The maximum timestep allowed for any ODE solvers.
function ModelParam p = addParam(char name, default, varargin)
Adds a parameter with the given values to the parameter collection of the current dynamical system...
function buildElementDependentComponents()
Creates all beam element-dependent components like mass matrix and force conversion matrix...
dscomponents.LinearCoreFun A
Represents a linear or affine-linear component of the dynamical system.