Elektroda.pl
Elektroda.pl
X

Search our partners

Find the latest content on electronic components. Datasheets.com
Elektroda.pl
Please add exception to AdBlock for elektroda.pl.
If you watch the ads, you support portal and users.

Problem z obliczeniami :) (komputerek zużycia paliwa)

08 Oct 2005 18:04 9746 11
  • Level 23  
    Witam. Jestem w fazie projektowania komputerka zużycia paliwa do samochodu na 90s2313. Znalazłem stałą wtrysku (ilość paliwa wtryskiwanego przy ciągle otwartej dyszy w czasie 1 sekundy) mam ilość impulsów z czujnika prędkości na 1m drogi i potrzebuję wszystko to przeliczyć żeby było w litrach na 100km. :) Przyjąłem za próbkowanie czas jednej sekundy. Planuję zaprogramować tak procesor aby po czasie 1s zwracał wartość impulsów naliczoną przy otwartym wtryskiwaczu i ilość impulsów z czujnika prędkości. W takim przypadku ilość impulsów jakie otrzymam z wtryskiwacza będzie wprost proporcjonalna do czasu wtrysku i ze stałą wtryskiwacza można będzie obliczyć ile paliwa zostanie wtryśnięte w czasie 1s. Tak że bedziemy mieli dwie zmienne zawierające ilość impulsów. Jedna zmienna to czas wtrysku a druga to pokonana droga. Proszę o pomoc w wyprowadzeniu wzoru aby te wartości przeliczyć na litry na 100km. Z matematyki jestem wolno kapujący :D. Wartości jakimi dysponuje to:
    stała wtryskiwacza (jednego przy czym w aucie są 4): 0,00317[l/s] lub 2,4[g/s] lub 190[cm³/min]
    ilość impulsów na metr drogi:6imp
    Proszę o pomoc... :)
    [30.03.2021, darmowy webinar] Nowoczesna diagnostyka maszyn, monitorowanie i przewidywanie awarii. Zarejestruj się
  • Level 35  
    Witam. :)
    Widzę, że temat wraca jak bumerang.
    Sam jestem na etapie projektowania całego tego ustrojstwa, tyle że nie mogę załapać, co gdzie ma być i jak ustawić timery (co który timer ma zliczać).
    Ja w przeciwieństwie do Ciebie mam do wykorzystania 3 Timery, bo robię komputerek na ATMega8535.
    Utknąłem na procedurze liczenia prędkości, w sumie to na początek chciałem zliczać impulsy z przetwornika drogi.
    Liczyć liczy, tylko nie to co bym chciał, dolatuje do pewnej wartości i mimo przyspieszania wartości mam stałe. Przy mniejszej prędkości wzrost liczby impulsów jest liniowy.
    Mimo wszystko życzę powodzenia i będę obserwował poczynania.
  • Level 23  
    Ja tez nie wiem czy 2313 wystarczy. Timer1 wykożystam jako licznik czasu to nie bede miał jak zliczyc impulsów drogi w czym potrzebował bym timera jako counter liczącego impulsy np przy opadającym zboczu. Ale bardziej skupiam się na samym przeliczeniu bo procesor zawsze mozna zmienić na "większy"... :) Liczyłem to sam ale wychodzą mi dziwne wartości i potrzebuję potwierdzenia czy moje obliczenia są dobre. Mile widziany byłby jakiś przykład...
  • Level 21  
    no to policzmy

    Code:

    I (injection) - stała wtrysku (wyrażona w [l/s]),
    R (road) - stała, ilość impulsów z przetwornika na 1m drogi
    r - ilość impulsów zliczona w ostatnim cyklu pomiarowym (interwał 1s)
    s - pokonany odcinek drogi w ostatnim cyklu
    u (usage) - zużycie paliwa w [l/100 km]


    Code:

    zapis jest mieszany, z jednostkami
    R/r = 1[m]/s, zatem: s = r/R [m], co jest zgodne z intuicją ;)
    u = s * I /10^5[m] * 1[s]


    tylko, że to jest zużycie chwilowe, piekielnie małe, na granicy pewnie precyzji obliczeń, albo grubo poniżej, pasuje chyba zwiększyć interwał.

    pozdro,
    --
    migod
  • Helpful post
    Level 39  
    migod wrote:
    no to policzmy

    Code:

    I (injection) - stała wtrysku (wyrażona w [l/s]),
    R (road) - stała, ilość impulsów z przetwornika na 1m drogi
    r - ilość impulsów zliczona w ostatnim cyklu pomiarowym (interwał 1s)
    s - pokonany odcinek drogi w ostatnim cyklu
    u (usage) - zużycie paliwa w [l/100 km]


    Code:

    zapis jest mieszany, z jednostkami
    R/r = 1[m]/s, zatem: s = r/R [m], co jest zgodne z intuicją ;)
    u = s * I /10^5[m] * 1[s]


    tylko, że to jest zużycie chwilowe, piekielnie małe, na granicy pewnie precyzji obliczeń, albo grubo poniżej, pasuje chyba zwiększyć interwał.

    pozdro,
    --
    migod

    Coś mi w Twoim równaniu nie pasuje ;)
    By wyliczyć chwilowe zużycie paliwa w l/100km wystarczy znać:
    a)Stałą wtryskiwacza[l/s]
    b)Stałą przetwornika drogi[impulsy/m]
    c)Czas wtrysku[s]
    d)Przebytą drogę[m]
    e)Ilość wtryskiwaczy[szt]
    Interwał z jakim dokonujemy pomiaru jest sprawą drugorzędną i ma wpływ na dokładność pomiaru.
    Wzór wygląda tak:
    chwilowe zużycie[l/100km]=((czas otwarcia wtryskiwacza[s]*ilość wtryskiwaczy)*stała wtryskiwacza[l/s])*(100000/(ilość impulsów przetwornika drogi/stała przetwornika drogi)) lub po uproszczeniu
    chwilowe zużycie[l/100km]=zużyte paliwo[l]*(100000/przebyta droga[m])

    Pozdrawiam
    Piotrek
  • Level 23  
    Dzięki za pomoc. Komputerek już działa i pokazuje ładnie zużycie paliwa. Myśle że dobre :) W załączniku kod programu. Oprócz chwilowego zużycia pokazuje też prędkość pojazdu. Schematu jeszcze nie mam ale postaram się go opracować i tutaj wrzucić :)

    Pozdrawiam...
  • Level 23  
    Narysowałem dzisiaj schemat, jest w załączniku wraz z opisem. Komputerek ten już tydzień mam zainstalowany w samochodzie i spisuje się bardzo dobrze.

    Pozdrawiam...
  • Level 23  
    Witam ponownie... :)
    Niedługo wrzucę schemat, płytkę i listing programu komputerka na atmega8.
    W nowej wersji mój układ posiada takie funkcje:
    - pomiar chwilowego zużycia paliwa (na lpg i benzynie, z dokładnością do 0,1l/100km)
    - pomiar średniego zużycia paliwa
    - coś co nazwałem ekonomizer (pokazuje w postaci prostego bargrafu kiedy silnik zużywa najmniej paliwa a kiedy najwięcej)
    - pomiar drogi z dokładnością do 100m
    - pomiar przyspieszenia 0-100km/h (z dokładnością do 0,1s)
    - inspekcja wymiany oleju (okres wymiany zmienny od 1000 km do 10000 km)
    Obsługa jednym przyciskiem. Układ opisany wyżej mam już zamontowany w samochodzie z tym że wszystko wrzucę dopiero jak będę na 100% pewny że układ działa bez problemu. :)

    Pozdrawiam...
  • Level 15  
    czekam z niecierpliwoscia!!
    testuj szybko!!
    :)
  • Level 15  
    Odkopię trochę ten temat :)
    A jak powinien wyglądać kod na te spalanie? Najlepiej w C. Bo próbuję z tym się uporać i nie mogę. Jak narazie spalanie podczas jazdy wychodzi mi 2-3 razy większe niż powinno, te na biegu jałowym jest ok. Drogę mam w 255 impulsach na 100m, czas wtrysku mam podany z jednym miejscem po przecinku (3,5ms to 35 jako int), stała wtryskiwacza to 4.9ml/s, ale zaokrągliłem na razie do 5ml/s, 4 wtryskiwacze.
    Cały wzór po przekształceniach i optymalizacjach wyszedł mi taki:
    Code:
    spalanie=(czasotw1s/(impulsy/2.55))*2;
    
    spalanie= (czas otwarcia wtryskiwaczy w ciągu 1s w ms/ ( impulsy z drogi/2.55))*2

    A cała funkcja wygląda tak:


    Code:
    cli();
    
          dzmilis=0;                            //zerowanie zmiennej pomocniczej do mierzenia 1s;
          predkosc=impulsy*1.41;          //wyliczenie predkosci;

          opoznienietemp++;      //opoznienie dla pomiaru temperatury
          if (predkosc > 10)
          {
             spalanie=(czasotw1s/(impulsy/2.55))*2;// wyliczenie spalania l/100km
          }else ///               predkosc ponizej 10km/h
          {
             spalanie=(((czasotw1s*4)*50))*0.00036; //l/h
          }
          czasotw1s = 0;
          impulsy=0;                      //zerowanie impulsow dla predkosci;
          sei();

    Całość jest wykonywana raz na sekundę.

    EDIT: Już poradziłem sobie :)
pcbway logo