以下文章來源于OpenFPGA,作者碎碎思
近年來,隨著嵌入式控制與功率電子的融合,基于 FPGA/SoC 的電機控制越來越受到關(guān)注。特別是 矢量控制(Field Oriented Control, FOC),它是高性能電機驅(qū)動(如 BLDC / PMSM)中的核心算法。為了幫助開發(fā)者更快落地這一領(lǐng)域,Xilinx 官方維護了一個開源庫——FOC Motor Control Library。

該庫不僅提供了完整的電機控制應(yīng)用,還帶有工具鏈支持、Dashboard 界面與實際部署示例,是 FPGA/SoC 從控制算法到實際系統(tǒng)的橋梁。

項目概述
項目名稱:FOC Motor Control Library
來源:Xilinx 官方 GitHub 開源倉庫(MIT 許可)
適用平臺:Kria KD240 / Zynq 系列 FPGA/SoC 平臺
應(yīng)用方向:基于 Kria / Zynq 平臺的電機控制系統(tǒng)(矢量控制、PWM 輸出、PID 環(huán)、Dashboard 控制界面等)
硬件架構(gòu)

從總體上看,該設(shè)計由電機控制系統(tǒng)、數(shù)據(jù)監(jiān)控系統(tǒng)、數(shù)據(jù)處理系統(tǒng)和通信系統(tǒng)組成。
電機控制系統(tǒng)
這些模塊用于控制電機的速度和方向。除柵極驅(qū)動器外,其余模塊均為來自 AMD Vitis 電機控制庫的高級綜合 (HLS) 模塊。
FOC
空間矢量脈寬調(diào)制(SVPWM)
脈沖寬度調(diào)制發(fā)生器(PWM發(fā)生器)
Gate Driver
數(shù)據(jù)監(jiān)控系統(tǒng)
這些模塊用于監(jiān)控來自電機和直流電源的數(shù)據(jù)。
ADC采樣控制
電機A、B、C相及直流鏈路的電流和電壓模數(shù)轉(zhuǎn)換器(ADC)接口
Unicode 直接二進制 (USB) 到二進制補碼 (BTC) 的轉(zhuǎn)換
雙極偏移二進制 (BOB) 到 BTC 的轉(zhuǎn)換
數(shù)據(jù)處理系統(tǒng)
該模塊控制ADC接口,并決定何時對ADC進行采樣。它還執(zhí)行基本濾波、數(shù)據(jù)縮放,并將其格式化為Q-Scale格式。
ADC中心
時間敏感網(wǎng)絡(luò)(TSN)系統(tǒng)

該系統(tǒng)支持基于流量整形協(xié)議的以太網(wǎng)流量傳輸。流量可以是機器人系統(tǒng)中不同節(jié)點之間或各種工業(yè)現(xiàn)場設(shè)備之間需要傳遞的控制信息。這些系統(tǒng)的要求是流量必須具有確定性。
TSN IP
AXI 多通道 DMA (MCDMA)
時間感知直接內(nèi)存訪問(TADMA)
測試 PMOD 控制器
1-Wire 總線主機
此接口可用于讀取外部 1-Wire 設(shè)備,例如溫度傳感器。
平臺軟件架構(gòu)
本節(jié)介紹設(shè)計中涉及的軟件組件及其相互關(guān)系。
該軟件棧提供了一個全面的庫,可以通過各種用戶界面進行交互,并通過 Kria Drive SOM 板高效地驅(qū)動電機。
下圖展示了頂層架構(gòu)以及各種軟件組件的排列方式:

內(nèi)核
Ubuntu Linux 內(nèi)核
hwmon硬件監(jiān)控內(nèi)核框架
Drivers:
xilinx_adc_hub模數(shù)轉(zhuǎn)換器 (ADC) 集線器的 IIO 驅(qū)動程序
hls_qei_axi:QEI傳感器的IIO驅(qū)動程序
hsl_foc_periodic:基于傳感器的場定向控制器的 IIO 驅(qū)動程序
hls_pwm_gen:PWM發(fā)生器的IIO驅(qū)動程序
hsl_svpwm_duty:SVPWM 的 IIO 驅(qū)動程序
amd_axi_w1:AMD 1Wire 可編程邏輯總線驅(qū)動程序

中間件
IIO 框架和 libiio 庫
通用UIO框架
CANopen庫
應(yīng)用程序和庫
電機控制庫(包含自定義電機控制IP的UIO驅(qū)動程序)

Bokeh儀表盤
CANopen 服務(wù)器

lm-sensors:Linux 監(jiān)控傳感器實用程序包
核心亮點
1. 矢量控制全棧支持
這個庫實現(xiàn)了電機控制系統(tǒng)中最關(guān)鍵的 矢量控制算法(FOC),包括:
電流環(huán)與速度環(huán)控制
PWM 信號生成
參數(shù)配置與實時調(diào)試
CANopen / CLI / Dashboard 等多種控制接口支持
扭矩控制
轉(zhuǎn)矩控制采用閉環(huán)控制,旨在維持指定的轉(zhuǎn)矩值。在這種運行模式下,q矢量提供電機的有效轉(zhuǎn)矩輸出,d矢量提供平行于轉(zhuǎn)子的力。d矢量代表直接或非旋轉(zhuǎn)力矢量,在非弱磁控制場景中,其值圍繞零設(shè)定點進行控制。

速度控制
恒速控制是通過PI控制器實現(xiàn)的,該控制器調(diào)節(jié)電機扭矩以保持指定的電機速度。

FOC應(yīng)用架構(gòu)
下面框圖顯示了帶傳感器的 FOC 應(yīng)用程序的實現(xiàn)。

2. 可視化 Dashboard 與實時監(jiān)控
項目支持用 Python/UI Dashboard 實時監(jiān)控:

電機電流波形

速度響應(yīng)

PID 調(diào)整效果



3. 多種部署方式
Dashboard 應(yīng)用:終端 UI 實時調(diào)試界面
Command Line(CLI)應(yīng)用:控制與輸出反饋
CANopen 應(yīng)用:集成總線通信協(xié)議支持
4. 工程級構(gòu)建與組件化
這個庫使用 CMake 配置構(gòu)建,支持:
Lib 安裝到系統(tǒng)目錄
帶測試(BUILD_TEST)模塊編譯
Dashboard / CLI / CANopen 子應(yīng)用自由開關(guān)
5. 與硬件聯(lián)調(diào)示例
官方文檔里提供了 KD240 平臺的部署與調(diào)試示例,支持用瀏覽器訪問控制界面進行參數(shù)配置與運行監(jiān)控。
示例界面特點:
支持 Bokeh Server 控制板載電機
參數(shù)文件可靈活更換
一鍵啟動電機控制系統(tǒng)并實時可視化反饋
可用鏈接
官方HLS電機控制相關(guān)開源庫
https://docs.xilinx.com/r/en-US/Vitis_Libraries/motor_control/index.html
APP庫
https://github.com/Xilinx/foc-motor-ctrl
官方文檔
https://xilinx.github.io/kria-apps-docs/kd240/foc-motor-ctrl/0_5/build/html/docs/app_deployment.html
官方控制硬件
https://xilinx.github.io/kria-apps-docs/kd240/build/html/index.html
總結(jié)
Xilinx 的 FOC Motor Control Library 是一個真正工程級的開源電機控制框架。它不僅覆蓋了 FOC 控制算法核心,還集成了監(jiān)控、參數(shù)配置、不同運行模式和跨平臺支持。
官方還有一個機器人堆棧 (KRS)開源項目,我們后期再一起學習~
-
電機控制
+關(guān)注
關(guān)注
3600文章
2130瀏覽量
277615 -
Xilinx
+關(guān)注
關(guān)注
73文章
2199瀏覽量
131086 -
開源
+關(guān)注
關(guān)注
3文章
4196瀏覽量
46095 -
FOC
+關(guān)注
關(guān)注
21文章
388瀏覽量
46187
原文標題:從矢量控制到系統(tǒng)落地:Xilinx 官方開源 FOC 電機控制工程解析
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術(shù)江湖】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
創(chuàng)建自己stm32電機控制工程,需要將MC_library的target配置device成stm32F103RB嗎?
基于103C8T6的雙ICS FOC電機控制開源板調(diào)試
STM32F103的4軸步進電機加減速控制工程的源代碼免費下載
STM32F103的4軸步進電機加減速控制工程源代碼免費下載
【硬聲推薦】電機FOC控制視頻合集
電機控制--FOC的優(yōu)勢
無刷電機Foc控制
FOC電機驅(qū)動技術(shù)解析 FOC電機使用注意事項
FOC電機與BLDC電機的比較
想成為年薪百萬的電機控制工程師,這幾個問題你不得不會!
Xilinx官方開源FOC電機控制工程解析
評論