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





i2 





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?