日期:2023-02-22 14:52:43瀏覽量:34934
這里我們來講解減速電機(jī)的轉(zhuǎn)速六個問題,如何系統(tǒng)性的進(jìn)行PID調(diào)參!
這里我們先聊聊什么是PID~
當(dāng)今的閉環(huán)自動控制技術(shù)都是基于反饋的概念以減少不確定性。反饋理論的要素包括三個部分:測量、比較和執(zhí)行。測量關(guān)鍵的是被控變量的實(shí)際值,與期望值相比較,用這個偏差來糾正系統(tǒng)的響應(yīng),執(zhí)行調(diào)節(jié)控制。在工程實(shí)際中,應(yīng)用最為廣泛的調(diào)節(jié)器控制規(guī)律為比例、積分、微分控制,簡稱PID控制,又稱PID調(diào)節(jié)。
PID控制器(比例-積分-微分控制器)是一個在工業(yè)控制應(yīng)用中常見的反饋回路部件,由比例單元P、積分單元I和微分單元D組成。PID控制的基礎(chǔ)是比例控制;積分控制可消除穩(wěn)態(tài)誤差,但可能增加超調(diào);微分控制可加快大慣性系統(tǒng)響應(yīng)速度以及減弱超調(diào)趨勢。
這個理論和應(yīng)用的關(guān)鍵是,做出正確的測量和比較后,如何才能更好地糾正系統(tǒng)。
PID(比例(proportion)、積分(integral)、微分(differential))控制器作為最早實(shí)用化的控制器已有近百年歷史,現(xiàn)在仍然是應(yīng)用最廣泛的工業(yè)控制器。PID控制器簡單易懂,使用中不需精確的系統(tǒng)模型等先決條件,因而成為應(yīng)用最為廣泛的控制器。
以上內(nèi)容節(jié)選自百度百科!
PID控制有很多,速度環(huán)、位置環(huán)、扭矩環(huán)等等,我們在ROS系統(tǒng)下用的只是速度環(huán)控制——設(shè)定一個減速電機(jī)的轉(zhuǎn)速使電機(jī)的真實(shí)轉(zhuǎn)速接近!注意,這里是接近,不是到達(dá)!
PID總是搞得玄而又玄,很多人聽說PID就覺得頭大,其實(shí)PID一點(diǎn)都不困難!
不過確實(shí)是但看這張圖,我也不想去學(xué)習(xí)PID,一看就是很難!
這里關(guān)于PID的內(nèi)容有我之前的一篇博客《PID一點(diǎn)都不難》:
https://www.guyuehome.com/33646!
這里我們來聊一個問題,如何實(shí)現(xiàn)對減速電機(jī)的轉(zhuǎn)速控制!
現(xiàn)在你有一個直流減速編碼電機(jī),需要通過單片機(jī)的IO口輸出PWM來控制電機(jī)的轉(zhuǎn)速,需要你求出一個PWM和速度值的關(guān)系,實(shí)現(xiàn)對電機(jī)轉(zhuǎn)速的控制。
這里我們需要通過對PWM值的調(diào)節(jié)來實(shí)現(xiàn)速度的控制。
通過直流編碼電機(jī)上面的編碼器,我們可以計(jì)算得到電機(jī)的實(shí)時轉(zhuǎn)速,如果實(shí)時轉(zhuǎn)速比我們預(yù)設(shè)值小,那么我們就需要來加大PWM來提高轉(zhuǎn)速。
如果實(shí)際轉(zhuǎn)速比我們預(yù)設(shè)值高,那么我們就需要來減小PWM來降低轉(zhuǎn)速。
最終要實(shí)現(xiàn)就是讓實(shí)際轉(zhuǎn)速盡量接近預(yù)設(shè)值,注意是接近,而不是到達(dá),當(dāng)然最好達(dá)到!
Error偏差值= setpoint目標(biāo)值-output反饋值
P比例= Kp比例常數(shù)* Error偏差
I積分= Ki積分常數(shù)* Sum_Error偏差總和
D微分= Kd微分常數(shù)* (Last_Error上次偏差-PrevError上上次偏差)
Output = P比例+ I積分+ D微分
這個,就是我們ROS小車底盤上面,設(shè)定速度值轉(zhuǎn)成PWM值的計(jì)算!
void doPID(SetPointInfo * p) {
long Perror;
long output;
int input;
input = p->Encoder - p->PrevEnc;
Perror = p->TargetTicksPerFrame - input;
output = (Kp * Perror - Kd * (input - p->PrevInput) + p->ITerm) / Ko;
p->PrevEnc = p->Encoder;
output += p->output;
if (output >= MAX_PWM)
output = MAX_PWM;
else if (output <= -MAX_PWM)
output = -MAX_PWM;
else
p->ITerm += Ki * Perror;
p->output = output;
p->PrevInput = input;
}
這個函數(shù)是ros_arduino_bridge固件diff_controller.h文件里面的PID計(jì)算函數(shù)實(shí)現(xiàn)~
這個函數(shù)是某機(jī)器人底盤上面關(guān)于PID計(jì)算函數(shù)實(shí)現(xiàn)
調(diào)試中的PID曲線展示,藍(lán)色是預(yù)設(shè)值(期望值),紅色是真實(shí)值(通過編碼器計(jì)算得到的)~
用PID的很多都是直接套用上面的公式,然后修改三個比例系數(shù)。通過看兩條曲線,分析真實(shí)值和期望值,對三個參數(shù)進(jìn)行修改實(shí)現(xiàn)~
如何系統(tǒng)性的調(diào)試PID,其實(shí)也就是那個口訣!
參數(shù)整定找最佳,從小到大順序查
先是比例后積分,最后再把微分加
曲線振蕩很頻繁,比例度盤要放大
曲線漂浮繞大灣,比例度盤往小扳
曲線偏離回復(fù)慢,積分時間往下降
曲線波動周期長,積分時間再加長
曲線振蕩頻率快,先把微分降下來
動差大來波動慢,微分時間應(yīng)加長
理想曲線兩個波,前高后低4比1
一看二調(diào)多分析,調(diào)節(jié)質(zhì)量不會低
先是比例后積分,最后再把微分加!這個是順序~
接下來是對P、I、D三個比例系數(shù)如何調(diào)整的口訣~
理想狀態(tài)兩個波,前高后低4比1!這個,你可以來嘗試調(diào)試一下試試看?。╮os_arduino_bridge這一套就可以!)
《基于深度學(xué)習(xí)的機(jī)器人平面抓取》
課程將帶領(lǐng)大家學(xué)習(xí)基于深度學(xué)習(xí)的機(jī)器人平面抓取算法的概念和分類,并從零開始搭建抓取檢測數(shù)據(jù)集以及訓(xùn)練經(jīng)典抓取檢測網(wǎng)絡(luò)GGCNN,并一步一步將GGCNN與pybullet仿真環(huán)境和kinova機(jī)械臂融合。