kill(all)$ reset()$

# Drgania mechaniczne  zadania i problemy

## Układy drgające liniowe

### Układy  o jednym stopniu swobody, drgania własne i niewymuszone

### drgania własne i niewymuszone

uruchomienie programu  kasowanie zmiennych

kill(all); reset();

ustawienie zależności pomiedzy polożeniem i czasem

kill(all)$ reset()$
depends(x,t);
 assume(ω[0]>0,β>0);
oscy:'diff(x,t,2) +2*β*'diff(x,t)+ω[0]^2*x=0;

 assume(ω[0]>β);

x[1]:ode2(oscy,x,t);

 x[1]:ic2(x[1],t=0,x=1,'diff(x,t)=0);

 forget(β<ω[0])$ assume(β>ω[0]);

x[2]:ode2(oscy,x,t);

 x[2]:ic2(x[2],t=0,x=1,'diff(x,t)=0);

forget(β>ω[0]);

assume(equal(β,ω[0]));

x[3]:ode2(oscy,x,t);

x[3]:ic2(x[3],t=0,x=1,'diff(x,t)=0);

β:1$ω[0]:2$  x[1]:rhs(x[1]),ev;

β:3; x[2]:rhs(x[2]),ev;

β:2; x[3]:rhs(x[3]),ev;

wxplot2d([x[1],x[2],x[3]],[t,0,10],
[style,[lines,4]],[ylabel," "],
[ylabel,"x(t)"],
[xlabel,"t"],
[gnuplot_preamble,"set zeroaxis lw 2"],
[legend,"tłumienie podkrytyczne",
"tłumienie nadkrytyczne","tłumienie krytyczne"])$

v1:diff(x[1],t)$ v2:diff(x[2],t)$ v3:diff(x[3],t)$

[x5,v5]:[x[1],v1],t=2,numer;
[x6,v6]:[x[2],v2],t=2,numer;
[x7,v7]:[x[3],v3],t=2,numer;

wxplot2d([[parametric,x[1],v1,[t,0,10]],
[parametric,x[2],v2,[t,0,10]],
[parametric,x[3],v3,[t,0,10]],
[discrete,[[1,0]]],[discrete,[[x5,v5]]],
[discrete,[[x6,v6]]],[discrete,[[x7,v7]]] ],
[nticks,80],[x,-0.4,1.2],[y,-1.2,0.4],
[style,[lines,2,7],[lines,2,2],[lines,2,3],
[points,3,4,1],[points,3,7,1],[points,3,2,1],[points,3,3,1]],
[ylabel," v1, v2, v3"],[xlabel,"x1, x2, x3"],
[legend," v1 - x1 "," v2 - x2 "," v3 - x3 ",
"t=0","t=2","t=2","t=2"]);

### Drgania wymuszone

### Przykład dokładny

kill(all)$ reset()$
depends(x,t);
assume(ω[0]>0,β>0);
oscy:'diff(x,t,2) +2*β*'diff(x,t)+ω[0]^2*x=F[a]*cos(ω*t);

tlumienie podkrytyczne

assume(ω[0]>β);

x[1]:ode2(oscy,x,t);

x[1]:ic2(x[1],t=0,x=1,'diff(x,t)=0);

tłumienie nadkrytyczne

forget(β<ω[0])$ assume(β>ω[0]);

kill(x[2]);

x[2]:ode2(oscy,x,t);

x[2]:ic2(x[2],t=0,x=1,'diff(x,t)=0);

tlumienie krytyczne

forget(β>ω[0]); assume(equal(β,ω[0]));

x[3]:ode2(oscy,x,t);

x[3]:ic2(x[3],t=0,x=1,'diff(x,t)=0);

ω:2;F[a]:1;

β:1$ω[0]:2$  x[1]:rhs(x[1]),ev;

β:3; x[2]:rhs(x[2]),ev;

β:2; x[3]:rhs(x[3]),ev;

wxplot2d([x[1],x[2],x[3]],[t,0,40],
[style,[lines,4]],[ylabel," "],
[ylabel,"x(t)"],
[xlabel,"t"],
[gnuplot_preamble,"set zeroaxis lw 2"],
[legend,"tłumienie podkrytyczne",
"tłumienie nadkrytyczne","tłumienie krytyczne"])$

v1:diff(x[1],t)$ v2:diff(x[2],t)$ v3:diff(x[3],t)$

F[a]:1$ %beta:3$ %omega[0]:2$ %omega:2$

### przykład uproszczony I

kill(all)$ reset()$

depends(x,t)$

 %beta:0$ %omega[0]:0$

oscy:diff(x,t,2) +2*%beta*diff(x,t)+%omega[0]^2*x=0;

x:rhs(ic2(ode2(oscy,x,t),t=0,x=1,diff(x,t)=0));

wxplot2d([x,diff(x,t)],[t,0,20],[style,[lines,4]],[ylabel," "],
[legend, if %beta<%omega[0] then "tłumienie podkrytyczne"
elseif %beta>%omega[0] then " tłumienie nadkrtyczne"
else "tłumienie krytyczne"]);

### Przykład uproszczony II

kill(all)$ reset()$

depends(x,t)$

F[a]:1$ %beta:3$ %omega[0]:2$ %omega:2$

oscy:diff(x,t,2) +2*%beta*diff(x,t)+%omega[0]^2*x=F[a]*cos(%omega*t);

x:rhs(ic2(ode2(oscy,x,t),t=0,x=0.5,diff(x,t)=0));

wxplot2d(x,[t,0,10],[style,[lines,4]],[ylabel," "],
[legend, if %beta<%omega[0] then "tłumienie podkrytyczne"
elseif %beta>%omega[0] then " tłumienie nadkrtyczne"
else "tłumienie krytyczne"]);