發動機噴油控制方法及發動機電控單元的制作方法
【技術領域】
[0001 ]本發明涉及發動機的技術領域,尤其是一種發動機噴油控制方法及發動機電控單元,主要用于發動機的噴油控制。
【背景技術】
[0002 ]目前汽車發動機一般采用多個氣缸,常用缸數有3缸、4缸、6缸、8缸、1缸、12缸等。如圖1a至圖1d所示,為發動機氣缸的四沖程工作行程的示意圖,發動機氣缸共有進氣行程(如圖la)、壓縮行程(如圖lb)、做功行程(如圖1c)和排氣行程(如圖1d)四個行程。發動機氣缸包括進氣門11、排氣門12、噴油器13、活塞14、曲柄連桿機構15等部件。在做功行程中,曲柄連桿機構將活塞的往復運動轉變成曲軸的旋轉運動,把燃料燃燒后發出的熱能轉變為機械能,對外輸出動力;而在其他三個行程中,由于慣性作用又把曲軸的旋轉運動轉變成活塞的往復直線運動,完成進氣、壓縮和排氣動作。在每完成進氣-壓縮-做功-排氣的四個工作行程中,曲軸轉動兩圈,即在每個工作行程中曲軸轉動半圈。
[0003]發動機氣缸在完成一次做功的過程中,需要在正確的時間通過噴油器噴出正確的油量,噴油開始時間和噴油量多少的精確性對發動機性能影響較大。圖2為發動機氣缸的噴油時序圖,發動機電控單元(ECU)根據發動機的各項運行參數確定最佳噴油量,然后輸出一個觸發噴油器的控制信號,在這個控制信號中,包含了噴油開始點和噴油脈寬,其中噴油脈寬是噴油器每次噴油的時間長度,噴油脈寬決定了噴油量的多少。由于發動機轉速較高,每次噴油時間很短,因此發動機電控單元給出的噴油控制信號是一個很短暫的脈沖信號,這個脈沖信號的時間寬度就是噴油脈寬。每次噴油的噴油脈寬不是固定的,它隨著發動機轉速、負荷和進氣量等參數的不同而變化,發動機電控單元根據這些參數計算并更新每一次噴油的具體噴油脈寬。
[0004]發動機都安裝有曲軸,為了隨時得知發動機氣缸的行程(進氣、壓縮、做功、排氣),在曲軸上還安裝有一個曲軸信號盤,是為了識別曲軸運行位置(發動機行程)而增加的部件,且隨著曲軸轉動而轉動。曲軸信號盤一般具有(60-2)個齒,即有2個缺齒,這是為了方便識別曲軸的位置。曲軸信號盤為齒狀是為了方便磁電傳感器和霍爾傳感器工作,利于形成高、低電平的方波,這樣軟件可以根據高、低電平的方波推斷曲軸的詳細運動情況。曲軸轉動一圈為360度,共60個曲軸齒,每一個曲軸齒為6度。曲軸信號盤的半圈即30個曲軸齒(180度)。
[0005]如上面提到,每次噴油的噴油脈寬和噴油相位等噴油變量是變化的,現有針對噴油相位和噴油脈寬等噴油變量的更新,一般是采用角度周期(如每隔曲軸半圈即180度更新一次)。如果采用每曲軸半圈(即曲軸每轉動半圈即180度)更新一次噴油變量,就要在曲軸信號盤一圈的60個齒中,找其中2個曲軸齒做為進行噴油變量更新的更新齒(曲軸半圈更新齒),這2個曲軸齒相隔半圈(30齒),如選取在曲軸信號盤每轉動到第2齒和第32齒時,更新一次噴油變量(即噴油相位和噴油脈寬)。
[0006]發動機電控單元中針對噴油控制設有上層軟件(即應用層軟件)和下層軟件(即底層軟件)。應用層軟件與底層軟件之間關系如圖3所示,應用層軟件主要用于處理復雜邏輯計算,底層軟件主要用于驅動發動機執行器(如噴油執行器,即噴油器)。針對噴油控制,應用層軟件每曲軸半圈會計算并更新一次噴油變量如噴油相位和噴油脈寬,并把計算出的噴油相位和噴油脈寬傳遞給底層軟件;底層軟件通過調用噴油驅動函數(即驅動硬件工作的函數),使用應用層軟件傳遞過來的噴油脈寬和噴油相位計算出噴油開始點,再根據該噴油開始點設置單片機計時器,在計時器計時到達該噴油開始點時觸發噴油器執行噴油。在此,噴油脈寬即噴油持續時間,與發動機的功率需求或扭矩需求等正相關;噴油相位即噴油位置,用于推斷噴油結束點,目的是得到最佳的噴油時機,使發動機燃燒最好。
[0007]目前發動機噴油控制算法多為如下兩種方法,第一種是底層軟件采用一個固定的曲軸齒來觸發噴油驅動函數,利用應用層軟件傳遞過來的噴油脈寬和噴油相位計算出噴油開始點和噴油結束點;第二種是采用轉速分段法,在不同階段的發動機轉速,采用不同的曲軸齒來觸發噴油驅動函數,利用應用層軟件傳遞過來的噴油脈寬和噴油相位計算出噴油開始點和噴油結束點。上述兩種方法,由底層軟件執行的噴油脈寬、噴油相位與應用層軟件計算出的噴油相位、噴油脈寬都不同程度存在有延遲性,影響噴油閉環控制,尤其是怠速穩定控制。
[0008]圖4為氣缸噴油與半圈更新齒之間關系圖,由圖4可看出,應用層軟件把曲軸信號盤的第2齒和第32齒當作每曲軸半圈的觸發點,來更新點火、噴油變量。現發動機噴油控制多為底層軟件采用一個噴油驅動觸發點方式,由于噴油相位是一個變化量,噴油開始點是由噴油相位、噴油脈寬逆推回來得到的,如圖2所示。為了保證底層軟件噴油驅動觸發點在噴油開始點的前面,通常把底層軟件噴油驅動觸發點選在最大噴油脈寬和最大噴油相位逆推回來的噴油開始點前面(如前面2個曲軸齒)。
[0009]結合圖2與圖4可看出,如果噴油脈寬和噴油相位足夠小,底層軟件噴油驅動觸發點可能會選在圖4的①之前、①到②之間、或②到③之間(其中①②③均為半圈更新齒)。由于應用層軟件在半圈更新齒會計算并更新噴油變量,因此把底層軟件噴油驅動觸發點選在圖4的①之前,底層軟件與應用層軟件之間交互噴油變量(即應用層軟件將計算的噴油變量傳給底層軟件)的實時性最差(因為在噴油開始點之前還要經歷①②③三次噴油變量更新);選在①到②之間,底層軟件與應用層軟件之間交互噴油變量的實時性次之(因為在噴油開始點之前要經歷②③兩次噴油變量更新);選在②到③之間,底層軟件與應用層軟件之間交互噴油變量的實時性較好(因為在噴油開始點之前只需經歷③一次噴油變量更新)。如果圖4的噴油開始點在半圈更新齒③之后觸發,則選在半圈更新齒③到噴油開始點之間,底層軟件與應用層軟件之間交互噴油變量的實時性最好(因為此時是利用最新更新的噴油變量進行噴油驅動的)。
[0010]從上面分析可以看出,無論是選擇一個固定的曲軸齒還是采用轉速分段法來觸發噴油驅動函數,都難以做到底層軟件與應用層軟件之間交互噴油變量的最好實時性。
【發明內容】
[0011]本發明的目的在于提供一種發動機噴油控制方法,以解決底層軟件與應用層軟件之間交互噴油變量的實時性較差的問題。
[0012]本發明實施例提供一種發動機噴油控制方法,包括如下步驟:
[0013]由最大噴油脈寬和最大噴油相位得出最早噴油開始點;
[0014]在該最早噴油開始點之前底層軟件第一次觸發噴油驅動函數以計算得到初始噴油開始點,并根據該初始噴油開始點設置執行噴油的計時;
[0015]判斷第一次觸發噴油驅動函數的觸發點到該初始噴油開始點之間的曲軸角度差范圍內是否存在有曲軸半圈更新齒;
[0016]若第一次觸發噴油驅動函數的觸發點到該初始噴油開始點之間的曲軸角度差范圍內存在有曲軸半圈更新齒,則選擇在最接近該初始噴油開始點的曲軸半圈更新齒之后且在該初始噴油開始點之前,該底層軟件再次觸發噴油驅動函數以計算得到實際噴油開始點,并