Jump to content

Ballistik program


Greenment

Recommended Posts

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

Link to comment
Share on other sites

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:

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.

Link to comment
Share on other sites

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:

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

Link to comment
Share on other sites

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:

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)

Link to comment
Share on other sites

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:

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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... :D

Tidigast i v 1.1 i så fall.

 

/J

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Bah, ta inte i så ni skiter ned er. :Malaj:

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

Link to comment
Share on other sites

Detta låter alldeles förträffligt!

 

Får du in data för slpsgr/rökg/sgr till GRG?... :blink:

<garv/> :huh:

 

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. :D

 

/J

Link to comment
Share on other sites

"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

Link to comment
Share on other sites

"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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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?

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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):

function power(x, y) {
 if (y > 1) {
return x * power(x, y - 1);
 } else {
return x;
 }
}

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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.

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...