噴油。
[0053]底層軟件在該最早噴油開始點(diǎn)(A點(diǎn))之前第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù),可以選在A點(diǎn)前面第2個(gè)曲軸齒的下降沿處(以字母B表示)第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù),也可以選在A點(diǎn)處第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù),即“在該最早噴油開始點(diǎn)之前”包括在A點(diǎn)前面以及在A點(diǎn)處兩種含義。
[0054]本發(fā)明中,底層軟件在該最早噴油開始點(diǎn)(A點(diǎn))之前執(zhí)行第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù),其目的是為了計(jì)算出大概的噴油開始點(diǎn)在哪,即得到初始噴油開始點(diǎn)(如圖7a中的C點(diǎn)),為選擇最優(yōu)實(shí)時(shí)性的驅(qū)動(dòng)函數(shù)觸發(fā)點(diǎn)創(chuàng)造條件。
[0055]本實(shí)施例中,若最早噴油開始點(diǎn)(A點(diǎn))選在曲軸信號(hào)盤15齒前的900度處,則底層軟件結(jié)合應(yīng)用層軟件傳遞過來(lái)的噴油脈寬和噴油相位,在第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)時(shí),可由下述公式計(jì)算出的初始噴油開始點(diǎn)(C點(diǎn)):
[0056]噴油開始角度點(diǎn)=900-Up_Infall_Phasic-1nject_Phasic_Inject_Pulse ;
[0057]其中Up_Infall_Phasic為壓縮沖程上止點(diǎn)到進(jìn)氣門關(guān)之間的相位(此為定量),Inject_Phasic為噴油相位,Inject_Pulse為噴油脈寬,如圖2所示。
[0058]由于噴油脈寬和噴油相位不可能一直都為最大值,如果氣缸的噴油脈寬較小(如圖7a所示),底層軟件在該最早噴油開始點(diǎn)(A點(diǎn))之前第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù),則噴油驅(qū)動(dòng)函數(shù)的第一次觸發(fā)點(diǎn)(圖中B點(diǎn))可能離初始噴油開始點(diǎn)(圖中C點(diǎn))還有一段距離,在這段距離內(nèi),很可能存在有半圈更新齒(即會(huì)經(jīng)歷噴油變量的更新),如果在B點(diǎn)與C點(diǎn)之間經(jīng)歷了噴油脈寬和噴油相位的數(shù)據(jù)更新,則底層軟件在第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)計(jì)算得出初始噴油開始點(diǎn)(C點(diǎn))時(shí),所利用的噴油脈寬和噴油相位數(shù)據(jù)并不是最新的。因此,如果在該最早噴油開始點(diǎn)(A點(diǎn))之前底層軟件觸發(fā)噴油驅(qū)動(dòng)函數(shù),并以計(jì)算得出的初始噴油開始點(diǎn)(C點(diǎn))執(zhí)行噴油,則執(zhí)行噴油指令的實(shí)時(shí)性較差。
[0059]S13:判斷第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)的觸發(fā)點(diǎn)到該初始噴油開始點(diǎn)之間的曲軸角度差范圍內(nèi)是否存在有曲軸半圈更新齒;
[0060]如圖7a所示,檢查底層軟件第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)的觸發(fā)點(diǎn)(圖中B點(diǎn))到初始噴油開始點(diǎn)(圖中C點(diǎn))之間的曲軸角度差范圍內(nèi),有沒有曲軸半圈更新齒在里面。若在B點(diǎn)與C點(diǎn)之間存在有曲軸半圈更新齒,則表明噴油脈寬和噴油相位在B點(diǎn)與C點(diǎn)之間的這段距離內(nèi)經(jīng)歷過更新;若在B點(diǎn)與C點(diǎn)之間沒有曲軸半圈更新齒,則表明噴油脈寬和噴油相位在B點(diǎn)與C點(diǎn)之間的這段距離內(nèi)未經(jīng)歷更新。因此判斷B點(diǎn)與C點(diǎn)之間的曲軸角度差范圍內(nèi)是否存在有曲軸半圈更新齒,也就是判斷在這段期間內(nèi)噴油變量(噴油脈寬和噴油相位)是否經(jīng)歷過更新。
[0061]S14:若第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)的觸發(fā)點(diǎn)到該初始噴油開始點(diǎn)之間的曲軸角度差范圍內(nèi)存在有曲軸半圈更新齒,則選擇在最接近該初始噴油開始點(diǎn)的曲軸半圈更新齒之后且在該初始噴油開始點(diǎn)之前,該底層軟件再次觸發(fā)噴油驅(qū)動(dòng)函數(shù)以計(jì)算得到實(shí)際噴油開始點(diǎn),并根據(jù)該實(shí)際噴油開始點(diǎn)重新設(shè)置執(zhí)行噴油的計(jì)時(shí)。
[0062]若在噴油驅(qū)動(dòng)函數(shù)第一次觸發(fā)點(diǎn)(B點(diǎn))到初始噴油開始點(diǎn)(C點(diǎn))之間的曲軸角度差范圍內(nèi)存在有曲軸半圈更新齒,如圖7a示意了在B點(diǎn)與C點(diǎn)之間存在有兩個(gè)曲軸半圈更新齒①②,則選擇在最接近初始噴油開始點(diǎn)(C點(diǎn))的曲軸半圈更新齒②之后,且在初始噴油開始點(diǎn)(C點(diǎn))之前,例如在曲軸半圈更新齒②與初始噴油開始點(diǎn)(C點(diǎn))之間,底層軟件選擇一個(gè)曲軸齒再次(即第二次)觸發(fā)噴油驅(qū)動(dòng)函數(shù),此時(shí)底層軟件可得到應(yīng)用層軟件最新計(jì)算的噴油變量(噴油脈寬和噴油相位),底層軟件與應(yīng)用層軟件之間交互噴油變量的實(shí)時(shí)性最好。也就是說,噴油脈寬等噴油變量在噴油驅(qū)動(dòng)函數(shù)第一次觸發(fā)點(diǎn)(B點(diǎn))到初始噴油開始點(diǎn)(C點(diǎn))之間經(jīng)歷了更新,如圖7a所示,示意了在經(jīng)歷兩個(gè)曲軸半圈更新齒①②的兩次噴油變量更新后,噴油脈寬由圖中實(shí)線所示更新為圖中虛線所示。通過選擇在最接近初始噴油開始點(diǎn)(C點(diǎn))的半圈更新齒②之后第二次觸發(fā)噴油驅(qū)動(dòng)函數(shù),底層軟件利用應(yīng)用層軟件最新計(jì)算的噴油脈寬和噴油相位重新計(jì)算得出實(shí)際噴油開始點(diǎn)(圖中的C’點(diǎn)),而重新計(jì)算得出的實(shí)際噴油開始點(diǎn)(C’點(diǎn))是最接近實(shí)際的,因此在最接近初始噴油開始點(diǎn)(C點(diǎn))的半圈更新齒②之后觸發(fā)噴油驅(qū)動(dòng)函數(shù),可得到底層軟件與應(yīng)用層軟件之間交互噴油變量的最佳時(shí)機(jī),解決了底層軟件與應(yīng)用層軟件之間交互噴油變量的實(shí)時(shí)性問題。
[0063]可以理解,底層軟件第二次觸發(fā)噴油驅(qū)動(dòng)函數(shù)重新計(jì)算出的實(shí)際噴油開始點(diǎn)(C’點(diǎn))與上述第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)計(jì)算出的初始噴油開始點(diǎn)(C點(diǎn))一般相差不會(huì)太大。底層軟件重新計(jì)算得出實(shí)際噴油開始點(diǎn)(C’點(diǎn))之后,將根據(jù)該實(shí)際噴油開始點(diǎn)(C’點(diǎn))重新設(shè)置計(jì)時(shí)器(此時(shí)相當(dāng)于覆蓋了上述第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)時(shí)設(shè)置的計(jì)時(shí)),在計(jì)時(shí)到達(dá)該實(shí)際噴油開始點(diǎn)(C’點(diǎn))時(shí),噴油器即開始執(zhí)行噴油,因此執(zhí)行噴油指令的實(shí)時(shí)性較好。
[0064]如圖7b所示,若在噴油驅(qū)動(dòng)函數(shù)第一次觸發(fā)點(diǎn)(B點(diǎn))到初始噴油開始點(diǎn)(C點(diǎn))之間僅存在一個(gè)曲軸半圈更新齒①,則選擇在曲軸半圈更新齒①之后,且在初始噴油開始點(diǎn)(C點(diǎn))之前,例如在曲軸半圈更新齒①與初始噴油開始點(diǎn)(C點(diǎn))之間,底層軟件選擇一個(gè)曲軸齒再次(即第二次)觸發(fā)噴油驅(qū)動(dòng)函數(shù),此時(shí)底層軟件可得到應(yīng)用層軟件最新的噴油變量,底層軟件與應(yīng)用層軟件之間交互噴油變量的實(shí)時(shí)性最好。底層軟件在第二次觸發(fā)噴油驅(qū)動(dòng)函數(shù)時(shí),可以利用應(yīng)用層軟件最新傳遞過來(lái)的噴油變量重新確定實(shí)際噴油開始點(diǎn)(圖中的C’點(diǎn)),并根據(jù)該實(shí)際噴油開始點(diǎn)(C’點(diǎn))重新設(shè)置噴油計(jì)時(shí),待計(jì)時(shí)達(dá)到該實(shí)際噴油開始點(diǎn)(C’點(diǎn))后噴油器開始執(zhí)行噴油。
[0065]如圖7c所示,若在噴油驅(qū)動(dòng)函數(shù)第一次觸發(fā)點(diǎn)(B點(diǎn))到初始噴油開始點(diǎn)(C點(diǎn))之間的曲軸角度差范圍內(nèi)不存在曲軸半圈更新齒(即在這段范圍內(nèi)噴油變量未更新),則依據(jù)底層軟件在第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)時(shí)計(jì)算出的初始噴油開始點(diǎn)(C點(diǎn))所設(shè)定的噴油計(jì)時(shí)執(zhí)行噴油即可,此時(shí)初始噴油開始點(diǎn)亦即實(shí)際噴油開始點(diǎn)。
[0066]在上述實(shí)施例中,以發(fā)動(dòng)機(jī)的其中一個(gè)氣缸的噴油控制進(jìn)行了說明,針對(duì)多缸的發(fā)動(dòng)機(jī),其余缸的噴油控制可以參照上述進(jìn)行即可,在此不贅述。
[0067]如圖8所示,本發(fā)明實(shí)施例還提供一種發(fā)動(dòng)機(jī)電控單元,包括:
[0068]噴油變量更新模塊,用于每曲軸半圈計(jì)算并更新一次噴油脈寬和噴油相位,并將計(jì)算出的噴油脈寬和噴油相位傳遞給噴油驅(qū)動(dòng)函數(shù)觸發(fā)模塊;
[0069]噴油驅(qū)動(dòng)函數(shù)觸發(fā)模塊,用于觸發(fā)噴油驅(qū)動(dòng)函數(shù),利用該噴油變量更新模塊傳遞過來(lái)的噴油脈寬和噴油相位計(jì)算出噴油開始點(diǎn);
[0070]計(jì)時(shí)設(shè)置模塊,用于根據(jù)該噴油開始點(diǎn)設(shè)置執(zhí)行噴油的計(jì)時(shí);
[0071]該噴油驅(qū)動(dòng)函數(shù)觸發(fā)模塊用于在由最大噴油脈寬和最大噴油相位得出的最早噴油開始點(diǎn)之前第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)以計(jì)算得到初始噴油開始點(diǎn),該計(jì)時(shí)設(shè)置模塊用于根據(jù)該初始噴油開始點(diǎn)設(shè)置執(zhí)行噴油的計(jì)時(shí);
[0072]該發(fā)動(dòng)機(jī)電控單元還包括判斷模塊,用于判斷第一次觸發(fā)噴油驅(qū)動(dòng)函數(shù)的觸發(fā)點(diǎn)到該初始噴油開始點(diǎn)之間的曲軸角度差