摘要:力矩控制模式電機在運行過程的電流,始終等于給定的值。設定電流為零,彈簧不被拉伸。比如機械臂從點運動到點,并限制揮舞過程中的最大速度和最大力矩。
??閱讀此文,可對照之前這篇文章:SimpleFOC(四)—— 閉環(huán)控制
(為保證本文可讀性,把之前寫過的搬運到此。)
??◎電機在運行過程的電流,始終等于給定的值。
??◎比如使用電機來拉伸彈簧,設定電流值越大,彈簧被拉伸的長度越長。設定電流越小,彈簧被拉伸的長度越短。設定電流為零,彈簧不被拉伸。
??◎在SimpleFOC項目中,受限于Arduino UNO的運行速度,大部分例程沒有使用電流采樣,所以設定電壓值代替設定電流值。
??◎讓電機始終按照設定的速度運轉(zhuǎn),不因負載的變化而變化。
??◎速度控制一般會采用內(nèi)環(huán)電流環(huán),外環(huán)速度環(huán)的方式,所以可以限制轉(zhuǎn)動過程中的電流不超過設定值。
??◎比如傳送帶傳送物品,給定的速度不會因為傳送帶上是空載或者帶載發(fā)生變化,但是當負載過大,電流超過設定值的時候會報警或自動停止。
??◎精確控制電機轉(zhuǎn)動到指定角度,
??◎位置控制一般會采用內(nèi)環(huán)電流環(huán),外環(huán)速度環(huán),最外環(huán)位置環(huán)的方式,所以可以限制轉(zhuǎn)動過程中的最大速度,和最大電流。
??◎比如機械臂從A點運動到B點,并限制揮舞過程中的最大速度和最大力矩。
?
??本節(jié)實驗適合運行在SimpleMotor和STM32最小系統(tǒng)板上(Bluepill)。
序號 | 名稱 | 數(shù)量 |
---|---|---|
1 | SimpleMotor | 1 |
2 | 帶編碼器云臺電機 | 1 |
3 | USB轉(zhuǎn)串口 | 1 |
4 | 12V電源 | 1 |
帶編碼器云臺電機可以是AS5600,也可以是TLE5012B。
AS5600電機 購買鏈接:某寶購買
TLE5012B電機 購買鏈接:某寶購買
SimpleMotor 購買鏈接:某寶購買
序號 | 名稱 | 數(shù)量 |
---|---|---|
1 | STM32核心板 | 1 |
2 | SimpleFOCShield V2.0.3 | 1 |
3 | 帶磁編碼器的云臺電機 | 1 |
4 | USB轉(zhuǎn)串口 | 1 |
5 | 5V電源 | 1 |
6 | 12V電源 | 1 |
7 | 杜邦線 | 若干 |
帶編碼器云臺電機可以是AS5600,也可以是TLE5012B。
AS5600電機 購買鏈接:某寶購買
TLE5012B電機 購買鏈接:某寶購買
simpleFOCShield V2.0.3購買鏈接:某寶購買
?
只拍照演示M1的接線,M2的接線根據(jù)原理圖自行連接。
對照 Shield V2.0.3 的原理圖:
STM32核心板 | V2.0.3 |
---|---|
PA0 | 5 |
PA1 | 9 |
PA2 | 6 |
PB9 | 8 |
GND | GND |
如果是AS5600編碼器,如下
STM32核心板 | AS5600電機 |
---|---|
PB6 | SCL |
PB7 | SDA |
3V3 | VCC |
GND | GND |
如果是TLE5012B編碼器,如下
STM32核心板 | TLE5012電機 |
---|---|
PB15 | MOSI |
PB14 | MISO |
PB13 | SCK |
PB8 | CSQ |
GND | GND |
3V3 | VCC |
1、力矩模式
??◎串口設定值為Uq,Ud固定為0;
??◎控制原理與開環(huán)控制很像,核心代碼是SVPWM;
??◎開環(huán)的θ是人為設定的,而閉環(huán)的θ來自編碼器。
?
2、速度模式
??◎力矩閉環(huán)外增加了速度環(huán);
??◎串口設定值為期望速度(Vd);
??◎?qū)嶋H速度和期望速度的差作為PID輸入,輸出值為SVPWM的輸入(Uq),Ud固定為0;
??◎編碼器讀到的角度為機械角度,先轉(zhuǎn)為電角度供SVPWM使用(θ);
??◎根據(jù)最近兩次的角度差和時間差計算出當前速度(v),速度做濾波處理(Vf),因為速度要保持平滑不能突變;
?
3、位置模式
??◎與速度環(huán)相比多了一個位置環(huán),相應的要調(diào)試位置環(huán)PID,創(chuàng)作者的代碼中只使用了P參數(shù),實際應用中一般會用PD參數(shù)。
?
??一般的無刷電機驅(qū)動器會有個學習模式,用撥碼開關(guān)切換,第一次使用先撥到學習模式,檢測電機參數(shù)后保存到內(nèi)部flash。然后切換到工作模式,驅(qū)動器每次上電都會導入存儲的參數(shù),執(zhí)行控制。
??SimpleFOC上電后也會檢測電機參數(shù),但是沒有保存的動作,所以每次上電都要檢測,對于帶磁編碼器的電機,需要檢測機械角度和電角度的偏差(zero_electric_angle),和電機極對數(shù)(pole_pairs)。
??機械角度零點和電角度的零點,在實際操作中基本是不可能對齊的,所以同學們不要有通過調(diào)整編碼器角度,把零點對齊的這個想法。
代碼位置在:BLDCMotor.c,
?
注意:如果檢測到的極對數(shù)與實際不符,停止繼續(xù)操作,否則電機會堵轉(zhuǎn)
?
1、選擇力矩模式,其它參數(shù)根據(jù)實際情況設置
2、編譯下載
??可以串口下載或者SWDIO下載;
??如果是串口下載,Boot加上跳線帽,下載完畢后拿掉跳線帽,按復位鍵重啟或者斷電重啟。
??注意:復位重啟只能重啟單片機,編碼器沒有重啟,這可能會導致重啟后的I2C接口編碼器不能正確讀出,SPI接口編碼器不受影響。
3、等待初始化完成
4、串口發(fā)送指令,此時發(fā)送的數(shù)據(jù)表示電壓值Uq
??注意:設置的電壓值不能超過voltage_power_supply/√3,比如電源電壓12V,設置不能超過6.92V。
5、給電機施加阻力,感受不同電壓對應不同的力矩
?
注意:力矩模式不涉及PID,所以比較簡單,大功率電機設置電壓值不能太大。
?
1、選擇速度模式
注意:PID參數(shù)根據(jù)電機實際情況自行設置,不了解PID設置的請百度。
2、編譯下載
3、重新上電,等待電機初始化完成
4、串口發(fā)送指令T6.28,觀察電機是否以1圈/秒的速度轉(zhuǎn)動。
5、設置不同速度,觀察電機轉(zhuǎn)動變化。給電機施加阻力,觀察電機轉(zhuǎn)動
演示視頻:
1、5010電機:https://www.bilibili.com/video/BV1cL4y1h7RL/
2、X4108S電機:https://www.bilibili.com/video/BV1Wq4y1o7q9/
3、2804電機:https://www.bilibili.com/video/BV1j64y187qp/
?
1、選擇位置模式
注意:本例中,位置模式包含了位置PID和速度PID,根據(jù)電機實際情況自行設置,不了解PID的請百度。
2、編譯下載
3、重新上電,等待電機初始化完成
4、串口發(fā)送指令T6.28,觀察電機是否轉(zhuǎn)動一圈
??上電后為了保證電機為靜止狀態(tài),設置初始化后的目標角度為當前角度,所以第一次設置角度6.28,電機不會轉(zhuǎn)一圈。第一次可以設置目標角度為0。
?
(完)
?
?
本文只講了M1電機的操作,源碼中包含M1和M2兩個工程,M2的操作可比照M1,不再贅述!
本節(jié)源碼下載:
鏈接:https://pan.baidu.com/s/1HYhEYYBlKC9BJmZXo8Ngbg
提取碼:ih65
?
歡迎加入simpleFOC技術(shù)交流群:923734429 (入群申請寫:CSDN)
?
?
請繼續(xù)閱讀相關(guān)文章:
SimpleFOC移植STM32(一)—— 簡介
SimpleFOC移植STM32(二)—— 開環(huán)控制
SimpleFOC移植STM32(三)—— 角度讀取
SimpleFOC移植STM32(四)—— 閉環(huán)控制
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/121279.html
摘要:而及是一對差分信號線,使用差分信號。幀結(jié)束表示數(shù)據(jù)幀結(jié)束的段??刂贫慰刂贫斡蓚€位構(gòu)成,表示數(shù)據(jù)段的字節(jié)數(shù)。有效消息當消息依據(jù)協(xié)議正確接收并且成功通過標識符篩選后,該消息將視為有效。 目錄 CAN協(xié)議介紹 物理層 閉環(huán)總線網(wǎng)絡 開環(huán)總線網(wǎng)絡 ?通訊節(jié)點 差分信號 協(xié)議層簡介 CAN的波特率 位...
摘要:基于開發(fā)的軟件包導師汪禮超學員崔林威摘要騰訊物聯(lián)網(wǎng)操作系統(tǒng)是騰訊面向物聯(lián)網(wǎng)領(lǐng)域開發(fā)的實時操作系統(tǒng),具有低功耗,低資源占用,模塊化,可裁剪等特性。圖中斷函數(shù)處理進行生成工程配置,按如下界面進行配置,最后點擊,并點擊。 ...
摘要:使用庫讀寫環(huán)境光照度傳感器本文將教大家如何快速使用庫讀取光照度數(shù)據(jù)。五實驗樣機測試展示通過之前配置好的面板,通過涂鴉智能進行配網(wǎng)實時采集光照度傳感器的數(shù)據(jù)。 使用STM32 HAL庫讀寫環(huán)境光照度傳感器(BH1750) 本文將教大家如何快速使用STM32HAL庫讀取光照度數(shù)據(jù)。 實現(xiàn)功能:通...
摘要:第二點與是同時完成的,說明這是全雙工通信。上表中的表示數(shù)據(jù)線空閑,該數(shù)據(jù)線無數(shù)據(jù)傳送。設置震動模式后用來控制右側(cè)的小電機,表示關(guān),其他值為開。單片機發(fā)送了給手柄,此時手柄會返回給單片機,意味著接收到了請求,即將返回數(shù)據(jù)。 ...
摘要:一說明本庫基于編譯,其他的內(nèi)核也支持,采用串口和模組通信。使用時添加文件到工程中,頭文件引用即可。此外,需要外部實現(xiàn)模組的復位操作,一般是對管腳拉高一段時間,復位函數(shù)需要指定函數(shù)為。四實例以下為使用的庫,實現(xiàn)對接自建。 一、說明 本lib庫基于STM32F407編譯,其他的cortexM4內(nèi)...
閱讀 1770·2021-09-27 14:02
閱讀 3196·2021-09-27 13:36
閱讀 1059·2019-08-30 12:46
閱讀 1847·2019-08-30 10:51
閱讀 3585·2019-08-29 17:02
閱讀 959·2019-08-29 16:38
閱讀 1857·2019-08-29 16:37
閱讀 3046·2019-08-26 10:32