Krótki opis wymagańProjektowanie dla akwizycji w czasie rzeczywistym i „kontrola”
(wiele dobrych odpowiedzi tutaj, dzięki wszystkim, będę aktualizować jeśli kiedykolwiek to Latający).
Detektor biegnie wzdłuż toru, mierząc kilka różnych parametrów fizycznych w czasie rzeczywistym (deterministycznym), w funkcji odległości krzywoliniowej. Użytkownik może kliknąć przycisk, aby "zaznaczyć" punkty trasy podczas tego procesu, a następnie użyć interfejsu GUI do wprowadzenia szczegółów dla każdego punktu nawigacyjnego (w czasie rzeczywistym, ale podczas gdy pobieranie danych trwa).
Następnie system przeprowadza serię obliczeń/filtrów/modyfikacji uzyskanych danych, biorąc pod uwagę ograniczenia wprowadzone dla każdego punktu trasy. Wynikiem tego procesu jest seria poprawek, również w funkcji krzywoliniowej odległości.
Trzecia część procesu polega na ponownym poruszaniu się po torze, ale tym razem wprowadzeniu poprawek do systemu fizycznego, który koryguje tor (nadal jako funkcja odległości krzywoliniowej).
Mój obecny pomysł na wprowadzenie/komentarze/ostrzeżeń
Co chcę, aby określić to, czy mogę to zrobić za pomocą komputera PC + FPGA. FPGA zrobiłaby "pozyskiwanie danych", użyłbym C# na PC, aby odczytać dane z bufora. Informacje o punkcie pośrednim można wprowadzić za pomocą aplikacji WPF/WinForms i przechowywać w bazie danych/pliku płaskim/dowolnym oczekującym "przetwarzaniu".
Do przetworzenia użyłbym F #.
FPGA zostanie użyty do "zapisania" informacji z powrotem do maszyny fizycznej.
Jedyny problem, jaki mogę obecnie przewidzieć, to to, czy algorytmy przetwarzania wymagają częstotliwości próbkowania, która powoduje, że ilość danych do buforowania jest zbyt duża. Oznaczałoby to odciążenie części przetwarzania na FPGA - przynajmniej te bity, które nie wymagają wkładu użytkownika. Niestety, jedynym algorytmem przetwarzania wstępnego jest filtr Kalmana, który jest trudny do implementacji z FPGA, z tego, co mam w Google.
Byłbym bardzo wdzięczny za wszelkie opinie, które chcesz przekazać.
aktualizacji (extra informacji tutaj dodać, jak i kiedy)
Przy wejściu do filtru Kalmana patrzymy raz na 1ms. Ale po drugiej stronie filtra Kalmana próbowaliśmy co 1m, co przy prędkościach, o których mówimy, wynosiłoby około 2 sekundy.
Więc myślę bardziej precyzyjnych pytań byłoby:
wdrożenie Kalman filter na FPGA - seemsthatit's możliwe, ale nie rozumiem wystarczająco dużo o podlegających aby móc wypracować tylko jak możliwe, że jest.
Nie jestem również pewien, czy implementacja FPGA Kalmana będzie w stanie wykonać cykl co 1 ms - choć wyobrażam sobie, że nie powinno to stanowić problemu.
Jeśli dobrze zrozumiałem, układ FPGA nie ma ogromnej ilości pamięci. W trzeciej części procesu, w której wysyłałbym (około) tablicę podwójną o rozmiarze 4 x 400, która mogłaby służyć jako tablica wyników, czy jest to możliwe?
Ponadto, zamiana pomiędzy tymi dwoma procesami (odczyt/zapis danych) implikuje ponowne programowanie FPGA za każdym razem, czy może być poinstruowana, aby przełączać się między nimi? (Możliwe, że wystarczy uruchomić oba równolegle i zignorować jedno lub drugie).
Anotheroption Widziałem kompiluje F # do VHDL użyciu Avalda FPGA Developer, będę się starał, że wkrótce, myślę.
Twoje pytanie jest niewiarygodnie szerokie. Czy w ogóle jest tam pytanie? Lepiej zacznij trochę tego i wróć do szczegółowych pytań, gdy zaczniesz! –