Symulator silnika

Projekt symulacji silnika spalinowego użytego w PMT-04

Symulacja pracy silnika spalinowego

Celem projektu jest sprawdzenie skuteczności dostępnego publicznie oprogramowania, które umożliwia symulację pracy dowolnego silnika spalinowego w czasie rzeczywistym. Głównym celem jest utworzenie w przyszłości projektu silnika z bolidu PMT-04 i porównanie wyników symulatora z prawdziwą telemetrią.

Osoby odpowiedzialne:

  • Michał Surówka

Gdzie można znaleźć ten projekt?

Oprogramowanie dostępne jest w serwisie GitHub pod tym linkiem: TUTAJ Znajduje się nie tylko sam program, ale z tej witryny można przejść bezpośrednio do bazy gotowych już silników utworzonych przez społeczność. Docelowo w naszym repozytorium znajdzie się plik zawierający model silnika z bolidu PMT-04.

Jak z niego korzystac?

Przechodząc do lokalizacji ‘\engine-sim-buildWERSJA\bin’ otwieramy plik ‘engine-sim-app.exe’. Otworzy się wtedy program z załadowanym ostatnio używanym modelem silnika. Tam wedle dołączonej na w.w. GitHubie można badać jego zachowanie (prędkość maksymalną, zużycie paliwa, ciśnienie w kolektorze etc.). Możemy też zmienić model silnika za pomocą opcji ‘Load Engine’.


Część techniczna

Budowa oprogramowania oraz modeli silnika oparta jest na języku Piranha, który jest językiem opartym na C stworzonym specjalnie na potrzeby tego programu. Dzięki temu kod jest na tyle zoptymalizowany, że umożliwia monitorowanie silnika przy ponad 25 tysiącach odświeżeń stanu na sekundę, jednakże jest to bardzo zależne od mocy obliczeniowej komputera oraz złożoności modelu. Warto wspomnieć, że program jest w fazie Alpha, więc nie wszystkie modele działają poprawnie, są liczne problemy z wydajnością przy bardziej skomplikowanych modelach silników, niektóre modele często z niewiadomych przyczyn wcale się nie kompilują w programie.

Cele

  • Wydajność
  • Dokładność
  • Niezawodność
  • Skalowalność

Założenia projektowe

Główne założenie to zbadanie budowy modelu silnika w języku Piranha i sprawdzenie jego możliwości. Celem końcowym jest odtworzenie silnika z bolidu PMT-04 w symulatorze z jak największą dokładnością. Jeżeli twórca udostępni taką funkcjonalność, to w przyszłości może być możliwe badanie pracy silnika elektrycznego.

Użyte technologie

  • Języki programowania (Piranha)
  • Biblioteki
  • Społecznościowe modele silnika

W jaki sposób działa ten projekt?

Program czytając plik modelu silnika jest w stanie w czasie rzeczywistym odtwarzać jego pracę, dźwięk i zachowanie w określonych warunkach. Na ten moment możliwe jest badanie silnika spalinowego (bez turbosprężarki ani kompresora) w różnych układach cylindrów (V8, W12, Y9 itp.) a także silnika Wankla. Plik z modelem silnika zawiera w sobie node’y, gdzie każdy z nich dokładnie opisuje cechy charakterystyczne danego elementu silnika i skrzyni biegów. Możliwości jak na fazę Alpha są bardzo duże a edycja/tworzenie modeli jest intuicyjne.

Bardzo ważne jest, aby przed przystąpieniem do jakiejkolwiek symulacji przygotować program przez ustawienie odpowiedniej częstotliwości pracy. Ustawienie zbyt dużej częstotliwości będzie skutkować niedokładną symulacją i bardzo wolnym działaniem programu (spadki nawet do 10 klatek na sekundę), natomiast zbyt niska częstotliwość obniża stabilność modelu, przez co przy rozpoczęciu testów model może zwyczajnie się zepsuć. Wtedy należy go załadować ponownie i dostosować częstotliwość.

Napotkane problemy

Główne problemy to stabilność modeli. Wiele modeli posiada błędy wynikające podczas symulacji, np: silnik zawieszający się po osiągnięciu określonych obrotów lub brak reakcji na zapłon. W większości przypadków ciężko jest określić czy wina leży po stronie modelu czy po stronie symulatora. Dodatkowy problem to działanie symulacji przy skomplikowanych modelach. Podczas gdy modele o prostszej budowie, np: silniki motocyklowe można badać w częstotliwości 20-25kHz, tak bardziej skomplikowane modele, np: wysokobrotowe V10 lub V12 zaczyna sprawiać problemy przy 8-9kHz (może to wynikać ze słabej skalowalności programu, gdyż testy przeprowadzane były na komputerach o dużej mocy obliczeniowej).

Ostatni problem to język w jakim napisany jest program i modele z których korzysta. Konieczne jest zapoznanie się ze składnią całkowicie nowego języka, który nie jest używany nigdzie poza tym symulatorem, gdyż specjalnie na jego potrzeby został utworzony.

Problem z błędami w symulacji

Podczas przeprowadzania symulacji niejednokrotnie model po prostu się “wysypuje”, bądź od początku działa nieprawidłowo. Przykładowo model silnika Renault RS25 nie może przekroczyć bariery 3000RPM oraz nie może pracować samoczynnie (po wyłączeniu startera silnik gaśnie). Podobny problem występuje w modelu silnika Triumph Race T-Plane 3, który nie przebija 4500RPM i gaśnie od razu po wysprzęgleniu na jakimkolwiek biegu.