欧美综合自拍亚洲综合图片区,国产伦精品一区二区三区,中国大陆高清aⅴ毛片,完全着衣の爆乳お姉さんが

n20減速電機 機器人軟件篇

日期:2023-04-09 15:23:56瀏覽量:65148

n20減速電機 機器人

n20減速電機 機器人軟件篇主要介紹PID算法,可以說PID是整個項目程序的核心,其使用的好壞決定了你的小車能不能自平衡,以及平衡得穩(wěn)定不穩(wěn)定。PID的算法和理論分析網絡上有很多介紹,這里就不詳細講解了大家可以自行搜索?;跀?shù)學模型的介紹有點不好理解,本文從控制學的角度簡單講解一下PID及其使用方法。

所謂PID就是比例-積分-微分的英文縮寫,但并不是必須同時具備這三種算法,也可以是 PD, PI,甚至只有 P算法控制,下面分別介紹每個參數(shù)的含義:

首先需要明確一個事實就是,要實現(xiàn)PID算法,必須在硬件上具有閉環(huán)控制,就是得有反饋。比如控制一個n20減速電機 機器人電機的轉速,就得有一個測量轉速的傳感器,并將結果反饋到控制器中,而在自平衡系統(tǒng)中,常用的有三個控制環(huán) — 角度環(huán)、速度環(huán)、轉向環(huán)

大家可以想象出每個閉環(huán)的反饋元件分別是什么嗎,對就是上面元件清單里面包含的 IMU(陀螺儀+加速度計)、編碼器、攝像頭(或者其他可以確定方位的元件比如陀螺儀,磁場計等)

P(比例):以小車巡線為例,現(xiàn)在需要讓小車跟隨一條軌跡前進,用PID算法控制方向環(huán),反饋傳感器就假設為攝像頭。那么小車行進中有這么幾種情況:

1、車通過攝像頭發(fā)現(xiàn)自己處在軌跡的左邊,位置誤差值為正,那么就需要向右轉向,轉向值為正

2、車通過攝像頭發(fā)現(xiàn)自己處在軌跡的右邊,位置誤差值為負,那么就需要向左轉向,轉向值為負

3、車通過攝像頭發(fā)現(xiàn)自己處在軌跡的正中間,位置誤差值為0,很歡快地筆直前行,轉向值為0

n20減速電機 機器人

于是我們發(fā)現(xiàn),小車轉向值的輸出可以簡單地通過把位置誤差乘以一個系數(shù)就得到了,而且顯然,誤差越大,得到的轉向值也越大,符合需求。這里面這個系數(shù),就是P了,而系數(shù)具體的大小,需要根據實際情況調試確定。

我們有了n20減速電機 機器人第一個公式:

D_term = kD* (error- last_error)

如果上面的例子還是不好理解的話,考慮前面的單擺模型:

P相當于重力的作用,讓擺左右往復運動,而D則相當于空氣阻力,讓擺慢慢停在中點。D的大小很理想的情況下,應該是大概擺動左右各一下之后就停在中點,想象把擺放在水中擺動的情況。

I(積分):有的時候我們會發(fā)現(xiàn),系統(tǒng)中存在一些固定的阻力,例如,我們用PID控制一個電機的轉速,當給定的目標速度很小的時候,就會出現(xiàn)這樣的情況:

根據P_term = kP * error,由于error很小,P的輸出也很小,而由于摩擦力的存在,此時并不能讓電機轉動起來;又由D_term = kD* (error- last_error),由于電機沒有轉動,顯然(error- last_error)始終為0于是D輸出也為0,那么問題來了,除非改變目標值,否則電機就永遠轉不起來了…

I的作用就是消除這樣的靜態(tài)誤差,它會將每次的誤差都積累起來,然后同樣也是乘以一個系數(shù)之后作為輸出。比如上面的情況,雖然誤差很小,但卻不是0,于是在每一輪的計算中,I項把error逐漸累積,直到超過臨界值讓電機轉起來;而在誤差為0的情況下,I項卻又不會幫倒忙。

第三個公式:I_term = kI*(I_term + error)

以上就是PID的全部計算了,最后三者加起來就得到了:

PID_output = P_term + I_term + D_term

每隔一段固定時間把它運行一遍,就是PID算法了。

可以看出,PID的算法實現(xiàn)其實非常簡單,不過只有幾行代碼而已,所以非常建議自己實現(xiàn)一遍PID代碼。Arduino平臺上也是有PID庫的,但庫的名字叫什么我不告訴你,自己去找哦。

n20減速電機 機器人