Matematické Fórum

Nevíte-li si rady s jakýmkoliv matematickým problémem, toto místo je pro vás jako dělané.

Nástěnka
22. 8. 2021 (L) Přecházíme zpět na doménu forum.matweb.cz!
04.11.2016 (Jel.) Čtete, prosím, před vložení dotazu, děkuji!
23.10.2013 (Jel.) Zkuste před zadáním dotazu použít některý z online-nástrojů, konzultovat použití můžete v sekci CAS.

Nejste přihlášen(a). Přihlásit

#1 20. 03. 2016 11:27

PanTau
Příspěvky: 819
Škola: Plzeň :-)
Pozice: Student zoufalej z matiky
Reputace:   
 

Numerická integrace trajektorie střely

Ahoj, řeším do školy příklad, v podstatě vůbec nevím oč tam jde...

Jde o to, že dělám program, ve kterém mám 2 body.

Střelec a cíl.

Střelec a cíl má pozici X, Y a výšku(v m) ve které se nachází.

Střelec střílí na cíl.

Výstřel probíhá následovně:

Zadám:

– azimut (ve stupních)
– elevaci (ve stupních)
– počáteční rychlost střely (v m/s).

Mám za úkol vypočítat body trajektorie (na střelu působí vítr).

Řešení úkolu má probíhat takhle:

http://i.imgur.com/6LuJ56N.png


Může mi někdo poradit co s tím, vůbec nevím co tam s tím dělat...

Děkuji všem za rady.


Má kouzelná buřinka asi nefunguje.... Jinak bych tu nebyl...
Reputace slušností...

Předem všem děkuji za Vaše rady..

Offline

  • (téma jako vyřešené označil(a) PanTau)

#2 20. 03. 2016 14:44

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: Numerická integrace trajektorie střely

Opakovane se dosazute do tech rovnic

pokus o pseudokod

Code:

t=0
v(0)=...
x(0)= ...
delta_t=0.01

for t in (0,tmax)
   t=t+delta_t
   v(t+delta_t)= ....
   x(t+delta_t)=x(t)+delat_t*v(t)

plot (x(t))

Offline

 

#3 20. 03. 2016 15:17

PanTau
Příspěvky: 819
Škola: Plzeň :-)
Pozice: Student zoufalej z matiky
Reputace:   
 

Re: Numerická integrace trajektorie střely

↑ kaja.marik:
Ahoj Kájo, děkuji za pomoc, mám k dispozici kód z matlabu (to jsem měl asi vložit do dotazu), bohužel mu vůbec nerozumím.

http://forum.matweb.cz/viewtopic.ph … 21#p510321

Nechápu jak může být počáteční rychlost, rychlost větru,atd. definovaná jako vektor

Code:

v0 = [100, 0, 100];

Má kouzelná buřinka asi nefunguje.... Jinak bych tu nebyl...
Reputace slušností...

Předem všem děkuji za Vaše rady..

Offline

 

#4 20. 03. 2016 15:43

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: Numerická integrace trajektorie střely

Rychlost (pocatecni i jakokoliv jina) ma nejakou x-ovou, y-ovou a z-ovou komponentu. tj. je to vektor. Stejne tak rychlost vetru. Kdyz to hodne fouka, je rozdil, jestli jdu proti vetru nebo s vetrem v zadech.

Offline

 

#5 21. 03. 2016 11:07 — Editoval PanTau (21. 03. 2016 11:30)

PanTau
Příspěvky: 819
Škola: Plzeň :-)
Pozice: Student zoufalej z matiky
Reputace:   
 

Re: Numerická integrace trajektorie střely

↑ kaja.marik:

Ahoj Kájo.

Děkuji, chápu to, mohl bys mi ještě prosím poradit s následujícím?:

Zadám úhly azimut[°], elevaci[°] a počáteční rychlost střely (v m/s).

– azimut (ve stupních, 0 = východ, 90 = sever, –90 = jih, 180 = západ),
– elevaci (ve stupních, 0 = vodorovně, 90 = svisle),

Jakým způsobem tyto tři hodnoty přepočítám na vektory, abych s nima mohl dále pracovat ve svém kódu?

Takhle vypadá moje inicializace vektorů pře začátkem výpočtu:

Code:

        // doba simulace [s]
        float T = 30;

        // casovy krok simulace [s]
        float deltaT = 0.01f;

        //rychlost vetru [m/s]
        Vector3 vw = new Vector3(0, 10, 0);

        //gravitacni zrychleni [m/s^2]
        Vector3 g = new Vector3(0, 0, -10);

        //pocatecni rychlost [m/s]
        Vector3 vx = new Vector3(100, 0, 100);

        //odpor naboje ve vzduchu [1/s]
        float c = 0.05f;

        //pocatecni poloha [m]
        Vector3 px = new Vector3(0, 0, 0);

Vstupní úhly mají nějaký vliv na počáteční rychlost, je to tak? Ale jaký?

EDIT:

Tedy podle mého uvážení, se změní pouze počáteční rychlost. Ale, jak?


Má kouzelná buřinka asi nefunguje.... Jinak bych tu nebyl...
Reputace slušností...

Předem všem děkuji za Vaše rady..

Offline

 

#6 21. 03. 2016 19:26

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: Numerická integrace trajektorie střely

Nejak takto:

Code:

v(0)=(v*cos(elevace)*cos(azimut),v*cos(elevace)*sin(azimut),v*sin(elevace))

Offline

 

#7 21. 03. 2016 21:05

PanTau
Příspěvky: 819
Škola: Plzeň :-)
Pozice: Student zoufalej z matiky
Reputace:   
 

Re: Numerická integrace trajektorie střely

↑ kaja.marik:

Děkuji za odpověď, to vypadá rozumně.

Jednotky (stupeň a m/s) řešit nemusím?

(vše počítám v m/s a stupních)


Má kouzelná buřinka asi nefunguje.... Jinak bych tu nebyl...
Reputace slušností...

Předem všem děkuji za Vaše rady..

Offline

 

#8 22. 03. 2016 12:10

PanTau
Příspěvky: 819
Škola: Plzeň :-)
Pozice: Student zoufalej z matiky
Reputace:   
 

Re: Numerická integrace trajektorie střely

Ahoj, tak jsem to implementoval a jak si to nefunguje :(

Podle mě je problém ve vstupu, tedy ve výpočtu první souřadnice.

Při vstupu :

Azimut: 90.0[°]
Elevace: 50.0[°]
Speed: 100.0[m/s]

Jsou vypočtené hodnoty: http://pastebin.com/0bjqcMDF
(první sloupec je čas simulace).

Počátek je v [x=70,y=83].

http://i.imgur.com/s5woPqL.png


Předpokládal bych že při zadání Azimutu poletí střela kolmo (pro X,Y). Elevace značně ovlivňuje směr letu.

Vítr jsem zadal nulový.

Mohl bys mi prosím ještě poradit?

Algoritmus počítá správně, měl jsem testovací data, na který jsem to porovnával (přímo od vyučujícího).

Vidím to na chybu ve vstupu v

v(0)=(v*cos(elevace)*cos(azimut),v*cos(elevace)*sin(azimut),v*sin(elevace))


Má kouzelná buřinka asi nefunguje.... Jinak bych tu nebyl...
Reputace slušností...

Předem všem děkuji za Vaše rady..

Offline

 

#9 23. 03. 2016 17:21

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: Numerická integrace trajektorie střely

Me to leti na sever. Presne podle azimutu. Viz odkaz https://sagecell.sagemath.org/?z=eJxdjt … ;lang=sage

Code:

t=0
elevace=50
azimut=90
elevace=elevace*pi/180
azimut=azimut*pi/180
v=100
v=vector([v*cos(elevace)*cos(azimut),v*cos(elevace)*sin(azimut),v*sin(elevace)])

x=vector([70,83,0])
delta_t=0.01

for i in range(0,10):
   t=t+delta_t
   x=n(x+v*delta_t)
   v=n(v+vector([0,0,-1])*10-v*0.05*delta_t)
   print (t,x,v)

Code:

Language:

(0.0100000000000000, (70.0000000000000, 83.6427876096865, 0.766044443118978), (0.000000000000000, 64.2466215881696, 66.5661420897419))
(0.0200000000000000, (70.0000000000000, 84.2852538255682, 1.43170586401640), (0.000000000000000, 64.2144982773755, 56.5328590186970))
(0.0300000000000000, (70.0000000000000, 84.9273988083420, 1.99703445420337), (0.000000000000000, 64.1823910282368, 46.5045925891876))
(0.0400000000000000, (70.0000000000000, 85.5692227186244, 2.46208038009524), (0.000000000000000, 64.1502998327227, 36.4813402928930))
(0.0500000000000000, (70.0000000000000, 86.2107257169516, 2.82689378302417), (0.000000000000000, 64.1182246828064, 26.4630996227466))
(0.0600000000000000, (70.0000000000000, 86.8519079637797, 3.09152477925164), (0.000000000000000, 64.0861655704650, 16.4498680729352))
(0.0700000000000000, (70.0000000000000, 87.4927696194843, 3.25602345998099), (0.000000000000000, 64.0541224876797, 6.44164313889876))
(0.0800000000000000, (70.0000000000000, 88.1333108443611, 3.32043989136998), (0.000000000000000, 64.0220954264359, -3.56157768267069))
(0.0900000000000000, (70.0000000000000, 88.7735317986255, 3.28482411454327), (0.000000000000000, 63.9900843787227, -13.5597968938294))
(0.100000000000000, (70.0000000000000, 89.4134326424127, 3.14922614560498), (0.000000000000000, 63.9580893365333, -23.5530169953824))

Offline

 

#10 23. 03. 2016 20:10

PanTau
Příspěvky: 819
Škola: Plzeň :-)
Pozice: Student zoufalej z matiky
Reputace:   
 

Re: Numerická integrace trajektorie střely

↑ kaja.marik:

Ahoj, vypadá to, že mi to začalo fungovat taky, ani nevím proč. Zkusil jsem to přepsat znovu a najednou jde. Asi jsem měl nějaký překlep v kódu. Nevím.

Tak tedy děkuji za pomoc.

Ušetřil jsi mi spousty nervů


Má kouzelná buřinka asi nefunguje.... Jinak bych tu nebyl...
Reputace slušností...

Předem všem děkuji za Vaše rady..

Offline

 

#11 25. 03. 2016 10:58 — Editoval kaja.marik (25. 03. 2016 10:59)

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: Numerická integrace trajektorie střely

S vetrem?

Code:

t=0
elevace=50
azimut=90
azimut_vetru=225
rychlost_vetru=80
b=0.05

elevace=elevace*pi/180
azimut=azimut*pi/180
azimut_vetru=azimut_vetru*pi/180

v=100
v=vector([v*cos(elevace)*cos(azimut),v*cos(elevace)*sin(azimut),v*sin(elevace)])
vw=vector([rychlost_vetru*cos(azimut_vetru),rychlost_vetru*sin(azimut_vetru),0])
x=vector([70,83,0])
delta_t=0.01

for i in range(0,10):
   t=t+delta_t
   x=n(x+v*delta_t)
   v=n(v+vector([0,0,-1])*10+(vw-v)*b*delta_t)
   print (t,x,v)

Offline

 

#12 25. 03. 2016 11:11

PanTau
Příspěvky: 819
Škola: Plzeň :-)
Pozice: Student zoufalej z matiky
Reputace:   
 

Re: Numerická integrace trajektorie střely

↑ kaja.marik:

Děkuji kájo, opravdu to funguje, implementoval jsem to v programu a trajektorie střely vypadají reálně.

Ještě bych se zeptal (tedy spíš ujistil).

Počátek střely (vektor x) má souřadnici Z (tedy výšku), řekněme 500.

Algoritmus se tedy pak změní jen při definici výšky vektoru X z

Code:

x=vector([70,83,0])

na

Code:

x=vector([70,83,500])

? Děkuji


Má kouzelná buřinka asi nefunguje.... Jinak bych tu nebyl...
Reputace slušností...

Předem všem děkuji za Vaše rady..

Offline

 

#13 25. 03. 2016 15:20 — Editoval PanTau (26. 03. 2016 12:48)

PanTau
Příspěvky: 819
Škola: Plzeň :-)
Pozice: Student zoufalej z matiky
Reputace:   
 

Re: Numerická integrace trajektorie střely

Ahoj,

tak jsem vše dal pomocí vašich odpovědí do kupy. Nyní je vše funkční a postup, který jste doporučily funguje.

Děkuji za pomoc.


Má kouzelná buřinka asi nefunguje.... Jinak bych tu nebyl...
Reputace slušností...

Předem všem děkuji za Vaše rady..

Offline

 

#14 27. 03. 2016 20:16

super_panda
Příspěvky: 32
Reputace:   
 

Re: Numerická integrace trajektorie střely

Čaute,

jak pracovali s větrem? Vítr má být třírozměrný vektor, tak že jste generovali všechny 3 složky nebo jste foukali pouze rovně beze sklonu?

Offline

 

#15 27. 03. 2016 20:49

kaja.marik
Veterán
Příspěvky: 1915
Reputace:   57 
 

Re: Numerická integrace trajektorie střely

foukali rovne ...

Offline

 

Zápatí

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson