本文緊接上文,詳細講解LPC553x雙伺服電機控制方案的演示環(huán)境。
4.演示操作
4.1.項目文件結構
項目中源文件(*.c)和頭文件(*.h)的總數(shù)較多。因此,我們只詳細介紹關鍵項目文件,其余的將被分組描述。
主工程文件夾分為以下目錄:
oardsdual_servo - 包含硬件板的初始化配置文件。
oardsdual_servoiar - 包含編譯器所需的必要文件。
oardsdual_servomc_drivers - 包含各模塊的驅動文件。
oardsdual_servomotor_control - 包含電機控制算法文件和狀態(tài)機文件。
oardsdual_servoparameter - 包含參數(shù)頭文件和配置文件。
deviceLPC55S36 - LPC55S36軟件開發(fā)工具包。
FM_ControlPage - FreeMASTER控制頁面文件。
middlewarefreemaster - FreeMASTER支持文件。
middlewareCM33F_RTCESL_4.6.2_IAR - 實時控制嵌入式軟件電機控制和電源轉換庫。
文件夾中的文件:
M1_statemachine.c和M1_statemachine.h包含當應用程序處于特定狀態(tài)或狀態(tài)轉換時執(zhí)行的軟件例程。
State_machine.c和state_machine.h包含應用程序狀態(tài)機結構定義,并管理應用程序狀態(tài)和應用程序狀態(tài)轉換之間的切換。
Motor_structure.c和motor_structure.h包含專門用于執(zhí)行電機控制算法的結構定義和子程序(矢量控制算法、位置和速度估計算法、速度控制回路)。
Motor_def.h包含主控和故障結構定義。
4.2電機參數(shù)
本文中使用的電機是兩個無刷直流伺服電機,帶1000線的正交編碼器。下表提供了電機的基本參數(shù):
注:本文中的應用參數(shù)(位置、速度和電流控制器)是在電機軸上安裝有塑料環(huán)的情況下設置的,使用參數(shù)空軸運行可能會出現(xiàn)速度振蕩。
4.3建立雙伺服演示
硬件需求:
LPC55S36-EVK板 REV.B
兩個FRDM-MC-LVPMSM電機驅動板
兩個24V伺服電機
一根Micro USB數(shù)據(jù)線
注意:請確保電源適配器在所有步驟之前關閉。使用FRDM-MC-LVPMSM板為EVK板供電時,板上的TPS54060 DC-DC轉換器會產(chǎn)生電壓毛刺。因此推薦將EVK板上的JP71跳線帽斷開,并使用EVK板上的5V引腳為電機編碼器供電以獲得更好的效果。
要建立雙伺服演示,請遵循以下步驟:
如圖所示,將LPC55S36-EVK和FRDM-MC-LVPMSM電機驅動板通過Arduino接口連接在一起,并連接電機相線與編碼器接口。
接通24V適配器,為電機驅動板供電。
將LPC55S36-EVK與PC間通過USB接口連接。
在軟件包中打開“FM_DualServo.pmp”。(FREEMATER版本不應低于3.1.2)
選擇Project->Options,配置串口通信屬性與工程二進制文件地址。
點擊GO!按鈕,即可啟用PC與LPC55S36-EVK之間的FreeMASTER通信,如下圖所示。
打開DualServo頁面。
單擊Start按鈕啟用演示。
通過單擊控制頁面上的其他按鈕來操作演示。
4.4參數(shù)配置
如果用戶伺服電機的參數(shù)與本演示中默認電機的參數(shù)不同,則應重新配置參數(shù)以匹配不同的電機。
打開頭文件M1_Params.h或M2_Params.h,將電機本體的基本參數(shù)輸入到對應的位置。
轉速環(huán)、位置環(huán)的PI控制參數(shù)需要在文件中手動輸入并調試,而電流環(huán)被等效成二階控制系統(tǒng),可以通過設置衰減、帶寬頻率的方式自動生成對應的PI控制系數(shù)。而轉速、電壓的使用IIR濾波器,可以手動輸入濾波器的截止頻率進行調試。具體的控制器、濾波器參數(shù)會由公式計算得出并在程序運行時賦值到相關的結構體變量中執(zhí)行。
4.5實驗性能演示
首先,下面所有的實驗結果都是在電機負載輕塑料環(huán)的情況下進行測試的,并且所有的實驗波形與數(shù)據(jù)都來自FreeMASTER。
上圖顯示了電機啟動到2500rpm時的速度和電流波形。
上方的顯示窗口中紅線是速度給定,綠線是電機實際轉速,下方串口中紅色線是轉矩電流給定,藍線是實際轉矩電流。我們可以看到它可以在0.13s內(nèi)加速到2500轉,超調非常小,而且轉矩電流的控制響應也很迅速。
上圖顯示了位置給定為10Hz正弦波且運動范圍為180°機械角時的位置響應。我們可以看到轉子位置(綠線)可以很好地跟蹤給定值(紅線)的變化,最大誤差(藍線)約為2°。
上圖中頂部波形顯示速度響應,底部波形顯示位置響應。紅線是轉速與位置給定,綠線是實際響應值,藍線表示它們之間的誤差。設置電機反轉180°位置給定的命令后,大約需要0.1秒就能到達預定位置。可以看到動態(tài)響應的誤差很小,靜態(tài)響應也很穩(wěn)定。
如果我們先設定一個按照周期性變化的變量x,兩個電機的位置給定分別設置為sin(x)與cos(x),然后將兩個電機的轉子位置分別作為橫坐標與縱坐標,則坐標點的理想軌跡會是一個圓形,圓形的邊沿越平滑意味著位置控制越精準。在FreeMASTER控制頁面上點擊“X-Y Graph ON”按鍵即可開啟演示,實驗結果如上圖所示。
4.6CPU負荷和內(nèi)存使用
以下信息適用于使用IAR Embedded WorkbenchIDE v8.50.9構建的演示應用程序,優(yōu)化等級為高,開啟Flash cache與預取指功能。表中顯示內(nèi)存使用和CPU負荷。內(nèi)存使用是從.map文件(IAR IDE)計算的,包括在RAM中分配的4KB FreeMASTER記錄器緩沖區(qū)。使用SysTick定時器測量CPU負荷??焖侪h(huán)周期數(shù)是在進入ADC中斷后立即使能Systick計數(shù)器,并在快速環(huán)程序執(zhí)行結束后停止計數(shù),將兩次計數(shù)器的差值用于計算CPU負載。需要注意的是,表中的CPU總負載一欄顯示的是運行一段時間后統(tǒng)計的兩個電機占用的負載的最大值之和,反映了最惡劣條件下的運行情況。
在此情況下,它適用于16kHz的快環(huán)頻率和2kHz的慢環(huán)(速度和位置環(huán))頻率。
具體工程代碼實現(xiàn)和更多詳細細節(jié)請參考以下資料:
LPC553x參考手冊:LPC553xRM
應用筆記:MCUXpresso SDK 3-Phase PMSM Control(LPC). (3PPMSMCLPCUG)
應用筆記:Dual Servo Motor Demo on LPC553x/LPC55S3x
審核編輯:劉清
-
微控制器
+關注
關注
48文章
7660瀏覽量
152187 -
LPC
+關注
關注
8文章
136瀏覽量
77742 -
伺服電機控制
+關注
關注
0文章
17瀏覽量
7546 -
直流伺服電機
+關注
關注
4文章
54瀏覽量
10652
原文標題:LPC553x雙伺服電機控制方案詳解(下)
文章出處:【微信號:NXP_SMART_HARDWARE,微信公眾號:恩智浦MCU加油站】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
相關推薦
伺服電機原理及控制應用
AM243x/AM64x單芯片伺服電機控制實現(xiàn)和基準測試
![AM243<b class='flag-5'>x</b>/AM64<b class='flag-5'>x</b>單芯片<b class='flag-5'>伺服</b><b class='flag-5'>電機</b><b class='flag-5'>控制</b>實現(xiàn)和基準測試](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
評論