8 van 12
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 12:18
door ukster
Da's een hoop werk geweest. Dank voor deze inspanning.
Even met de gebruikelijke definitie van k:
- k-factor 1245 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)
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()
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 12:28
door Rik Speybrouck
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.....
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 12:39
door ukster
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?
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 13:33
door Rik Speybrouck
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=kv
2
in jouw geval: Fd=mkv
2
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.
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 18:27
door ukster
Dit kan toch niet?
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()
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 18:37
door Rik Speybrouck
ik ken niets van zulke dingen, mijn uitwerking is helemaal met pen en papier en excel
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 18:42
door Xilvo
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?
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 18:42
door ukster
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
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 18:43
door ukster
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
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 18:59
door ukster
Het gaat misschien wat ver, maar het zou me niet verbazen als met opzet 'cruciale code' ontbreekt in zo'n youtubevideo
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 19:01
door Xilvo
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?
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 19:05
door Xilvo
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()
Re: Projectielbaan
Geplaatst: za 30 okt 2021, 19:19
door ukster
Dat ziet er meteen een stuk geloofwaardiger uit..
Dank daarvoor
Re: Projectielbaan
Geplaatst: zo 31 okt 2021, 07:56
door Rik Speybrouck
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 +
Re: Projectielbaan
Geplaatst: zo 31 okt 2021, 10:32
door ukster
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 1060 keer bekeken