Jak zmodyfikować trajektorię pocisku na podstawie współczynnika balistycznego?

Nie mam doświadczenia z fizyką związaną z trajektorią pocisku i sposobem jej obliczania. Jestem programistą i pracuję nad kalkulatorem balistycznym dla karabinów. Używam wiki do obliczania trajektorii

Obecnie używam równania w polu „Kąt” wymagany do trafienia współrzędnej (x, y )” Sekcja. To wszystko dobrze, ale nie uwzględnia oporu pocisku ( współczynnik balistyczny ).

Przeszukałem wszystkie ponad próbując dowiedzieć się, jak zastosować współczynnik do tego równania. Jestem naprawdę zagubiony i byłbym bardzo wdzięczny za wszelkie wskazówki w tej sprawie. Może mam lukę w moim zrozumieniu, ale znalazłem wiele innych kalkulatorów i innej dokumentacji na temat trajektorii i współczynnika, ale nic, co łączy się z nimi dwoma razem.

Odpowiedź

Po pierwsze, ta strona Wikipedii „ Obliczanie trajektorii ” jest dość rozczarowująca, nie bardzo dobrze pasuje do tego, jak balistyka broni strzeleckiej jest modelowana i rozwiązana. Dobrą książką na ten temat jest najnowsza balistyka stosowana w strzelectwie dalekiego zasięgu Bryana Litza oraz Witryna z kilkoma pierwszorzędnymi kalkulatorami balistycznymi online, a także kilkoma dobrymi, bardzo dobrymi zapisami to JBM Ballistics . Możesz również zajrzeć do „ GEBC – Kalkulator balistyki zewnętrznej GNU ”, aby uzyskać kod C do zabawy.

Obliczenia balistyczne broni strzeleckiej Odpowiednie do większości celów są wykonywane przez solwery „1 stopień swobody”. Traktują pocisk jako masę punktową, na którą wpływa opór powietrza i grawitacja. Opór powietrza jest zwykle modelowany przez „współczynnik balistyczny”, który jest pojedynczym parametrem, który w mniejszym lub większym stopniu łączy wpływ rozmiaru, masy i oporu pocisku w jedną liczbę (przy okazji Wikipedia „ Współczynnik balistyczny ”jest całkiem przyzwoity).

Ten prosty model fizyczny (swobodny lot w próżni plus opór powietrza) otrzymuje początkową prędkość i pozycję, a następnie całkuje czas (zwykle Runge-Kutta ).

Większy BC wskazuje, że na pocisk wpływa mniejszy opór powietrza niż niższy BC. Są w tym dwa interesujące punkty, jeden oczywisty, drugi ważny, ale mniej intuicyjny:

  1. pocisk z wyższym BC będzie tracił prędkość wolniej, co sprawi, że będzie strzelał bardziej płasko (spada mniej wraz z odległością podróżował)
  2. ponieważ BC mierzy „stopień interakcji między pociskiem a powietrzem”, okazuje się również, że wielkość znoszenia wiatru (jak bardzo pocisk jest wypychany w bok przez boczny wiatr) jest bezpośrednio wpływa na BC punktora

EDYTUJ, aby dodać w odpowiedzi na komentarze OP:

Kiedy patrzysz na (powiedzmy) GEBC kod, prawdopodobnie powinieneś być w stanie zobaczyć, że model fizyczny zawiera następujące punkty:

  • pocisk ma pozycję początkową i prędkość. Są one zwykle wyrażane w układzie współrzędnych, który jest nieruchomy względem strzelca .
  • jedną siłą działającą na pocisk jest grawitacja (zawsze w dół)
  • opcjonalnie można również modelować Coriolisa i inne pseudo-siły, które można uzyskać z tego układu odniesienia, które nie są ściśle bezwładnościowy
  • występuje również siła oporu. W prostym modelu jest to zawsze dokładnie odwrotnie do prędkości pocisku w powietrzu (która będzie prędkością pocisku w układzie współrzędnych strzelca plus prędkość wiatru). Bardziej zaawansowane modele mogą uwzględniać inne mniejsze siły ( siła nośna pocisku, siła boczna z efektu Magnusa itp.), ale te inne siły są oddzielnym ćwiczeniem modelującym. „bc”, o którym mówisz, dotyczy tylko siły oporu, którą pocisk doświadcza w kierunku względnego wiatru nad pocisku.

Siła działająca na pocisk to jej współczynnik oporu razy jego powierzchnia razy ciśnienie dynamiczne (czyli 0,5 rho v ^ 2). Podczas rozwiązywania pozycji pocisku należy w rzeczywistości interesuje nas przyspieszenie wywołane tą siłą, więc masz tę wielkość podzieloną przez masę pocisku. Znasz prędkość „v”, znasz gęstość atmosfery „rho”, musisz znaleźć wartość CD * A / M.

Zauważ, że A jest stałe, M jest stałe, ale CD nie jest. CD zależy od prędkości (właściwie liczby Macha pocisku), a krzywa CD będzie inna dla pocisków o różnych kształtach.

Tutaj pojawia się BC. Zakłada się, że „CD * A / M „krzywa twojego pocisku, ma ten sam kształt i różni się jedynie multiplikatywnym parametrem skalowania (1 / BC) krzywej” CD * A / M „standardowego pocisku referencyjnego.

Najpopularniejszy system BC nazywa się „G1” i używa pocisku referencyjnego, który przypomina pocisk artyleryjski z XX wieku.(system „G7” używa pocisku referencyjnego, który jest bardzo podobny do współczesnego pocisku do karabinu dalekiego zasięgu).

Twój program BC będzie musiał zamodelować krzywą oporu „G1” jako funkcję liczby Macha, zazwyczaj odbywa się to za pomocą tablic przeglądowych.

Na każdym kroku iteracji, w którym potrzebujesz przyspieszenia na pocisku z powodu jego przeciągania, bierzesz aktualną liczbę Macha pocisku, sprawdzasz „CD * A / M ”z tabeli G1, podziel ją przez swój BC (duże BC oznacza mniejszy opór, a zatem mniejsze przyspieszenie z powodu oporu), i to jest składnik oporu, który podajesz do swojego modelu lotu.

(Przejdź do artykułu Wikipedii Współczynnik balistyczny i spójrz na wyrażenie „BC_sub_bullets”. Zamień w nim termin „i” na „ CB / CG ”, na którą jest zdefiniowana. Rozwiąż to wyrażenie dla„ CB ”(współczynnik oporu pocisku). Teraz spójrz na CB * A / M („ A / M ”narysuje„ M / d ^ 2 „z RHS). To da ci CD * A / M, który chcesz, wyrażony jako funkcja tabeli przeciągania G1)

(to pytanie zostało również wysłane do firearms.stackexchange )

Komentarze

  • Przyjrzę się niektórym z tych innych linków, które masz. Niektórych już obejrzałem, innych nie. Rzucę okiem dziś wieczorem i zobaczę, czy któreś z tych zasobów pomogą mi.
  • Po przejrzeniu zamieszczonych przez Ciebie linków nie wiem, czy są tam jakieś informacje, o których nie wiedziałem, z wyjątkiem z Runge-kutta. Mam wzór na opór z gęstością powietrza / temperaturą / alt / współczynnikiem i mam wzór trajektorii zapisany powyżej z wiki. Nie wiem, czy po prostu czegoś mi brakuje, czy po prostu jestem nieporozumieniem, ale nie widzę niczego, co łączyłoby się z trajektorią. Będę szukał dalej, ale być może brakuje mi czegoś, co mówisz (mam nadzieję, że tak).
  • Przejrzałem kod C ++ w Kalkulatorze GNU. Myślę, że to mi pomoże. Pomaga mi to wypełnić luki, które mam. Na pewno znajdę tam swoją odpowiedź, dziękuję!
  • @Etch I ' dodam trochę do mojego posta re: twój komentarz " ..t Nie widzę niczego, co łączyłoby się z trajektorią. "
  • Dziękuję bardzo. Myślę, że lepiej rozumiem, co chciałem osiągnąć. Zaoszczędziłeś mi dużo czasu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *