Projectielbaan

Moderator: physicalattraction

Reageer
Gebruikersavatar
Berichten: 4.541

Re: Projectielbaan

Da's een hoop werk geweest. Dank voor deze inspanning.
Even met de gebruikelijke definitie van k:
k-factor.png
k-factor.png (3.15 KiB) 978 keer bekeken
Met m'n pyhon code kom ik dan op L=224m ,H=59,5m xA=114m
(Jij komt op L=232m, H=60,95m en xA=119,1m)
projectile trajectory.png
voor L is dat toch een verschil van zo'n 8m,voor xA 5m en voor de max hoogte 1,5m
Er zal ergens een foutje in m'n Pythoncode zitten, al weet ik niet waar. misschien zie jij het!

Code: Selecteer alles

import numpy as np
import matplotlib.pyplot as plt
M=4.084070444       #massa (kg)
g=9.81      #gravity (m/s^2]
v=50        #initiele snelheid [m/s]
ang=45      #hoek [degr] met de x-as
k=0.002431593  #drag factor

vx=[v*np.cos(ang/180*np.pi)]
vy=[v*np.sin(ang/180*np.pi)]

#drag Force
F=k*v**2

#calculate initial acceleration component ax and ay
ax=[-(F*np.cos(ang/180*np.pi))/M]
ay=[-g-(F*np.sin(ang/180*np.pi))/M]

#calculate for time value on the object
t=[0]
counter=0
dt=0.01
x=[0]
y=[0]

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])
       
    #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(ang/180*np.pi))/M)
    ay.append(-g-(F*np.sin(ang/180*np.pi))/M)
    counter=counter+1
  
    plt.plot(x,y)
    plt.ylabel("Y [m]")
    plt.xlabel("X (m)")
    plt.show()

Gebruikersavatar
Berichten: 891

Re: Projectielbaan

ukster schreef: za 30 okt 2021, 12:18 Da's een hoop werk geweest. Dank voor deze inspanning.
Even met de gebruikelijke definitie van k:
k-factor.png
Met m'n pyhon code kom ik dan op L=224m ,H=59,5m xA=114m
(Jij komt op L=232m, H=60,95m en xA=119,1m)
projectile trajectory.png
voor L is dat toch een verschil van zo'n 8m,voor xA 5m en voor de max hoogte 1,5m
Er zal ergens een foutje in m'n Pythoncode zitten, al weet ik niet waar. misschien zie jij het!

Code: Selecteer alles

import numpy as np
import matplotlib.pyplot as plt
M=4.084070444       #massa (kg)
g=9.81      #gravity (m/s^2]
v=50        #initiele snelheid [m/s]
ang=45      #hoek [degr] met de x-as
k=0.002431593  #drag factor

vx=[v*np.cos(ang/180*np.pi)]
vy=[v*np.sin(ang/180*np.pi)]

#drag Force
F=k*v**2

#calculate initial acceleration component ax and ay
ax=[-(F*np.cos(ang/180*np.pi))/M]
ay=[-g-(F*np.sin(ang/180*np.pi))/M]

#calculate for time value on the object
t=[0]
counter=0
dt=0.01
x=[0]
y=[0]

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])
       
    #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(ang/180*np.pi))/M)
    ay.append(-g-(F*np.sin(ang/180*np.pi))/M)
    counter=counter+1
  
    plt.plot(x,y)
    plt.ylabel("Y [m]")
    plt.xlabel("X (m)")
    plt.show()
natuurlijk blijven opletten met k ik zit met 0.000595.....

Gebruikersavatar
Berichten: 4.541

Re: Projectielbaan

Ja dat begrijp ik

jouw k is mijn k gedeeld door de massa M

De dragforce is dan ook anders gedefinieerd

in mijn geval: Fd=kv2
in jouw geval: Fd=mkv2

maar dat moet in de berekeningen dan toch verder niet uitmaken?

Gebruikersavatar
Berichten: 891

Re: Projectielbaan

ukster schreef: za 30 okt 2021, 12:39 Ja dat begrijp ik

jouw k is mijn k gedeeld door de massa M

De dragforce is dan ook anders gedefinieerd

in mijn geval: Fd=kv2
in jouw geval: Fd=mkv2

maar dat moet in de berekeningen dan toch verder niet uitmaken?
in de meeste publicaties zie je de k uitgedrukt zoals in mijn berekeningsblad. Je kan in de file natuurlijk deze waarde even overtypen met jouw voorstel. Dit is dan wel de waarde die wordt meegetrokken in heel de berekening. Je kan daarna de voorgestelde waarde herstellen.. Mijn k is duidelijk de balistiche coeficient waar geen verdere parameters meer moeten aan toegevoegd worden.

Gebruikersavatar
Berichten: 4.541

Re: Projectielbaan

Dit kan toch niet?
projectile trajectory.png
ziet iemand een fout in de code?

Code: Selecteer alles

import matplotlib.pyplot as plt
M=1  #massa (kg)
g=9.81   #gravity (m/s^2]
v=450    #initiele snelheid [m/s]
ang=80 #hoek [degr] met de x-as
k=0.002  #drag factor

vx=[v*np.cos(ang/180*np.pi)]
vy=[v*np.sin(ang/180*np.pi)]

        #drag Force
F=k*v**2

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

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])
       
        #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(ang/180*np.pi))/M)
    ay.append(-g-(F*np.sin(ang/180*np.pi))/M)
    counter=counter+1
  
    plt.plot(x,y)
    plt.ylabel("Y [m]")
    plt.xlabel("X (m)")
    plt.show()

Gebruikersavatar
Berichten: 891

Re: Projectielbaan

ik ken niets van zulke dingen, mijn uitwerking is helemaal met pen en papier en excel

Gebruikersavatar
Moderator
Berichten: 9.976

Re: Projectielbaan

ukster schreef: za 30 okt 2021, 18:27 Dit kan toch niet?

ziet iemand een fout in de code?
Ik zie in ieder geval dat de hoek ang nergens ge-update wordt.

Ben je net met Python begonnen?

Gebruikersavatar
Berichten: 4.541

Re: Projectielbaan

Sorry Rik, dit slaat niet op jouw excelfile...die is perfect
ik probeerde wat dingen uit in pythoncode en kreeg dit plaatje te zien..
Mijn gevoel zegt dat zo'n traject omogelijk is, dus moet er een foutje in de code zitten

Gebruikersavatar
Berichten: 4.541

Re: Projectielbaan

Xilvo schreef: za 30 okt 2021, 18:42
ukster schreef: za 30 okt 2021, 18:27 Dit kan toch niet?

ziet iemand een fout in de code?
Ik zie in ieder geval dat de hoek ang nergens ge-update wordt.

Ben je net met Python begonnen?
Dat zal het zijn!

Spider IDE
deze code kwam ik tegen op youtube
zelf geen programmeerervaring

Gebruikersavatar
Berichten: 4.541

Re: Projectielbaan

Het gaat misschien wat ver, maar het zou me niet verbazen als met opzet 'cruciale code' ontbreekt in zo'n youtubevideo

Gebruikersavatar
Moderator
Berichten: 9.976

Re: Projectielbaan

ukster schreef: za 30 okt 2021, 18:59 Het gaat misschien wat ver, maar het zou me niet verbazen als met opzet 'cruciale code' ontbreekt in zo'n youtubevideo
Komt die code uit een YT filmoje?

Gebruikersavatar
Moderator
Berichten: 9.976

Re: Projectielbaan

Hier de code wat netter gemaakt.

Het enige essentiële verschil is de regel waarin de hoek angr opnieuw berekend wordt (angr=np.arctan(vy/vx))

Code: Selecteer alles

import matplotlib.pyplot as plt
M=1  #massa (kg)
g=9.81   #gravity (m/s^2]
v=450    #initiele snelheid [m/s]
ang=80 #hoek [degr] met de x-as
k=0.002  #drag factor

angr=np.deg2rad(ang) # hoek in rad
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
tr=[0]
counter=0
dt=0.05
x=0
y=0
xr=[x]
yr=[y]
while(y>=0):
    vel=np.sqrt(vx**2+vy**2) # worteltrekken is overbodig, hierna 
    F=k*vel**2 #calculatie magnitude of new velocity
    ax=-F*np.cos(angr)/M
    ay=-g-F*np.sin(angr)/M
    vx+=dt*ax
    vy+=dt*ay
    x+=dt*vx
    y+=dt*vy       
    t+=dt
    tr.append(t)
    xr.append(x)
    yr.append(y)
    angr=np.arctan(vy/vx)
    counter=counter+1
  
plt.plot(xr,yr)
plt.ylabel("Y [m]")
plt.xlabel("X (m)")
plt.show()

Gebruikersavatar
Berichten: 4.541

Re: Projectielbaan

projectile trajectory.png
Dat ziet er meteen een stuk geloofwaardiger uit..
Dank daarvoor

Gebruikersavatar
Berichten: 891

Re: Projectielbaan

ukster schreef: za 30 okt 2021, 19:19 projectile trajectory.png
Dat ziet er meteen een stuk geloofwaardiger uit..
Dank daarvoor
er moet een kleine correctie gebeuren aan de excel file maar deze is alleen maar van toepassing wanneer je met een beginhoogte werkt. cel b 54 is een optelling en aftrekking van waarden. Je moet er cel b53 (beginhoogte deze is gelinkt aan cel b6) aan toevoegen in +

Gebruikersavatar
Berichten: 4.541

Re: Projectielbaan

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
test.png (9.89 KiB) 793 keer bekeken

Reageer