循序漸進(jìn):進(jìn)行電機(jī)多軸速度和位置控制
我們是否想知道如何設(shè)計實時速度和位置控制應(yīng)用程序?在這篇文章中,我們將逐步展示如何使用 TI C2000? Piccolo? F2806x InstaSPIN-MOTION?在臺式測試設(shè)備(圖 1)上實現(xiàn)最佳雙軸速度和位置控制LaunchPad開發(fā)套件。
圖 1. 15"x15" 臺式測試設(shè)備
不到 20 小時,測試設(shè)備就畫出了正方形、三角形和圓形。
項目時間表 |
|
周一 2小時 |
收到CNC測試設(shè)備表 |
周二 4個小時 |
將伺服電機(jī)連接到 X 和 Y 平臺 使用 InstaSPIN-MOTION 軟件: · 識別慣性 · 調(diào)整速度和位置環(huán), · 優(yōu)化加速度和加加速度 |
周三 6個小時 |
創(chuàng)建方形運動配置文件 |
周四 6個小時 |
· 創(chuàng)建三角形運動配置文件 · 創(chuàng)建圓形運動配置文件 |
圖 2. 臺式測試設(shè)備創(chuàng)建運動曲線的時間表
第 1 步 - 將伺服電機(jī)連接到 X 和 Y 平臺
如果我們正在開發(fā)多軸應(yīng)用程序,則需要設(shè)計自己的電路板。我們使用兩個 TI InstaSPIN-MOTION LaunchPad 開發(fā)套件邁出了第一步。LaunchPad 包括與兩個 BoosterPack 接口的硬件,每個 BoosterPack 都可以控制一個電機(jī),但這樣做的軟件框架仍在最終確定中,并將在未來版本的MotorWare ? 軟件中發(fā)布。
材料清單:
· 2 個 C2000 Piccolo F2806x InstaSPIN-MOTION LaunchPad 開發(fā)套件 ( LAUNCHXL-F28069M )
· 2 個 DRV8301 電機(jī)驅(qū)動 BoosterPack ( BOOSTXL-DRV8301 )
· 2 帶編碼器的低壓伺服電機(jī) ( LVSERVOMTR )
· MotorWare軟件
我們使用 InstaSPIN-MOTION Position Plan Component 來創(chuàng)建和執(zhí)行 X 軸和 Y 軸的狀態(tài)轉(zhuǎn)換。使用兩個 LaunchPad 開發(fā)套件時,位置計劃通過 GPIO 進(jìn)行通信,這會引入少量延遲。當(dāng)我們設(shè)計自己的電路板時,我們仍將運行兩個 Plan 組件,但它們將通過變量而不是通過 GPIO 進(jìn)行通信,這將產(chǎn)生更精確的開始。此外,我們將能夠通過單個 TI C2000 Piccolo TMS320F28069M 微控制器控制兩個軸,這可以節(jié)省大量成本。
第 2 步 - 確定每個軸的系統(tǒng)慣量
慣性包括剛性耦合到電機(jī)軸的任何東西。它包括任何直接隨電機(jī)移動的東西。對于 CNC 測試設(shè)備,X 軸與 Y 軸具有不同且獨立的慣性。
我們使用 InstaSPIN-MOTION 速度識別組件來識別慣性。我們設(shè)置每個階段,使其具有整個正向運動范圍,因為慣性識別始終使電機(jī)沿正向旋轉(zhuǎn)。然后我們使用了 InstaSPIN-MOTION MotorWare Lab 12a 軟件,該軟件識別了慣性和摩擦。慣性值是 InstaSPIN-MOTION 位置控制器的輸入,它使用它來提供適當(dāng)?shù)呐ぞ匾允箲?yīng)用程序移動。
這是 X 軸慣性識別過程的快速視頻。它移動得很快,所以請仔細(xì)觀察!
第 3 步 – 調(diào)整控制器
使用稱為帶寬的單一增益同時調(diào)整速度和位置。每個軸都是獨立調(diào)整的。調(diào)整過程簡單明了。使用 MotorWare Lab 13a 軟件,我們調(diào)整了帶寬,注入了干擾并評估了位置保持。重復(fù)此過程,直到系統(tǒng)受到干擾時軸在 0 速度下表現(xiàn)出良好的保持位置。我們將初始帶寬設(shè)置為 10 rad/s,然后手動注入干擾。在此設(shè)置下,手臂很容易移動。隨著我們增加帶寬,移動軸變得更加困難。在 40 rad/s 時,測試設(shè)備工作臺的 X 軸很好地保持了該位置。
這是調(diào)整過程的視頻。
第 4 步 – 優(yōu)化加速和加加速度
然后我們著手優(yōu)化加速度和加加速度(加加速度是加速度的變化率)。梯形曲線用于優(yōu)化加速度,因為該曲線忽略了加加速度。當(dāng)加速度緩慢增加時,每個軸都被命令來回移動。最佳加速發(fā)生在電機(jī)未能達(dá)到指令值之前。
一旦我們找到最佳加速度,我們就使用具有連續(xù)加加速度的 st 曲線優(yōu)化加加速度。調(diào)整了加加速度,使測試設(shè)備能夠以非常高的可靠性平穩(wěn)啟動和停止。
第 5 步 – 創(chuàng)建方形運動曲線
讓測試設(shè)備畫一個正方形很容易——一次只移動一個軸。為每個軸創(chuàng)建了一個位置計劃。在我們的配置中,X 軸是主軸。X 軸平面圖發(fā)出 Y 軸開始移動的信號。Y 軸計劃在其移動完成時發(fā)出 X 信號。
|
X軸位置計劃: 1. 信號 GO 到 Y 2. 過渡狀態(tài) 3. 等待 Y 完成 4. 信號 GO 到 Y
|
Y軸位置圖: 1. 等待來自 X 的 GO 2. 過渡狀態(tài) 3. 向 X 發(fā)出信號 DONE 4. 等待來自 X 的 GO
|
圖 3. 創(chuàng)建方形運動曲線
第 6 步 – 創(chuàng)建三角運動曲線
畫一個三角形更難。必須協(xié)調(diào) X 軸和 Y 軸才能繪制傾斜的側(cè)面。需要進(jìn)行一些計算來生成每個軸的運動計劃,使用以下公式:
Vel = d位置步長/t
Vel = 速度
d = 距離
t = 時間
每個軸都需要同時完成移動,因此:
t x =t y
行進(jìn)距離 (d position_step ) 是已知的。通過固定 X 軸的速度,這給了我們一個已知的時間 (t x ),并且我們能夠從那里計算 Y 軸的速度 (Vel y )。
圖 4. 創(chuàng)建三角運動曲線
第 7 步 – 創(chuàng)建圓周運動曲線
圓周運動輪廓是三種形狀中最復(fù)雜的。我們在這個上作弊了一點。實際形狀是一個 32 邊的多邊形。它近似于一個圓,但計算量較小。我們使用 Matlab 來計算 X 和 Y 軸的位置。從那里開始,我們使用與三角形運動曲線相同的程序來確保每個 X 和 Y 運動同時結(jié)束。
圖 5. 創(chuàng)建圓周運動曲線
觀看已完成項目的視頻。