吳少杰 仲梁維
摘? 要:為使扭矩測量更加便捷、準確,設計了一種新型扭矩測試系統(tǒng)。以STM32為控制中心,利用基于Qt的Python庫完成人機交互界面,通過無線串口通信技術實現(xiàn)二者之間的通信。下位機程序中利用中位值平均濾波算法對采樣的數(shù)據(jù)進行濾波,并收集濾波后的數(shù)據(jù)。通過觀察發(fā)現(xiàn),經(jīng)過ADC轉換過后的數(shù)字量與對應扭矩值并非一元線性關系,因扭矩值的大小為連續(xù)數(shù)值型變量,又考慮到周圍環(huán)境的溫濕度可能會影響傳感器的精度,故采用多元線性回歸模型進行分析。將扭矩值作為結局變量,數(shù)字量、環(huán)境溫度、環(huán)境濕度作為解釋變量,利用控制變量法進行分組實驗,將訓練集導入SPSS軟件中得到所需模型,給出回歸方程。其中數(shù)字量的影響系數(shù)為0.108,溫度的影響系數(shù)為0.007,濕度的影響系數(shù)為0.001,均正向影響扭矩值,均方誤差MSE計算模型損失L=0.00106,滿足精度要求。
關鍵詞:扭矩測試;多元回歸;濾波;無線串口通信
中圖分類號:TP206? ? ?文獻標識碼:A
Design of Wireless Acquisition System for High Precision
Static Torque based on Multiple Regression Model
WU Shaojie, ZHONG Liangwei
Abstract: This paper proposes to design a new torque testing system to make torque measurement more convenient and accurate. Taking STM32 as the control center, the human-computer interaction interface is completed by using the Qt-based Python library, and the communication between them is realized by wireless serial port communication technology. In the lower computer program, the average filtering algorithm of median value is used to filter the sampled data, and collect the filtered data. Through observation, it is found that the digital quantity converted by the ADC and the corresponding torque value are not linear in a single variable. As the magnitude of the torque value is a continuous numerical variable, and considering that the temperature and humidity of the surrounding environment may affect the accuracy of the sensor, a multivariate linear regression model is used for analysis. Taking the torque value as the outcome variable, and the numerical value, ambient temperature, and ambient humidity as the explanatory variables, the control variable method is used to conduct group experiments. The training set is imported into SPSS software to obtain the required model, and the regression equation is given. Among them, the influence coefficient of digital quantity is 0.108, that of temperature is 0.007, and that of humidity is 0.001. All of them positively affect the torque value, and the mean square error MSE is used for calculating model loss L=0.00106, which meets the accuracy requirements.
Keywords: torque test; multiple regression; filtering; wireless serial communication
1? ?引言(Introduction)
扭矩是機械領域一個非常重要的測量量,與很多應用有著緊密的聯(lián)系,許多行業(yè)需要進行精確的扭矩測量[1]?,F(xiàn)今,測量扭矩的方式與產(chǎn)品多種多樣,常見的有數(shù)顯扭力扳手、高精度扭矩測試儀等。小型的扭矩測量儀體積小、成本低、精度低,可測量的扭矩范圍有限,且無法保存測量結果[2]。大型的扭矩測量儀雖然精度高,扭矩測量范圍廣,可以進行實時測試跟蹤,但其成本較高,且不便于攜帶[3]。
本文結合了以上扭矩測量的優(yōu)點,利用STM32單片機,結合基于Qt的Python庫,利用無線串口通信技術,設計了高精度靜態(tài)扭矩無線采集系統(tǒng),可適用于多種工況。
2? ?系統(tǒng)總體方案(Overall system scheme)
本系統(tǒng)主要包括扭矩傳感器、DHT11模塊、STM32F103C8T6開發(fā)板、AD620放大電路、W25Q128大容量FLASH存儲模塊、LoRa模塊、電源模塊、電量顯示模塊、上位機軟件等。
以STM32單片機為主控制器,利用扭矩傳感器,將輸入的扭矩大小轉換為電壓信號,電壓信號通過AD620模塊進行差分放大后,利用STM32微控制器進行采集,將采集到的模擬信號通過ADC(模/數(shù)轉換器)轉化成數(shù)字信號??紤]到無線傳輸數(shù)據(jù)時數(shù)據(jù)的準確性與穩(wěn)定性,同時也應保證每秒上千次的采樣頻率,將采集到的數(shù)字信號經(jīng)過處理后,存放到外部FLASH中,待采樣結束后,將FLASH中存儲的數(shù)據(jù)利用無線串口傳入上位機,上位機對數(shù)據(jù)進行分析、保存[4]。
實驗中,將采集到的數(shù)據(jù)、對應標準扭矩值、環(huán)境溫度、環(huán)境濕度進行回歸分析,找到其中較為精確的函數(shù)關系,觀察樣本點的特點,找出適當?shù)臑V波算法。利用基于Qt的Python庫,完成上位機程序的編寫,實現(xiàn)圖形的繪制與數(shù)據(jù)的顯示、存儲。總體設計框架如圖1所示。
3? ?下位機部分及精度分析(The lower computer and its precision analysis)
3.1? ?主控芯片
STM32F103C8T6是一款基于ARM Cortex-M內核STM32系列的32 位微控制器,程序存儲容量為64 kB,頻率為72 MHz,可以實現(xiàn)系統(tǒng)高性能與低功率消耗并存,擁有32 位CPU、并行總線結構、嵌套中斷向量控制單元、調試系統(tǒng)、標準的存儲映射、SPI接口、ADC等結構和功能,選用該芯片作為主控芯片完全滿足此次設計要求[5]。
3.2? ?DHT11模塊
該模塊用于實時監(jiān)測采集環(huán)境的溫度、濕度,從而補償溫濕度對扭矩傳感器造成的精度方面的影響,原理圖如圖2所示。
該模塊共有四根引腳,用1 號和4 號引腳供電,2 號引腳進行數(shù)據(jù)傳輸,3 號引腳為懸空態(tài)。一次完整的數(shù)據(jù)傳輸有40 bit(高位先出),數(shù)據(jù)格式為:8 bit 濕度整數(shù)數(shù)據(jù)、8 bit濕度小數(shù)數(shù)據(jù)、8 bit溫度整數(shù)數(shù)據(jù)、8 bit溫度小數(shù)數(shù)據(jù)、8 bit校驗和。數(shù)據(jù)傳輸正確時校驗和數(shù)據(jù)等于“8 bit濕度整數(shù)數(shù)據(jù)+8 bit濕度小數(shù)數(shù)據(jù)+8 bit溫度整數(shù)數(shù)據(jù)+8 bit溫度小數(shù)數(shù)據(jù)”所得結果的末八位[6]。
3.3? ?扭矩傳感器
本次設計選取的扭矩傳感器為應變片扭矩傳感器,使用的是應變電測技術。它的原理是利用彈性軸粘貼應變計組成測量電橋,當彈性軸受扭矩作用發(fā)生微小形變時,電橋的電阻值就會發(fā)生變化,進而電信號發(fā)生變化,實現(xiàn)扭矩的測量。應變片扭矩傳感器的特點是分辨能力高,誤差較小,測量范圍大,價格低廉,便于選擇和大量使用,所以選擇該類型的扭矩傳感器來得到電壓信號。
所選傳感器技術參數(shù)如表1所示,該傳感器適用于靜態(tài)、非連續(xù)旋轉的扭矩力值測量,符合設計要求。
3.4? ?FLASH模塊
SPI是一種高速、全雙工、同步的通信總線。W25Q128是一款SPI接口的NOR Flash芯片,其存儲空間為16 M字節(jié)。W25Q128可以支持SPI的模式0和模式3,即CPOL=0/CPHA=0和CPOL=1/CPHA=1兩種模式。該模塊可以存儲保存高速采集到的數(shù)據(jù),待采集結束后發(fā)送給上位機。
現(xiàn)進行采集過程的最大時間計算。為保證數(shù)據(jù)傳輸過程穩(wěn)定、可靠,將采集到的電壓信號通過ADC、濾波算法、函數(shù)模型轉換后,其數(shù)據(jù)類型為無符號32 位整型數(shù)據(jù),即每次接收的數(shù)據(jù)為四個字節(jié)。為方便數(shù)據(jù)在FLASH模塊中的存儲(按字節(jié)寫入),需將接收到的32 位整型數(shù)據(jù)進行拆分,拆分后存放在FLASH模塊中??紤]到傳感器所能測量的范圍大小,32 位的整型數(shù)據(jù)只需要存放在三個字節(jié)中即可。為達到高速采樣的要求,每秒應保證1,000 次以上采樣頻率。所以,單次可采集的最大時間為:
(1)
所以該模塊上述條件下,單次可采集數(shù)據(jù)的最大時間約為93 min,可滿足大多數(shù)工況的需求。
W25Q128被組織為65,536 個可編程的頁,每頁256 bytes。擦除方式分為16 頁一組(即一個扇區(qū)4 kbytes)、128 頁一組(即八個扇區(qū)32 kbytes)、256 頁一組(即16 個扇區(qū)或1 個塊64 kbytes),或整個芯片擦除。該芯片有4,096 個可擦除扇區(qū),或256 個可擦除塊??紤]到實驗中數(shù)據(jù)量的大小,系統(tǒng)中采用扇區(qū)擦除來提高代碼的執(zhí)行效率。寫入、讀取過程的流程圖如圖3所示。
3.5? ?AD620放大電路
AD620是一款單芯片儀表放大器,采用經(jīng)典的三運放改進設計,通過調整片內電阻的絕對值,只需要一個電阻便可實現(xiàn)對增益的精確編程(時精度可達0.15%),如圖4所示。
(1)增益倍數(shù)與調零值確定
單片機具備ADC功能的引腳可檢測的電壓范圍為0—3.3 V,若要考慮雙向扭矩的采集,在扭矩為0的狀態(tài)下放大器輸出的電壓應設為1.5 V,若為正向扭矩則輸出電壓值為1.5—3.0 V,若為反向扭矩則輸出電壓值為0—1.5 V。而傳感器可輸出的最大電壓為20 mV,當放大模塊放大倍數(shù)G為75 倍時,最大輸出電壓為:
(2)
未超出ADC引腳測量范圍,滿足要求。
雙向扭矩采集會使系統(tǒng)的測量范圍降低,若是單向扭矩采集在調零時令即可。本系統(tǒng)以單向扭矩采集為例,為保證系統(tǒng)留有一定余量(可采集更大扭矩),仍取。
(2)外部增益電阻值確定
輸入晶體管Q1和Q2提供一路高精度差分對雙極性輸入,同時由于采用SuperBeta處理,因此輸入偏置電流減小10 倍。反饋環(huán)路Q1-A1-R1和Q2-A2-R2使輸入器件Q1和Q2的集電極電流保持恒定,從而可將輸入電壓作用于外部增益設置電阻上。這樣就產(chǎn)生了從輸入至輸出的差分增益,其計算公式為:
(3)
單位增益減法器A3用來消除任何共模信號,輸入電壓噪聲降至9 nVA/Hz,由輸入器件的集電極電流和基極電阻決定。內部增益電阻和調整至絕對值,外部增益電阻值計算公式為:
(4)
3.6? ?精度分析
(1)ADC采樣轉換時間計算
首先打開ADC的時鐘,配置RCC相關寄存器組,配置PLL頻率為72 MHz并將其設為主時鐘,配置PCLK2頻率為72 MHz,并配置ADC時鐘頻率為PCLK2的8 分頻。對ADC寄存器組進行初始化,使用ADC1的第5 個轉換通道,轉換通道數(shù)為1,采樣時間為55.5 個時鐘周期。
現(xiàn)預估ADC完成單次轉換所需時間。單次轉換所需時間等于ADC對電壓的采樣時間(采樣周期)與采樣完畢之后的轉換時間(轉換周期)之和。
首先計算其時鐘頻率為:
(5)
采樣時間設定為55.5 個時鐘周期,此外ADC的轉換時間為12.5 個時鐘周期,得到整個轉換所需的周期數(shù)為:
(6)
所以本次設計中ADC的單次轉換時間為:
(7)
符合系統(tǒng)采樣頻率要求。
(2)精度分析
STM32F103C8T6中ADC采樣精度為12 位,對應4,096 個采樣點。上述分析中,單向扭矩輸出的電壓范圍為0—1.5 V,對應的采樣點個數(shù)P為:
(8)
對應的扭矩范圍為0—200 N·m。
絕對誤差為:
(9)
符合系統(tǒng)精度要求。
3.7? 中位值平均濾波算法
現(xiàn)進行如下實驗:對傳感器施加一恒定扭矩,當扭矩值穩(wěn)定后,收集并保存ADC轉化后的數(shù)據(jù),共100 個樣本點,將收集到的數(shù)據(jù)導入Excel表中,觀察并分析樣本點,如圖5所示。
由圖5可以看出,當給定一恒定扭矩后,由于各類干擾因素,波形圖在個別點出現(xiàn)大幅度波動,導致最大值與實際偏差過大,對結果影響較大,所以需加入濾波算法,使數(shù)據(jù)點更加平滑[7]。
考慮到本系統(tǒng)采樣數(shù)據(jù)的特點,采用中位值平均濾波算法來消除脈沖干擾,融合了中位值濾波、平均值濾波的優(yōu)點。中位值平均濾波算法是通過連續(xù)采樣 個數(shù)據(jù),對數(shù)據(jù)從小到大排序,然后去掉最大值和最小值,對剩余的 個值計算算數(shù)平均值,也就是中位值濾波和算數(shù)平均濾波的結合。由圖5的圖像特點可知,波動過程中最大、最小值約每10 次出現(xiàn)一次,所以取,后期可以根據(jù)實際工況要求調整的取值,流程圖如圖6所示。
添加濾波算法后,重新采集數(shù)據(jù),選取記錄的100 個樣本點與濾波前數(shù)據(jù)對比,如圖7所示。
觀察圖7可知,添加中位值平均濾波算法后,可顯著降低由外界影響因素導致的異常波動。
4? ?函數(shù)模型預測(Function model prediction)
4.1? ?多元回歸分析
對采樣的值進行濾波后,通過對比收集到的數(shù)字量的值與真實扭矩值的大小,發(fā)現(xiàn)二者之間的關系并不是簡單的一元線性模型。為確保系統(tǒng)的精確性及穩(wěn)定性,本次設計利用回歸分析找到采集到的數(shù)字量與真實扭矩值之間的函數(shù)關系,考慮到扭矩值的大小為連續(xù)數(shù)值型變量,選用線性回歸模型進行分析。
一般的多元回歸模型可寫為:
(10)
其中,為個體的第一個解釋變量,為個體的第二個解釋變量,以此類推。令恒為1,則上述方程簡化為:
(11)
定義列向量與參數(shù)向量:
(12)
(13)
其中,列向量包含個體的全部解釋變量,參數(shù)向量包含全部回歸系數(shù),所以模型可寫為:
(14)
對所有個體都成立,若有n 個形如式(14)的方程,將這n 個方程疊放:
(15)
求解方程組,即可得到參數(shù)的估計值。在本系統(tǒng)中,因為所選傳感器為應變片扭矩傳感器,所以若將最終的扭矩值T作為結局變量,自變量分別是:通過ADC和濾波算法得到的數(shù)字量、環(huán)境溫度、環(huán)境濕度。
4.2? ?模型結果分析
在不同的環(huán)境溫度、濕度下進行實驗,對傳感器施加0—200 N·m的載荷。收集所得到的110 組數(shù)據(jù),將前100 組作為訓練集,預測函數(shù)模型;將后10 組數(shù)據(jù)作為測試集,計算Loss值大小。將數(shù)據(jù)導入SPSS軟件中進行分析處理,得到所需模型。以標準化預測值(ZPRED)作為橫軸、標準化殘差(ZRESID)作為縱軸繪制直方圖和正態(tài)概率圖[8]。
(1)德賓-沃森(D-W)檢驗
為保證得到的結果穩(wěn)定可靠,檢驗樣本數(shù)據(jù)中的自相關性。從表2中可以看出其D-W統(tǒng)計量為2.053,其中a代表預測變量,所以這100 個樣本之間是獨立的。
(2)變量之間共線性檢驗
若參與本次模型計算的自變量之間存在極強的關聯(lián)關系,會影響模型的準確性。由表3得出三個自變量的VIF(方差膨脹系數(shù))值小于5,所以變量之間不存在多重共線性。
(3)殘差正態(tài)性問題
以扭矩值為因變量繪制直方圖如圖8所示。
為了驗證模型和數(shù)據(jù)是否匹配,分析殘差圖,如圖9所示為其正態(tài)分布,所建立模型良好。
(4)模型結果
由上述分析可得,模型符合回歸分析方法的假設,所得結果可靠。由表3可得,溫度、濕度、數(shù)字量的顯著性小于0.005,這三個因變量可顯著影響扭矩值的大小,其中濕度的影響系數(shù)為0.001,正向影響扭矩值;溫度的影響系數(shù)為0.007,正向影響扭矩值;數(shù)字量的影響系數(shù)為0.108,正向影響扭矩值。其回歸方程為:
(16)
(5)模型Loss計算
將測試集所得數(shù)據(jù)帶入回歸方程中,收集數(shù)據(jù)至表4,通過與真實扭矩值對比,計算其均方誤差。
(17)
(18)
5? ?上位機程序設計(PC programming)
上位機部分利用基于Qt的Python庫完成,通過預先擬定的協(xié)議實現(xiàn)數(shù)據(jù)的接收、發(fā)送和保存。擬定的協(xié)議格式如表5所示。
協(xié)議首位為地址位(首次上電需向FLASH寫入地址);協(xié)議第二部分為功能碼,例如11對應數(shù)據(jù)發(fā)送,17對應數(shù)據(jù)停止發(fā)送;參數(shù)部分可以設置相關參數(shù),如回歸函數(shù)的系數(shù)及符號;協(xié)議以“FE EF”作為結束部分,接收到結束符后,代表協(xié)議發(fā)送完畢。串口接收到數(shù)據(jù)后,進入串口中斷函數(shù),進行相關處理。
該系統(tǒng)可自動檢測扭矩采集的開始和結束,系統(tǒng)流程圖如圖10所示。
6? ?結論(Conclusion)
本文基于多元回歸模型對串口采集到的數(shù)據(jù)進行回歸分析,找到了影響應變片扭矩傳感器的外界因素,利用DHT11模塊對扭矩值進行一定的補償,降低了外界環(huán)境對扭矩測量值的影響,提高了測量值的準確性。以STM32F103C8T6微控制器為核心,通過LoRa模塊實現(xiàn)與上位機的通信,保證了采集的速度與精度。在系統(tǒng)小型化的前提下,為扭矩測量提供了較為準確、便捷的方案,降低了扭矩測量的成本。
參考文獻(References)
[1] 趙永峰,王玉,賴富文,等.基于NFC的無源無線扭矩測量系統(tǒng)[J].傳感技術學報,2021,34(07):989-994.
[2] 謝家祖,張翠萍,王勝立,等.基于FPGA與STM32的高速數(shù)據(jù)采集卡的設計與實現(xiàn)[J].電子元器件與信息技術,2020,4(10):
115-116.
[3] 郝張振,付成偉.基于STM32單片機的轉速扭矩顯示傳輸系統(tǒng)的設計[J].電子設計工程,2017,25(05):116-118.
[4] 丁鵬芳,伍川輝.單片機在扭矩測量中的應用[J].中國測試技術,
2005(02):56-57.
[5] 韓英,徐洋.基于STM32F103C8T6的氣動隔膜泵測試系統(tǒng)設計[J].電子技術,2021,50(09):34-35.
[6] WANG X H, LI W G, WANG L L. Based on STM32F103 cowshed environment intelligent control system[J]. IOP
Conference Series: Materials Science and Engineering, 2020, 7(5):82-86.
[7] 夏興宇,張正勇.基于STM32的超聲波物位檢測系統(tǒng)的設計[J].儀表技術,2021(01):35-39.
[8] 李娜卿.基于SPSS多元回歸分析的城市地下水用水量預測[J].河北水利,2021(08):42-43.
作者簡介:
吳少杰(1996-),男,碩士生.研究領域:嵌入式應用.
仲梁維(1962-),男,碩士,教授.研究領域:計算機輔助設計與智能制造.