入住頭條有1年多了,第一次發(fā)文。我是一只在無(wú)人機(jī)領(lǐng)域的嵌入式工程獅,看了頭條上很多的對(duì)PID解說(shuō)的專(zhuān)業(yè)文章,幾乎都是從控制上切入的,這里我從不同的角度來(lái)分析PID。
先說(shuō)結(jié)論:PID的本質(zhì)是跟隨器,用于跟蹤給定信號(hào)。
很多朋友在這里又會(huì)發(fā)問(wèn)了,PID不是控制器嗎?在某權(quán)威百科上面的解釋就是:比例(P)積分(I)微分(D)控制,簡(jiǎn)稱(chēng)PID控制。這是沒(méi)錯(cuò)的,PID算法從100年前開(kāi)始出現(xiàn),就開(kāi)始廣泛的用于工業(yè)控制,PID的起源就是用于做控制器??雌饋?lái)PID和控制是分不開(kāi)的,實(shí)則不然。
從PID的公式也可以看出,e是目標(biāo)量和輸出量的偏差,當(dāng)誤差e趨近0時(shí),輸出u將收斂到一個(gè)固定值。最終PID實(shí)現(xiàn)的效果就是將目標(biāo)量和輸出量?jī)烧叩钠顨w零,當(dāng)目標(biāo)量變化時(shí),輸出量也會(huì)跟隨著目標(biāo)量變化,也就是說(shuō)輸出量通過(guò)PID來(lái)跟隨目標(biāo)量。
下面我從兩個(gè)例子來(lái)說(shuō)明PID分別作為控制器使用和信號(hào)跟隨器的使用。
PID作為控制器——水箱液位控制
這里水箱的液位我們假設(shè)沒(méi)有延遲,設(shè)計(jì)一個(gè)PID控制器來(lái)控制液位,誤差e為目標(biāo)液位和輸出量為液位之差。u為執(zhí)行器輸出,這里是閥門(mén)開(kāi)度,大于0為注水,小于0為放水。具體代碼不在此贅述。
剛開(kāi)始的時(shí)候,把液位設(shè)置到5米,2秒后實(shí)際液位基本到達(dá)5米。在50s的時(shí)候,把目標(biāo)液位設(shè)置為2米,液位下降,2秒后穩(wěn)定到2米。說(shuō)明PID完成了它原始的使命——作為控制器使用。
PID作為信號(hào)跟隨器——傾角傳感器的設(shè)計(jì)
這里傾角傳感器的設(shè)計(jì)就不涉及到任何控制了。我們的目標(biāo)是測(cè)量角度,硬件選用加速度計(jì)和陀螺儀構(gòu)成。為了方便,我們只測(cè)量單軸角度,這里用2軸微電子加速度計(jì)和1軸微電子陀螺儀。
陀螺儀的輸出量是角速度,角速度積分就是角度,這不是用陀螺儀就能解決了嗎?為什么還要加速度計(jì)呢?是因?yàn)橥勇輧x輸出的角速度包含有各種噪聲,積分得到的角度會(huì)隨著時(shí)間誤差越來(lái)越大。具體的可以看下面的圖像分析。
上面左圖是以1度/秒的角速度運(yùn)動(dòng)10秒,右圖在角速度1度/秒的基礎(chǔ)上加了±0.5度/秒的隨機(jī)噪聲,可以發(fā)現(xiàn)在10秒后角度值為106度(圖可能看不清),這是因?yàn)榻嵌戎档墨@取是通過(guò)角速度積分得到的,存在累計(jì)誤差。而加速度計(jì)具備良好的穩(wěn)定性,測(cè)量的偏移也很小,最重要的是它測(cè)量的角度沒(méi)有累計(jì)誤差。
θacc是加速度計(jì)測(cè)量的傾角。定義當(dāng)測(cè)量角為0時(shí),az沿著重力方向豎直向下,和重力加速度的關(guān)系是az=g*cos(θacc),ax垂直于az,和重力加速度的關(guān)系是az=g*sin(θacc)。這就是加速度計(jì)測(cè)量?jī)A角的原理。
那既然加速度計(jì)沒(méi)有累計(jì)誤差,測(cè)量比陀螺儀更好,用加速度計(jì)就夠了嘛,為什么一定要用陀螺儀呢?因?yàn)榧铀俣扔?jì)測(cè)量的物理量是比力,而非加速度,加速度是通過(guò)比力計(jì)算得到的。加速度計(jì)不能分辨出是地球引力還是運(yùn)動(dòng)外力。所以在被測(cè)量物體運(yùn)動(dòng)的時(shí)候?qū)o(wú)法得到準(zhǔn)確的傾角。這個(gè)時(shí)候陀螺儀就起作用了,因?yàn)橥勇輧x對(duì)運(yùn)動(dòng)加速度不敏感。
陀螺儀短時(shí)間內(nèi)計(jì)算的角度很準(zhǔn)確,但時(shí)間長(zhǎng)了會(huì)產(chǎn)生累計(jì)誤差,加速度計(jì)長(zhǎng)時(shí)間內(nèi)的穩(wěn)定彌補(bǔ)了陀螺儀的短缺。加速度計(jì)在運(yùn)動(dòng)的情況下測(cè)量有誤差,陀螺儀對(duì)運(yùn)動(dòng)不敏感。
所以可以用兩者的互補(bǔ)關(guān)系,來(lái)設(shè)計(jì)一個(gè)傾角傳感器。那這里面怎么用到PID的性質(zhì)呢?
我們把加速度求得的角度θacc作為目標(biāo)量,我們把陀螺儀積分角度θgyro作為輸出量。讓陀螺儀角度跟隨著加速度角度。設(shè)計(jì)PI跟隨器,調(diào)節(jié)參數(shù),讓陀螺儀積分角度θgyro慢慢跟隨加速度計(jì)算的角度θacc。下圖是計(jì)算周期為50ms時(shí),kp=0.2,ki=0.005時(shí)的效果圖像。角速度噪聲±0.5度/秒。加速度受到運(yùn)動(dòng)的影響,角度噪聲為±2度。
在0秒時(shí)以角速度10度/秒運(yùn)動(dòng)2秒,在2秒時(shí)角速度以-10度/秒運(yùn)動(dòng)4秒。下面是6s到10s的放大圖。
真實(shí)角度(藍(lán)色)為-21度,陀螺儀積分角度(紫色)漂移了2度左右,加速度計(jì)計(jì)算角度(綠)噪聲為±2度,組合角度(紅,即陀螺儀積分角度跟隨加速度計(jì)計(jì)算角度的結(jié)果)保持在真實(shí)角度附近,誤差不到1度,說(shuō)明PID完成了它的本質(zhì)工作——作為信號(hào)跟隨器使用。
-
傳感器
+關(guān)注
關(guān)注
2551文章
51106瀏覽量
753651 -
陀螺儀
+關(guān)注
關(guān)注
44文章
784瀏覽量
98718 -
PID
+關(guān)注
關(guān)注
35文章
1472瀏覽量
85526
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論