Bo w zasadzie nie ma innego wyjścia.Będzie dygresja. Myślałem kiedyś, że kalkulatory balistyczne np. w czołgach rozwiązują równanie toru lotu pocisku i na tej podstawie wyznaczają parametry strzału i ustawienia celownika. Z pewnym zdziwieniem dowiedziałem się że nie - one dopasowują przybliżone rozwiązanie na podstawie zapisanych w pamięci tablic balistycznych. Taka dokładność jest w realnym życiu wystarczająca, idzie to szybciej i nie potrzeba wielkiej mocy obliczeniowej.
Nie istnieje analityczny wzór na krzywą balistyczną, jeśli uwzględniamy opór powietrza. Znaczy jest jakiś mocno uproszczony, który jakoś tam działa, jeśli pocisk leci na tyle płasko, że można pominąć różnice ciśnienia i temperatury (a w konsekwencji gęstości atmosfery) wraz ze wzrostem wysokości.
Pewnie przy działach czołgowych strzelających do innych czołgów, to może by to nawet jakoś zadziałało, z jakimiś chamskimi poprawkami.
Natomiast dla cięższej artylerii niosącej na kilkadziesiąt kilometrów jest to zwyczajnie niemożliwe. Chwilowy opór zależy od chwilowej gęstości powietrza i prędkości pocisku w machach. Tak w machach a nie w wartości bezwzględnej. I od oporu wynikającego z kształtu pocisku, który to opór jest potwornie nieliniowy. W zasadzie stabelaryzowany bo nie da się go policzyć – jego się mierzy.
Lokalna prędkość dźwięku zależy od temperatury i wilgotności powietrza.
Gęstość zależy od temperatury i ciśnienia.
Temperatura i ciśnienie zależy od wysokości nad poziomem morza.
Wszystko to są wartości nieliniowe. Niektóre się linearyzuje, ale to powoduje powstanie błędów, które trzeba usuwać dodatkowymi poprawkami.
Potem wszystko się wylicza numerycznie ze stałym lub zmiennym skokiem.
Nie istnieje proces odwrotny, który by określał, wstecznie, że pocisk doleciał na powiedzmy 12,5 km, to pod jakim kątem go wystrzelisz. Liczy się to tak, że strzelasz pociskiem pod jakimś kątem, przy założonych parametrach atmosfery i patrzysz gdzie wyląduje. Potem jeszcze raz pod innym kątem itd.
Te dane można banalnie stabelaryzować. Odległość zwykle wystarczy trzymać na 4 bajtach. Większa dokładność niepotrzebna. A jeśli nawet to można trzymać na 8. Do tego drugie tyle na kąt podniesienie, choć i to jest zbędne, bo przy stałym skoku odległości kolejna pozycja w tabeli to jest odległość, a kąt podniesienia można trzymać na 4 bajtach (ba pewnie 2 by wystarczyły).
To nawet jak sobie stabelaryzujesz z dokładnością do metra (po co?) to masz tabelę z kilkudziesięcioma tysiącami pozycji. Czyli kilkadziesiąt, powiedzmy sto parę kilo pamięci. Zero zero nic, a strawne nawet w czasach 80286. Ba, jeśli dokładność 100 metrów ci wystarczy to całość tabeli z odczytem danych możesz zmieścić na 8 bitowcu i jeszcze ci miejsca zostanie.
Odczyt z tabeli to dosłownie kilka rozkazów. Dłużej trwa opróżnianie kolejki potoku w procesorze.
A jakbyś chciał liczyć na bieżąco, to strzelasz, patrzysz, a nie wyszło, strzelać jeszcze raz (oczywiście cyfrowo w komputerze). Masakra jakaś.
W sumie to miałem zamiar nie poprawiać wymysłów kolegi od tanich smartfonów, ale jakoś nie mogę się oprzeć.
Nie, nie można zrobić rakiety z procesorem ze smartfona albo czymś podobnym. Tak procesor militarny czy medyczny będzie zwykle (zawsze?) wolniejszy i droższy od cywilnego powszechnego. Powód dość banalny – niezawodność.
Podzespoły robione do „domowego” PCta czy smartfona mogą czasem nawet nie przechodzić testów u producenta. Znaczy jakieś testy to się robi, czy to się w ogóle uruchamia i tyle. Jak ci się aparat zepsuje, to poklniesz chwile i oddasz do serwisu. Czasem nawet od ręki dostaniesz nowy. Wielkie mi halo. Przy takim podejściu do niezawodności, graty mogą być tanie, nawet jak są bardzo ale to bardzo skomplikowane. Bo jest ich dużo.
Ale jak coś ma być wsadzone do serwera, rejestratora czy stacji roboczej, od którego się wymaga się pracy ciągłej, bo awaria będzie kosztować, to już takie części projektuje się nieco inaczej i do tego często testuje dłużej przed wyjściem od producenta.
Sprzęt medyczny – taki np. na OIOM często może mieć podzespoły teoretycznie takie same jak komputer biurkowy. Ale gruntownie przetestowane i w innych obudowach. A to kosztuje. Raz czas i laboratoria, które potestują a dwa – ileś sprzętu tych testów nie przejdzie. Ale nie możemy sobie pozwolić, żeby nagle w połowie aplikowania czegoś do żyły czy pracy płuco serca coś się zawiesiło. Więc kosztuje.
Ale to chodzi raczej w komfortowych warunkach.
Rakieta wojskowa to nie dość, że będzie składowana nie wiadomo gdzie, nie wiadomo w jakiej temperaturze, to potem będzie targana po polu i strzelana z błota, albo w śniegu, albo deszczu albo pyle na pustyni. I musi to wytrzymać.
Można by zrobić rakiety ze sterowaniem „ze smartfona”, i pewnie wyprodukować ich z milion w cenie paru tysięcy wojskowych, ale z nich połowa w ogóle nie wystartuje, bo się w transporcie coś porozłącza, potem z tej połowy połowa wymaga akurat aktualizacji, potem kolejna połowa się zawiesiła podczas lotu itd.
Tu się bardziej ceni niezawodność niż szybkość procesora. A to wymaga najpierw solidnego projektu, potem jego sprawdzenia – proces sprawdzania sprzętu który MUSI działać jest „nieco” inny niż „smartfona”, potem wykonania jakiś serii i sprawdzenia czy działają w przeróżnych warunkach, a potem wdrożenia do produkcji. A to trwa. Za dużo elementów może po drodze się rozbadziewić by robić to na chybcika. W efekcie produkty cywilne mogą przejść parę generacji. Podobnie wygląda zwykle specyfikacja elektroniki, która leci w kosmos. Powody te same. Jak się popatrzy na parametry procesów sterujących łazikami to śmiech na sali. Ale raczej nie chcemy, żeby nam się łazik zawiesił, bo „wyłączyć i włączyć jeszcze raz” się może nie udać.