車(chē)窗防夾算法的探究和實(shí)現(xiàn)
引言
本文引用地址:http://cafeforensic.com/article/91252.htm隨著汽車(chē)的普及,汽車(chē)的安全性越來(lái)越受到人們的重視,畢竟這是關(guān)乎生命安全的大事。而現(xiàn)在汽車(chē)多采用電動(dòng)車(chē)窗,但是電動(dòng)車(chē)窗仍存在著較大的安全隱患。到目前為止已經(jīng)有多起乘客被上升的車(chē)窗夾傷的事故被報(bào)道,其中大部分受傷者是兒童,因此電動(dòng)車(chē)窗防夾保護(hù)被提出。所謂電動(dòng)車(chē)窗防夾保護(hù),就是一旦在車(chē)窗自動(dòng)上升過(guò)程中偵測(cè)到有障礙物的存在,車(chē)窗就自動(dòng)停止向上運(yùn)動(dòng),防止損毀障礙物;并向下運(yùn)動(dòng),以釋放障礙物。
電動(dòng)車(chē)窗防夾的基本思想可以概括為:在車(chē)窗自動(dòng)上升過(guò)程中,傳感器檢測(cè)到障礙物的存在(包括已被夾或判斷有障礙物存在上升途中)。當(dāng)檢測(cè)到有障礙物存在時(shí),驅(qū)動(dòng)電機(jī)反轉(zhuǎn),使車(chē)窗下降一段距離,釋放障礙物。本文介紹的防夾保護(hù)算法主要是通過(guò)檢測(cè)電機(jī)轉(zhuǎn)速的變化來(lái)實(shí)現(xiàn)的。
電機(jī)周期的測(cè)量
在防夾設(shè)計(jì)中,嚴(yán)格地說(shuō)涉及到的參數(shù)應(yīng)該是電機(jī)的轉(zhuǎn)速。但是,在本課題中,更確切地說(shuō),檢測(cè)到的不是轉(zhuǎn)速,而是周期。本課題采用Timer模塊里的捕捉模式來(lái)檢測(cè)兩個(gè)脈沖下降沿之間的時(shí)間間隔從而得到周期值。周期越大,速度就越慢,反之,周期越小,速度就越快。因此,從功能上看,兩個(gè)參數(shù)的效果是一致的。為了節(jié)省微控制器的資源,就直接周期來(lái)代替速度進(jìn)行防夾檢測(cè)。
捕捉計(jì)算到脈沖周期與實(shí)際的脈沖周期之間的換算關(guān)系為:
Timer設(shè)置的是16預(yù)分頻,重裝載值為0000H,因此它的溢出周期為43ms,分辨率為2.7ms。
在周期檢測(cè)中,霍爾傳感器的輸出腳與XC886的P3.4口相連。P3.4復(fù)用為T(mén)imer21脈沖捕獲模式的輸入引腳。本課題中,當(dāng)霍爾傳感器輸入為脈沖下降沿時(shí),Timer產(chǎn)生中斷,并在中斷程序中計(jì)算周期。具體計(jì)算流程如下:
圖1周期計(jì)算流程圖
其中,Pre_reload為前一次脈沖到達(dá)時(shí)寄存器中的值,用當(dāng)前值減去前一次的值即為周期。值得一提的是,period_count這個(gè)變量。當(dāng)計(jì)時(shí)器溢出一次,period_count就加一。從而避免因計(jì)時(shí)器溢出而導(dǎo)致周期計(jì)算錯(cuò)誤。
實(shí)現(xiàn)的具體做法是:由于只需在車(chē)窗自動(dòng)上升時(shí)進(jìn)行防夾。所以首先先判斷是否為自動(dòng)上升。若是自動(dòng)上升,則判斷是否為第一次進(jìn)入中斷程序,如果是第一次進(jìn)入中斷,將當(dāng)前計(jì)數(shù)器中的值存入變量Pre_reload,如果不是第一次進(jìn)入,則將當(dāng)前計(jì)數(shù)器的值減去Pre_reload的值作為周期值,再將當(dāng)前值存入Pre_reload中。留待下一次進(jìn)入中斷時(shí)使用。每進(jìn)入一次中斷就如此工作,直到收到停止命令或車(chē)窗到達(dá)頂部為止。
車(chē)窗位置的確定
車(chē)窗在上升過(guò)程中,由于存在車(chē)窗重量和窗框阻力等因素,在每個(gè)位置上的周期大小是不一樣的。因此判斷車(chē)窗位置也是相當(dāng)重要的。從機(jī)械的角度講,電機(jī)旋轉(zhuǎn)會(huì)帶動(dòng)鋼絲繩的運(yùn)動(dòng),從而帶動(dòng)車(chē)窗的上下開(kāi)閉。電機(jī)每旋轉(zhuǎn)一定角度,鋼絲繩就相應(yīng)地運(yùn)動(dòng)一定行程,因此車(chē)窗運(yùn)動(dòng)的行程與電機(jī)旋轉(zhuǎn)的圈數(shù)成線(xiàn)性關(guān)系。而電機(jī)的旋轉(zhuǎn)會(huì)使得霍爾傳感器產(chǎn)生脈沖信號(hào),因此車(chē)窗位置也可以采用霍爾傳感器和XC886CS中的計(jì)時(shí)器模塊相結(jié)合的方式來(lái)測(cè)量。當(dāng)電機(jī)轉(zhuǎn)過(guò)一圈,計(jì)時(shí)器Timer就會(huì)捕獲到霍爾信號(hào)的下降沿,從而在中斷服務(wù)程序中對(duì)車(chē)窗位置作出記錄。由于車(chē)窗有可能上下運(yùn)動(dòng),因此車(chē)窗位置的計(jì)算不能只在車(chē)窗上升時(shí)進(jìn)行,在車(chē)窗下降的時(shí)候也要作出相應(yīng)的調(diào)整。因此程序在進(jìn)入中斷服務(wù)后首先查詢(xún)車(chē)窗的狀態(tài)是上升還是下降。如果是上升,則電機(jī)每轉(zhuǎn)動(dòng)一圈車(chē)窗位置就相應(yīng)遞增;如果是下降,則電機(jī)每轉(zhuǎn)動(dòng)一圈,車(chē)窗位置就遞減。
防夾車(chē)窗算法的提出和實(shí)現(xiàn)
本課題采用的防夾算法是基于電機(jī)運(yùn)行參數(shù)的方法。如何得到準(zhǔn)確的運(yùn)行參數(shù)即周期,是防夾算法能否實(shí)現(xiàn)的關(guān)鍵。本課題還根據(jù)實(shí)際運(yùn)行中發(fā)現(xiàn)的算法紕漏,對(duì)算法進(jìn)行優(yōu)化。
防夾試驗(yàn)數(shù)據(jù)分析
為了得到確切的基準(zhǔn)周期和電流值,我們使用通過(guò)串口發(fā)送數(shù)據(jù)的方法。利用Keil C中的UART_vSendData8(ubyte ubData)語(yǔ)句發(fā)送周期和電流值,并利用串口助手這個(gè)軟件接收數(shù)據(jù)。
當(dāng)車(chē)窗自動(dòng)上升時(shí),反復(fù)多次發(fā)送數(shù)據(jù)到顯示器。取出運(yùn)行較好的幾組數(shù)據(jù),取其平均值,計(jì)算出每個(gè)高度上每次運(yùn)行時(shí)的實(shí)時(shí)值與平均值的差值,然后確定一個(gè)較適合的容差。
從串口發(fā)送出來(lái)的值中可以看到,車(chē)窗上升的脈沖周期,也就是車(chē)窗的上升速度從底部經(jīng)過(guò)約12個(gè)脈沖后,基本呈線(xiàn)性上升的態(tài)勢(shì)。由于通過(guò)串口發(fā)送數(shù)據(jù)可以得到在每個(gè)點(diǎn)上脈沖周期的確切值,因此對(duì)每個(gè)點(diǎn)上的周期值均可以取到多次試驗(yàn)結(jié)果的均值,通過(guò)對(duì)均值和各次試驗(yàn)的實(shí)際值相比較可以發(fā)現(xiàn),這些值的均值在加上容差1846后,絕大多數(shù)的實(shí)際運(yùn)行值都會(huì)小于該值,基于裕量和最大夾持力的考慮,最后決定選擇容差大小為2000。
防夾算法的提出
在算法設(shè)計(jì)的時(shí)候,只考慮了在車(chē)窗自動(dòng)上升的時(shí)候才進(jìn)行防夾的情況。在其他三種情況下(包括車(chē)窗手動(dòng)上升、車(chē)窗手動(dòng)下降以及車(chē)窗自動(dòng)下降)都不進(jìn)行防夾判斷。因?yàn)檐?chē)窗下降不存在防夾的問(wèn)題,如果車(chē)窗手動(dòng)上升時(shí)有障礙物被夾持的話(huà),則可以通過(guò)手的控制來(lái)避免被夾傷。在算法中采用標(biāo)志位bWIN_Up_Down和bAutoFlag來(lái)標(biāo)示車(chē)窗是否為自動(dòng)上升,如果控制器得到的是自動(dòng)上升的命令,則這兩位置位。如果這兩位為1,則進(jìn)行防夾判斷。還有值得注意的是,根據(jù)實(shí)驗(yàn)所得數(shù)據(jù),車(chē)窗從底部啟動(dòng)的3個(gè)脈沖內(nèi)其電壓和脈沖周期值相當(dāng)復(fù)雜而且隨機(jī),沒(méi)有任何規(guī)律可循,而且在底部的3個(gè)脈沖車(chē)窗玻璃的總行程不會(huì)超過(guò)1cm,因此在這一段不進(jìn)行防夾。
該算法的思想是,將上節(jié)中提到的基準(zhǔn)周期存放在RAM里。然后在車(chē)窗自動(dòng)上升過(guò)程中檢測(cè)電機(jī)運(yùn)行的實(shí)時(shí)周期值,將實(shí)時(shí)值與基準(zhǔn)值進(jìn)行比較,若兩者之間的差值連續(xù)三個(gè)脈沖到來(lái)時(shí)超過(guò)容差,即認(rèn)為有障礙物存在。車(chē)窗進(jìn)入自動(dòng)下降程序,車(chē)窗降到底部。若沒(méi)有連續(xù)三個(gè)脈沖到來(lái)時(shí)超過(guò)或在容差之內(nèi),則認(rèn)為無(wú)障礙物存在,則自動(dòng)上升直到車(chē)窗頂部。
圖2 正常狀態(tài)下的周期和電流圖
圖3 發(fā)生夾住狀況的周期和電流圖
算法優(yōu)化
根據(jù)算法在實(shí)際運(yùn)行中存在的問(wèn)題,必須對(duì)算法進(jìn)行優(yōu)化,以得到更好的防夾效果。
4.3.1 車(chē)窗在底部啟動(dòng)時(shí)的算法優(yōu)化
根據(jù)對(duì)脈沖周期值的綜合分析可知,在第12個(gè)脈沖周期之前,該值的變化十分不穩(wěn)定,經(jīng)常會(huì)出現(xiàn)超出容差范圍的情況。在此之后該值基本上均在已定容差之內(nèi)。因此對(duì)底部的啟動(dòng)問(wèn)提,提出的方案是,濾去前12個(gè)脈沖點(diǎn),也就是在前12個(gè)脈沖點(diǎn)上不進(jìn)行防夾。理由是,前10個(gè)脈沖點(diǎn)為車(chē)窗最底部的部分,車(chē)窗行程不超過(guò)3cm,對(duì)防夾保護(hù)不會(huì)產(chǎn)生大的影響。
4.3.2 車(chē)窗到頂時(shí)的算法優(yōu)化
通過(guò)實(shí)驗(yàn)可知,如果車(chē)窗正常上升的話(huà),車(chē)窗玻璃在第209個(gè)脈沖時(shí)為車(chē)窗玻璃與上窗框密封條之間的接觸點(diǎn)。車(chē)窗在進(jìn)入上密封條后由于環(huán)境溫度、空氣濕度的不同導(dǎo)致密封條的摩擦力會(huì)不同,因此會(huì)出現(xiàn)有的時(shí)候車(chē)窗不能正常關(guān)閉的情況。
由此可以得出解決的辦法,就是將防夾的上限從第223個(gè)脈沖,降至第208個(gè)脈沖,也就是在第208個(gè)脈沖以上不進(jìn)行防夾,而以下還是按照原有的算法進(jìn)行防夾。
4.3.3 車(chē)窗中途停止再啟動(dòng)時(shí)的算法優(yōu)化
車(chē)窗中途停止再啟動(dòng)與底部啟動(dòng)其本質(zhì)是一樣的,兩者的區(qū)別是,底部啟動(dòng)在第一個(gè)脈沖的時(shí)候雖然會(huì)大的離譜,但是在接下來(lái)的幾個(gè)脈沖會(huì)有下降的趨勢(shì),能給出一個(gè)容差,使得兩值能在容差范圍內(nèi),但是中途停止再啟動(dòng)是連續(xù)幾個(gè)脈沖大的離譜,而且隨著車(chē)窗位置的不同以及中途停止時(shí)間的長(zhǎng)短其大小也會(huì)發(fā)生變化,所以采取不同的策略進(jìn)行算法優(yōu)化。
在車(chē)窗啟動(dòng)的時(shí)候,忽略最先的8個(gè)脈沖以屏蔽由于車(chē)窗啟動(dòng)帶來(lái)的脈沖周期的波動(dòng)。在屏蔽之后,還是按照算法來(lái)進(jìn)行防夾運(yùn)算。8個(gè)脈沖是通過(guò)反復(fù)實(shí)驗(yàn)得到的較為合理的值,在8個(gè)周期后,周期值基本恢復(fù)正常,在容差之內(nèi)。
圖4 優(yōu)化后的算法流程圖
圖5 發(fā)生防夾動(dòng)作的周期和電路圖
電動(dòng)車(chē)窗防夾的總結(jié)
本課題采用的防夾算法是離散的,并不是實(shí)時(shí)的,只是在一定的時(shí)間對(duì)周期和電流進(jìn)行采樣。因?yàn)榛魻杺鞲衅鞯牟蓸右膊皇菍?shí)時(shí)的。這種方法適用于計(jì)算能力不是很強(qiáng),處理速度不是很快的微處理器。
本課題采用的是絕對(duì)式防夾,在每個(gè)高度上檢測(cè)周期和電流,與基準(zhǔn)值比較,三次超出容差就認(rèn)為有障礙物,進(jìn)入防夾處理。
參考文獻(xiàn):
[1]高玉霞..基于知識(shí)的轎車(chē)車(chē)門(mén)布置系統(tǒng)的研究與開(kāi)發(fā) [D].天津:燕山大學(xué)車(chē)輛工程專(zhuān)業(yè),2006.
[2] Anti-Pinch Safety System for Vehicle Closure Device[P].US Patent:6051945,2000.
[3] 吳志紅,朱元,王光宇.英飛凌16位單片機(jī)XC164CS的原理與基礎(chǔ)應(yīng)用[M].上海:同濟(jì)大學(xué)出版社2006.
[4]Ng Jit Keah David, 面向電動(dòng)車(chē)窗/天窗應(yīng)用的機(jī)車(chē)嵌入式功率半導(dǎo)體[J].電子產(chǎn)品世界,2008(12):73
霍爾傳感器相關(guān)文章:霍爾傳感器工作原理
霍爾傳感器相關(guān)文章:霍爾傳感器原理
評(píng)論