ourdev_562071.jpg (79.8 KB, 下載次數: 280)
下載附件
2014-9-2 23:22 上傳
ourdev_562072.jpg (67.65 KB, 下載次數: 251)
下載附件
2014-9-2 23:22 上傳
ourdev_562073.jpg (58.48 KB, 下載次數: 265)
下載附件
2014-9-2 23:22 上傳
控制器:ATmega16;8MHz;
加速度傳感器:MMA2260;陀螺儀:EWTS82;
傳感器的融合:卡爾曼濾波;
馬達:EN_2342CR(速比64)+雙路12脈沖編碼器+CD40106對信號整形;
驅動板芯片:CD4001+IR2111+IRF1404(驅動電流可以很大);
注意事項:
1:IR2111的PWM不能到100%,否則不能充電;
2:由于輪速編碼器精度不是很高,取得的信號要濾波,不然增強速度控制會發抖,不易控制;
建模、控制算法及PD調節的取值參考:
視頻 :
http://v.youku.com/v_show/id_XMTgxNTAxOTA4.html
http://v.youku.com/v_show/id_XMTgxNTAzMTI4.html
其實控制很簡單,利用定時器產生10ms中斷,每次中斷進行如下工作:
1:AD采樣加速度傳感器和陀螺儀,然后卡爾曼濾波得出角度與角速度;(濾波模塊借鑒老外的)(互補濾波效果感覺不是很好);
2:計算車輪的速度,積分得出位置;
3:利用PD算法得出PWM值=K1*angle + K2*angle_dot + K3*speed + K4 * position;
4:前進后退給定參考速度計算即可;
注:
1:增量式輪速傳感器A相中斷,讀取B相電位判斷前進還是后退,在10ms的時間內累加,計算車輪的速度;
2:由于10ms累加的輪速信號不多,直接計算車體會發抖,所以增加了低通濾波,解決問題;
3:我在外面增加4個電位器可以手動調節4個K值,方便調試;
以上;
程序:
平衡小車.rar
(1.44 MB, 下載次數: 461)
2014-9-2 23:20 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|