Auto Oxidizer Filling
@WiktorM8 ci sta già lavorando.
Dal 24/7/2026.
Valutazione
Questa issue non è ancora stata valutata.
Descrizione
User Story
W hybrydzie mamy 1 zbiornik z paliwem w formie gazowej (oraz ciekłej), posiada on 3 zawrory (Main - otwierany podczas startu rakiety, Dump - służy do awaryjnego spuszczenia paliwa (Abort), Vent - służy do zmniejszania ciśnienia (potrzebny równiez podczas tankowania, gdzie różnica ciśnień między butlą a zbiornikiem przepycha ciekłe paliwo do zbiornika rakiety). Największym problemem jest sterowanie zaworami które znajdują się w stacji naziemnej, oraz odbiur ciśnienia paliwa w gs oraz wagi rakiety z GS. Docelowe rozwiązanie będzie udostępniać metodę na someip do sterowania zaworem z gs (0 - close, 1- open 100%, 2- open 50%). waga rakiety oraz ciśnienie w zbiorniku gs będzie udostępniane eventami someip przez radioApp. W R7 potrzebowaliśmy około 9Kg paliwa pod cisnieniem około 55Bar (ciśnienie zależne od temperatury). (jeśli dobrze pamiętam to 55Bar odpowiada temperaturze paliwa około 34 stopni celciusza). Trzeba opracować algorytm który w sposób automatyczny i bezpieczny umożliwi zatankowanie zadanej wagi paliwa (waga podawana jakąś metodą po someip). Dodatkowo na samym początku powinna być procedura sprawdzenia szczelnosci, polegająca na otwarciu zaworu GS na 50%, zatankowaniu rakiety do np 4bar(pobrane z pliku konfiguracyjnego), zamkniecie zaworu, poczekania 30s i sprawdzenia czy ciśnienie spadło o więcej niż X%. w przypadku wykrycia dużego spadku komputer powinien przerwać procedurę. Dodatkowo komputer nie powinien pozwolić na tankowanie jeśli ciśnienie w GS jest większe niż X (wczytane z pliku json) lub mniejsze niż Y (wczytane z pliku json). Zazwyczaj paliwo tankowane jest z odpowiednim zapasem masy (zapas jest potrzebny do ewentualnego schłodzenia paliwa, nadmiarowe paliwo ventujemy przed startem (nie automatycznie).
Wymagania:
- aplikacja musi mieć możliwośc przerwania procedury w każdym momencie jej działania, przerwanie oznacza zamknięcie wszystkich zaworów
- aplikacja musi mieć rozpisane testy automatyczne sprawdzające mechanizm jej działania
- wszystkie zmienne muszą być wczytywane z pliku json (poza docelową masą, ciśnieniem oraz nadmiarem masy które są ustawiane poprzez metodę someip)
- aplikacja musi przeprowadzic test szczelności przed procedurą tankowania
- aplikacja musi nie pozwolić zatankować automatyznie jeśli ciśnienie GS jest poza dozwolonym zakresem
- kod musi być napisany tak, aby w przyszłości dało się go przenieść na liquida (gdzie są tankowane 2 rodzaje paliwa)
- algorytm nie może zużywać więcej niż 10-20% cpu
- częstotliwość odświerzania algorytmu powinna odpowiadać częstotliwości otrzymywania aktualizacji masy i ciśnienia (10Hz) oraz uwzględniać opuźnienia na zaworach (otwarcie i zamknięcie trwa zazwyczaj 100-1000ms
- stan aplikacji musi być dostępny na someip (zakładam że będzie to działać jako maszyna stanów więc coś typu: off, leak test, tanking, finish, etc) powinno być dostępne.
- (optional) algorytm powinien obliczać czas potrzebny na zatankowanie danej ilości paliwa, oraz czas jego ogrzewania do temperatury docelowej.
TODO
- wymyślić i rozpisać na wiki potrzebne algorytmy (test szczelnosci, auto-tankowanie)
- rozpisać procedury testów algorytmów
- Stworzyć aplikację która będzie zawierać wszystkie potrzebne metody i eventy
- napisać kod aplikacji
- napisać testy aplikacji (nie mówie tylko o UT ale też o testach całego mechanizmu, na zasadzie wydaje polecenie tankowania oraz aktualizuje na bierzaco mase rakiety i ciśnienie oraz sprawdzam co robi algorytm dla przypadków)
- Lingua principale
- C++
- Stelle
- 1
- Fork
- 3
- Merge medio
- 34m
- PR unite (30g)
- 1
Preparare l'ambiente
Non abbiamo ancora controllato i file di configurazione di questo progetto. Parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di Simba-Avionic/srp
-
Platform Config ManagerAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 35/100
Simba-Avionic/srp#398 ·
-
Analiza i optymalizacja MWAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
Simba-Avionic/srp#394 ·
-
ujednolicenie interfejsówAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 30/100
Simba-Avionic/srp#393 ·
-
R8Aperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 10/100
Simba-Avionic/srp#392 ·
-
Liquid-RurkuAperta
Difficoltà 5/5 Più di una settimana Idoneità per principianti 1/100
Simba-Avionic/srp#390 ·
Tutte le issue di Simba-Avionic/srp
Issue simili
-
bug
Difficoltà 1/5 1-3 ore Idoneità per principianti 88/100
isl-org/Open3D#7585 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Unconfirmed bug
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
luanti-org/luanti#17605 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
area: config area: firmware priority: P2 - medium size: S type: bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
Mizithra/ActiveTerrain#16 ·
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
grumpycoders/pcsx-redux#2171 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
I maintainer di solito rispondono entro 2 giorni