林聯(lián)偉,呂瑩,焦九順
(株洲易力達(dá)機(jī)電有限公司,湖南株洲 412000)
由于數(shù)字信號傳感器的抗干擾能力強(qiáng)、易于故障診斷、可靠性高等特點(diǎn),電動助力轉(zhuǎn)向器(Electric Power Steering,EPS)越來越多地采用數(shù)字式的扭矩和角度傳感器。由于其PWM的測量非常容易,普通的單片機(jī)通過捕捉端口即可實(shí)現(xiàn)高精度的測量,所以PWM形式的數(shù)字傳感器運(yùn)用非常廣泛。對于扭矩傳感器來說,PWM的占空比大小即代表扭矩的大小,所以只需得到PWM占空比即可得到扭矩值;而對于角度傳感器來說,PWM值與角度并無直接關(guān)系,需要根據(jù)兩路信號PWM的大小再通過一個角度算法才可得到角度值。文中描述針對角度傳感器角度值解算的一種具體實(shí)現(xiàn)方法,通過分析角度傳感器的信號特征、角度信號的測量、角度測量結(jié)果的歸一化處理、角度的計算和建模仿真、置信度的計算等方面闡述角度算法。
圖1 角度P信號和S信號示意圖
角度傳感器的角度信號由兩路信號組成:其中一個信號一個周期內(nèi)能表示的角度范圍為0°~40°,此信號稱之為P信號;另一個信號一個周期內(nèi)能表示的角度范圍為0°~296°,此信號稱之為S信號。40和296的最小公倍數(shù)為1 480,所以角度傳感器P信號和S信號一起能表示的角度量程范圍為0°~1 480°,這個量程范圍內(nèi)有37個P信號周期和5個S信號周期,如圖1所示。
在量程范圍的中間位置740°時,P信號和S信號的占空比均為50%。P信號和S信號的占空比范圍為0~100%,根據(jù)傳感器信號的定義:P信號和S信號的占空比有效范圍為12.5%~87.5%。
為了測量P信號和S信號的占空比,需要將P信號和S信號分別接入單片機(jī)的捕捉端口,進(jìn)行上升沿和下降沿的捕捉,然后根據(jù)上升沿和下降沿之間的時間關(guān)系,即根據(jù)低電平或高電平的時間與周期的比值計算出占空比大小。已知角度傳感器P信號的標(biāo)稱頻率為1 000 Hz,標(biāo)稱周期為1 ms;S信號的標(biāo)稱頻率為200 Hz,標(biāo)稱周期為5 ms。當(dāng)捕捉定時器為16位,為了能夠保證至少12位的測量分辨率,而且測量P信號和S信號的定時器在一個信號周期內(nèi)不至溢出,需要將定時器的時鐘設(shè)定在一個合適的范圍。通過優(yōu)選,將定時器時鐘設(shè)定為10 MHz,即定時器每0.1 μs計數(shù)一次。可測量的最大周期為6.553 5 ms(152.59 Hz)。當(dāng)被測頻率為2 000 Hz時的測量分辨率為:0.5 ms/0.1 μs=5 000,高于12位(212=4 096),滿足測量所需分辨率的要求。假設(shè)被測信號低電平的捕捉值為t,周期的捕捉值為T,則占空比由公式(1)計算得出。
Duty=t<<16/T
(1)
PWM占空比范圍0~100%即換算到16位的數(shù)值范圍0~65 535。由公式(1)可以得到P信號的占空比值PwmP_pc和S信號的占空比值PwmS_pc兩個測量值。
圖2 P信號周期跳變波形示意圖
測量到的P信號占空比PwmP_pc值和S信號占空比PwmS_pc值,需要通過掐頭去尾提取12.5%~87.5%之間有用的數(shù)據(jù)部分。即將占空比值向下偏移12.5%,偏移后12.5%變成0%,12.5%對應(yīng)的16位數(shù)值為65 536×12.5%=8 192;87.5%向下偏移12.5%后變成75%,75%對應(yīng)的16位數(shù)值為65 536×75%=49 152。將掐頭去尾后的兩個值分別取名為PwmP_mn和PwmS_mn,則它們的取值范圍為[0,49 152)。
PwmP_mn和PwmS_mn需要?dú)w一化到相同的數(shù)據(jù)當(dāng)量。為了方便移位計算,設(shè)定角度1°用256(即28)來表示。則P信號的最大值為40°×256=10 240; S信號的最大值為296°×256=75 776。由此可得,P信號的歸一化系數(shù)為10 240/49 152=(5×211)/(3×214)=5/24;S信號的歸一化系數(shù)為75 776/49 152=(37×211)/(3×214)=37/24。將P和S信號歸一化后的值分別取名為PwmP_ch和PwmS_ch。計算公式如下:
PwmP_ch=PwmP_mn×5/24
(2)
PwmS_ch=PwmS_mn×37/24
(3)
PwmP_ch的取值范圍為[0, 10 240),PwmS_ch的取值范圍為[0, 75 776)。通過歸一化之后的P信號和S信號與角度關(guān)系如圖3所示。
圖3 歸一化后的P信號和S信號示意圖
用S信號和P信號歸一化后的值PwmS_ch和PwmP_ch進(jìn)行差值計算,差值Vd的計算公式如下:
(4)
差值Vd波形如圖4所示,其波形為37個非連續(xù)的階梯狀波形,階梯的間隔大小為296°/37=8°,對應(yīng)階梯的間隔值為75 776/37=2 048。
圖4 差值Vd與角度關(guān)系
通過Vd可以得到0~36共37個索引值Index,索引值分布不成規(guī)律,因此可根據(jù)索引值查表得到實(shí)際角度成連續(xù)的階梯編號Lut。由于采用移位的計算方式計算索引值,也即向下取整,所以為了能得到準(zhǔn)確的索引值,需要對Vd進(jìn)行4°的向上偏移,偏移值為4×256=1 024。偏移結(jié)果用Pos表示。Pos/2 048即Pos右移11位,結(jié)果為索引值Index。
Pos=Vd+1 024
(5)
Index=Pos>>11
(6)
連續(xù)階梯編號Lut與索引號的對應(yīng)關(guān)系如表1所示。
表1 連續(xù)階梯編號Lut與索引號的對應(yīng)關(guān)系
從圖4可以看出,一個階梯代表的是一個P信號的周期,即代表實(shí)際角度為40°,所以角度AngSaw可以由索引號Index查表得到連續(xù)階梯編號Lut乘以一個P信號的周期值10 240,再加上PwmP_ch的值。用公式表示如下:
AngSaw=Lut[Index]× 10 240+PwmP_ch
(7)
AngSaw的取值范圍為[0, 378 880),最終需要將得到的角度換算成物理角度單位(°)的值A(chǔ)ngReal,為了保證結(jié)果精度為0.1°,同時使P信號和S信號PWM為50%處,即角度傳感器量程的一半處,也就是740°的位置設(shè)為0°,換算方法如下:
AngReal=[(AngSaw×10)>>8]-7 400
(8)
式中:AngSaw×10,然后右移8位。
AngReal的取值范圍為[-7 400, 7 400),表示的角度范圍為-740° ~740°。根據(jù)以上算法,用Simulink進(jìn)行建模和仿真,仿真模型如圖5所示,仿真結(jié)果如圖6所示,圖中可以看到角度計算結(jié)果AngReal完全正確。
圖5 角度算法的仿真模型
圖6 角度算法的仿真結(jié)果
前面已經(jīng)提到,S信號和P信號的差值Vd是37個階梯,每個階梯的間隔為2 048,理論上Vd是2 048的整數(shù)倍,但由于測量電路參數(shù)、傳感器本身信號質(zhì)量等因素影響,Vd并非2 048的整數(shù)倍,存在余數(shù)。其余數(shù)越大則代表P信號和S信號與理論值偏差越大。這里將這個余數(shù)與理論值的偏差率定義為置信度。如圖7所示為任意階梯中余數(shù)與角度的關(guān)系。假設(shè)在這個階梯中,余數(shù)為X,則X=Mod(Pos, 2 048), 余數(shù)X的偏差為ΔX=X-1 024,置信度始終為正值,所有余數(shù)的偏差需要取絕對值,即置信度為|ΔX|/1 024。由于余數(shù)是采用Pos值計算得到,而Pos值是在Vd的基礎(chǔ)上加了1 024,所有X理論值是1 024,ΔX為零,置信度也為零,也就是說P信號和S信號與理論值不存在偏差,這是最理想的情況。
圖7 余數(shù)與角度關(guān)系
根據(jù)置信度的定義可以推導(dǎo)計算公式如下:
Vres= |Mod(Pos, 2 048)-1 024|×100
(9)
式中:Vres取值范圍為[0,100];Pos為公式(5)計算結(jié)果;Mod為取余數(shù)函數(shù)。經(jīng)過數(shù)據(jù)模擬,當(dāng)置信度Vres大于50時,角度計算結(jié)果將可能出現(xiàn)錯誤的情況,所以為了得到正確的計算角度,需要保證置信度Vres低于50。
經(jīng)過對角度傳感器信號特征的分析,信號的測量及數(shù)據(jù)的歸一化處理,得到角度的計算方法。然后根據(jù)算法使用Simulink進(jìn)行建模和仿真,驗(yàn)證了算法的正確性。同時根據(jù)P信號和S信號的偏差率,也就是置信度,對其進(jìn)行了定義和計算公式推導(dǎo)。在此算法中采用了移位算法,提高了算法的計算速度,非常適合運(yùn)行于單片機(jī)中。