21
1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

Embed Size (px)

Citation preview

Page 1: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

1

Funções Trajectória de Projéctil

DI/FCT/UNL

1º Semestre 2004/2005

Page 2: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

2

Trajectória Óptima de Projéctil• O cálculo de uma trajectória pode ser feito por simulação de

forma semelhante à da queda de um corpo (será visto mais à frente).

• Podendo-se calcular várias trajectórias, coloca-se muitas vezes a questão de saber qual a “melhor” de entre elas.

• Naturalmente a noção de melhor tem de ser precisada (maior alcance, maior velocidade no solo, mais alta???).

• Vamos determinar qual a trajectória com maior alcance.

Trajectória “Óptima”

de Projéctil

Entrada

Velocidade Inicial

Coeficiente de Atrito

Resultados

Alcance Máximo

Page 3: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

3

Trajectória Óptima de Projéctil• A forma mais simples de determinar a melhor trajectória, é

testar as várias possíveis e escolher a melhor.

• Sendo necessário calcular várias trajectórias, é conveniente abstrair todo o cálculo da trajectória numa função, cujos detalhes de implementação podem ser estudados posteriormente.

• Esta forma de proceder, tem muitas vantagens, já que permite:

– Estruturar um programa nos seus componentes básicos

– Reutilizar esses componentes básicos noutros programas

• Vamos pois considerar uma função, alcance, que corresponde ao alcance de um projéctil lançado inicialmente com velocidade vi e ângulo de disparo, alfa, num meio com coeficiente de atrito, ka

alcance(vi, alfa, ka)

Page 4: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

4

Programas e Funções

A utilização desta função torna o programa trivial:

% inicialização de variáveisentra vi;entra ka;dist 0;

% ciclo de geração e testepara alfa de 0 a 90 fazer x alcance(vi,alfa,ka); % x evita 2 se x > dist então % chamadas de dist x; % alcance! fim se;fim para;

% apresentação de resultadossai dist

se alcance(vi,alfa,ka) > dist então dist alcance(vi,alfa,ka)

Page 5: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

5

Especificação da FunçãoA função que foi abstraída, alcance, deverá determinar, com base na situação inicial (velocidade e ângulo inicial do projéctil), e para um determinado coeficiente de atrito, a distância percorrida, pelo projéctil.

Existe pois uma correspondência óbvia entre funções e programas

Algoritmo de Trajectória de Projéctil

Entrada

Velocidade InicialÂngulo Inicial

Coeficiente deAtrito

Resultados

Distância percorrida

Page 6: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

6

Tipos de Dados da Função Alcance

Os valores iniciais de vi, alfa e ka são dados como parâmetros de entrada da função (dt pode ser fixado).

A partir de vi e alfa, são calculados os valores iniciais das velocidades, vx e vy. Como posição inicial arbitra-se o ponto (0,0).

Se se pretenderem gráficos para a posição (em coordenadas x, y) é conveniente manter as posições por onde passa o projéctil num conjunto de vectores T, X, Y. Caso contrário serão representados por variáveis t, x e y respectivamente.

Os valores das velocidades e das acelerações ao longo do tempo, não se pretendendo calcular os seus gráficos podem ser representados por variáveis vx e vy, ax e ay que representam os valores correntes destas grandezas.

Page 7: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

7

Trajectória de Projéctil - Bases Físicas• A trajectória de um projéctil é uma generalização da queda de

corpos em que se têm de considerar 2 dimensões para o movimento vertical (y) e horizontal (x) e não apenas vertical.

• Todas as grandezas de interesse para o movimento, posição, velocidade e aceleração, devem pois ser definidas nestas duas dimensões.

• Por exemplo, a velocidade, pode ser decomposta nas suas duas componentes (regra do paralelograo)

vy

vx

v

θv2 = vx

2 + vy2 ; Θ = atan(vy/vx)

vx = v cos Θ ; vy = v sin Θ

Page 8: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

8

Trajectória de Projéctil - Bases Físicas• Na horizontal, só existe uma causa de aceleração, provocada

pelo atrito, que consideramos proporcional, e oposta, à velocidade:

ax = - ka vx

• Na vertical, há que considerar a aceleração da gravidade para além da provocada pelo atrito. Temos pois, como na queda dos corpos:

ay = - ka vy - g

Condições iniciais• Tipicamente, estamos interessados em determinar a trajectória

de um projéctil quando a este é lançado com uma determinada velocidade inicial vi num ângulo θ0

Page 9: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

9

Aceleração, Velocidade e Posição

Tal como no problema da queda dos corpos, podemos considerar as seguintes aproximações (em cada uma das dimensões):

x(t+dt) x(t) + vx(t) dt y(t+dt) y(t) + vy(t) dt

vx(t+dt) vx(t) + ax(t) dt vy(t+dt) vy(t) + ay(t) dt

sendo a aceleração do projéctil dada por:

ax = - ka vx ay = - ka vy - g

Page 10: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

10

Estrutura do Algoritmo

Estamos agora em condições de especificar o algoritmo para simulação da trajectória de um projéctil, que como habitualmente pode ser decomposto em 3 “componentes”

1. Inicialização de Variáveis

2. Ciclo de Simulação da Queda

3. Apresentação de Resultados

Algoritmo de Trajectória de Projéctil

Entrada

Velocidade InicialÂngulo Inicial

Coeficiente deAtrito

Resultados

Distância percorrida

Page 11: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

11

1. Inicialização de Variáveis

função alcance(vi, alfa, ka) % vi, alfa e ka são dados de entrada % alcance é o valor final

alfa alfa*2/360; % Ângulo em Radianosdt 0.01; % Intervalo de tempog 9.8; % Aceleração da Gravidadet 0; % Valor iniciais do tempox 0; % Valor iniciais do xy 0; % Valor iniciais do yvx vicos(alfa); % valores correntes de vx e vy vy visin(alfa); % inicializados com viax -kavx ; % valores correntes de ax e ay ay -kavy - g; % inicializados com vs iniciais

Page 12: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

12

2. Ciclo de Simulação

• Os valores da posição, velocidade e aceleração vão sendo calculados nas sucessivas iterações do ciclo de simulação.

enquanto y >= 0 fazer t t + dt; x x + vxdt; y y + vydt; vx vx + axdt; vy vy + aydt; ax -kavx; ay -kavy - g;fim enquanto;

Page 13: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

13

3. Apresentação de Resultados

• O resultado que se pretende apresentar é o alcance do projéctil.

• Como a função está definida com o nome alcance, deverá ser atribuído a uma “variável” com esse nome o valor final de x, que representa o alcance do projéctil.

alcance x

• Na realidade, não existe nenhuma variável com esse nome (a variável existe no programa que chama a função). A atribuição acima é apenas a forma de apresentar o resultado.

Page 14: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

14

Algoritmo Completo – Programa Principal

% Inicialização de Variáveis

entra vi;entra ka;dist 0;

% Ciclo de Geração e Testepara alfa de 0 a 90 fazer x alcance (vi,alfa,ka); se x > dist então dist x; fim se;fim para;

% Apresentação de Resultadossai dist

Page 15: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

15

Algoritmo Completo – Função Alcancefunção alcance(vi, alfa, ka) alfa alfa*2/360; % Ângulo em Radianos dt 0.01; % Intervalo de tempo g 9.8; % Aceleração da Gravidade t 0; x 0; y 0; % Valores iniciais de t, x e y vx vicos(alfa); % Valores correntes de vx e vy vy visin(alfa); % inicializados com vi ax -kavx ; % valores correntes de ax e ay ay -kavy - g; % inicializados com vs iniciais

enquanto y >= 0 fazer t t + dt; x x + vxdt; y y + vydt; vx vx + axdt; vy vy + aydt; ax -kavx; ay -kavy - g; fim enquanto; alcance x;fim função;

Page 16: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

16

Programa Octave

• Em Octave, o programa e a função são muito semelhantes aos apresentados em pseudo-código.

• No entanto eles devem ser escritos em dois ficheiros m (“m files”) distintos, que devem residir na mesma directoria (a menos que se utilizem instruções de alteração da directoria corrente).

• O nome do ficheiro onde uma função é definida deve ter o nome dessa função.

• Por exemplo, a função alcance deverá ser definida num ficheiro com o nome “alcance.m”.

• De notar que a função pode ser invocada a partir de qualquer ficheiro e mesmo do terminal.

Page 17: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

17

Programa Octave

vi = input("Qual a velocidade inicial (em m/s) ? ");ka = input(" e o coeficiente de atrito (1/s) ? ");

dist = 0;for alfa = 0:90 x = alcance(vi,alfa,ka); if x > dist dist = x; endif;endfor; disp(" O alcance máximo (em metros) é de "), disp(dist)

O programa principal, maior_alcance, guardado no ficheiro “maior_alcance.m” chama a função alcance.

Page 18: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

18

Função Octave

function a = alcance(vi, alfa, ka) dt = 0.01; g = 9.8 ; t = 0; x = 0; y = 0; vx = vi*cos(alfa*pi/180) ; vy = vi*sin(alfa*pi/180); ax = - ka * vx ; ay = -g - ka * vy; while y >= 0 t = t + dt; x = x + vx * dt ; y = y + vy * dt; vx = vx + ax * dt ; vy = vy + ay * dt; ax = - ka * vx ; ay = -g - ka * vy; endwhile; a = x;endfunction;

A função alcance é guardada no ficheiro “alcance.m”, que começa com a declaração de função.

Page 19: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

19

Programa Octave

• O programa pode ser testado com vários valores para os diferentes parâmetros. Por exemplo

Nenhum atrito• vi = 30; ka = 0.0

Pouco atrito• vi = 30; ka = 0.2

Muito atrito• vi = 30; ka = 2.0

• De notar que embora se saiba o alcance máximo, o programa apresentado não nos indica para que ângulo de disparo ele é atingido. Para esse efeito basta reformular um pouco o programa, para nos devolver esse ângulo.

Page 20: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

20

Programa Octavevi = input("Qual a velocidade inicial (em m/s) ? ");ka = input(" e o coeficiente de atrito (1/s) ? ");

dist = 0; angulo = 0; for alfa = 0:90 x = alcance(vi,alfa,ka); if x > dist dist = x; angulo = alfa; end; end;disp(" O alcance máximo (em metros) é de "), disp(dist)disp(" com um disparo num ângulo (graus) de "),disp(angulo)

Page 21: 1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005

21

Programa Octave

• No entanto, existem várias características da trajectória que ficaram abstraídas na computação da função e que não são acessíveis ao utilizador, tais como:

– A altura atingida pelo projéctil

– O tempo que demora a atingir essa altura

– O tempo total da trajectória

– A velocidade com que o projéctil atingiu o solo

– A aceleração com que o projéctil atingiu o solo,

– ...

• Para obter essas características há que reformular um pouco a função e permitir que ela “devolva” mais do que um valor.