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

伺服電機原理及控制應用
什么是伺服電機?伺服電機的工作原理是什么?
AM243x/AM64x單芯片伺服電機控制實現和基準測試

步進電機的伺服控制方法有哪些
直流伺服電機的主要控制方式
伺服電機怎么選型和計算(伺服電機電流環控制原理)

評論