pêndulo duplo e pêndulo impulsionado em html5 e javascriptmac/db/2014-1s-097254.pdf · um...

27

Upload: others

Post on 04-Feb-2021

1 views

Category:

Documents


0 download

TRANSCRIPT

  • Pêndulo Duplo e Pêndulo Impulsionado em

    HTML5 e JavaScript

    Jelther Gonçalves

    Instituto de Matemática, Estatística e Computação Cientí�ca

    Universidade Estadual de Campinas

    Curso de Matemática Aplicada e Computacional

    E-mail: [email protected]

    26 de Fevereiro de 2014

    mailto:[email protected]

  • Resumo

    Este trabalho visa fornecer uma simulação computacional do pêndulo duploe do pêndulo impulsionado em seu pivô.

    As simulações são construídas utilizando a tecnologia HTML5 e Javascript,facilitando sua visualização em diferentes dispositivos e plataformas sem a ne-cessidade de componentes extras.

  • Conteúdo

    1 Pêndulo Impulsionado 2

    1.1 Dedução das equações . . . . . . . . . . . . . . . . . . . . . . . . 21.2 Adequando para o método de Runge-Kutta de 4a Ordem . . . . . 51.3 Mudança do ponto estável . . . . . . . . . . . . . . . . . . . . . . 71.4 Movimento caótico do pêndulo impulsionado . . . . . . . . . . . 10

    2 O Pêndulo Duplo 12

    2.1 Dedução das equações . . . . . . . . . . . . . . . . . . . . . . . . 122.2 Adequando para o método de Runge-Kutta de 4a Ordem . . . . . 152.3 Movimento caótico do pêndulo duplo . . . . . . . . . . . . . . . . 17

    Conclusões 20

    Apêndice A - Método de Runge-Kutta de 4a Ordem 21

    Apresentação . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21Generalizando para várias variáveis . . . . . . . . . . . . . . . . . . . . 22

    Apêndice B � Frameworks Utilizados 23

    Apêndice C � Links para as simulações 24

    Bibliogra�a 25

    1

  • Capítulo 1

    Pêndulo Impulsionado

    1.1 Dedução das equações

    Um pêndulo é um sistema composto por uma massa acoplada a um pivô quepermite sua movimentação livremente.

    No pêndulo impulsionado, partiremos do princípio que o pivô irá se moverde forma oscilatória verticalmente ou horizontalmente. Vamos iniciar com opêndulo impulsionado verticalmente:

    2

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 3

    No esquema acima utilizamos x e y como coordenadas generalizadas parao pêndulo.Como podemos ver, o pivô se move verticalmente em função de umcosseno e uma amplitude.

    Para obtermos a equação do movimento, devemos utilizar os conceitos demecânica lagrangiana. Ou seja, devemos ter L = T - U, onde T é a soma dasenergias cinéticas e U a soma das energias potenciais do sistema.Portanto, T �ca:

    T = 12m(ẋ2 + ẏ2)

    Onde o ponto denota a derivada temporal. Os valores x e y serão as somasdos encontrados no esquema acima, então:

    ẋ = lθ̇ cos θ

    ẏ = −lθ̇ sin θ −Aωd sin(ωdt)

    ẋ2 + ẏ2 = l2θ̇2 cos2 θ + l2θ̇2 sin2 θ +A2ω2d sin2(ωdt) + 2lθ̇Aωd sin(ωdt)

    Simpli�cando esta última, obteremos T:

    T =m

    2(l2θ̇2 +A2ω2d sin

    2(ωdt) + 2lθ̇Aωd sin(ωdt))

    O próximo passo é encontrar a energia potencial U:

    U = −mgy = −mg(l cos θ +A cos(ωdt))

    Portanto, a Lagrangiana será:

    L =m

    2(l2θ̇2 +A2ω2d sin

    2(ωdt) + 2lθ̇Aωd sin(ωdt)) +mg(l cos θ +A cos(ωdt))

    Vamos notar que existe uma força de atrito proporcional a velocidade daesfera. Esta força pode ser generalizada da seguinte forma:

    Qθ = Fatx∂x

    ∂θ+ Faty

    ∂y

    ∂θ

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 4

    Portanto, vamos encontrar Fatx e Faty:

    Fatx = −bẋ = −bl cos θθ̇

    Faty = −bẏ = −bl sin θθ̇ +Abωd sin(ωdt)∂x

    ∂θ= l cos θ ,

    ∂y

    ∂θ= l sin θ

    Então, Qθ �ca:

    Qθ = −bθ̇l2 cos2 θ − bθ̇l2 sin2 θ +Ablωd sin θ sin(ωdt)

    Qθ = −bθ̇l2 +Ablωd sin θ sin(ωdt)

    Finalmente, podemos determinar a equação de θ̇ a partir da de�nição daLagrangiana:

    d

    dt

    (∂L

    ∂θ̇

    )− ∂L∂θ

    = Qθ

    ∂L

    ∂θ̇= ml2θ̇ +mlAωd sin θ sin(ωdt)

    d

    dt

    (∂L

    ∂θ̇

    )= ml2θ̈ +mlAωdθ̇ cos θ sin(ωdt) +mlAω

    2d sin θ cos(ωdt)

    ∂L

    ∂θ= mlAωdθ̇ cos θ sin(ωdt) −mgl sin θ

    Chegamos então em:

    θ̈ = − sin θ[Aω2d cos(ωdt) + g

    l

    ]+

    Qθml2

    Esta equação é a que descreve o movimento da massa ao redor do pivô.

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 5

    1.2 Adequando para o método de Runge-Kutta

    de 4a Ordem

    Claramente, a equação do movimento não possui uma solução analítica.Pararesolver esta equação, devemos utilizar um método numérico.

    O método utilizado para o desenvolvimento do applet é o de Runge-Kuttade 4a Ordem.No apêndice A descrevemos como o método funciona para casosgerais.

    Realizando uma mudança de variáveis �camos com o seguinte sistema deequações diferenciais de primeira ordem:

    θ̇ = ω

    ω̇ = − sin θ[Aω2d cos(ωdt) + g

    l

    ]+

    1

    ml2(−bl2ω +Ablωd sin θ sin(ωdt)

    )t = 1

    Ou seja, θ̇ = f(t, θ, ω)ω̇ = g(t, θ, ω)t = l(t, θ, ω)

    Onde f ,g e k são as funções acima representadas.Utilizaremos parâmetrosextras ao escrever as funções (como t para função f) para que não haja confusãona construção do método numérico.

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 6

    Portanto, a implementação em Javascript do método numérico é:

    1 function f(tempo ,theta ,vel_angular) {temp = -(gravidade + Amp*omegad*omegad*Math.cos(omegad*tempo))*Math.sin(

    theta);3 temp = temp/( comprimento_pendulo1);

    temp = temp -(( b_damping/massa1)*vel_angular) + (Amp*b_damping*omegad*Math.sin(theta)*Math.sin(omegad*tempo))/( massa1*comprimento_pendulo1);

    5 return temp;}

    7

    function g(tempo ,theta ,vel_angular) {9 return vel_angular;

    }11

    function k(tempo ,theta ,vel_angular) {13 return 1;

    }15

    function rungeKuttaPendulo(timediff) {17 var h = timediff /1000;

    var a = [];19 var b = [];

    var c = [];21 var d = [];

    23 a[1] = g(tempo_n , theta_n_1 , vel_angular_n_1);a[2] = f(tempo_n , theta_n_1 , vel_angular_n_1);

    25 a[3] = k(tempo_n , theta_n_1 , vel_angular_n_1);

    27 b[1] = g(tempo_n + (h/2)*a[3] , theta_n_1 + (h/2)*a[1] , vel_angular_n_1 + (h/2)*a[2] );

    b[2] = f(tempo_n + (h/2)*a[3] , theta_n_1 + (h/2)*a[1] , vel_angular_n_1 + (h/2)*a[2] );

    29 b[3] = k(tempo_n + (h/2)*a[3] , theta_n_1 + (h/2)*a[1] , vel_angular_n_1 + (h/2)*a[2] );

    31 c[1] = g(tempo_n + (h/2)*b[3] , theta_n_1 + (h/2)*b[1] , vel_angular_n_1 + (h/2)*b[2] );

    c[2] = f(tempo_n + (h/2)*b[3] , theta_n_1 + (h/2)*b[1] , vel_angular_n_1 + (h/2)*b[2] );

    33 c[3] = k(tempo_n + (h/2)*b[3] , theta_n_1 + (h/2)*b[1] , vel_angular_n_1 + (h/2)*b[2] );

    35 d[1] = g(tempo_n + h*c[3] , theta_n_1 + h*c[1] , vel_angular_n_1 + h*c[2] );d[2] = f(tempo_n + h*c[3] , theta_n_1 + h*c[1] , vel_angular_n_1 + h*c[2] );

    37 d[3] = k(tempo_n + h*c[3] , theta_n_1 + h*c[1] , vel_angular_n_1 + h*c[2] );

    39 theta_n_1 = theta_n_1 + (h/6)*(a[1] + 2*b[1] + 2*c[1] + d[1]);vel_angular_n_1 = vel_angular_n_1 + (h/6)*(a[2] + 2*b[2] + 2*c[2] + d[2]);

    41 tempo_n = tempo_n + (h/6)*(a[3] + 2*b[3] + 2*c[3] + d[3]);

    43 delete a;delete b;delete c;delete d;}

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 7

    1.3 Mudança do ponto estável

    Podemos perceber (experimentalmente) que o pêndulo muda seu comporta-mento quando escolhemos ângulos iniciais diferentes.

    A mudança principal é o seu ponto estável : quando colocado a partir de umângulo o mesmo �ca estável acima do eixo Y.

    Vamos tomar como exemplo os valores :

    Massa = 13 Kg

    Coef. Amortecimento = 1 Kg/s

    Vel. Angular Inicial = 0 rad/s

    Frequência de Vibração = 5 Hz

    Amplitude do Impulso = 0.3 m

    Comprimento do Pêndulo = 3 m

    Gravidade = 9.8 m/s2

    Com estes valores, vemos que o pêndulo se mantem estável na vertical a partirde ±136o = ±2.374 rad em relação ao eixo Y.

    Figura 1: Traço do pêndulo após 14s de movimento em um ângulo inicial de135o

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 8

    Figura 2: Grá�co do pêndulo após 14s de movimento em um ângulo inicial de135o

    Figura 3: Traço do pêndulo após 14s de movimento em um ângulo inicial de136o

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 9

    Figura 4: Grá�co do pêndulo após 14s de movimento em um ângulo inicial de136o

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 10

    1.4 Movimento caótico do pêndulo impulsionado

    Este pêndulo apresenta comportamento caótico dependendo dos parâmetrosiniciais que utilizamos, isto é, é impossível determinar seu movimento.

    Vamos tomar como exemplo os seguintes parâmetros iniciais e comparar ostraços e grá�cos gerados:

    Massa = 13 Kg

    Coef. Amortecimento = 0 Kg/s

    Vel. Angular Inicial = 0 rad/s

    Frequência de Vibração = 0.79π rad/s = 0.39 Hz

    Amplitude do Impulso = 0.7 m

    Comprimento do Pêndulo = 3 m

    Gravidade = 9.8 m/s2

    Comparando os traços, grá�cos e diagramas:

    Figura 5: Traço dos pêndulos após 60s de movimento em um ângulo inicial de−108o

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 11

    Figura 6: Grá�co dos pêndulos após 60s de movimento em um ângulo inicialde −108o

    Figura 7: Diagramas de fase após 60s de movimento em um ângulo inicial de−108o

    Através disso, podemos con�rmar o movimento caótico que pode ser causadoa partir de mesmos valores iniciais.

    Jelther Oliveira Gonçalves

  • Capítulo 2

    O Pêndulo Duplo

    2.1 Dedução das equações

    O pêndulo duplo consiste em um pêndulo acoplado a outro pêndulo atravésde sua massa.Em nosso caso, ilustraremos estes pêndulos como sendo simples.

    Para certas condições, este sistema apresenta um comportamento caóticotambém. Vamos iniciar então com a dedução das equações do movimento destesistema através da mecânica Lagrangiana.

    12

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 13

    Portanto, vamos calcular as energias envolvidas:Massa 1:

    ẋ1 = l1θ̇1 cos θ1 e ẏ1 = l1θ̇1 sin θ1

    ẋ21 + ẏ21 = l

    21θ̇

    21

    Massa 2:

    ẋ2 = l1θ̇1 cos θ1 + l2θ̇2 cos θ2

    ẏ2 = l1θ̇1 sin θ1 + l2θ̇2 sin θ2

    ẋ22 + ẏ22 = l

    21θ̇

    21 + 2l1l2θ̇1θ̇2 cos(θ1 − θ2) + l22θ̇22

    Então, T �ca:

    T =m12

    (ẋ21 + ẏ21) +

    m22

    (ẋ22 + ẏ22)

    T =m12

    (l21θ̇21) +

    m22

    (l21θ̇21 + 2l1l2θ̇1θ̇2 cos(θ1 − θ2) + l22θ̇22)

    T =(m1 +m2)

    2(l21θ̇

    21) +m2l1l2θ̇1θ̇2 cos(θ1 − θ2) +

    m22

    (l22θ̇22)

    A energia potencial U depende somente de y, então:Massa 1:

    U = −m1gl1 cos θ1

    Massa 2:

    U = −m2g(l1 cos θ1 + l2 cos θ2)

    Então a energia U total será:

    U = −m1gl1 cos θ1 −m2g(l1 cos θ1 + l2 cos θ2)

    U = −(m1 +m2)gl1 cos θ1 −m2gl2 cos θ2

    A Lagrangiana será:

    L = T − U

    L =(m1 +m2)

    2l21θ̇

    21 +

    m22

    (l22θ̇

    22

    )+m2l1l2θ̇1θ̇2 cos (θ1 − θ2) +

    (m1 +m2) gl1 cos θ1 +m2gl2 cos θ2

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 14

    Para obter a equação para θ1, devemos calcular os termos:

    ∂L

    ∂θ̇1= (m1 +m2) l

    21θ̇2 +m2l1l2θ̇2 cos (θ1 − θ2)

    d

    dt

    (∂L

    ∂θ̇1

    )=

    (m1 +m2) l21θ̈1 +m2l1l2θ̈2 cos (θ1 − θ2) +m2l1l2θ̇2 sin (θ1 − θ2)

    (θ̇1 − θ̇2

    )∂L

    ∂θ1= −l1g (m1 +m2) −m2l1l2θ̇1θ̇2 sin (θ1 − θ2)

    Então, �camos com:

    (m1 +m2) l21θ̈1 +m2l1l2θ̈2 cos (θ1 − θ2) +m2l1l2θ̇22 sin (θ1 − θ2) +

    l1g (m1 +m2) sin (θ1) = 0

    Que simpli�cando por l1, �ca:

    (m1 +m2) l1θ̈1 +m2l2θ̈2 cos (θ1 − θ2) +m2l2θ̇22 sin (θ1 − θ2) +g (m1 +m2) sin (θ1) = 0

    De forma análoga para θ2:

    ∂L

    ∂θ̇2= m2l

    22θ̇2 +m2l1l2θ̇1 cos (θ1 − θ2)

    d

    dt

    (∂L

    ∂θ̇2

    )= m2l

    22θ̈2 +m2l1l2θ̈1 cos (θ1 − θ2) −m2l1l2θ̇1 sin (θ1 − θ2)

    (θ̇1 − θ̇2

    )∂L

    ∂θ2= m2l1l2θ̇1θ̇2 sin (θ1 − θ2) − l2m2g sin θ2

    Então, �camos com:

    m2l22θ̈2 +m2l1l2θ̈1 cos (θ1 − θ2) −m2l1l2θ̇21 sin (θ1 − θ2) + l2m2g sin θ2 = 0

    Que simpli�cando por l2,�ca :

    m2l2θ̈2 +m2l1θ̈1 cos (θ1 − θ2) −m2l1θ̇21 sin (θ1 − θ2) +m2g sin θ2 = 0

    Ambas as equações devem ser resolvidas em termos de θ̈1 e θ̈2 para serem uti-lizadas no método numérico. Ficamos então com:

    θ̈1 =−g (2m1 +m2) sin θ1 −m2g sin (θ1 − 2θ2) − 2 sin (θ1 − θ2)m2

    (θ̇22l2 + θ̇

    21l1 cos (θ1 − θ2)

    )l1 (2m1 +m2 −m2 cos (2θ1 − 2θ2))

    θ̈2 =2 sin (θ1 − θ2)

    (θ̇21l1 (m1 +m2) + g (m1 +m2) cos θ1 + θ̇

    22l2m2 cos (θ1 − θ2)

    )l2 (2m1 +m2 −m2 cos (2θ1 − 2θ2))

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 15

    2.2 Adequando para o método de Runge-Kutta

    de 4a Ordem

    Conforme visto, as 2 equações do movimento para o pêndulo duplo nãopossuem uma solução analítica.

    Vamos escrevê-las de forma que seja fácil utilizar o método de Runge-Kutta.Fazendo a seguinte mudança de variáveis obteremos 4 equações diferenciais

    de primeira ordem:

    θ̇1 = ω1

    θ̇2 = ω2

    Então:

    ω̇1 =−g (2m1 +m2) sin θ1 −m2g sin (θ1 − 2θ2) − 2 sin (θ1 − θ2)m2

    (ω22l2 + ω

    21l1 cos (θ1 − θ2)

    )l1 (2m1 +m2 −m2 cos (2θ1 − 2θ2))

    ω̇2 =2 sin (θ1 − θ2)

    (ω21l1 (m1 +m2) + g (m1 +m2) cos θ1 + ω

    22l2m2 cos (θ1 − θ2)

    )l2 (2m1 +m2 −m2 cos (2θ1 − 2θ2))

    Que podemos escrever na forma de funções da seguinte forma:ω̇1 = f1 (θ1, θ2, ω1, ω2)ω̇2 = f2 (θ1, θ2, ω1, ω2)

    θ̇1 = ω1 = f3 (θ1, θ2, ω1, ω2)

    θ̇2 = ω2 = f4 (θ1, θ2, ω1, ω2)

    Onde em f3 e f4 realizamos o abuso de notação em relação aos parâmetros dasfunções.

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 16

    Portanto, a implementação em Javascript do método numérico é:

    function f1 (theta_1 , theta_2 ,vel_angular1 ,vel_angular2) {2 temp = -gravidade *(2* massa1 + massa2)*Math.sin(theta_1) - massa2*gravidade*

    Math.sin(theta_1 - 2* theta_2);temp = temp - 2*Math.sin(theta_1 - theta_2)*massa2 *( Math.pow(vel_angular2

    ,2)*comprimento_pendulo2 + Math.pow(vel_angular1 ,2)*comprimento_pendulo1*Math.cos(theta_1 -theta_2) );

    4 temp = temp / (comprimento_pendulo1 *(2* massa1 + massa2 -massa2*Math.cos(2*theta_1 - 2* theta_2) ));

    return temp;6 }

    8 function f2 (theta_1 , theta_2 ,vel_angular1 ,vel_angular2) {temp = 2*Math.sin(theta_1 - theta_2);

    10 temp = temp * ( Math.pow(vel_angular1 ,2)*comprimento_pendulo1 *( massa1 +massa2) + gravidade *( massa1 + massa2)*Math.cos(theta_1) + Math.pow(vel_angular2 ,2)*comprimento_pendulo2*Math.cos(theta_1 - theta_2) );

    temp = temp / (comprimento_pendulo2 *(2* massa1 + massa2 - massa2*Math.cos (2*theta_1 -2*theta_2) ));

    12 return temp;}

    14

    function rungeKuttaPendulo(timediff) {16 var h = timediff /1000;

    18 var a = [];var b = [];

    20 var c = [];var d = [];

    22

    a[0] = f1(theta_n_1 ,theta_n_2 ,vel_angular_n_1 ,vel_angular_n_2);24 a[1] = f2(theta_n_1 ,theta_n_2 ,vel_angular_n_1 ,vel_angular_n_2);

    a[2] = vel_angular_n_1;26 a[3] = vel_angular_n_2;

    28 b[0] = f1(theta_n_1 + (h/2)*a[2] ,theta_n_2 + (h/2)*a[3] ,vel_angular_n_1 +(h/2)*a[0] ,vel_angular_n_2 + (h/2)*a[1] );

    b[1] = f2(theta_n_1 + (h/2)*a[2] ,theta_n_2 + (h/2)*a[3] ,vel_angular_n_1 +(h/2)*a[0] ,vel_angular_n_2 + (h/2)*a[1] );

    30 b[2] = vel_angular_n_1 + (h/2)*a[0];b[3] = vel_angular_n_2 + (h/2)*a[1];

    32

    c[0] = f1(theta_n_1 + (h/2)*b[2] ,theta_n_2 + (h/2)*b[3] ,vel_angular_n_1 +(h/2)*b[0] ,vel_angular_n_2 + (h/2)*b[1] );

    34 c[1] = f2(theta_n_1 + (h/2)*b[2] ,theta_n_2 + (h/2)*b[3] ,vel_angular_n_1 +(h/2)*b[0] ,vel_angular_n_2 + (h/2)*b[1] );

    c[2] = vel_angular_n_1 + (h/2)*b[0];36 c[3] = vel_angular_n_2 + (h/2)*b[1];

    38 d[0] = f1(theta_n_1 + h*c[2] ,theta_n_2 + h*c[3] ,vel_angular_n_1 + h*c[0] ,vel_angular_n_2 + h*c[1] );

    d[1] = f2(theta_n_1 + h*c[2] ,theta_n_2 + h*c[3] ,vel_angular_n_1 + h*c[0] ,vel_angular_n_2 + h*c[1] );

    40 d[2] = vel_angular_n_1 + h*c[0];d[3] = vel_angular_n_2 + h*c[1];

    42

    theta_n_1 = theta_n_1 + (h/6)*(a[2] + 2*b[2] + 2*c[2] + d[2]);44 theta_n_2 = theta_n_2 + (h/6)*(a[3] + 2*b[3] + 2*c[3] + d[3]);

    46 vel_angular_n_1 = vel_angular_n_1 + (h/6)*(a[0] + 2*b[0] + 2*c[0] + d[0]);vel_angular_n_2 = vel_angular_n_2 + (h/6)*(a[1] + 2*b[1] + 2*c[1] + d[1]);

    48

    delete a; delete b; delete c; delete d;50 }

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 17

    2.3 Movimento caótico do pêndulo duplo

    Este pêndulo também apresenta um movimento caótico com os mesmosparâmetros iniciais em lançamentos diferentes.

    Vamos tomar os seguintes parâmetros iniciais e comparar os traços, grá�cose diagramas de fase de cada um:

    Massa 1 = 13 Kg

    Massa 2 = 13 Kg

    Vel. Angular Inicial 1 = 0 rad/s

    Vel. Angular Inicial 2 = 0 rad/s

    Comprimento do Pêndulo 1 = 1 m

    Comprimento do Pêndulo 2 = 1 m

    Ângulo Inicial 1 = 90o

    Ângulo Inicial 2 = 125o

    Gravidade = 9.8 m/s2

    Figura 8: Traços dos pêndulos duplos após 30s de movimento com osparâmetros iniciais de�nidos.

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 18

    Figura 9: Grá�cos dos pêndulos duplos após 30s de movimento com osparâmetros iniciais de�nidos.

    Jelther Oliveira Gonçalves

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 19

    Figura 10: Diagramas de fase dos pêndulos duplos após 30s de movimento comos parâmetros iniciais de�nidos.

    Através destes grá�cos, podemos con�rmar o movimento caótico que podeser causado a partir de mesmos parâmetros iniciais.

    Jelther Oliveira Gonçalves

  • Conclusões

    De fato, os 2 tipos de pêndulos apresentados mostram resultados interes-santes e que são mais fáceis de analisar do que um modelo real.

    O primeiro, o pêndulo impulsionado, apresenta a mudança de ponto estávelconforme variamos os parâmetros de oscilação do pivô. Em outros parâmetrospodemos avaliar o movimento caótico que este apresenta.

    Já o pêndulo duplo nos dá momentos interessantes de avaliação de como ocaos age em sistemas relativamente simples.

    Finalmente, estes applets desenvolvidos em HTML5 conseguem ser uma novaferramenta de estudo e ensino por sua fácil utilização em dispositivos diferentese por possuir uma melhor facilidade de desenvolvimento.

    20

  • Apêndice A - Método de

    Runge-Kutta de 4a Ordem

    Apresentação

    Em análise numérica, os métodos de Runge-Kutta formam uma importantefamília de métodos iterativos implícitos e explícitos para resolução numérica desoluções de equações diferenciais ordinárias.

    Neste projeto utilizamos o método de 4a ordem, sendo este o mais utilizado.Existem os métodos de ordem inferiores e superiores, mas para nossos propósitoso de 4a ordem é o su�ciente.

    Vamos considerar uma EDO com PVI:{y

    ′= f(t, y)

    y(t0) = y0

    Com um passo h > 0, devemos calcular:

    kn1 = f(tn, yn)

    kn2 = f(tn +h

    2, yn +

    h

    2kn1)

    kn3 = f(tn +h

    2, yn +

    h

    2kn2)

    kn4 = f(tn + h, yn + hkn3)

    Para então, obter:

    yn+1 = yn +h

    6(kn1 + 2kn2 + 2kn3 + kn4)

    Este é, então, o método mais utilizado em simulações físicas.

    21

  • Pêndulo Duplo e Pêndulo Impulsionado Pág. 22

    Generalizando para várias variáveis

    Conforme visto em nossas deduções, as nossas equações não dependem desomente uma variável e sim várias.

    O método de Runge-Kutta pode ser ampliado para estas equações, bastaque haja uma transformação de variáveis para obter um sistema de equaçõesdiferenciais.

    Então, suponha que tenhamos m variáveis com m equações:x

    1 = f1 (x1, x2, ..., xm)

    x′

    2 = f2 (x1, x2, ..., xm)...

    x′

    m = fm (x1, x2, ..., xm)

    Note que do lado direito não temos derivadas e que do lado esquerdo temossomente derivadas de primeira ordem.Estas equações podem ser resumidas naforma vetorial:

    x̄′

    = f̄ (x̄)

    onde x̄ = (x1, x2, ..., xm) é o vetor das variáveis e f̄ = (f1, f2, ..., fm) o "vetor"dasfunções.Então, vamos de�nir o vetor de variáveis no passo n e n+ 1:

    x̄n = (x1,n, x2,n, ..., xm,n)x̄n+1 = (x1,n+1, x2,n+1, ..., xm,n+1)

    O método �ca, então:

    ān = f̄ (x̄)

    b̄n = f̄

    (x̄+

    h

    2ān

    )c̄n = f̄

    (x̄+

    h

    2b̄n

    )d̄n = f̄ (x̄+ hc̄n)

    Então, o vetor x̄n+1 será:

    x̄n+1 = x̄n +h

    6

    (ān + 2b̄n + 2c̄n + d̄n

    )O vetor x̄n+1 dará o estado das variáveis após o passo h.

    Fica então fácil utilizar qualquer linguagem de programação para progra-mar applets ou mesmo simulações numéricas e obter resultados para inúmerosproblemas físicos que não possuem soluções analíticas.

    Jelther Oliveira Gonçalves

  • Apêndice B � Frameworks

    Utilizados

    Nos applets desenvolvidos e utilizados para obter os resultados foram uti-lizados alguns frameworks para facilitar o desenvolvimento.

    O primeiro framework foi para organizar o documento HTML, sendo este oBootstrap CSS Framework.

    Já o utilizado para desenvolvimento em Javascript foram os seguintes:

    1. JQuery - http://jquery.com2. Kinetic JS - http://kineticjs.com

    Foi utilizado também o framework CanvasJS Charts (http://canvasjs.com/)para mostrar grá�cos das animações em tempo real.

    Não é necessário utilizar estes frameworks para desenvolver o que foi visto,entretanto a utilização deles facilita muito o desenvolvimento além de gerar umaorganização no código.

    23

  • Apêndice C � Links para as

    simulações

    Aqui estão os endereços para os applets que foram apresentados aqui:

    Pêndulo Impulsionado:http://www.ime.unicamp.br/ ra097254/penduloimpulsionado.htmlPêndulo Duplo:http://www.ime.unicamp.br/ ra097254/penduloduplo-rk.html

    Basta utilizar um navegador recente (Google Chrome, Mozilla Firefox, Opera, Safari ou Internet Explorer) para que as simulações sejam executadas.Não énecessário instalar nenhum plugin ou software adicional para executá-las.

    Caso você tenha problemas na utilização das simulações,veri�que se a versãodo seu navegador é a mais recente e se todas as con�gurações relativas a driversestão corretas em seu computador.

    24

    http://www.ime.unicamp.br/~ra097254/penduloimpulsionado.htmlhttp://www.ime.unicamp.br/~ra097254/penduloduplo-rk.html

  • Bibliogra�a

    [1] S. T. Thornton e J. B. Marion, Classical Dynamics. Thomson Brooks/Cole,5a ediçao, 2004.

    [2] W.E Boyce, R.C. DiPrima, Equações Diferenciais Elementares e Problemasde Valores de Contorno. LTC Books, 8a ediçao, 2005.

    [3] M.A.G. Ruggiero, V.L.R Lopes, Cálculo Numérico - Aspectos Teóricos eComputacionais. Pearson Makron Books, 2a ediçao, 2006.

    [4] Halliday e Resnick, Fundamentos da Física, Volume II, Gravitação, Ondase Calor. LTC Books, 8a ediçao, 2010.

    [5] W3Schools � The world largest web development database, emhttp://www.w3schools.com/.

    [6] JQuery - Javascript Framework, em http://www.jquery.com/.

    [7] Kinetic JS � Javascript Framework, em http://kineticjs.com/.

    [8] CanvasJS Charts � Javascript Charts Framework, em http://canvasjs.com/.

    [9] Bootstrap - CSS Framework, em http://getbootstrap.com.

    25

    http://www.w3schools.com/http://www.jquery.com/http://kineticjs.com/http://canvasjs.com/http://getbootstrap.com

    Pêndulo ImpulsionadoDedução das equaçõesAdequando para o método de Runge-Kutta de 4ª OrdemMudança do ponto estávelMovimento caótico do pêndulo impulsionado

    O Pêndulo DuploDedução das equaçõesAdequando para o método de Runge-Kutta de 4ª OrdemMovimento caótico do pêndulo duplo

    ConclusõesApêndice A - Método de Runge-Kutta de 4ª OrdemApresentaçãoGeneralizando para várias variáveis

    Apêndice B – Frameworks UtilizadosApêndice C – Links para as simulaçõesBibliografia