9 van 12

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 11:00
door Rik Speybrouck
ukster schreef: zo 31 okt 2021, 10:32 Testje om jouw excelcorrectie te checken..
onder dezelfde condities:
beginhoogte =100m
horizontaal afschieten met 50m/s
Volgens het pythonprogramma land het projectiel op x=215,8m
test.png
klopt perfect

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 11:03
door ukster
Rik, Python ook iets voor jou?
Het numeriek bepalen van de kogelbaanbeweging is (naast natuurlijk Excel) een mooie gelegenheid om een beetje thuis te raken in pythoncode (Spyder IDE). Dat geeft in elk geval de mogelijkheid resultaten met elkaar te vergelijken, en dus van te leren.

Code: Selecteer alles

@author: Ukster
"""
import math
import numpy as np
import matplotlib.pyplot as plt
M=4.08407044    #massa (kg)
g=9.8066        #gravity (m/s^2]
v=50            #initiele snelheid [m/s]
ang=0           #hoek [degr] met de x-as
k=0.002431593   #drag factor
angr=math.radians(ang)
vx=[v*np.cos(angr)]
vy=[v*np.sin(angr)]

        #drag Force
F=k*v**2

        #calculate initial acceleration component x and y
ax=[-(F*np.cos(angr))/M]
ay=[-g-(F*np.sin(angr))/M]
       
        #calculate for time value on the object
t=[0]
counter=0
dt=0.01
x=[0]
y=[100]

while(y[counter]>=0):
    t.append(t[counter]+dt)
    vx.append(vx[counter]+dt*ax[counter])
    vy.append(vy[counter]+dt*ay[counter])
    x.append(x[counter]+dt*vx[counter])
    y.append(y[counter]+dt*vy[counter])
    angr=math.atan(vy[counter]/vx[counter])
       
        #calculatie magnitude of new velocity
    vel=np.sqrt(vx[counter+1]**2+vy[counter+1]**2)
    F=k*vel**2
    ax.append(-(F*np.cos(angr))/M)
    ay.append(-g-(F*np.sin(angr))/M)
    
    counter=counter+1
  
    plt.plot(x,y,'r')
    plt.ylabel("y (m)")
    plt.xlabel("x (m)")
    plt.show()

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 11:20
door Xilvo
Een hintje voor het programma: Zet die laatste vier regels (plt) weer links tegen de kantlijn.
Ze zitten nu in de while-loop en worden dus heel vaak uitgevoerd. Dat zie je niet maar het maakt het programma onnodig traag!

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 11:25
door ukster
Dank voor de tip Xilvo. dat is interessante info 8-)

Code: Selecteer alles

@author: Ukster
"""
import math
import numpy as np
import matplotlib.pyplot as plt
M=4.08407044    #massa (kg)
g=9.8066        #gravity (m/s^2]
v=50            #initiele snelheid [m/s]
ang=0           #hoek [degr] met de x-as
k=0.002431593   #drag factor
angr=math.radians(ang)
vx=[v*np.cos(angr)]
vy=[v*np.sin(angr)]

        #drag Force
F=k*v**2

        #calculate initial acceleration component x and y
ax=[-(F*np.cos(angr))/M]
ay=[-g-(F*np.sin(angr))/M]
       
        #calculate for time value on the object
t=[0]
counter=0
dt=0.01
x=[0]
y=[100]

while(y[counter]>=0):
    t.append(t[counter]+dt)
    vx.append(vx[counter]+dt*ax[counter])
    vy.append(vy[counter]+dt*ay[counter])
    x.append(x[counter]+dt*vx[counter])
    y.append(y[counter]+dt*vy[counter])
    angr=math.atan(vy[counter]/vx[counter])
       
        #calculatie magnitude of new velocity
    vel=np.sqrt(vx[counter+1]**2+vy[counter+1]**2)
    F=k*vel**2
    ax.append(-(F*np.cos(angr))/M)
    ay.append(-g-(F*np.sin(angr))/M)
    
    counter=counter+1
  
plt.plot(x,y,'r')
plt.ylabel("y (m)")
plt.xlabel("x (m)")
plt.show()

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 16:51
door wnvl1
Volgende stap is dan de projectielen zoals een bal op de grond laten botsen en terugstuiten in plaats dat ze nu door de grond gaan. Moet wel kunnen met een drietal extra lijntjes Python code schat ik.

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 17:11
door Xilvo
wnvl1 schreef: zo 31 okt 2021, 16:51 Volgende stap is dan de projectielen zoals een bal op de grond laten botsen en terugstuiten in plaats dat ze nu door de grond gaan. Moet wel kunnen met een drietal extra lijntjes Python code schat ik.
Inderdaad heel simpel; zodra y<=0 wordt de snelheid in de y-richting van teken omkeren.
Eventueel de snelheden verlagen als het stuiteren niet volledig elastisch gebeurt.

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 17:47
door Rik Speybrouck
Xilvo schreef: zo 31 okt 2021, 17:11
wnvl1 schreef: zo 31 okt 2021, 16:51 Volgende stap is dan de projectielen zoals een bal op de grond laten botsen en terugstuiten in plaats dat ze nu door de grond gaan. Moet wel kunnen met een drietal extra lijntjes Python code schat ik.
Inderdaad heel simpel; zodra y<=0 wordt de snelheid in de y-richting van teken omkeren.
Eventueel de snelheden verlagen als het stuiteren niet volledig elastisch gebeurt.
is de snelheid bij inslag niet gelijk aan wortel(Vx^2+VY^2) of ben ik mis. voor wie mijn excel file heeft opgevraagd zijn cellen b 33 b34

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 17:56
door Xilvo
Rik Speybrouck schreef: zo 31 okt 2021, 17:47 is de snelheid bij inslag niet gelijk aan wortel(Vx^2+VY^2) of ben ik mis.
Dat klopt. Als het stuiteren elastisch is blijft de absolute snelheid hetzelfde. vx blijft gelijk, de absolute waarde van vy blijft hetzelfde maar die keert van teken om.

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 17:59
door Rik Speybrouck
Xilvo schreef: zo 31 okt 2021, 17:56
Rik Speybrouck schreef: zo 31 okt 2021, 17:47 is de snelheid bij inslag niet gelijk aan wortel(Vx^2+VY^2) of ben ik mis.
Dat klopt. Als het stuiteren elastisch is blijft de absolute snelheid hetzelfde. vx blijft gelijk, de absolute waarde van vy blijft hetzelfde maar die keert van teken om.
v y wordt toch in kwadraat gezet is dus direct +

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 18:01
door Rik Speybrouck
de tangens van de dalingshoek = vy/vx, de boogtan heeft de dalingshoek

Re: Projectielbaan

Geplaatst: zo 31 okt 2021, 18:03
door Xilvo
Rik Speybrouck schreef: zo 31 okt 2021, 18:01 de boogtan heeft de dalingshoek
Klopt. Die verandert ook van teken als vy van teken verandert. Het dalen wordt stijgen.

Re: Projectielbaan

Geplaatst: wo 03 nov 2021, 10:15
door Rik Speybrouck
In aansluiting met mijn excel file van verleden wil ik nog volgens probleem on line zetten. De afstand x om de resterende hoogte quasi op nul te krijgen moet dus bij benadering gebeuren. Volgens artikel in bijlage bestaat er een manier om op basis van De Lambert W functie de waarde X te idealiseren om y perfect op nul te krijgen. Ik heb alles even uitgewerkt en op papier gezet. Ik kom echter niet op de waarde die zou moeten bereikt worden namelijk +/- 232.60 meter. Ik heb ook de basiswaarden van dit artikel uitgewerkt en ze sluiten fractioneel aan met mijn benadering dus dit in niet de kwestie . De ideale x berekenen op basis van de voorgestelde formules lukt echter niet.

Re: Projectielbaan

Geplaatst: do 04 nov 2021, 10:30
door ukster
Wat betreft de horizontale afstand zit er ergens toch een foutje in een excel cel 8-)
De fout is ongeveer 2m in het hoogste punt en 4m in het landingspunt
data
data 1227 keer bekeken

Re: Projectielbaan

Geplaatst: do 04 nov 2021, 11:23
door Rik Speybrouck
ukster schreef: do 04 nov 2021, 10:30 Wat betreft de horizontale afstand zit er ergens toch een foutje in een excel cel 8-)
De fout is ongeveer 2m in het hoogste punt en 4m in het landingspunt
data.png
zal aan low angle toepassing liggen denk ik hoe hoger de hoek hoe verder ik kom in vergelijking met numerieke benadering. Jammer dat die formule niet werkt met lambert w functie. Ik heb ook een file met proportionele weerstand waar je op dezelfde manier moeten werk uiteraard met andere formules en daar werkt het perfect. IK zie het in ieder geval niet.

Re: Projectielbaan

Geplaatst: do 04 nov 2021, 14:49
door InfiniTies
Voor wie geinteresseerd is, een verhandeling uit 1977:

https://www.researchgate.net/publicatio ... _the_speed