国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

DIY桌面機械臂__FOC電機驅動

hosition / 887人閱讀

摘要:一硬件框架與模型設計機械臂最核心的部分應該就是關節部分的伺服電機了,針對與文稿中的設計思路,每個伺服電機都為一獨立的控制系統,并通過總線的形式獲取數據并控制。

### DIY桌面機械臂__FOC電機驅動器(#002)


前言

? 之前寫了個設計桌面機械臂的文稿,本來按照流程要先對做一些基礎的仿真和測試、可行性分析,但是后來覺得可以在實作過程中邊研究邊制作;而且看了一下高級的伺服電機機器人節點咱也買不起,就想從零開始學習并設計機器人模組,本人不是機械工程出生,但對控制類的系統有濃厚興趣,便開始執行并在博客中分享該項目的過程,并希望能和大家一起討論。

一、硬件框架與模型

? 設計機械臂最核心的部分應該就是關節部分的伺服電機了,針對與DIY文稿中的設計思路,每個伺服電機都為一獨立的控制系統,并通過CAN總線的形式獲取數據并控制。

? 測試電機選擇2804云臺電機,是個7個極對數的無刷電機,至于為什么選這個,淘寶上幾元就能買到。初步考慮,硬件驅動的pcb部分與電機安裝一體。

1. 硬件原理圖

? 三相MOS驅動器用的是L6234P,最大電壓52V,瞬時最大電流5A,讓這個小電機轉起來應該是綽綽有余。單片機還是選用比較常用的STM32F103C8T6,但是最近價格漲的厲害,就換成了GD32同類型,傳感器采用磁感應器件AS5600,角度分辨率是12位,電壓采用12V供電,通過MT2492 DCDC降壓到5V。

? 這里給出無刷電機驅動器的硬件原理圖PCB圖

?

?

? 底層 頂層

2. 模型與安裝

? 為了方便設計與安裝,這里把電機和驅動板繪制成3D模型,具體如下

? 至于為什么設計的電路板比電機大一圈,看起來不緊湊,是因為為了安裝孔的位置以及較多的元器件,實在無法縮小板子的體積,但是對后面的設計與測試影響不是很大。

二、電路制作與測試

1. 電路制作與修改

? 拿到板子和器件后,立馬進行焊接與測試,下圖是單面焊接完成的情況。

? 直到編寫軟件才發現在原理圖中根本就沒有AS5600的接口,往往檢查好pcb的規則后就應該是設計投板的最后一步了,這樣的錯誤確實足夠愚蠢的。

?

后來,直接通過跳線到PB11,PB10的兩個引出來的焊盤上,才通過程序測試。

? 關于中間那部分支撐是根據電路板的結構去設計,但是感覺這樣設計的問題在于每修改一次電路后,與之接觸的部分模塊都要重新設計。!

2. 程序設計與pid角度控制

  • 首先要做的就是把單個模塊都調通,再進行下一步的操作

  • 其次再進行pid的參數調節,達到比較合適的狀態

    2.1 AS5600的傳感器

    首先進行AS5600的傳感器參數讀取,并通過串口打印出來觀察,一開始對于I2C協議,想到的是STM32的硬件I2Cmaster,因為相較于模擬IO,響應會快一些,并且不會占用cpu資源,但是后來測試發現系統的中斷對快速讀取的I2C程序部分有影響,會直接卡死,所以后來還是選擇了模擬IO的方式。

2.2 SVPWM控制開環

這里采用了simple foc的設計,并實現了電機的開環運行。

2.3 閉環pid控制

? 給出控制電機的核心代碼,由于沒有加積分,所以存在的靜態誤差讓人很難以接受,后續再進行改進

void my_close_p_con(void){      float a_er=0;      float s_a=0;      float an_p_cofe=15;    //角度的比例參數      float vq_p_cofe=30;    //力矩的比例參數      float vq_d_cofe=450;	 //力矩的微分參數      static float a_er_l=0;      float an_pid_o=0;    //角度pid輸出      float vq_pid_o=0;	   //力矩pid輸出      float an_pid_max=0.3;  //最大牽引角度(我也不知道為啥我要這么命名)      float d_dat=0;		//微分量	  float ang_shift=0;    //絕對的角度控制參數      s_a=FilterDeal(getAngle());  //濾波后的電機角度值      a_er=target_angle-s_a;   		//誤差值            an_pid_o=a_er*an_p_cofe;   //角度只有比例控制           if(an_pid_o>an_pid_max)//限幅      {          an_pid_o=an_pid_max;      }      else if(an_pid_o<-an_pid_max)//限幅      {        an_pid_o=-an_pid_max;      }       d_dat=a_er-a_er_l;   //微分量的輸出等于這次的誤差減去上一次誤差      vq_pid_o=fabs(a_er*vq_p_cofe+d_dat*vq_d_cofe);     //力矩的參數控制,比例加微分(因為震蕩嚴重,所以加了d)      if(vq_pid_o>max_p) //力矩限幅      {        vq_pid_o=max_p;      }         ang_shift=init_ang_bias+s_a+an_pid_o;  //絕對角度等于靜態校準偏差加上跟蹤的角度值加上pid的偏移量實現角度控制	  S_Uq=vq_pid_o;        move(ang_shift);   //運行      a_er_l=a_er;  //保存誤差

更新時間:2021 - 9 - 6

持續更新,一起交流!!!

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/119499.html

相關文章

  • 電機控制及調參

    摘要:有刷電機結構簡單開發久技術成熟響應速度快,起動扭矩大運行平穩,起制動效果好控制精度高使用成本低,維修方便而無刷電機由于無電刷,具有低干擾噪音低運轉順暢壽命長低維護成本等優點。電機控制方式力矩控制指定電機提供設置大小的力矩。 ...

    不知名網友 評論0 收藏0
  • U8g2圖形庫使用技巧記錄(1)

    摘要:支持顯示控制器,,,,,,,,,,,,,,,,,,,,,,等。和的功能包括包括所有圖形程序線框圓畫。支持很豐富的字體庫。僅文本輸出字符設備。僅允許使用每個字符固定大小像素的字體。直接寫到顯示屏上,無需微控制器中的緩沖需要消耗較少的空間資源。 ????????~~呆萌的瓦力平衡機器人~~的顯示...

    李昌杰 評論0 收藏0
  • SimpleFOC移植STM32(四)—— 閉環控制

    摘要:力矩控制模式電機在運行過程的電流,始終等于給定的值。設定電流為零,彈簧不被拉伸。比如機械臂從點運動到點,并限制揮舞過程中的最大速度和最大力矩。 目錄 說明一、電機...

    stefanieliang 評論0 收藏0
  • 四足機器狗——12自由度舵機狗DIY(一)

    摘要:四足仿生機器人具有高機動性,負載能力和適應能力強,可運用于物資運輸搶險救援等方面,具有廣闊前景。由于制作電機狗需要高昂的成本。自主設計制造一款舵機狗來學習研究四足機器狗的步態算法是一件性價比極高且很有意義的一件事。 文章目錄 前言 一、初步了解四足結構 1.1.2串聯機構 1.2?...

    不知名網友 評論0 收藏0

發表評論

0條評論

最新活動
閱讀需要支付1元查看
<