A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

2 Dezembro de 2005Simulação com Modelos Diferenciais1 Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006.

Apresentações semelhantes


Apresentação em tema: "2 Dezembro de 2005Simulação com Modelos Diferenciais1 Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006."— Transcrição da apresentação:

1 2 Dezembro de 2005Simulação com Modelos Diferenciais1 Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006

2 2 Dezembro de 2005 Simulação com Modelos Diferenciais 2 Apresentação do Problema Um projéctil é lançado de uma altura de y 0 metros, com um ângulo inicial de lançamento de radianos e com uma velocidade inicial de v 0 metros por segundo. A trajectória do projéctil pode ser modelada através do seguinte sistema de equações diferenciais: v0v0 (0,0) x y y0y0 a f(a)f(a) onde: v x e v y são as componentes horizontal e vertical da velocidade; a x e a y são as componentes horizontal e vertical da aceleração; Se não considerarmos o atrito então: a x =0 e a y =-g d max h max

3 2 Dezembro de 2005 Simulação com Modelos Diferenciais 3 Resolução Informal Problema: determinar a distância máxima (d max ) e a altura máxima (h max ) atingidas pelo projéctil. Pode-se simular a trajectória do projéctil usando o sistema de equações diferenciais para calcular o valor de y correspondente a cada valor de x. –Considera-se o ponto inicial da trajectória: (x(0),y(0),v x (0),v y (0)) –Considera-se uma sequência de valores de t (t 1,t 2,…) para os quais se calcula uma aproximação o respectivo valor de (x(t),y(t),v x (t),v y (t)) –Termina-se o cálculo quando aparecer o primeiro ponto da trajectória com o valor de y negativo. Os valores da distância máxima e da altura máxima podem ser aproximados respectivamente pelos valores maximos de x e y obtidos nos pontos calculados da trajectória.

4 2 Dezembro de 2005 Simulação com Modelos Diferenciais 4 Cálculo Aproximado da Trajectória O modelo diferencial da trajectória (sem atrito) pode rescrever-se: Se dt for um valor muito pequeno, podemos obter as aproximações: Portanto, se dt for suficientemente pequeno, os valores aproximados de cada uma das componentes no instante t+dt podem ser aproximados se soubermos os respectivos valores no instante t: dx(t)=v x (t)×dtdv x (t)=0×dt dy(t)=v y (t)×dt dv y (t)= g×dt x(t+dt) x(t) v x (t)×dt v x (t+dt) v x (t) 0×dt y(t+dt) y(t) v y (t)×dt v y (t+dt) v y (t) g×dt x(t+dt) x(t) + v x (t)×dt v x (t+dt) v x (t) y(t+dt) y(t) + v y (t)×dt v y (t+dt) v y (t) g×dt

5 2 Dezembro de 2005 Simulação com Modelos Diferenciais 5 Cálculo Aproximado da Trajectória Assim, considerando um valor de dt muito pequeno, toda a trajectória pode ser calculada usando as seguintes aproximações: desde que se saiba os valores de cada uma das componentes no tempo t=0. Mas em t=0 sabemos que x(0)=0, y(0)=y 0, faltando apenas decompor v 0 nas suas componentes de acordo com o ângulo. Em geral a velocidade pode ser decomposta nas suas duas componentes (regra do paralelogramo): x(t+dt) x(t) + v x (t)×dt v x (t+dt) v x (t) y(t+dt) y(t) + v y (t)×dt v y (t+dt) v y (t) g×dt vyvy vxvx v θ v 2 = v x 2 + v y 2 ; = atan(v y /v x ) v x = v cos ; v y = v sen Logo os valores iniciais são: v x (0) = v 0 ×cos( ), v y (0) = v 0 ×sen( ).

6 2 Dezembro de 2005 Simulação com Modelos Diferenciais 6 Especificação do Problema Dada uma altura inicial (y 0 ) uma velocidade inicial (v 0 ) e um ângulo inicial de lançamento ( ), com base no modelo diferencial da trajectória apresentado e para uma dada precisão (dt), determinar a distância máxima (d max ) e a altura máxima (h max ) atingidas pelo projéctil. Algoritmo de Simulação da Trajectória de um Projéctil Entrada Altura Inicial: y 0 Velocidade Inicial: v 0 Ângulo Inicial : Precisão : dt Resultados Distância Máxima : d max Altura Máxima : h max

7 2 Dezembro de 2005 Simulação com Modelos Diferenciais 7 Variáveis Utilizadas Neste problema, apenas existe uma constante g = 9.8 : a aceleração da gravidade (na Terra) As variáveis a utilizar são, naturalmente, as seguintes y 0 : a altura inicial v 0 : a velocidade inicial : o ângulo inicial dt : o intervalo de tempo entre dois pontos consecutivos d max : a distância máxima alcançada pela trajectória h max : a altura máxima alcançada pela trajectória

8 2 Dezembro de 2005 Simulação com Modelos Diferenciais 8 Estrutura do Algoritmo Tal como no caso do modelo não diferencial, o algoritmo para simulação da trajectória do projéctil pode ser decomposto em 3 componentes 1. Inicialização de Variáveis 2. Ciclo de Simulação da Trajectória 3. Apresentação de Resultados A Inicialização de Variáveis e a Apresentação de Resultados são idênticas ao caso do modelo não diferencial. A diferença principal está no Ciclo de Simulação da Trajectória.

9 2 Dezembro de 2005 Simulação com Modelos Diferenciais 9 Ciclo de Simulação A parte fundamental do algoritmo é um ciclo em que se vão calculando os sucessivos valores da trajectória do projéctil para pontos espaçados no tempo de um valor dt. Vamos usar 4 novas variáveis, x, y, vx e vy para representar cada ponto da trajectória. O primeiro ponto é: (x, y,vx,vy) = (0,y 0,v 0 ×cos( ),v 0 ×sen( )) x = 0; vx = v0*cos(tet); y = y0; vy = v0*sin(tet); while y > 0 x = x + vx*dt; y = y + vy*dt; vx = vx + 0*dt; % pode-se tirar esta linha vy = vy – g*dt; hmax = max(hmax,y); endwhile

10 2 Dezembro de 2005 Simulação com Modelos Diferenciais 10 Programa Octave % Inicialização de Variáveis g = 9.8; % aceleração da gravidade y0 = input(" Qual a altura inicial (m)? "); v0 = input(" Qual a velocidade inicial (m/s)? "); tet = input(" Qual o angulo inicial (rad)? "); dt = input(" Qual a precisao (s)? "); dmax = 0;% distância máxima da trajectória hmax = 0;% altura máxima da trajectória % Ciclo de Simulação x = 0; vx = v0*cos(tet); y = y0; vy = v0*sin(tet); while y > 0 x = x + vx*dt; y = y + vy*dt; vx = vx + 0*dt; vy = vy - g*dt; hmax = max(hmax,y); endwhile % Apresentação de Resultados dmax = x; disp("Distância maxima da trajectoria (m):"); disp(dmax); disp("Altura maxima da trajectoria (m):"); disp(hmax);

11 2 Dezembro de 2005 Simulação com Modelos Diferenciais 11 Programa Octave c/ Gráfico % Inicialização de Variáveis g = 9.8; % aceleração da gravidade y0 = input(" Qual a altura inicial (m)? "); v0 = input(" Qual a velocidade inicial (m/s)? "); tet = input(" Qual o angulo inicial (rad)? "); dt = input(" Qual a precisao (s)? "); dmax = 0;% distância máxima da trajectória hmax = 0;% altura máxima da trajectória % Ciclo de Simulação X = [0]; Y = [y0]; i = 1; vx = v0*cos(tet); vy = v0*sin(tet); while Y(i) > 0 i = i+1; X(i) = X(i-1) + vx*dt; Y(i) = Y(i-1) + vy*dt; vx = vx + 0*dt; vy = vy - g*dt; endwhile % Apresentação de Resultados hmax = max(Y); dmax = X(i); disp("Distância maxima da trajectoria (m):"); disp(dmax); disp("Altura maxima da trajectoria (m):"); disp(hmax); plot(X,Y);

12 2 Dezembro de 2005 Simulação com Modelos Diferenciais 12 Programa Octave O programa pode ser testado com vários valores dos parâmetros de entrada (y0, v0, tet e dt). Os valores de y0 e v0 devem ser positivos (o y0 pode ser zero). O valores de tet devem estar entre 0 e /2. Verificar a importância de dt tomar valores muito pequenos, de forma a garantir que erros cometidos pelas aproximações não sejam muito significativos. Modelo diferencial é mais legível e portanto mais facilmente modificável. Ex: e se considerarmos o atrito: a x =-kv x e a y =-kv y -g

13 2 Dezembro de 2005 Simulação com Modelos Diferenciais 13 Programa Octave c/ Atrito % Inicialização de Variáveis g = 9.8; % aceleração da gravidade y0 = input(" Qual a altura inicial (m)? "); v0 = input(" Qual a velocidade inicial (m/s)? "); tet = input(" Qual o angulo inicial (rad)? "); k = input(" Qual o coeficiente de atrito? "); dt = input(" Qual a precisao (s)? "); dmax = 0; hmax = 0; % distância e altura máxima % Ciclo de Simulação X = [0]; Y = [y0]; i = 1; vx = v0*cos(tet); vy = v0*sin(tet); while Y(i) > 0 i = i+1; X(i) = X(i-1) + vx*dt; Y(i) = Y(i-1) + vy*dt; vx = vx +(-k*vx)*dt; vy = vy +(-k*vy-g)*dt; endwhile % Apresentação de Resultados hmax = max(Y); dmax = X(i); disp("Distância maxima da trajectoria (m):"); disp(dmax); disp("Altura maxima da trajectoria (m):"); disp(hmax); plot(X,Y);


Carregar ppt "2 Dezembro de 2005Simulação com Modelos Diferenciais1 Jorge Cruz DI/FCT/UNL Programação para as Ciências Experimentais 1º Semestre 2005/2006."

Apresentações semelhantes


Anúncios Google