(合肥工業大學 電子科學與應用物理學院,安徽 合肥 230009)
施工升降機的防墜安全器是在升降機的限定距離內快速制動鎖定吊籠,及時剎車,起到保護地面人員的生命安全和防止被吊工件物體損壞的裝置。當前,為保證防墜安全器有效可靠,對防墜安全器性能的檢測方法主要有試驗臺法和實驗架法[1],并且由于施工現場環境位于室外,有震動、粉塵、電磁干擾等不利因素,對防墜安全器制動速度的實時檢測仍沒有一個可靠的電子測量手段[2]。因此本文設計了一種基于STM32的增量式編碼器測速模塊,編碼器通過聯軸器連接齒輪并與齒條嚙合,升降機吊籠運動帶動齒輪旋轉,后測速模塊測量編碼器的轉速,達到實時檢測施工升降機升降速度的目的[3]。根據齒輪漸進式防墜安全器的標準GB/T 34025-2017《施工升降機用齒輪漸進式防墜安全器》規定齒輪漸進式防墜安全器最大制動速度414r/ min、誤差范圍為1%,實測防墜器動作速度(平均值)為110(r/min)。因此本文在速度標定實驗臺上進行了速度(100~1000 r/min)標定實驗。由于施工現場噪聲較大,環境復雜,會對采用增量式編碼器及單片機作為前端數據采集模塊這一精度與靈敏度較高的電子器件產生噪聲干擾。為了降低環境因素對信號實時采集的影響[3],有效還原測量結果的真實性,需對測量結果進行信號濾波處理,而數據濾波可以有效降低受環境噪聲干擾產生的測量偏差,以驗證數據采集系統的可靠性,實現對施工升降機速度的準確測量。本文通過卡爾曼濾波(Kalman filtering)算法對數據結果進行處理,結果表明本設計滿足齒輪漸進式防墜安全器測速標準的要求。
卡爾曼濾波算法在通信、信息控制等領域應用廣泛。它是一種建立在線性系統的空間狀態基礎上,根據上一時刻系統狀態(測量和預估最優值)和擾動來估算系統當前狀態的最優值,其采用狀態空間的描述法和遞歸形式,得到與真實值誤差最小的估計值。對于整個濾波過程可描述為已知當前系統的最優估計(上一時刻的系統狀態及輸入和擾動對當前系統作用的最優解)結合下一時刻的輸入量和系統擾動推算下一時刻整個系統的狀態過程。并且卡爾曼濾波算法針對計算量較小的數值濾波需求具有良好的處理能力,對于有噪聲擾動(高斯白噪聲)的非平穩系統狀態具有更好的分析能力[4],其具有三個基本的特征:一是卡爾曼濾波是適用于有限維、離散和線性系統的算法,均可轉換為以狀態空間描述的系統,二是系統測量值(輸入量)并不能確定當前系統狀態且與增益無關,三是系統狀態量與控制量服從高斯分布時,才可有卡爾曼濾波遞歸公式計算得到的高斯隨機變量的條件均值和方差,以此得到最優估計值。因此針對本文的測速環境和濾波需求,卡爾曼濾波是一種最優的數字濾波和信號處理器。
為了很好地描述卡爾曼濾波過程,需引入一個離散控制過程的系統,并用式(1)的線性隨機微分狀態方程和式(2)的觀測方程來表示[5]。
狀態方程:
Xk=AX(k-1)+BU(k-1)+W(k-1)
(1)
觀測方程:
Zk=HXk+Vk
(2)
上述兩式中,k時刻的狀態量、觀測值和觀測噪聲分別為Xk、Zk和Vk,k-1時刻的狀態量、控制量和系統噪聲分別為Xk-1、Uk-1(無控制量則為零)和Wk-1,A、B、H為系統參數,若是多模系統則都為矩陣。
實際運用中,所要濾波的系統除要滿足上述兩個基本公式之外,由上文敘述的卡爾曼濾波基本特征可知還需假定系統為高斯白噪聲激發的線性動態系統且每次測量值還需含有高斯白噪聲分量。在滿足這些條件之下,整個卡爾曼濾波可分為兩個步驟即預測和更新,其中預測過程是指前一時刻的狀態最優估值來估計當前狀態的最優值,更新過程是指利用預測過程得到的當前時刻最優估值更新當前系統的狀態量,因此卡爾曼濾波算法是一種不斷迭代遞歸的預測-更新方法。則用于描述卡預測過程的方程見式(3)及(4),描述狀態更新方程則由式(5)、(6)和(7)三個方程組成[5]。
(3)
Pkp=APk-1AT+Q
(4)
當前狀態卡爾曼濾波增益:
(5)
當前狀態最優估算值:
(6)
均方差更新公式:
Pk=(I-KkH)Pkp
(7)

本文建立的速度測量系統中,升降機速度可認為是連續變化的,同時整個墜落過程中并沒有額外增加系統控制量,因此卡爾曼濾波迭代方程中可選定A=1,BUk-1=0,H=1。但由于測速系統在不同的環境下速度值不同,因此,Q和R的值將通過具體的實驗確定。
設計中主要由增量式編碼器和信號采集模塊組成速度傳感器。
2.1.1 增量式編碼器
現場對施工升降機進行測試實驗時,增量式編碼器通過聯接器硬連接在齒輪上,是直接采集齒輪轉速的前端器件,因此對編碼器的選型變得尤為重要,其精度直接影響測速的準確性[7-9]。文中采用的增量式編碼器(HN3806-1200-AB)分度為1200脈沖/轉、每分鐘最大轉速5000 rpm,能夠識別0.3°的轉角變化,在具有較高測速精度的同時,還擁有抗震、抗沖擊的能力,能很好地應用于現場工作環境。
2.1.2 信號采集模塊
設計中選用的微處理器為意法半導體公司的STM32F103工控板作為信號采集和處理單元,其主要具有CAN總線、RS232全雙工串行總線等工業上常用的通信接口,512 kB的Flash容量,RAM大小為64 kB,還擁有80個通用I/O口和8個16位通用定時器,適合作為數據采集和處理的控制模塊。
信號采集模塊內部連接如圖1所示。首先增量式編碼器的A、B相分別與單片機的PA1、PA0兩個I/O口引腳實現信號線連接,其次,當編碼器輸出脈沖信號時,由單片機接收并處理,數據處理完成后通過PA9、PA10兩個串口將表示速度的信號電平傳輸至用于信號電平轉換的MAX232模塊,最后,通過DB9航空插頭實現與上位機的硬連接,達到實時采集速度數據的目的。

圖1 信號采集模塊連接示意圖
為了檢驗信號采集模塊實時采集速度數據的準確性,在速度標定實驗臺上進行了多次速度標定實驗,實驗采用TSTA(東元)系列的伺服電機及伺服驅動器,且試驗臺內置了分辨率為8192ppr的編碼器,在設定額定轉速條件下,電壓變動率(±10%)對伺服系統的影響在±0.2%以下,而負載變動率(0~100%)伺服系統的影響也在±0.03%以下,具有很高的速度控制精度且標定試驗臺本身的誤差為0.049%。實驗原理示意圖如圖2所示。
如圖2所示,伺服電機通過聯接器與編碼器相連,當伺服控制系統設置標定轉速時,由伺服驅動器驅動編碼器旋轉,速度穩定后,由信號采集模塊對編碼器的輸出脈沖計數并定時測速,后通過DB9接口傳輸至上位機PC,做進一步的優化和顯示。編碼器轉速計算公式見式(8)。
(8)
N為時間T內單片機讀到的脈沖個數,T為單片機定時時間(s),M為增量編碼器的線數。
為提高采樣精度,降低速度誤差率,采用變M算法即對編碼器輸出的脈沖數4倍疊加[10]、計數時的上下溢預處理和定時器16位擴展成32位等處理,可保證在沒有強電干擾或巨大噪聲等惡劣環境下,基本不丟失脈沖。并且在STM32正交編碼模式下,計數器會根據增量編碼器的速度和方向自動進行修改,其內容始終表示編碼器的位置,計數方向對應于所連傳感器的旋轉方向[11]。且STM32單片機正交編碼模式自帶的計數方向識別,抖動濾波處理讓編碼器的使用更加高效,精準,這是不使用其他類型單片機作為系統微處理器的主要原因[12-13]。該模式下,理論可測速度值為1/4~232/4(r/min),因此在給定的誤差下,本設計理論上完全可以應用于低速環境下測速。
信號采集模塊-編碼器硬件配置過程中,將STM32F103工控板的PA0、PA1兩個I/O口先配置成數據輸入輸出串口,并與編碼器的B、A相信號線連接,用于接收編碼器的輸入脈沖信號;將STM32F103集成的定時器TIM2配置成正交編碼器模式,對從增量式編碼器接收的每一個脈沖信號的上升沿和下降沿各計數一次;將定時器TIM3配置成定時中斷模式,用于計算定時中斷周期內的編碼器轉速,并通過DB9接口實時速度數據傳輸至上位機,完成數據采集與處理,其數據采集處理流程如圖3所示。

圖3 脈沖計數、定時測速程序流程圖
工控板通電進行數據采集和處理之前,數據采集模塊需先完成程序初始化,主要包括串口初始化和定時器初始化等。
設計中使用兩個I/O口與上位機通信,兩個I/O口用于接收編碼器脈沖信號。程序通過調用GPIO_init()函數初始化I/O口,將輸入信號脈沖的I/O口配置成浮空輸入,用于全雙工通信的I/O口配置為復用推挽輸出和浮空輸入,最后設置校驗位、停止位和波特率等做串口通信協議匹配。
信號采集單元功能設計核心是利用定時器定時對編碼器信號脈沖計數。首先將一個定時器初始化為正交編碼器模式,用于對脈沖信號計數,另一個定時器初始化為定時中斷模式,實現周期性的數據處理
為對本設計的速度測量范圍和可靠性進行分析,在速度標定實驗臺上進行了多次標定實驗,在數據采樣周期為10、15、20、25、30 ms和速度標定試驗臺標定速度范圍為100~1000 r/min條件下,本系統測量的速度誤差和方差如圖4、5所示(已疊加標定試驗臺本身的誤差0.049%)。

圖4 速度誤差與轉速的關系

圖5 速度方差轉速的關系
考慮到施工升降機的速度平均值為1 m/s即159 r/min左右,如圖4、5所示,速度200 r/min以內采樣周期為25 ms誤差率更為穩定,數據離散型也較小。可以看出,速度為500~510 r/min時,速度誤差和方差發生了劇增,所以為得到極限測量值,在標定速度為500~510 r/min,采樣周期為25 ms條件下又進行了多次標定實驗,實驗結果見表1。

表1 采樣周期25 ms,速度誤差
用origin做處理后的結果如圖6所示。


圖6 采樣周期25 ms,速度誤差與轉速的關系
如圖6所示,速度在502 r/min之后,誤差會有一個很大的增加,因此本系統對速度的極限測量值為502 r/min。因此被測速度在100~502 r/min范圍內,系統測量精度較高。由上述分析可知速度在100~500 r/min之間時,誤差率都在1%以內,而一旦超過500 r/min 時誤差會快速增大,超過510 r/min時誤差急劇增大。且該速度范圍內的數據離散程度大致相同,表示實驗采用的算法能夠使單片機穩定采樣,反之,當轉速超過500 r/min時誤差率,方差迅速增大,單片機不能準確采樣,數據離散程度急劇增大。
但是由圖4、5可知,誤差均大于0,說明存在系統誤差,這是由于標定試驗臺測試時抖動引起的噪聲影響。為了更加準確的得到系統檢測速度的誤差范圍,采用卡爾曼濾波的方法對數據進行處理。實際檢測中,由于施工升降機實際工作的轉速分別約為159 r/min和382 r/min,因此選取了5個需標定的轉速點分別為100、200、300、400、500 r/min,并分別在采樣周期為10、15、20、25、30 ms時,利用MATLAB分析軟件對每組數據采集點進行濾波仿真分析,處理結果如圖7所示。

圖7 轉速測量及濾波曲線
如圖7所示,在對測量數據進行卡爾曼濾波處理前,轉速測量曲線存在較大的波動,而濾波之后,轉速測量值明顯收斂于速度標定曲線。因此分別對不同采用周期、不同標定轉速的測量數據進行濾波處理,并分析得到每組實驗轉速平均值,然后比較不同條件下測量速度的誤差變化,轉速驗證試驗的測量結果如圖8所示。

圖8 濾波后的轉速誤差
通過圖8中轉速驗證實驗的測量結果可以看出,在設定的采樣周期范圍內,轉速測量結果受采樣周期的變化影響較小,并且轉速范圍在100~500 r/min之間的測量誤差均約為±1%,滿足齒輪漸進式防墜安全器對動作速度測量的檢測要求。
標定速度超過500 r/min時,誤差開始增大,且要考慮現場干擾等情況,被測物速度不宜超過500 r/min即3 m/s。因此本設計采用的算法適合在低速情況下測量。
根據施工升降機的安全標準GB/T 34025-2017,防墜安全器的最大制動速度為414轉/min 且速度誤差1%,并且一般施工升降機的平均實測速度為110 r/min。數據分析表明,測量速度范圍在100~500 r/min之間時,誤差率都在±1%以內,因此本設計完全符合工程施工安全要求,可應用于施工升降機的實時檢測。