MK-7
DRGANIA SWOBODNE LINIOWYCH UKŁADÓW DYSKRETNYCH
Wyznaczyć drgania swobodne układu przedstawionego na rysunku
• Określić energię kinetyczną i potencjalną
> with(LinearAlgebra): with(plots):
> n:=5; x0:=0:
> E:=1/2*add(m*(v||i)^2,i=1..n);
> U:=1/2*add(k*(x||i-x||(i-1))^2,i=1..n);
• Wyznaczyć macierz bezwładności M i sztywności K
j
i
ij
j
i
ij
x
x
U
k
v
v
E
m
∂
∂
∂
=
∂
∂
∂
=
2
2
,
> M:=Matrix(n):K:=Matrix(n):
> for i to n do
for j to n do
M[i,j]:=diff(E,v||i,v||j):
K[i,j]:=diff(U,x||i,x||j):
end do:
end do:
> M,K;
• Obliczyć wartości własne (w) i wektory własne (W) macierzy A = M
-1
K
(kolumny macierzy modalnej W są wektorami własnymi macierzy A)
> A:=M^(-1).K;
> m:=1:k:=1:
> w,W:=Eigenvectors(A);
• Uszeregować rosnąco elementy wektora wartości własnych wykorzystując procedurę sortowanie
(Procedura wykorzystuje zmienne globalne: w – wektor wartości własnych i W – macierz
wektorów własnych, sortując równocześnie wektory własne)
> sortowanie():
> w;
> W;
1
x
k
m
m
m
m
m
k
k
k
2
x
3
x
4
x
5
x
k
• Obliczyć wektor częstości własnych korzystając z zależności
i
w
i
=
0
ω
> omega:=map(sqrt,w);
• Wyodrębnić wektory własne z macierzy modalnej W
> for i to n do u||i:=W[1..n,i]: ut||i:=Transpose(u||i): end do:
• Zadać wektor przemieszczeń początkowych odpowiadający kolejnym wektorom własnym
> mode:=1;
> x0:=u||mode:v0:=Vector(n):
• Zapisać rozwiązanie opisujące drgania własne układu na podstawie wzoru
( )
( )
∑
=
+
=
n
i
i
i
i
i
T
i
t
t
1
sin
cos
u
v
x
M
u
x
0
0
ω
ω
ω
> x:=eval(add(ut||i.M.(x0*cos(omega[i]*t)+v0/omega[i]*sin(omega[i]*t))
*u||i,i=1..n)):
• Przedstawić przemieszczenia wszystkich mas na wspólnym wykresie
> plot([seq(x[i],i=1..n)],t=0..4*Pi/omega[mode]);
• Dokonać animacji ruchu układu
> animate(pointplot,[[seq([3/2*(i-1)+x[i],0],i=1..n)],
symbol=box,symbolsize=50],t=0..2*Pi/omega[mode],frames=100,color=red,
axes=none);
• Zadać warunek początkowy odpowiadający uderzeniu prawej skrajnej masy, sporządzić wykres i
dokonać animacji ruchu
> v0[n]:=-1:x0:=Vector(n):
Powtórzyć wszystkie obliczenia przyjmując: n = 8, 10