杜 博,夏春蕾,戴曙光
(上海理工大學 光電信息與計算機工程學院,上海 200093)
在汽車測控領域,由于傳統車身控制器主要通過微控制器處理數據采集開關信號,并以CAN或者LIN總線將指令傳送給相應的節點和子節點,這種傳統控制方法繁雜且無節點反饋信息,如果節點失效則需要通過故障診斷來恢復系統。當前在汽車車身控制還存在一些不足:第一,控制方法諸多,但控制復雜,設計難度高,成本相對較高;第二,很多在理論上優秀的控制算法,在工程應用領域難以實現。
為了彌補傳統控制方法的魯棒性缺陷,可以從以下三個方面考慮;第一,采用高性能的單體鋰電池提高其單個硬件特性;第二,尋求最優且在工程領域易實現的控制策略以提高軟件性能;第三,可對所在汽車車身控制管理系統參數進行定量誤差分析,結合最優控制算法的實施,可應用在車身測量控制系統中。文獻[1]采用傳統汽車電器系統點對點通信方式,對于電子程度越來越高的汽車而言,將使其線束十分復雜,不僅增加電器系統成本,而且會因為節點繁多使系統運行可靠性降低。文獻[2]和[3]分別提出快速原型驗證系統和參數標定V模型車身網絡控制技術,這些方法雖然能夠提高系統開發效率和可靠性,但由于其系統為封閉式架構,在可交換性和可復用性上存在一定缺陷。文獻[4]提出一種基于蟻群算法的車身主動控制方法,采用參數自適應PID控制算法,雖在一定程度上可以抑制車身控制低頻區域振動幅度,但不適應于車身振動幅度較大的高頻區域。因此,本文提出一種優化的基于STM32的車身控制方法,以STM32為核心的嵌入式開發平臺,實時處理車身各關鍵件角度傳感器值,建立MDH測量機運動學模型,再通過溫度傳感器檢測因溫度導致的熱變形誤差,實時在線修正測量誤差,并引入嵌入式操作系統以應用編程方式進行更新[5]。通過一系列測量實驗和數據分析,該系統的測量精度符合設計要求。
本文提出一種優化的基于STM32的車身測量控制應用系統,首先建立測量機MDH數學模型,獲取角度傳感器角度值和測量機機械結構參數,利用MDH模型得到空間坐標。系統硬件以ARM Cortex-M3為嵌入式開發平臺,軟件以嵌入式操作系統為基礎,編寫車身測控外設驅動和任務處理程序,確保系統運行可靠,且數據存儲方式靈活,同時建立便捷直觀操作模式以及友好人機交互界面。系統整體方案框圖如圖1。

圖1 系統整體方案框圖
圖1中ARM Cortex-M3平臺連接LCD觸摸屏,可進行診斷控制。處理器接到總線信息后,通過標識符位區分診斷和操作指令。如果是診斷指令則將數據信息以LIN總線協議的格式,將數據通過標準的LIN接口發送給相應的子節點;如果是操作指令,則根據具體的指令信息,將數據打包成CAN總線協議格式,將報文通過CAN收發器傳送給相應的子節點。子節點在收到操作指令后作出相應的功能操作,進而完成整個操作流程。另外,當子節點有消息或狀態需要反饋給主控節點的時候,子節點將指令或狀態信息以相應的報文協議的格式發到處理器中。ARM根據提取的具體指令或信息,將子節點需要反映的狀態和操作顯示在觸摸屏上。
如圖2所示,根據機身結構模擬建立以基座為原點的機身初始姿態坐標,包括一個基座、四個連桿、五個關節和一個測頭,在每個關節裝有角度傳感器。運用MDH建模方法建立機身測量方程,數學模型建立的第一步是要確定測量機的初始姿態,因為不同的初始姿態所得到的數學模型是不同的。在初始姿態下,所有關節的角度變量都為零度。如圖2建立坐標系,O1為基座與桿件L1連接處,L1以角度θ1繞著O1點Z1坐標軸旋轉;O3與O2類似,關節角度θ3表示桿件L2與L3的相對位置;桿件3和4的偏置長度為d,相對轉角為θ4;O6為測頭。設定O1點為坐標系原點,根據坐標變換計算得到O6在O1點坐標系下相對于O1點的空間坐標值,即可完成對測量機結構的數學建模。

圖2 機身初始姿態坐標
首先進行坐標矩陣變換,利用MDH建模方法進行旋轉β角度變換,當相鄰關節軸線平行時,將標準DH模型矩陣乘以一個旋轉項,得到MDH模型矩陣為

其中,

然后,從O3轉換到O5,各坐標系Z軸相互正交,MDH轉換矩陣為

最后推導O5到O6的轉換圓柱坐標的變換公式。圓柱坐標公式為

將以上坐標轉換進行整合得到測量車身運動學方程,設測頭相對于測量車身坐標系原點坐標為(Xk,Yk,Zk),得到測頭坐標值為

本文設計的基于STM32的車身控制系統,其中ARM Cortex-M3與總線通信是系統的核心,其在通信速率、穩定性、準確性上都有很高的要求。本文采用的是CAN和LIN總線通信,采用該總線原因如下:第一,在節點通信速率上能夠滿足ARM模塊的通信要求;第二,在功能和資源配置上,ARM模塊本身有很多外設接口資源被占用,其IO口配置不易滿足當前傳輸速率和功能配置。
總線通信采用的是主從工作模式,ARM主機控制數據傳輸。在硬件資源上,采用四線制雙向通信。在通信過程中,ARM通過片選信號CS發出啟動傳輸信號,將已裝入8位移位寄存器中的數據在8個時鐘信號的驅動下,一次通過移位寄存器中,整個通信過程中沒有指定數據流。考慮到總線通信存在的缺陷,當主機向從機發送數據時,從機接收到數據后會拉低中斷信號線提示主機數據已經收到。
總線硬件驅動程序主要由以下函數組成:第一,字符設備驅動加載和卸載函數,第二,字符設備驅動的file_operation結構體和成員函數。下面簡單介紹加載和卸載函數驅動程序,定義代碼如下:

在加載和卸載函數中分配和釋放字符,主要是由register_chrdev_region()和unregister_chrdev_region()函數來實現,具體的加載和卸載函數如下:

分別隨機獲取車身關鍵件角度傳感器測量值,每個部位選擇不同的三種姿態,得到表1數據,傳感器實驗數據,實測值與理論偏差在1度范圍內,系統精度較高,符合系統要求。系統實驗測試平臺如圖3所示。
本文對汽車車身測量控制系統實現了一種基于STM32的控制,彌補了傳統控制方法可靠性較弱的不足。采用一種優化的車身測量控制策略,將車身控制的各項開關控制和系統診斷兩項功能集中到一個觸摸屏的控制界面中,實現了集中式的控制,提高了系統操作的快捷性、透明性和安全性。經過多次實驗表明,該系統可以滿足實際應用需要,具有較好的應用前景。

表1 傳感器實驗數據

圖3 實驗平臺
[1] Sun B,Hu Y L.Automatic Body Control Model Experimental Platform Design Based on CAN-Bus[J].Advanced Materials Research,2012,383-390.
[2] Junshan Gao,Yixiang Zhang,Bo Wun.The Design of a Vehicle Network CAN/LIN Gateway Based on ARM[J].ICEEE,2010:2328-2331.
[3] Fredriksson L B.CAN for Critical Embedded Automotive Networks[J].Micro IEEE,2002,22(4):28 -35.
[4] 王金江,秦貴和,郭立書,李秋菊,等.支持多總線互連的車身控制系統設計[J].微計算機信息,2008,24(28):26-28.
[5] 韓江洪,魏振春,張本宏,等.總線式車身控制系統的規則化建模方法[J].汽車工程,2006,28(12):1121-1124.