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

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

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

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

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

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

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

Bokeh儀表盤
CANopen 服務器

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

速度控制
恒速控制是通過PI控制器實現的,該控制器調節電機扭矩以保持指定的電機速度。

FOC應用架構
下面框圖顯示了帶傳感器的 FOC 應用程序的實現。

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

電機電流波形

速度響應

PID 調整效果



3. 多種部署方式
Dashboard 應用:終端 UI 實時調試界面
Command Line(CLI)應用:控制與輸出反饋
CANopen 應用:集成總線通信協議支持
4. 工程級構建與組件化
這個庫使用 CMake 配置構建,支持:
Lib 安裝到系統目錄
帶測試(BUILD_TEST)模塊編譯
Dashboard / CLI / CANopen 子應用自由開關
5. 與硬件聯調示例
官方文檔里提供了 KD240 平臺的部署與調試示例,支持用瀏覽器訪問控制界面進行參數配置與運行監控。
示例界面特點:
支持 Bokeh Server 控制板載電機
參數文件可靈活更換
一鍵啟動電機控制系統并實時可視化反饋
可用鏈接
官方HLS電機控制相關開源庫
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
總結
Xilinx 的 FOC Motor Control Library 是一個真正工程級的開源電機控制框架。它不僅覆蓋了 FOC 控制算法核心,還集成了監控、參數配置、不同運行模式和跨平臺支持。
官方還有一個機器人堆棧 (KRS)開源項目,我們后期再一起學習~
-
電機控制
+關注
關注
3600文章
2131瀏覽量
277662 -
Xilinx
+關注
關注
73文章
2200瀏覽量
131111 -
開源
+關注
關注
3文章
4203瀏覽量
46120 -
FOC
+關注
關注
21文章
389瀏覽量
46198
原文標題:從矢量控制到系統落地:Xilinx 官方開源 FOC 電機控制工程解析
文章出處:【微信號:HXSLH1010101010,微信公眾號:FPGA技術江湖】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
創建自己stm32電機控制工程,需要將MC_library的target配置device成stm32F103RB嗎?
基于103C8T6的雙ICS FOC電機控制開源板調試
STM32F103的4軸步進電機加減速控制工程的源代碼免費下載
【硬聲推薦】電機FOC控制視頻合集
電機控制--FOC的優勢
無刷電機Foc控制
FOC電機驅動技術解析 FOC電機使用注意事項
FOC電機與BLDC電機的比較
想成為年薪百萬的電機控制工程師,這幾個問題你不得不會!
Xilinx官方開源FOC電機控制工程解析
評論