為了實現 PID 控制所需要的等間隔采樣,我們使用了一個定時中斷,每 2ms 進行一次數據采樣和 PID 計算。與此并行,系統中還設計了一個轉速脈沖檢測中斷,從而實現了轉速檢測。為了調試的需要,程序中還在 main{}函數中加入了相關的調試代碼,這部分代碼有最低的優先級,可以在保證不影響控制策略的情況下實現發送調試數據等功能。檢測環節對整個控制系統的質量起到至關重要的作用
4.3.2 PID控制調整速度
本系統采用的是增量式數字 PID 控制,通過每一控制周期(10ms)讀入脈沖數間接測得小車當前轉速 vi_FeedBack,將 vi_FeedBack 與模糊推理得到的小車期望速度 vi_Ref 比較,由以下公式求得速度偏差error1 與速度偏差率 d_error。
error1 = vi_Ref– vi_FeedBack; (公式3)
d_error = error1 –vi_PreError; (公式4)
公式 4 中, vi_PreError 為上次的速度偏差。考慮到控制周期較長,假設按 2.5m/s 的平均速度計算,則一個控制周期小車大概可以跑過 2.5cm,如果按這種周期用上述 PID 調節速度,則會導致加速減速均過長的后果,嚴重的影響小車的快速性和穩定性。為了解決這個問題,可以在 PID 調速控制中加入 BANG-BANG 控制思想:根據 error1 的大小,如果正大,則正轉給全額占空比;如果負大,則自由停車或給一個反轉占空比;否則就采用 PID 計算的占空比。
完整的pdf格式文檔51黑下載地址:
智能車PID_算法實現原理講解.pdf
(500.71 KB, 下載次數: 350)
2018-4-9 20:40 上傳
點擊文件名下載附件
PID精講.pdf
(460.82 KB, 下載次數: 204)
2018-4-9 20:40 上傳
點擊文件名下載附件
|