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 x
i
, 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
2
2
1
1
1
1
1
,
(
)
2
2
i
i
i
i
i
E
m
v
U
k
x
x
2. Wyznaczyć macierz sztywności K i bezwładności M korzystając ze wzorów:
2
2
,
ij
ij
i
j
i
j
U
E
k
m
x x
v v
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)
,
1, 2,...,
i
i
T
i
i
i
n
u
w
u Mu
7. Wyznaczyć częstości drgań swobodnych korzystając z komendy map ze wzoru
,
1, 2,...,
i
i
i
n
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
1
1
2
0
. .( 0
0 )
. .
0 cos (
)
sin (
)
T
T
i
i
i
i
i
i
t
t
t
v
x
w M x
v
w
w M x
w
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?