MODELOWANIE I SYMULACJA
Modelowanie liniowego układu dyskretnego Wyznaczyć rozwiązanie analityczne opisujące ruch liniowego układu dyskretnego przedstawionego na rysunku
gdzie m oznacza masę poszczególnych ciał, k – sztywność każdej sprężyny, a xi , i = 1, 2, ...,5 –
przemieszczenia środków poszczególnych mas.
Kolejność postępowania:
1. Wyznaczyć energię kinetyczną i potencjalną układu wykorzystując zależności: 5
4
1
1
2
2
E
m v , U k( x x ) i
i 1
2
2
i
i 1
i 1
2. Wyznaczyć macierz sztywności K i bezwładności M korzystając ze wzorów: 2
2
U
E
k
, m
ij
ij
x x
v v
i
j
i
j
Uwaga: należy zadeklarować najpierw obie macierze, by następnie wyznaczyć ich elementy w podwójne pętli
3. Wyznaczyć macierz A związaną z macierzami K i M wzorem
1
A
M K
4. Przyjąć dane liczbowe: m = 1, k = 100 i wyznaczyć wartości i wektory własne macierzy A korzystając z komendy Eigenvectors w postaci
> alpha,V:=Eigenvectors(A): 5. Korzystając z procedury sortowanie posortować wartości własne zmieniając równocześnie w odpowiedni sposób pozycje kolumn w macierzy V, zawierającej wektory własne macierzy A
> alpha,V:=sortowanie(alpha,V); 6. Dokonać normalizacji wektorów własnych względem macierzy bezwładności korzystając ze wzoru (u i – kolumny macierzy V) u
i
w
i
n
i
TuMu
i
i ,
1, 2,...,
7. Wyznaczyć częstości drgań swobodnych korzystając z komendy map ze wzoru
, i 1,2,..., n i
i
gdzie i oznaczają posegregowane wartości własne.
8. Zadać warunki początkowe w formie wektora przemieszczeń początkowych x0
zawierającego zerowe elementy i wektora prędkości początkowych v0 zawierającego niezerową pierwszą współrzędną równą 10
> x0:=Vector(5,[0,0,0,0,0]); v0:=Vector(5,[10,0,0,0,0]); 9. Wyznaczyć analityczne rozwiązanie opisujące ruch poszczególnych mas korzystając ze wzoru
5
T
T
0
. .( 0 0 t)
v
x
w M x
v
w
w . .
M x0 cos ( t)
sin ( t)
w
1
1
i
i
i
i
i2
i
10. Sporządzić wykres przemieszeń i prędkości poszczególnych mas korzystając z poniższych komend:
> plot([seq(x[i],i=1..n)],t=0..3);
> v:=map(diff,x,t):
> plot([seq(v[i],i=1..n)],t=0..3); 11. Dokonać animacji ruchu poszczególnych mas korzystając z poniższych komend:
> seq_pkt:=seq([(j-1)*3+'x'[j],0],j=1..n);
> animate(pointplot,[[seq_pkt],symbol=box,symbolsize=50], t=0..3,frames=100,color=red,axes=none); 12. Sporządzić wykres czasowy energii mechanicznej ( E + U)
> plot(E+U,t=0..5,0..100); 13. Która ze sprężyn będzie najbardziej ściśnięta/rozciągnięta w trakcie pierwszych trzech sekund?