Vous êtes sur la page 1sur 8

UNIVERSIDAD DE TARAPACÁ

ESCUELA UNIVERSITARIA DE INGENIERÍA MECÁNICA;


EUDIM

Ingeniería Civil Mecánica

“PROBLEMA 4: MOVIMIENTO DE UN PROYECTIL”

Alumno:
Hugo Muñoz Valdivia

Correo electrónico:
Hugo.gamv@gmail.com

Profesor:
Cristóbal Castro

Asignatura:
EFP: “MECANICA COMPUTACIONAL”

ARICA-CHILE
2019
2
DESARROLLO

1. Graficar la trayectoria del proyectil hasta que impacte la superficie


definida por y = 0.

Para graficar las curvas con la trayectoria del proyectil, se necesitó utilizar la
librería “matplotlib.pylab” y definir las ecuaciones del lanzamiento parabólico.
Las líneas involucradas para el desarrollo de una curva corresponden a las
líneas de código 8 hasta la línea 24 (Figura 1), donde se puede observar que
para el desarrollo de este, se definieron las variables gravedad (g), ángulo de
inclinación (teta), punto de partida (x0, y0) y velocidad inicial (v0).

Para definir la segunda curva, se utiliza la misma secuencia que en la


anterior, solo que la velocidad que este alcanza viene definido por la distancia
máxima que recorre el otro lanzamiento. El desarrollo de esta curva
contempla la línea de código 26 más la línea 31 hasta la numero 41.

Figura 1.

3
Una vez definida las funciones del lanzamiento parabólico, es necesario
definir el “suelo” es decir cuándo y(t) = 0, para esto se realizaron la secuencia
de comandos presente en la figura 2.

Figura 2.

Ya insertadas todas las funciones, se aplica la secuencia de códigos


presente en la figura 3. de esa forma obteniéndose el gráfico 1.

Figura 3.

4
Grafico 1.

2. Evaluar el punto de máxima altitud

El punto de máxima altitud viene definido en las secuencia 25 y 42, donde


el resultado de este es puesto en pantalla (Figura 4) gracias a la línea de
comando 66 para el gráfico 1 y línea 73 para el segundo, estas líneas se
pueden observar en la figura 1 y 3.

Figura 5.

5
3. Calcular el tiempo de vuelo

De la misma forma que el punto anterior, se define el tiempo de vuelo


máximo, donde se asume que y=0, ya que, el proyectil estaría tocando el
suelo. Esta línea se observa en la posición 21 y 38 para el primer y
segundo grafico respectivamente, donde fueron evaluadas con
anterioridad, ya que, el gráfico requería este valor para así no obtener
valores negativos en el eje “y”. El resultado del tiempo de vuelo para cada
grafica está representado en la figura 5.

4. Encontrar un ángulo y velocidad inicial para llegar al punto (x1,y1)

Para encontrar la velocidad inicial para llegar al punto (x1,y1), es decir, el


punto final de la primera parábola, es necesario definir la segunda en
función de estos puntos. En la figura 1, la línea número 35, se define la
nueva velocidad de la segunda parábola, donde mediante la ecuación de
movimiento y reemplazando el valor de “xmax” se obtiene la velocidad. El
valor que necesita la velocidad inicial para llegar al punto (x1, y1) es
aproximadamente de 120,91 (m/s), este valor queda impreso en la figura
5.

5. Es posible llegar al punto (x1,y1) en menos tiempo? Ejemplifique.

Sí, es posible llegar al punto (x1,y1) en menor tiempo, ya que, como se


muestra en el grafico 1 ambas curvas terminan en el mismo punto. A
diferencia que la curva azul posee un mayor tiempo en suspensión en el
aire que la curva roja, esto dado a que sus ángulos de inclinación y
velocidades son distintas.

6
El código desarrollado para resolver el problema viene dado por el siguiente
extracto de líneas:

import numpy as np
import matplotlib.pylab as plt
def main():
#datos#
g=9.81 #Valor de la gravedad (m/s^2)
teta=35.0 #Angulo de inclinación del lanzamiento
(x0,y0)=(0.0,0.0) #Valores de partida
v0=100.0 #Velocidad inicial del lanzamiento (m/s)

#ecuaciones#

v0x=v0*np.cos(np.deg2rad(teta)) #Velocidad inicial en el eje x (m/s)


v0y=v0*np.sin(np.deg2rad(teta)) #Velocidad inicial en el eje y (m/s)
tiemposuelo= ((v0y/g)**2.0 + (2.0*y0/g))**(0.5) + v0y/g #tiempo final (s)
t=np.linspace(0.0,tiemposuelo,20.0) #Valores de tiempo (s)
x=x0+(v0x*t) #Distancia en el eje x a cierto tiempo (m)
y=y0+(v0y*t)-((0.5)*g*(t**2.0)) #Distancia en el eje y a cierto tiempo (m)
ymax=((v0**2.0)*np.sin(np.deg2rad(teta))*np.sin(np.deg2rad(teta)))/(2.0*g) #Altura máxima (m)
xmax=x0+(v0x*tiemposuelo) #Distancia máxima suelo (m)
tymax=(((ymax*2)/g)**0.5) #Tiempo transcurrido a la altura máxima (s)
xymax=x0+(v0x*tymax) #Distancia recorrida a la altura máxima (m)
###############EN CASO DE QUERER EVALUAR DOS
GRAFICOS#############################

omega=20.0 #Angulo de inclinación del lanzamiento


(a0,b0)=(0.0,0.0) #Valores de partida

#ecuaciones2#
v01=((xmax*g/(np.sin(np.deg2rad(2*omega)))))**0.5 #Velocidad necesaria para llegar a xmax
v0a=v01*np.cos(np.deg2rad(omega)) #Velocidad inicial en el eje x (m/s)
v0b=v01*np.sin(np.deg2rad(omega)) #Velocidad inicial en el eje y (m/s)
tiemposuelo1= ((v0b/g)**2.0 + (2.0*b0/g))**(0.5) + v0b/g #tiempo final (s)
t1=np.linspace(0.0,tiemposuelo1,20.0) #Valores de tiempo (s)
a=a0+(v0a*t1) #Distancia en el eje x a cierto tiempo (m)
b=b0+(v0b*t1)-((0.5)*g*(t1**2.0)) #Distancia en el eje y a cierto tiempo (m)
bmax=((v01**2.0)*np.sin(np.deg2rad(omega))*np.sin(np.deg2rad(omega)))/(2.0*g) #Altura
máxima (m)
amax=a0+(v0a*tiemposuelo1) #Distancia máxima suelo (m)
tbmax=(((bmax*2)/g)**0.5) #Tiempo transcurrido a la altura máxima (s)
abmax=x0+(v0a*tbmax) #Distancia recorrida a la altura máxima (m)

7
#ecuacion suelo#
w1=0.0
w0=0.0
q1=4.0
q0=0.0
m=(w1-w0)/(q1-q0)
q=np.linspace(0.0,1000.0,20.0)
n=0
w=(m*q)+n
#grafico#

plt.figure(1)
plt.clf()
plt.plot(x,y,'b-*',label='Lanzamiento 1')
plt.plot(a,b,'r-o',label='Lanzamiento 2')
plt.plot(q,w,'y-', label='suelo')
plt.ylabel('Altura de desplazamiento, y [m]')
plt.xlabel('Longitud de desplazamiento, x [m]')
print ('El tiempo de vuelo es de',tiemposuelo)
print ('El alcance maximo del objeto es', xmax)
print ('La altura máxima que alcanza el objeto es', ymax)
print ('El tiempo que demora en alcanzar la altura maxima es', tymax)
print ('La distancia que recorre al alcanzar la altura maxima es', xymax)
print ('---------------------------------')
print ('El tiempo que demora en tocar el suelo es',tiemposuelo1)
print ('El alcance máximo del objeto es', amax)
print ('La velocidad que necesita para llegar a xmax es', v01)
print ('La altura máxima que alcanza el objeto es', bmax)
print ('El tiempo que demora en alcanzar la altura maxima es', tbmax)
print ('La distancia que recorre al alcanzar la altura maxima es', abmax)
plt.text(xymax,ymax,'Punto de máxima altura')
plt.text(abmax,bmax,'Punto de máxima altura')
plt.legend()
plt.grid()
plt.title('Curva de lanzamiento parabolico')

return 0

main()

Vous aimerez peut-être aussi