(合肥工業(yè)大學(xué) 電子科學(xué)與應(yīng)用物理學(xué)院,安徽 合肥 230009)
施工升降機(jī)的防墜安全器是在升降機(jī)的限定距離內(nèi)快速制動(dòng)鎖定吊籠,及時(shí)剎車,起到保護(hù)地面人員的生命安全和防止被吊工件物體損壞的裝置。當(dāng)前,為保證防墜安全器有效可靠,對(duì)防墜安全器性能的檢測(cè)方法主要有試驗(yàn)臺(tái)法和實(shí)驗(yàn)架法[1],并且由于施工現(xiàn)場(chǎng)環(huán)境位于室外,有震動(dòng)、粉塵、電磁干擾等不利因素,對(duì)防墜安全器制動(dòng)速度的實(shí)時(shí)檢測(cè)仍沒有一個(gè)可靠的電子測(cè)量手段[2]。因此本文設(shè)計(jì)了一種基于STM32的增量式編碼器測(cè)速模塊,編碼器通過聯(lián)軸器連接齒輪并與齒條嚙合,升降機(jī)吊籠運(yùn)動(dòng)帶動(dòng)齒輪旋轉(zhuǎn),后測(cè)速模塊測(cè)量編碼器的轉(zhuǎn)速,達(dá)到實(shí)時(shí)檢測(cè)施工升降機(jī)升降速度的目的[3]。根據(jù)齒輪漸進(jìn)式防墜安全器的標(biāo)準(zhǔn)GB/T 34025-2017《施工升降機(jī)用齒輪漸進(jìn)式防墜安全器》規(guī)定齒輪漸進(jìn)式防墜安全器最大制動(dòng)速度414r/ min、誤差范圍為1%,實(shí)測(cè)防墜器動(dòng)作速度(平均值)為110(r/min)。因此本文在速度標(biāo)定實(shí)驗(yàn)臺(tái)上進(jìn)行了速度(100~1000 r/min)標(biāo)定實(shí)驗(yàn)。由于施工現(xiàn)場(chǎng)噪聲較大,環(huán)境復(fù)雜,會(huì)對(duì)采用增量式編碼器及單片機(jī)作為前端數(shù)據(jù)采集模塊這一精度與靈敏度較高的電子器件產(chǎn)生噪聲干擾。為了降低環(huán)境因素對(duì)信號(hào)實(shí)時(shí)采集的影響[3],有效還原測(cè)量結(jié)果的真實(shí)性,需對(duì)測(cè)量結(jié)果進(jìn)行信號(hào)濾波處理,而數(shù)據(jù)濾波可以有效降低受環(huán)境噪聲干擾產(chǎn)生的測(cè)量偏差,以驗(yàn)證數(shù)據(jù)采集系統(tǒng)的可靠性,實(shí)現(xiàn)對(duì)施工升降機(jī)速度的準(zhǔn)確測(cè)量。本文通過卡爾曼濾波(Kalman filtering)算法對(duì)數(shù)據(jù)結(jié)果進(jìn)行處理,結(jié)果表明本設(shè)計(jì)滿足齒輪漸進(jìn)式防墜安全器測(cè)速標(biāo)準(zhǔn)的要求。
卡爾曼濾波算法在通信、信息控制等領(lǐng)域應(yīng)用廣泛。它是一種建立在線性系統(tǒng)的空間狀態(tài)基礎(chǔ)上,根據(jù)上一時(shí)刻系統(tǒng)狀態(tài)(測(cè)量和預(yù)估最優(yōu)值)和擾動(dòng)來估算系統(tǒng)當(dāng)前狀態(tài)的最優(yōu)值,其采用狀態(tài)空間的描述法和遞歸形式,得到與真實(shí)值誤差最小的估計(jì)值。對(duì)于整個(gè)濾波過程可描述為已知當(dāng)前系統(tǒng)的最優(yōu)估計(jì)(上一時(shí)刻的系統(tǒng)狀態(tài)及輸入和擾動(dòng)對(duì)當(dāng)前系統(tǒng)作用的最優(yōu)解)結(jié)合下一時(shí)刻的輸入量和系統(tǒng)擾動(dòng)推算下一時(shí)刻整個(gè)系統(tǒng)的狀態(tài)過程。并且卡爾曼濾波算法針對(duì)計(jì)算量較小的數(shù)值濾波需求具有良好的處理能力,對(duì)于有噪聲擾動(dòng)(高斯白噪聲)的非平穩(wěn)系統(tǒng)狀態(tài)具有更好的分析能力[4],其具有三個(gè)基本的特征:一是卡爾曼濾波是適用于有限維、離散和線性系統(tǒng)的算法,均可轉(zhuǎn)換為以狀態(tài)空間描述的系統(tǒng),二是系統(tǒng)測(cè)量值(輸入量)并不能確定當(dāng)前系統(tǒng)狀態(tài)且與增益無關(guān),三是系統(tǒng)狀態(tài)量與控制量服從高斯分布時(shí),才可有卡爾曼濾波遞歸公式計(jì)算得到的高斯隨機(jī)變量的條件均值和方差,以此得到最優(yōu)估計(jì)值。因此針對(duì)本文的測(cè)速環(huán)境和濾波需求,卡爾曼濾波是一種最優(yōu)的數(shù)字濾波和信號(hào)處理器。
為了很好地描述卡爾曼濾波過程,需引入一個(gè)離散控制過程的系統(tǒng),并用式(1)的線性隨機(jī)微分狀態(tài)方程和式(2)的觀測(cè)方程來表示[5]。
狀態(tài)方程:
Xk=AX(k-1)+BU(k-1)+W(k-1)
(1)
觀測(cè)方程:
Zk=HXk+Vk
(2)
上述兩式中,k時(shí)刻的狀態(tài)量、觀測(cè)值和觀測(cè)噪聲分別為Xk、Zk和Vk,k-1時(shí)刻的狀態(tài)量、控制量和系統(tǒng)噪聲分別為Xk-1、Uk-1(無控制量則為零)和Wk-1,A、B、H為系統(tǒng)參數(shù),若是多模系統(tǒng)則都為矩陣。
實(shí)際運(yùn)用中,所要濾波的系統(tǒng)除要滿足上述兩個(gè)基本公式之外,由上文敘述的卡爾曼濾波基本特征可知還需假定系統(tǒng)為高斯白噪聲激發(fā)的線性動(dòng)態(tài)系統(tǒng)且每次測(cè)量值還需含有高斯白噪聲分量。在滿足這些條件之下,整個(gè)卡爾曼濾波可分為兩個(gè)步驟即預(yù)測(cè)和更新,其中預(yù)測(cè)過程是指前一時(shí)刻的狀態(tài)最優(yōu)估值來估計(jì)當(dāng)前狀態(tài)的最優(yōu)值,更新過程是指利用預(yù)測(cè)過程得到的當(dāng)前時(shí)刻最優(yōu)估值更新當(dāng)前系統(tǒng)的狀態(tài)量,因此卡爾曼濾波算法是一種不斷迭代遞歸的預(yù)測(cè)-更新方法。則用于描述卡預(yù)測(cè)過程的方程見式(3)及(4),描述狀態(tài)更新方程則由式(5)、(6)和(7)三個(gè)方程組成[5]。
(3)
Pkp=APk-1AT+Q
(4)
當(dāng)前狀態(tài)卡爾曼濾波增益:
(5)
當(dāng)前狀態(tài)最優(yōu)估算值:
(6)
均方差更新公式:
Pk=(I-KkH)Pkp
(7)
本文建立的速度測(cè)量系統(tǒng)中,升降機(jī)速度可認(rèn)為是連續(xù)變化的,同時(shí)整個(gè)墜落過程中并沒有額外增加系統(tǒng)控制量,因此卡爾曼濾波迭代方程中可選定A=1,BUk-1=0,H=1。但由于測(cè)速系統(tǒng)在不同的環(huán)境下速度值不同,因此,Q和R的值將通過具體的實(shí)驗(yàn)確定。
設(shè)計(jì)中主要由增量式編碼器和信號(hào)采集模塊組成速度傳感器。
2.1.1 增量式編碼器
現(xiàn)場(chǎng)對(duì)施工升降機(jī)進(jìn)行測(cè)試實(shí)驗(yàn)時(shí),增量式編碼器通過聯(lián)接器硬連接在齒輪上,是直接采集齒輪轉(zhuǎn)速的前端器件,因此對(duì)編碼器的選型變得尤為重要,其精度直接影響測(cè)速的準(zhǔn)確性[7-9]。文中采用的增量式編碼器(HN3806-1200-AB)分度為1200脈沖/轉(zhuǎn)、每分鐘最大轉(zhuǎn)速5000 rpm,能夠識(shí)別0.3°的轉(zhuǎn)角變化,在具有較高測(cè)速精度的同時(shí),還擁有抗震、抗沖擊的能力,能很好地應(yīng)用于現(xiàn)場(chǎng)工作環(huán)境。
2.1.2 信號(hào)采集模塊
設(shè)計(jì)中選用的微處理器為意法半導(dǎo)體公司的STM32F103工控板作為信號(hào)采集和處理單元,其主要具有CAN總線、RS232全雙工串行總線等工業(yè)上常用的通信接口,512 kB的Flash容量,RAM大小為64 kB,還擁有80個(gè)通用I/O口和8個(gè)16位通用定時(shí)器,適合作為數(shù)據(jù)采集和處理的控制模塊。
信號(hào)采集模塊內(nèi)部連接如圖1所示。首先增量式編碼器的A、B相分別與單片機(jī)的PA1、PA0兩個(gè)I/O口引腳實(shí)現(xiàn)信號(hào)線連接,其次,當(dāng)編碼器輸出脈沖信號(hào)時(shí),由單片機(jī)接收并處理,數(shù)據(jù)處理完成后通過PA9、PA10兩個(gè)串口將表示速度的信號(hào)電平傳輸至用于信號(hào)電平轉(zhuǎn)換的MAX232模塊,最后,通過DB9航空插頭實(shí)現(xiàn)與上位機(jī)的硬連接,達(dá)到實(shí)時(shí)采集速度數(shù)據(jù)的目的。
圖1 信號(hào)采集模塊連接示意圖
為了檢驗(yàn)信號(hào)采集模塊實(shí)時(shí)采集速度數(shù)據(jù)的準(zhǔn)確性,在速度標(biāo)定實(shí)驗(yàn)臺(tái)上進(jìn)行了多次速度標(biāo)定實(shí)驗(yàn),實(shí)驗(yàn)采用TSTA(東元)系列的伺服電機(jī)及伺服驅(qū)動(dòng)器,且試驗(yàn)臺(tái)內(nèi)置了分辨率為8192ppr的編碼器,在設(shè)定額定轉(zhuǎn)速條件下,電壓變動(dòng)率(±10%)對(duì)伺服系統(tǒng)的影響在±0.2%以下,而負(fù)載變動(dòng)率(0~100%)伺服系統(tǒng)的影響也在±0.03%以下,具有很高的速度控制精度且標(biāo)定試驗(yàn)臺(tái)本身的誤差為0.049%。實(shí)驗(yàn)原理示意圖如圖2所示。
如圖2所示,伺服電機(jī)通過聯(lián)接器與編碼器相連,當(dāng)伺服控制系統(tǒng)設(shè)置標(biāo)定轉(zhuǎn)速時(shí),由伺服驅(qū)動(dòng)器驅(qū)動(dòng)編碼器旋轉(zhuǎn),速度穩(wěn)定后,由信號(hào)采集模塊對(duì)編碼器的輸出脈沖計(jì)數(shù)并定時(shí)測(cè)速,后通過DB9接口傳輸至上位機(jī)PC,做進(jìn)一步的優(yōu)化和顯示。編碼器轉(zhuǎn)速計(jì)算公式見式(8)。
(8)
N為時(shí)間T內(nèi)單片機(jī)讀到的脈沖個(gè)數(shù),T為單片機(jī)定時(shí)時(shí)間(s),M為增量編碼器的線數(shù)。
為提高采樣精度,降低速度誤差率,采用變M算法即對(duì)編碼器輸出的脈沖數(shù)4倍疊加[10]、計(jì)數(shù)時(shí)的上下溢預(yù)處理和定時(shí)器16位擴(kuò)展成32位等處理,可保證在沒有強(qiáng)電干擾或巨大噪聲等惡劣環(huán)境下,基本不丟失脈沖。并且在STM32正交編碼模式下,計(jì)數(shù)器會(huì)根據(jù)增量編碼器的速度和方向自動(dòng)進(jìn)行修改,其內(nèi)容始終表示編碼器的位置,計(jì)數(shù)方向?qū)?yīng)于所連傳感器的旋轉(zhuǎn)方向[11]。且STM32單片機(jī)正交編碼模式自帶的計(jì)數(shù)方向識(shí)別,抖動(dòng)濾波處理讓編碼器的使用更加高效,精準(zhǔn),這是不使用其他類型單片機(jī)作為系統(tǒng)微處理器的主要原因[12-13]。該模式下,理論可測(cè)速度值為1/4~232/4(r/min),因此在給定的誤差下,本設(shè)計(jì)理論上完全可以應(yīng)用于低速環(huán)境下測(cè)速。
信號(hào)采集模塊-編碼器硬件配置過程中,將STM32F103工控板的PA0、PA1兩個(gè)I/O口先配置成數(shù)據(jù)輸入輸出串口,并與編碼器的B、A相信號(hào)線連接,用于接收編碼器的輸入脈沖信號(hào);將STM32F103集成的定時(shí)器TIM2配置成正交編碼器模式,對(duì)從增量式編碼器接收的每一個(gè)脈沖信號(hào)的上升沿和下降沿各計(jì)數(shù)一次;將定時(shí)器TIM3配置成定時(shí)中斷模式,用于計(jì)算定時(shí)中斷周期內(nèi)的編碼器轉(zhuǎn)速,并通過DB9接口實(shí)時(shí)速度數(shù)據(jù)傳輸至上位機(jī),完成數(shù)據(jù)采集與處理,其數(shù)據(jù)采集處理流程如圖3所示。
圖3 脈沖計(jì)數(shù)、定時(shí)測(cè)速程序流程圖
工控板通電進(jìn)行數(shù)據(jù)采集和處理之前,數(shù)據(jù)采集模塊需先完成程序初始化,主要包括串口初始化和定時(shí)器初始化等。
設(shè)計(jì)中使用兩個(gè)I/O口與上位機(jī)通信,兩個(gè)I/O口用于接收編碼器脈沖信號(hào)。程序通過調(diào)用GPIO_init()函數(shù)初始化I/O口,將輸入信號(hào)脈沖的I/O口配置成浮空輸入,用于全雙工通信的I/O口配置為復(fù)用推挽輸出和浮空輸入,最后設(shè)置校驗(yàn)位、停止位和波特率等做串口通信協(xié)議匹配。
信號(hào)采集單元功能設(shè)計(jì)核心是利用定時(shí)器定時(shí)對(duì)編碼器信號(hào)脈沖計(jì)數(shù)。首先將一個(gè)定時(shí)器初始化為正交編碼器模式,用于對(duì)脈沖信號(hào)計(jì)數(shù),另一個(gè)定時(shí)器初始化為定時(shí)中斷模式,實(shí)現(xiàn)周期性的數(shù)據(jù)處理
為對(duì)本設(shè)計(jì)的速度測(cè)量范圍和可靠性進(jìn)行分析,在速度標(biāo)定實(shí)驗(yàn)臺(tái)上進(jìn)行了多次標(biāo)定實(shí)驗(yàn),在數(shù)據(jù)采樣周期為10、15、20、25、30 ms和速度標(biāo)定試驗(yàn)臺(tái)標(biāo)定速度范圍為100~1000 r/min條件下,本系統(tǒng)測(cè)量的速度誤差和方差如圖4、5所示(已疊加標(biāo)定試驗(yàn)臺(tái)本身的誤差0.049%)。
圖4 速度誤差與轉(zhuǎn)速的關(guān)系
圖5 速度方差轉(zhuǎn)速的關(guān)系
考慮到施工升降機(jī)的速度平均值為1 m/s即159 r/min左右,如圖4、5所示,速度200 r/min以內(nèi)采樣周期為25 ms誤差率更為穩(wěn)定,數(shù)據(jù)離散型也較小??梢钥闯?,速度為500~510 r/min時(shí),速度誤差和方差發(fā)生了劇增,所以為得到極限測(cè)量值,在標(biāo)定速度為500~510 r/min,采樣周期為25 ms條件下又進(jìn)行了多次標(biāo)定實(shí)驗(yàn),實(shí)驗(yàn)結(jié)果見表1。
表1 采樣周期25 ms,速度誤差
用origin做處理后的結(jié)果如圖6所示。
圖6 采樣周期25 ms,速度誤差與轉(zhuǎn)速的關(guān)系
如圖6所示,速度在502 r/min之后,誤差會(huì)有一個(gè)很大的增加,因此本系統(tǒng)對(duì)速度的極限測(cè)量值為502 r/min。因此被測(cè)速度在100~502 r/min范圍內(nèi),系統(tǒng)測(cè)量精度較高。由上述分析可知速度在100~500 r/min之間時(shí),誤差率都在1%以內(nèi),而一旦超過500 r/min 時(shí)誤差會(huì)快速增大,超過510 r/min時(shí)誤差急劇增大。且該速度范圍內(nèi)的數(shù)據(jù)離散程度大致相同,表示實(shí)驗(yàn)采用的算法能夠使單片機(jī)穩(wěn)定采樣,反之,當(dāng)轉(zhuǎn)速超過500 r/min時(shí)誤差率,方差迅速增大,單片機(jī)不能準(zhǔn)確采樣,數(shù)據(jù)離散程度急劇增大。
但是由圖4、5可知,誤差均大于0,說明存在系統(tǒng)誤差,這是由于標(biāo)定試驗(yàn)臺(tái)測(cè)試時(shí)抖動(dòng)引起的噪聲影響。為了更加準(zhǔn)確的得到系統(tǒng)檢測(cè)速度的誤差范圍,采用卡爾曼濾波的方法對(duì)數(shù)據(jù)進(jìn)行處理。實(shí)際檢測(cè)中,由于施工升降機(jī)實(shí)際工作的轉(zhuǎn)速分別約為159 r/min和382 r/min,因此選取了5個(gè)需標(biāo)定的轉(zhuǎn)速點(diǎn)分別為100、200、300、400、500 r/min,并分別在采樣周期為10、15、20、25、30 ms時(shí),利用MATLAB分析軟件對(duì)每組數(shù)據(jù)采集點(diǎn)進(jìn)行濾波仿真分析,處理結(jié)果如圖7所示。
圖7 轉(zhuǎn)速測(cè)量及濾波曲線
如圖7所示,在對(duì)測(cè)量數(shù)據(jù)進(jìn)行卡爾曼濾波處理前,轉(zhuǎn)速測(cè)量曲線存在較大的波動(dòng),而濾波之后,轉(zhuǎn)速測(cè)量值明顯收斂于速度標(biāo)定曲線。因此分別對(duì)不同采用周期、不同標(biāo)定轉(zhuǎn)速的測(cè)量數(shù)據(jù)進(jìn)行濾波處理,并分析得到每組實(shí)驗(yàn)轉(zhuǎn)速平均值,然后比較不同條件下測(cè)量速度的誤差變化,轉(zhuǎn)速驗(yàn)證試驗(yàn)的測(cè)量結(jié)果如圖8所示。
圖8 濾波后的轉(zhuǎn)速誤差
通過圖8中轉(zhuǎn)速驗(yàn)證實(shí)驗(yàn)的測(cè)量結(jié)果可以看出,在設(shè)定的采樣周期范圍內(nèi),轉(zhuǎn)速測(cè)量結(jié)果受采樣周期的變化影響較小,并且轉(zhuǎn)速范圍在100~500 r/min之間的測(cè)量誤差均約為±1%,滿足齒輪漸進(jìn)式防墜安全器對(duì)動(dòng)作速度測(cè)量的檢測(cè)要求。
標(biāo)定速度超過500 r/min時(shí),誤差開始增大,且要考慮現(xiàn)場(chǎng)干擾等情況,被測(cè)物速度不宜超過500 r/min即3 m/s。因此本設(shè)計(jì)采用的算法適合在低速情況下測(cè)量。
根據(jù)施工升降機(jī)的安全標(biāo)準(zhǔn)GB/T 34025-2017,防墜安全器的最大制動(dòng)速度為414轉(zhuǎn)/min 且速度誤差1%,并且一般施工升降機(jī)的平均實(shí)測(cè)速度為110 r/min。數(shù)據(jù)分析表明,測(cè)量速度范圍在100~500 r/min之間時(shí),誤差率都在±1%以內(nèi),因此本設(shè)計(jì)完全符合工程施工安全要求,可應(yīng)用于施工升降機(jī)的實(shí)時(shí)檢測(cè)。