Help - Search - Members - Calendar
Full Version: Ballistik program
SoldF.com Forum > Soldathemmet - Icke militära Forum, C Ing > Dagrummet
Greenment
Som rubriken säger, jag söker efter ett bra ballistik program, med meter, m/s, o.s.v.
Hittat massa skit som är för jänkare, men jag är ju inte jänkare!

Någon själ som vet jag kan få tag i det?
5.gif
J-Star
Om du säger vilka formler jag skall använda så kan jag slänga ihop ett program åt dig som du kan ha i mobilen eller en handdator som kan köra Java.

/J
cf112
Inte möjligtvis till en Symbian manick? SE.P910??...
Låter intressant...
J-Star
QUOTE (cf112 @ Jan 14 2006, 10:31 ) *
Inte möjligtvis till en Symbian manick? SE.P910??...
Låter intressant...

Inga som helst problem! 910:an kör Java alledes utmärkt. smile.gif

/J
eskil
QUOTE (J-Star @ Jan 14 2006, 09:47 ) *
Om du säger vilka formler jag skall använda så kan jag slänga ihop ett program åt dig som du kan ha i mobilen eller en handdator som kan köra Java.

Om jag inte har lyckats förtränga min diff&trans helt så borde det vara något i den här stilen:
CODE
dV/dt = - K*v^2 - sin(a)*g
da/dt = arcsin(dV/dt / g)

Där K*v^2 är luftmotståndet (K är ett statiskt uttryck med luftdensiteten, projektilens tvärsnitt och hela den baletten), g är gravitationskonstanten och a är projektilbanans vinkel.
Dessa båda ekvationer bildar tillsammans en ickelinjärt andragrads differentialekvation. Jag kan inte inse att den skulle kunna ha någon analytisk lösning, men det går bra att lösa den numeriskt.
J-Star
QUOTE (eskil @ Jan 14 2006, 12:46 ) *
QUOTE (J-Star @ Jan 14 2006, 09:47 ) *
Om du säger vilka formler jag skall använda så kan jag slänga ihop ett program åt dig som du kan ha i mobilen eller en handdator som kan köra Java.

Om jag inte har lyckats förtränga min diff&trans helt så borde det vara något i den här stilen:
CODE
dV/dt = - K*v^2 - sin(a)*g
da/dt = arcsin(dV/dt / g)

Där K*v^2 är luftmotståndet (K är ett statiskt uttryck med luftdensiteten, projektilens tvärsnitt och hela den baletten), g är gravitationskonstanten och a är projektilbanans vinkel.
Dessa båda ekvationer bildar tilsammans en ickelinjärt andragrads differentialekvation. Jag kan inte inse att den skulle kunna ha någon analytisk lösning, men det går bra att lösa den numeriskt.

Men nog tusan finns det approximeringar på det där, väl?! Och var hittar jag tabeller på K för olika temp och ammunition?

/J
eskil
QUOTE (J-Star @ Jan 14 2006, 12:48 ) *
Men nog tusan finns det approximeringar på det där, väl?! Och var hittar jag tabeller på K för olika temp och ammunition?

Eskil gräver i gammal Matlab-kod och hittar följande:
CODE
K = (C*rho*A) / 2*m

Där rho är luftens densitet, A är kulans tvärsnittsyta, m är kulans massa och C är ett tabellvärde som beror på kulans form (den är dessutom olika vid över- och underljudsfart). Att massan hamnade i K i stället för i dV/dt beror på att den är konstant. Det gör att K i det här fallet är deacceleration och inte kraft som man vanligtvis brukar använda.

Själva uppgiften som jag gjorde tror jag gick ut på att hitta just approximantioner, men jag lyckades inte hitta någon allmängiltig (som fungerade lika bra på pistoler, gevär och kanoner)
J-Star
QUOTE (eskil @ Jan 14 2006, 15:42 ) *
QUOTE (J-Star @ Jan 14 2006, 12:48 ) *
Men nog tusan finns det approximeringar på det där, väl?! Och var hittar jag tabeller på K för olika temp och ammunition?

Eskil gräver i gammal Matlab-kod och hittar följande:
CODE
K = (C*rho*A) / 2*m

Där rho är luftens densitet, A är kulans tvärsnittsyta, m är kulans massa och C är ett tabellvärde som beror på kulans form (den är dessutom olika vid över- och underljudsfart). Att massan hamnade i K i stället för i dV/dt beror på att den är konstant. Det gör att K i det här fallet är deacceleration och inte kraft som man vanligtvis brukar använda.

Själva uppgiften som jag gjorde tror jag gick ut på att hitta just approximantioner, men jag lyckades inte hitta någon allmängiltig (som fungerade lika bra på pistoler, gevär och kanoner)

Tja... hjälper fortfarande inte. Behöver C... och vill inte tvinga en mobiltelefon lösa ickelinjära diff-ekv. numeriskt, speciellt som det kan vara lite si och så med stödet för flyt-tal på lite äldre telefoner som T610/T630.

/J
Greenment
hehe, tror nog programmet blir populärt ifall ni får till en..

lycka till! biggrin.gif
J-Star
Ok, jag kollat runt lite granna. Börjar få en uppfattning om vad som krävs för att räkna ut kulbana. Det ser ut som att det hela är lösbart.

Notera att om jag får detta att funka så kommer det dock inte att stödja de gamla SonyEricsson-telefonerna T610, T630 och Z600. Det blir för mycket trassel att försöka få ordning på beräkningarna med enbart heltal att tillgå. Men från och med SE Z1010 så går det bra. Vad gäller andra tillverkare så är kravet att telefonen skall stödja Java med MIDP 2.0. Kolla specifikationerna för att få veta om just din nalle/handdator fixar detta.

OBS OBS OBS: Spring inte och byt telefon på direkten nu bara för det här. Jag vet ännu inte om det hela kan lyckas.

Ett par frågor:

1) Vad är det ni förväntar er att få ut ifrån programmet? Vilka frågor skall det besvara?

2) Var kan jag få tag på tabeller om ballistisk koefficient och kulvikt för ammunition? Norma har allt upplagt snyggt och fint på sin hemsida. Men andra då? Vilka tillverkare bör programmet stödja?

3) Andra tankar och funderingar på hur programmet bör vara.

/J
Greenment
Utöver det som du nämde är ju och få in en räknare för avstånds bedömning..

MAS , A =M/S , Målets bredd i meter / Storlek (i streck)

Skjut tabell.
m.m... biggrin.gif
J-Star
QUOTE (Greenment @ Jan 15 2006, 13:03 ) *
Utöver det som du nämde är ju och få in en räknare för avstånds bedömning..

MAS , A =M/S , Målets bredd i meter / Storlek (i streck)

Skjut tabell.
m.m... biggrin.gif

Tidigast i v 1.1 i så fall.

/J
scattergun
Annars har ju diverse tillverkare redan gjort program för detta....

Horus har ett program för Palm, som korresponderar med deras olika riktmedel.

Nightforce har ett annat....

Lex Talus ett annat....

Dessutom finns ett program som heter Exball, som tydligen ska funka bra....
J-Star
QUOTE (scattergun @ Jan 16 2006, 07:42 ) *
Annars har ju diverse tillverkare redan gjort program för detta....

Horus har ett program för Palm, som korresponderar med deras olika riktmedel.

Nightforce har ett annat....

Lex Talus ett annat....

Dessutom finns ett program som heter Exball, som tydligen ska funka bra....

Och en snabb titt visar att alla dessa:

1) Kostar pengar, ofta en rejäl slant.
2) Kräver en handdator eller en hel PC.
3) Är ifrån det enda land i världen med en officiell mätstandard som inte använder sig av SI.

/J
scattergun
Ja det förståss, men lasern går väl att ställa om i yards va?
....men ett enkelt program i Java är ju desto mera välkommet då!!
J-Star
Yesssss... genombrott! Jag har hittat en skitbra resurs på nätet som länkar till all den matte - samt exempel-program - som behövs för det här programmet.

För den matematiska masochisten... varsågod och stånga huvudet mot det här: http://www.eskimo.com/~jbm/index.html

/J
106
Det här låter som ett projekt som kan bli precis hur krångligt som helst.
Egentligen borde man väl även få med kulans rotation?

edit: tårta på tårta
Fredriksson
Jo, rotationsavdriften vid alla förekommande temperaturer är extremt viktig att få med..

Säger bara GOOD LUCK med programmerandet! :P
J-Star
Bah, ta inte i så ni skiter ned er. biggrin.gif
Eller snarare: jag tänker inte ta i så jag skiter ned mig.

Första utkast:

Under ett menyalternativ anger du gevär + ammunitionskombinationer. För varje sådan anger du:

1) Gevärets siktlinje
2) Avstånd du sköt in vapnet på.
3) Mynningshastighet
4) Vilken ammunition du använder ifrån en lista, alternativt matar in ballistisk koefficient.

När det är dags att skjuta matar du in:

1) Vilken gevärs/ammunitionskombo du använder
2) Vindstyrka/riktning
3) Målets bedömda avstånd.

Resultatet ut är avgivelse om hur du skall rikta i förhållande till målet för att få träff.

Utrymme för förbättingar:

1) Ta hänsyn till höjdvinkel
2) Ta hänsyn till väder (temp, luftrryck)
3) Angivande av avvikelser i streck istället för avstånd.
4) Avståndsbedömning i form av inmatning av streck/målbredd.

/J
cf112
Detta låter alldeles förträffligt!

Får du in data för slpsgr/rökg/sgr till GRG?... 6n.gif
J-Star
QUOTE (cf112 @ Jan 18 2006, 18:29 ) *
Detta låter alldeles förträffligt!

Får du in data för slpsgr/rökg/sgr till GRG?... 6n.gif

<garv/> biggrin.gif

Tja... leta upp v_0 (d.v.s. mynningshastighet för projektilerna) och exempel på projektilbanor så kan jag testa att få fram ballistisk koefficient för dem. biggrin.gif

/J
J-Star
"It's amazing how a weekend hack
can take up all your free time for a month
".
- Joel Ray "Piquan" Holveck, skapare av Vigor

Dra mig långsamt i nian med en taggtrådsklädd dildo... det här blir bara värre och värre.

Matten börjar som sagt falla på plats. Men då visar det sig att Java Micro Edition - i alla dess versioner - saknar funktionen "Upphöjt till", d.v.s. en av de grundläggande operationer som behövs i ballistikberäkningen. Nu blir jag tvungen att använda ett tredjeparts matte-bibliotek för att lösa detta.

Fördel:
- Detta gör att propgrammet - tvärt emot vad jag sade tidigare - kanske kan fungera på en T610/T630.

Nackdel:
- Nu tar det tid att beräkna en kulbana. Nu blir jag kanske tvungen att fuska och låta telefonen koppla upp sig mot en server som gör den svåra matten istället.

/J
UAV
QUOTE (J-Star @ Jan 22 2006, 10:50 ) *
"It's amazing how a weekend hack
can take up all your free time for a month
".
- Joel Ray "Piquan" Holveck, skapare av Vigor

Dra mig långsamt i nian med en taggtrådsklädd dildo... det här blir bara värre och värre.

Matten börjar som sagt falla på plats. Men då visar det sig att Java Micro Edition - i alla dess versioner - saknar funktionen "Upphöjt till", d.v.s. en av de grundläggande operationer som behövs i ballistikberäkningen. Nu blir jag tvungen att använda ett tredjeparts matte-bibliotek för att lösa detta.

Fördel:
- Detta gör att propgrammet - tvärt emot vad jag sade tidigare - kanske kan fungera på en T610/T630.

Nackdel:
- Nu tar det tid att beräkna en kulbana. Nu blir jag kanske tvungen att fuska och låta telefonen koppla upp sig mot en server som gör den svåra matten istället.

/J


Upphöjt till görs ju ganska lätt med rekursion. Jag har bara läst standard-Java men en metod som anropar sig själv är väl ingen omöjlighet i Java Micro Edition?
J-Star
QUOTE (UAV @ Jan 25 2006, 12:24 ) *
Upphöjt till görs ju ganska lätt med rekursion. Jag har bara läst standard-Java men en metod som anropar sig själv är väl ingen omöjlighet i Java Micro Edition?

Kan ju förvisso testa det... men hur många anrop snackar vi då om? Vill inte spränga stacken.

/J
UAV
QUOTE (J-Star @ Jan 25 2006, 14:50 ) *
QUOTE (UAV @ Jan 25 2006, 12:24 ) *

Upphöjt till görs ju ganska lätt med rekursion. Jag har bara läst standard-Java men en metod som anropar sig själv är väl ingen omöjlighet i Java Micro Edition?

Kan ju förvisso testa det... men hur många anrop snackar vi då om? Vill inte spränga stacken.

/J


Det vet nog du bäst som känner till formlerna. Borde inte bli så många, men minnet sviker mig. Hur klara processorn flyttal och dylikt?
J-Star
QUOTE (UAV @ Jan 25 2006, 15:06 ) *
QUOTE (J-Star @ Jan 25 2006, 14:50 ) *

QUOTE (UAV @ Jan 25 2006, 12:24 ) *

Upphöjt till görs ju ganska lätt med rekursion. Jag har bara läst standard-Java men en metod som anropar sig själv är väl ingen omöjlighet i Java Micro Edition?

Kan ju förvisso testa det... men hur många anrop snackar vi då om? Vill inte spränga stacken.

/J

Det vet nog du bäst som känner till formlerna. Borde inte bli så många, men minnet sviker mig. Hur klara processorn flyttal och dylikt?

Ok, för att förtydliga: Hur många rekursiva anrop blir det för att göra en "upphöjt till"-operation?

Kör man Java MIDP 1.0 (T160/T630) så finns inte flyttal alls. MIDP 2.0 har både float och double men inte "Upphöjt till". Och mobiltelefonprocessorer är ju inte direkt gjorda för att tugga siffror.

/J
eskil
QUOTE (J-Star @ Jan 25 2006, 18:53 ) *
Ok, för att förtydliga: Hur många rekursiva anrop blir det för att göra en "upphöjt till"-operation?

Om det bara är frågan om positiva heltalsexponenter så är svaret lika många rekursioner som värdet på exponenten.

Exempel (i pseudokod eftersom jag inte kan java):
CODE
function power(x, y) {
  if (y > 1) {
    return x * power(x, y - 1);
  } else {
    return x;
  }
}
J-Star
QUOTE (eskil @ Jan 25 2006, 19:56 ) *
QUOTE (J-Star @ Jan 25 2006, 18:53 ) *
Ok, för att förtydliga: Hur många rekursiva anrop blir det för att göra en "upphöjt till"-operation?

Om det bara är frågan om positiva heltalsexponenter...

Tyvärr inte. Decimala exponenter.

/J
UAV
QUOTE (J-Star @ Jan 25 2006, 20:27 ) *
QUOTE (eskil @ Jan 25 2006, 19:56 ) *

QUOTE (J-Star @ Jan 25 2006, 18:53 ) *
Ok, för att förtydliga: Hur många rekursiva anrop blir det för att göra en "upphöjt till"-operation?

Om det bara är frågan om positiva heltalsexponenter...

Tyvärr inte. Decimala exponenter.

/J


Utan att ha tänktt mer än 10 sekunder på detta: logaritmera kanske. Men den funktionen finns kanske inte heller.
J-Star
QUOTE (UAV @ Jan 25 2006, 21:16 ) *
Utan att ha tänktt mer än 10 sekunder på detta: logaritmera kanske. Men den funktionen finns kanske inte heller.

Nope... finns inte.

/J
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.