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

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

項(xiàng)目概述
項(xiàng)目名稱(chēng):FOC Motor Control Library
來(lái)源:Xilinx 官方 GitHub 開(kāi)源倉(cāng)庫(kù)(MIT 許可)
適用平臺(tái):Kria KD240 / Zynq 系列 FPGA/SoC 平臺(tái)
編程語(yǔ)言:HLS、C++、Python、CMake 等
應(yīng)用方向:基于 Kria / Zynq 平臺(tái)的電機(jī)控制系統(tǒng)(矢量控制、PWM 輸出、PID 環(huán)、Dashboard 控制界面等)
硬件架構(gòu)

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

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

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

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

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

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

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

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

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

電機(jī)電流波形

速度響應(yīng)

PID 調(diào)整效果



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