久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4601|回復: 3
打印 上一主題 下一主題
收起左側

平衡小車

[復制鏈接]
跳轉到指定樓層
樓主
前幾天一直在整平衡小車,想用這個理解一下pid,并調一調帶編碼盤的電機。

首先談談我對pid算法的理解,剛開始以為平衡小車是采取的串級pid來是小車平衡,就是通過角度算出此時的pwm,在通過這個pwm去當作速度環的入口參數,通過編碼盤來獲取小車的速度控制小車由角度環指定速度下行駛。但通過實踐并不是這樣,速度環和角度環應該是兩個獨立的系統,角度環用來讓小車快速的恢復到平衡狀態,如果初始化陀螺儀時陀螺儀的角度正好重力重合,那么你的小車就會平衡,否則就會向一個方向加速,只至倒下,加上速度環就會解決這一問題,速度環是為了消除小車的位移,讓小車能夠在一定的位移范圍內調整角度,如果下車像一個方向一直加速,那么速度環累計的位移就會越來越大最后達到一定程度,導致小車減速甚至反向到達以前的位置。

再談談角度環的pid公式的理解,角度環的公式是:車輪加速度=小車傾斜角度×kp+小車角速度×kd         。我對他的理解就是   小車傾斜角度×kp    是為了讓小車能基本的立起來,而

小車角速度×kd      則是讓小車能在突然改變角度的時候能夠做出快速的反應增強其穩定性。那么角度環為什么沒有積分項呢,我將在最后的總結里講到。

我們再看看速度環的公式:pwm的修正量(我自己給取得,不用在意叫什么名字)=小車速度×kp+小車位移×ki          (我不懂為什么沒有微分項)。我對這個公式的理解則是     小車速度×kp   是讓小車不會一直加速,要知道速度一快,這個公式計算出來的值就越大,最后用角度環計算出來的值加上這個值就會越大了,就可以將車身擺正了。那么基本上就可以解決角度環一直加速的問題,但是如果小車以一個比較慢的速度一直向一個方向移動(這種情況是有可能出現的)我們是不允許這種情況發生的,所以現在就必須要有積分項小車位移×ki    (有大神說ki=kp÷200,我試了,的確很好使) 的作用了這個加上以后就可以消除小車有大的位移這個問題,讓小車可以在一個區域內調整姿態。

那么讓小車立起來了如何改變方向和速度了。改變速度有兩種方式,一是可以通過改變給速度環的的輸入部分先給一個偏差,這樣速度就會穩定在你給的那個偏差里,還有一種就是你可以給積分項給一個偏差,這樣你不動的時候就已經有了積分作用,小車就會向一邊偏然后慢慢加速直至小車車輪產生的積分作用能夠抵消小車剛開始已有的積分作用,然后小車達到平衡狀態,勻速運動(我用的是第二種所以比較清楚)在積分項里還有一個積分限伏,這個是非常重要的如果你不加的話小車可能會因為打滑,而向一邊一直加上速,或者你將小車提起來時就會發現,小車會向一邊一直加速然后就停不下來了,這是因為速度環是一個正反饋調節的過程,(這點是非常重要的,我剛開始以為是一個負反饋調節的過程結果小車車輪就一動不動,因為它會產生和你運動方向相反的pwm波),你如果明確這個你就會知道積分限伏的重要性,積分限幅就規定了你最大可以傾斜的角度和你的最大速度,所以收這個范圍是越大越好,但也不能超過小車的極限,你可以將小車拿起在放下,一直增加這個范圍,直到小車會無法調整到平衡狀態為止。網上有人說小車重心越高越好,說什么重心高轉動慣量越大也好控制,我認為這是錯的,重心越高,你的電機能夠產生的扭矩就得越大,才能抵消重力的作用,而且我個人認為,重心越低,能夠偏轉的角度就越大,你小車的最大速度就越大,這是你提高小車速度的最好方法。

小車轉彎這個問題其實非常簡單,就兩行代碼的事,你給在前面工作都做完的條件下,讓左輪的pwm加上一個值,右輪減去一個值就行了。但要注意的是,你必須使用兩個編碼盤(前面所有功能只要一個就夠)比如說原地打轉的時候位移應該是零的但是由于只有一個編碼盤,就只計算了一個輪胎的位移導致積分項越加越大。


最后談談我對pid的理解:

pid其實就是兩種  

增量式:pwm =Kp[e(k)-e(k-1)] Ki*e(k) Kd[e(k)-2e(k-1) e(k-2)]

位置式:pwm =Kp*e(k) Ki*∑e(k) Kd[e(k)-e(k-1)]

其他形式的pid只是為了解決積分飽和和讓算法更加優化的問題

對于這兩種pid的選擇網上說增量式pid的執行器件一定要自帶積分效果,以下是我在網上找到的兩種pid之間的區別。

      (1)位置式PID控制的輸出與整個過去的狀態有關,用到了誤差的累加值;而增量式PID的輸出只與當前拍和前兩拍的誤差有關,因此位置式PID控制的累積誤差相對更大;

  (2 )增量式PID控制輸出的是控制量增量,并無積分作用,因此該方法適用于執行機構帶積分部件的對象,如步進電機等,而位置式PID適用于執行機構不帶積分部件的對象,如電液伺服閥。

  (3 )由于增量式PID輸出的是控制量增量,如果計算機出現故障,誤動作影響較小,而執行機構本身有記憶功能,可仍保持原位,不會嚴重影響系統的工作,而位置式的輸出直接對應對象的輸出,因此對系統影響較大。


   我對位置式pid的理解就是   你要用于改變你需要控制狀態的一個值=比例項+積分項+微分項,這三者之間的取舍需要根據實際用途去舍取,積分項是要控制變量偏差的積分比如速度環里面的積分,速度環是為了消除小車一直加速的問題,那么你要控制的就是速度,而速度的積分正是位移,微分項則是你要控制的偏差的微分,角度環控制的是角度,那么其微分則是角速度,這樣我們便可以理解為什么角度環沒有積分項(角度積分的不出實際的物理意義,而速度微分是加速度,這是我不理解的,加速度不就正是我們要控制的量嗎?我們可以將陀螺儀X軸的加速度取出來(其實最好重新安裝一個加速度計,盡量低一點)加速度為零,小車就可以靜止,或者勻速運動,我覺得加上微分后小車能夠更快的加速,和更穩定平衡,我不理解為什么網上眾多的代碼中都是pi算法)至于參數,你覺得應該調成多大就多大吧file:///C:\Users\ASUS\AppData\Local\Temp\QBHO~D%B_59OH5TDLN0$I5X.png

  我對增量式pid不是很清楚,增量式pid必須在執行器件自帶積分作用的器件,比如步進電機,我還沒用增量式pid調過東西,調了在說吧,要是誰有這個方面的資料希望大家能夠分享出來啊 o( ̄▽ ̄///)

PID部分只是我個人的看法,有什么問題,大佬們指正哦(⊙o⊙)

下面是我寫的程序,以及自己總結的幾種pid的形式,還有網上得一些資料希望對大家有用

QQ圖片20180623110854.jpg (3.3 MB, 下載次數: 60)

QQ圖片20180623110854.jpg

平衡小車資料.rar

10.13 MB, 下載次數: 30, 下載積分: 黑幣 -5

平衡小車.rar

6.12 MB, 下載次數: 31, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏3 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:250245 發表于 2018-6-23 11:26 | 只看該作者
哎呀不小心 上傳來三張圖,算了不改了
回復

使用道具 舉報

板凳
ID:361002 發表于 2018-6-28 15:04 | 只看該作者
謝謝分享
回復

使用道具 舉報

地板
ID:423971 發表于 2020-8-13 09:42 | 只看該作者
受益了 感謝分享  最近也是在搞平衡小車
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品欧美乱码久久久久久1区2区 | 精品一区二区在线观看 | 亚洲 欧美 日韩 在线 | 午夜婷婷激情 | 亚洲一在线 | 日韩精品视频在线观看一区二区三区 | 亚洲巨乳自拍在线视频 | 99国产精品久久久久 | 亚洲免费精品 | 免费毛片网站 | 999视频 | 欧美大片一区二区 | 久久九九影视 | 久久久久国产精品 | 国产亚洲久 | 国产精品日韩在线 | 狠狠婷婷综合久久久久久妖精 | 欧美精品一区三区 | 国产精品视频一区二区三区 | 美女一区二区在线观看 | 国产午夜精品久久久 | 国产精品污www在线观看 | 欧美三级在线 | 国产一区二区三区网站 | 久久精品女人天堂av | 毛片视频网址 | 国产97人人超碰caoprom | 国产精品黄色 | 亚洲3p| 91在线观 | 日韩中文字幕在线观看视频 | 国产精品夜色一区二区三区 | 狠狠的操 | 精品久久久久久亚洲综合网站 | 国产99久久久国产精品下药 | 欧美日韩成人在线观看 | 午夜爱爱毛片xxxx视频免费看 | 国产欧美一区二区三区日本久久久 | 视频一区欧美 | 草草视频在线免费观看 | 亚州成人|