倒立振り子の安定性に関する数値計算
倒立振り子の安定性に関する数値計算
倒立振り子の安定性に関する数値計算
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
1 <br />
<br />
2007MI226 <br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
2 <br />
[1]<br />
l 0 y <br />
<br />
y<br />
η(t)<br />
l<br />
θ<br />
0<br />
1<br />
x, y <br />
θ y η(t) <br />
<br />
(1) <br />
dx<br />
dt<br />
d 2 x<br />
dt 2<br />
dy<br />
dt<br />
d 2 y<br />
dt 2<br />
<br />
x = l 0 sin θ, y = −l 0 cos θ + η(t) (1)<br />
= l 0 cos θ dθ<br />
dt<br />
= −l 0 sin θ dθ<br />
dt + l 0 cos θ d2 θ<br />
dt 2<br />
= l 0 sin θ dθ<br />
dt + η′ (t)<br />
= l 0 cos θ dθ<br />
dt + l 0 sin θ d2 θ<br />
dt 2 + η′′ (t)<br />
m d2 x<br />
dt 2 = 0, y<br />
md2 = −mg (m<br />
dt2 ) m <br />
−l 0 sin θ dθ<br />
dt + l 0 cos θ d2 θ<br />
dt 2 = 0<br />
l 0 cos θ dθ<br />
dt + l 0 sin θ d2 θ<br />
dt 2<br />
x<br />
= −g − η ′′ (t)<br />
()× cos θ + ()× sin θ <br />
<br />
d 2 θ<br />
dt 2<br />
= − g + η′′ (t)<br />
l 0<br />
sin θ (2)<br />
g (g = 9.8 (m/s 2 ) <br />
<br />
3 <br />
[2]<br />
<br />
dx<br />
dt = f(t, x) (t 0 ≤ t ≤ t F ), x(t 0 ) = x 0 (3)<br />
x(t) R d <br />
f [t 0 , t F ] × R d R d () <br />
<br />
[t 0 , t F ] <br />
t 0 < t 1 < · · · < t n < t n+1 < · · · < t N = t F<br />
t n h n = t n+1 − t n <br />
<br />
<br />
n <br />
h = (t F − t 0 )/N <br />
x(t) n <br />
x(t n ) x n x n (n =<br />
1, 2, ... ) <br />
(discrete variable method) <br />
(Euler method)<br />
x n+1 = x n + hf(t n , x n ) (4)<br />
x 0 (4) <br />
x 1 , x 2 , . . . <br />
<br />
<br />
(Runge-Kutta method) <br />
<br />
<br />
x n x n+1 <br />
k 1 = f(t n , x n )<br />
(<br />
k 2 = f t n + h 2 , x n + h )<br />
2 k 1<br />
(<br />
k 3 = f t n + h 2 , x n + h )<br />
2 k 2<br />
)<br />
= f<br />
(t n + h, x n + hk 3<br />
k 4<br />
x n+1 = x n + h 6<br />
(k 1 + 2k 2 + 2k 3 + k 4<br />
)
4 <br />
l 0 = 9.8 (m) <br />
η(t) = sin(ωt) (ω ) (5)<br />
<br />
θ(0) = 3.04, θ ′ (0) = 0.0 (6)<br />
(2) (<br />
) ω <br />
<br />
C ++ <br />
[3]<br />
y<br />
y<br />
5<br />
0<br />
-5<br />
-10<br />
-10 -5 0 5 x<br />
5 ω = 87.0 , h=1/20 <br />
y<br />
5<br />
5<br />
0<br />
0<br />
-5<br />
ω = 15<br />
-5<br />
-10<br />
-10<br />
-10 -5 0 5<br />
x<br />
-10 -5 0 5<br />
x<br />
6 ω = 87.0 , h=1/40 <br />
2 ω = 15.0 , h=1/20 <br />
y<br />
5<br />
0<br />
-5<br />
-10<br />
ω = 16<br />
-10 -5 0 5<br />
3 ω = 16.0 , h=1/20 <br />
y<br />
5<br />
0<br />
-5<br />
-10<br />
-10 -5 0 5 x<br />
4 ω = 86.0 , h=1/20 <br />
x<br />
5 <br />
5.1 <br />
ω 1.099.0 <br />
ω = 1.015.0 <br />
ω = 16.0 <br />
<br />
ω <br />
<br />
ω = 87.0 <br />
ω = 99.0 <br />
<br />
<br />
<br />
ω = 87.0 <br />
ω <br />
<br />
<br />
[1] 1994 <br />
<br />
[2] <br />
2000 <br />
[3] Windows <br />
2 <br />
2003.