Q 8.3  Eigenvalue analysis  p.204

mm = DiagonalMatrix[{1, 1, 2}];
MatrixForm[mm]
kk = 
        10000 {{6, -6, 0}, {-6, 18, -12}, {0, -12, 
              24. }};
MatrixForm[kk]
dd = {{6, -6, 0}, {-6, 18, -12}, {0, -12, 
            24. }};
MatrixForm[dd]

{ωn2, ϕt} = 
        Eigensystem[ Inverse[mm] . kk];
ωn2;
ωn = Sqrt[ωn2];
fn = ωn/2/Pi
ϕ = Transpose[ϕt];
MatrixForm[ϕ]

Modal model

ms = 
      Table[(ϕt . mm . ϕ)[[i, i]], {i, 
          3}]
ks = 
      Table[(ϕt . kk . ϕ)[[i, i]], {i, 
          3}]
ds = Table[(ϕt . dd . ϕ)[[i, i]], {i, 3}]

b = {1, 0, 0};    

    c = {0, 0, 1} ;

bs = ϕt . b
cs = c . ϕ

Transfer function  y/u=G(s)

gg = 
        c . Inverse[mm s^2 + dd s + kk] . b;
Chop[Apart[%]]

gs = cs bs/ms/( s^2 + ds/ms  s + ks/ms)

Impluse

Re[Chop[InverseLaplaceTransform[gs, s, t]]]
gt = 10^3 {1, 1, 1} . %;
Plot[gt, {t, 0, 0.1}, PlotRange ->  {-4, 4}]

Plot[gt, {t, 0, 4}, PlotRange ->  {-4, 4}]

T = 4; n = 1024; Δt =  T/n; 
    te =  T - T/n;
dat = Table[gt, {t, 0, te, Δt}];

dft = 2  Fourier[dat]/Sqrt[n];
dft[[1]] = dft[[1]]/2;
fft = 
        Table[{(i - 1)/T, 20 Log[10, Abs[dft][[i]]]}, {i, 
            n}];

zu0 = 
      ListPlot[fft, PlotRange ->  {{0, 100}, {-60, 0}}, 
        PlotJoined ->  True, GridLines ->  Automatic]

unbalance response

gsf = gs ω^2 /. 
          s ->  I ω /. ω ->  2 Pi f

zu10 = 
      Plot[Evaluate[Abs[gsf]], {f, 0, 100}, GridLines ->  Automatic, 
        PlotRange -> {0, 20}]

zu1 = 
      Plot[Abs[{1, 1, 1} . gsf], {f, 0, 100}, PlotStyle ->  Hue[0.9], 
        PlotRange -> {0, 20}]

ap = Abs[cs bs ωn/ds ];
peak = 
      Table[{ωn[[i]]/2/Pi, ap[[i]]}, {i, 
          3}]
zu2 = ListPlot[peak, PlotStyle ->  PointSize[0.05] ]

Show[zu10, zu1, zu2]

memo  exact response

gse = 
      c . Inverse[mm s^2  +  dd s  +  kk] . 
        b
gsef = gse ω^2  /. 
            s ->  I ω /. ω ->  
            2 Pi f;

zu1e = 
      Plot[Abs[gsef], {f, 0, 100}, PlotStyle ->  Hue[0.7], 
        PlotRange -> {0, 20}]

Show[zu1, zu1e]