湖北工程學院 楊鵬勝
?
關于智能小車軟件設計的探討
湖北工程學院楊鵬勝
由于汽車工業的飛速發展,關于汽車的研究越來越多,各種在模擬環境(蛇形彎道)下的小車種類層出不窮。根據智能小車不需要人為持續管理,能夠顯示時間速度、里程;能自動尋跡,尋光,避障;在行駛時還可以控制速度、定位停止、傳輸圖像等功能。在科學勘察、交通出行等領域有著廣泛的應用前景。下面主要探討關于小車軟件方面的的設計。
小車的控制包括電機和舵機的控制,具體的控制算法有PID控制,bang-bang算法控制和模糊控制。
1.1PID控制
PID 控制是工業過程控制中歷史最悠久,生命力最強的控制方式。這主要是因為這種控制方式具有直觀、實現簡單和魯棒性能好等一系列的優點。PID控制主要有三部分組成,比例、積分、微分。比例控制是一種最簡單的控制方式。其控制器的輸出與輸入誤差信號成比例關系。偏差一旦產生,調節器立即產生控制作用使被控量朝著減小偏差的方向變 化,控制作用的強弱取決于KP。當僅有比例控制時系統輸出存在穩態誤差為了消除穩態誤差,引入積分控制。積分項對誤差取決于時間的積分,隨著時間的增加,積分項會增大。這樣,即便誤差很小,積分項也會隨著時間的增加而加大,它推動控制器的輸出增大使穩態誤差進一步減小,直到等于零。為了預測預測誤差變化的趨勢,引入微分的控制器,這樣就能夠提前使抑制誤差的控制作用等于零,甚至為負值,從而避免了被控量的嚴重超調。PID控制狂徒如圖1所示,

圖1
對應的誤差傳遞函數為:

式中,Kp 為比例增益;Ti 為積分時間常數;Td 為微分時間常數;U(s)為控制量; E(s) 為被控量與設定值 R(s)的偏差。時域表達式為:

在單片機中,我們僅能對數字信號處理,即數字 PID 控制。將上式離散化,得:

A.位置式PID算法直接利用上述離散化公式計算,框圖如右圖所示。由于積分項(Pi)是將所有采集值偏差相加,在一段時間后會很浪費單片機資源。對其稍加改進,得到 增量型 PID 算法。
B.增量式 PID 算法為:

式三減式四得:

由此,第k個采樣時刻實際控制量為u(k)=u(k-1)+△u(k),為方便書寫,寫為:

其中,q0=(1+T/Ti+Td/T), q1=-Kp(1+2Td/T),q2=KpTd/T
由上可知,利用三個歷史數據,遞推使用,即可完成PID控制量。框圖如圖2所示。
1.2模糊控制
一般控制系統包含了五個主要部分,即:定義變量、模糊化、知識庫、邏輯判斷及反模糊化,底下將就每一部分做簡單的說明:
(1)定義變量:也就是決定程序被觀察的狀況及考慮控制的動作,例如在一般控制問題上,輸入變量有輸出誤差 E 與輸出誤差之變化率 CE,而控制變量則為下一個狀態之輸入U。其中E、CE、U統稱為模糊變量。
(2)模糊化(fuzzify):將輸入值以適當的比例轉換到論域的數值,利用口語化變量來描述測量物理量的過程,依適合的語言值(linguisitc value)求該值相對之隸屬度,此口語化變量我們稱之為模糊子集合(fuzzy subsets)。
(3)知識庫:包括數據庫(data base)與規則庫(rule base)兩部分,其中數據庫是提供處理模糊數據之相關定義;而規則庫則藉由一群語言控制規則描述控制目標和策略。
(4)邏輯判斷:模仿人類下判斷時的模糊概念,運用模糊邏輯和模糊推論法進行推論,而得到模糊控制訊號。此部分是模糊控制器的精髓所在。
(5)解模糊化(defuzzify):將推論所得到的模糊值轉換為明確的控制訊號,做為系統的輸入值。模糊算法可以解決一些非線性問題,將賽道分為直線、入大小彎、出大小彎、蛇形彎道,對應的直線加速、入大彎減速轉方向、入小彎制動轉方向、出彎加速、蛇形彎道直接通過(若可以達到這種前瞻性)。要達到這種控制要通過實際 檢測,分析大量賽道磁場信息,找出它們的特征。
軟件運行需要配置單片機各個模塊寄存器數值,使單片機各個模塊正常工作。初始化中包括:單片機時鐘配置、I/O口配置、PWM模塊配置、A/D模塊配置、RTI實時中斷配置、脈沖捕捉模塊配置。當初始化完畢后,進入跑車程序:對傳感器輸入信號進行采樣,當完成一次采樣后將采樣值映射成車相對于跑道的位置,根據當前與過去位置決定舵機轉角和電機速度,通過改變PWM模塊內部寄存器數值可以得到不同占空比的方波信號,實現對舵機和電機的調節。軟件整體流程如圖3所示。


圖2

圖3
小車調試上述算法參數的獲取必須通過實際的測量,跑道信息的獲取用藍牙藍傳送數據。利用藍牙串口模塊,將所需數據發回PC機,通過 MATLAB仿真分析偏差變化,對數據進行處理得到賽道信息,從而調整參數使之達到最佳值。
綜上所述,小車軟件設計需要考慮實際操作中方方面面的問題,而控制方法更是重中之重,雖然模糊控制可以較好解決一些非線性問題,但控制復雜,實際調試中較PID控制無明顯優勢,所以我們采用PID控制。舵機為位置式PD,雖然存在穩態誤差,但可以快速響應;電機控制為增量式 PID,由于給定速度頻繁變化,采用微分先行 PID,使電機能夠快速響應。
[1]夏克儉.數據結構及算法[M].北京:國防工業出版社,2001.
[2]仲志丹,張洛平,張青霞.PID調節器參數自尋優控制在運動伺服中的應用[J].2000.