電機在各種工業、汽車和商業領域應用廣泛。電機由驅動器控制,驅動器通過改變輸入功率來控制其轉矩、速度和位置。高性能電機驅動器可以提高效率,實現更快速、更精確的控制。高級電機控制系統集控制算法、工業網絡和用戶接口于一體,因此需要更多處理能力來實時執行所有任務?,F代電機控制系統通常利用多芯片架構來實現:數字信號處理器(DSP)執行電機控制算法,FPGA 實現高速I/O 和網絡協議,微處理器處理執行控制1。
隨著片上系統(SoC)的出現,例如集CPU 的靈活性與FPGA 的處理能力于一體的Xilinx? Zynq All Programmable SoC,設計人員終于能夠將電機控制功能和其他處理任務納入單個器件中。控制算法、網絡和其他處理密集型任務被分流到可編程邏輯,而管理控制、系統監控與診斷、用戶接口以及調試則由處理單元處理??删幊踢壿嬁梢园鄠€并行工作的控制內核,以實現多軸機器或多重控制系統。由于在單芯片上實現了完整的控制器,因此硬件設計可以更簡單、更可靠、更便宜。
近年來,在MathWorks? Simulink?等軟件建模與仿真工具的推動下,基于模型的設計已發展成為完整的設計流程——從模型創建到實現2?;谀P偷脑O計改變了工程師和科學家的工作方式,把設計任務從實驗室和現場轉移到桌面?,F在,包括工廠和控制器在內的整個系統都可以建模,工程師可以先調整好控制器的行為,再將其部署到現場。這樣就能降低受損風險,加速系統集成,減少對設備供貨的依賴。一旦完成控制模型,Simulink環境便可將其自動轉換為由控制系統運行的C和HDL代碼,節省時間并避免人工編程錯誤。將系統模型鏈接到快速原型開發環境可進一步降低風險,因為后者允許觀察控制器在實際條件下會如何運作。
一個可實現更高電機控制性能的完整開發環境利用Xilinx ZynqSoC實現控制器,MathWorks Simulink用于進行基于模型的設計和自動生成代碼,ADI公司的智能驅動器套件用于快速開發驅動系統原型。
Xilinx FPGA與SoC電機控制解決方案
高級電機控制系統必須全面執行控制、通信和用戶接口任務,每種任務都有不同的處理帶寬要求和實時約束。為了實現這樣的控制系統,所選的硬件平臺必須魯棒且可擴展,以便為將來的系統改進和擴張創造條件。Zynq All Programmable SoC集高性能處理系統與可編程邏輯于一體,滿足上述要求(如圖1 所示)。這種組合可提供出色的并行處理能力、實時性能、快速計算和靈活的連接。該SoC集成了兩個Xilinx模數轉換器(XADC),用于監控系統或外部模擬傳感器。
圖1. Xilinx Zynq SoC功能框圖
Zynq包括一個雙核ARM Cortex-A9處理器、一個NEON協處理器和多個用于加速軟件執行的浮點擴展單元。處理系統處理管理控制、運動控制、系統管理、用戶接口和遠程維護等任務,這些功能非常適合通過軟件實現。為了發揮系統的能力,可以采用嵌入式Linux或實時操作系統??梢允褂米越o自足的處理器,而無需配置可編程邏輯。這樣,軟件開發人員編寫代碼與硬件工程師設計FPGA結構可以同時進行。
在可編程邏輯方面,該器件擁有多達444,000個邏輯單元和2200個DSP Slice,可提供巨大的處理帶寬。FPGA結構可擴展,因而用戶的選擇范圍很廣——從包含28,000個邏輯單元的小型器件到支持最具挑戰性的信號處理應用的高端器件。5個AMBA-4 AXI高速互連將可編程邏輯緊密地耦合到處理系統,提供相當于3000以上引腳的有效帶寬。可編程邏輯適合執行時間關鍵的處理密集型任務,如實時工業以太網協議等,而且它支持多個控制內核并行工作,以實現多軸機器或多重控制系統。
基于Xilinx All Programmable SoC的解決方案和平臺滿足當今復雜控制算法(如磁場定向控制FOC)和復雜調制方案(如Xilinx和Qdesys設計的再生脈沖頻率調制器3)所提出的關鍵時序和性能要求。
利用MathWorks Simulink實現基于模型的設計
Simulink是一種支持多域仿真和基于模型設計的框圖環境,非常適合對包括控制算法和工廠模型的系統進行仿真。為了實現精確定位等目的,電機控制算法會調節速度、轉矩和其他參數。利用仿真評估控制算法可以有效地確定電機控制設計是否合適,判斷其合適后再進行昂貴的硬件測試,從而減少算法開發的時間和成本。
圖2給出了設計電機控制算法的有效工作流程:
* 構建精確的控制器和工廠模型,常常是根據電機、驅動電子、傳感器和負載的資源庫* 對系統行為進行仿真以驗證控制器的表現是否符合預期* 產生C代碼和HDL進行實時測試和實施* 利用原型硬件測試控制算法* 在原型硬件上進行仿真和測試后,如果控制系統證明令人滿意,則將控制器部署到最終生產系統上
圖2.電機控制算法設計的工作流程
MathWorks 產品包括Control System Toolbox?、SimPowerSystems?和Simscape?,提供工業標準算法和應用程序以對線性控制系統進行系統化分析、設計和調諧,此外還有元件庫和分析工具,用于對機械、電氣、液壓和其他物理領域的各種系統進行建模和仿真。利用這些工具可以創建高保真的工廠和控制器模型,進而驗證控制系統的行為和性能,成功之后方移交實際實施。該仿真環境是驗證極端功能情形和工作狀況的理想場所,確??刂破饕褳檫@些狀況做好準備,并且其實際操作對設備和工作人員都將是安全的。
一旦控制系統在仿真環境中完成了全面驗證,就可以利用嵌入式轉碼器和HDL轉碼工具將其轉換為C代碼和HDL,并部署到原型硬件上進行測試,然后部署到最終生產系統上。此時要指定定點和時序行為等軟硬件實施要求。自動生成代碼有助于縮短從概念到實際系統實現所需的時間,消除編程錯誤,確保實際結果與模型相符。圖3給出了在Simulink中進行電機控制器建模并將其轉移到最終生產系統所需的實際步驟。
圖3.從仿真到生產的過程
第一步是在Simulink中對控制器和工廠進行建模和仿真。在這一階段,控制器算法被劃分為在軟件中實現的模塊和在可編程邏輯中實現的模塊。劃分和仿真完成后,利用嵌入式轉碼器和HDL轉碼器將控制器模型轉換為C 代碼和HDL。基于Zynq的原型系統驗證控制算法的性能,并且幫助進一步調諧控制器模型,然后轉移到生產階段。在生產階段,將自動生成的C代碼和HDL集成到復雜的生產系統框架中。此工作流程確??刂扑惴ㄔ谶_到生產階段之前經過全面驗證和測試,使得系統魯棒性具有高可信度。
利用ADI公司智能驅動器套件快速完成原型開發
選擇合適的原型開發硬件是設計過程的一個主要步驟。ADI公司的智能驅動器套件支持快速、高效的原型開發。Avnet Zynq-7000All Programmable SoC/Analog Devices智能驅動器套件將Zynq-7000 All Programmable SoC ARM雙核Cortex-A9 + 28 nm可編程邏輯與ADI公司最新一代高精度數據轉換器和數字隔離相結合,可實現高性能電機控制和雙通道千兆以太網工業網絡連接。該套件帶有Avnet ZedBoard 7020基板和ADI公司的AD-FMCMOTCON1-EBZ模塊,構成一個完整的驅動系統,能夠高效控制多種類型的電機。另外,該套件可以利用ADI 公司的AD-DYNO1-EBZ測功器驅動系統進行擴展,后者是一個動態可調的負載,可用來測試實時電機控制性能。AD-FMCMOTCON1-EBZ模塊由控制器和驅動板組成,如圖4所示。
圖4.AD-FMCMOTCON1-EBZ功能框圖
控制板是一個混合信號FPGA夾層卡 (FMC),可利用低引腳數(LPC)或高引腳數 (HPC) FMC連接器連接到任何Xilinx FPGA或SoC平臺。它具有以下特性:
* 利用隔離式ADC測量電流和電壓* 隔離式Xilinx XADC接口* 完全隔離的數字控制和反饋信號* 霍爾、差分霍爾、編碼器和旋變器接口* 2個千兆以太網物理層,支持EtherCAT、ProfiNET、Ethernet/IP或Powerlink等高速工業通信協議* FMC信號電壓自適應接口,支持在所有FMC電壓電平上無縫工作
隔離是任何電機控制系統的一個關鍵方面,其目的是保護控制器和用戶。控制板上模擬和數字信號的完全隔離,確保FPGA 平臺永遠不受電機驅動側可能產生的危險電壓影響。
驅動板包含驅動電機以及電流電壓檢測與保護電路所需的全部電源電子。該板具有以下特性:
* 以最大18 A電流驅動12 V至48 V范圍的BLDC(無刷直流)/PMSM(永磁同步電機)/有刷直流/步進電機* 動態制動功能和集成式過流與反向電壓保護* 利用隔離式ADC測量相電流;可編程增益放大器使電流測量輸入范圍達到最大* 向控制板提供直流總線電壓、相電流和總電流反饋信號* 集成BEMF 過零檢測,用于實現PMSM或BLDC電機的無傳感器控制
測功器是一個動態可調的負載,可用于測試實時電機控制性能,由兩臺BLDC電機通過剛性連接直接耦合而成。其中一臺BLDC電機用作負載,由測功器的嵌入式控制系統控制,而另一臺由ADI 公司的智能驅動器套件驅動,如圖5 所示。該系統配有一個用戶界面,用于顯示有關負載電流和速度的信息,并支持設置不同的負載曲線。要實現外部控制,可利用Analog Discovery USB示波器捕捉負載信號;要從MATLAB?直接控制,可使用MathWorks Instrument Control Toolbox?。
圖5. 測功器驅動系統
電機電流和電壓測量的質量對電機控制系統的性能有很大影響。通過利用高性能模擬信號調理器件和ADC,ADI公司智能驅動器套件提供精密電流和電壓測量。測量路徑分為控制器和驅動板兩部分,如圖6所示。
圖6. 相電流信號鏈
相電流通過測量分流電阻上的電壓來檢測。取決于ADC是否靠近分流電阻,有兩條可能的測量路徑可以獲得最高測量精度。如果ADC靠近分流電阻,則信號路徑非常短,不易受到噪聲耦合影響。分流電阻上的小差分電壓由隔離式Σ-Δ調制器AD7401直接測量,而無需其他接口和信號調理電路。如果ADC遠離分流電阻,則信號路徑很長,容易受到噪聲耦合影響,尤其是電源開關噪聲和電機的噪聲耦合。必須采取特別措施確保ADC與分流電阻之間的PCB走線和信號調理電路受到適當的屏蔽。分流電阻上的小差分電壓被驅動板上的差動放大器AD8207放大,后者置于分流電阻附近以避免噪聲耦合。信號從±125 mV 滿量程輸入范圍放大至±2.5 V范圍,以最大程度地降低耦合噪聲的影響。放大后的信號又經過一個采用可編程增益儀表放大器(PGIA)AD8251的放大級,以確保ADC始終接收到經過適當縮放以適應輸入范圍的輸入信號。放大后的模擬信號經過連接器進入控制板。連接器會屏蔽每個模擬信號,以降低噪聲耦合影響。來自驅動板的模擬信號利用運算放大器ADA4084-2重新轉換到AD7401輸入范圍。
電流和電壓反饋信號鏈中的最重要器件是二階隔離式Σ-Δ調制器AD7401A。這款高性能ADC 具有16位分辨率(無失碼)、13.3有效位數(ENOB)和83 dB SNR。2線數字接口包括一個20 MHz時鐘輸入和一個1位數字位流輸出。ADC輸出利用sinc3數字濾波器重構。數據手冊中提供了一個針對16位輸出和78 kHz采樣速率的濾波器模型和HDL 實現方案。輸出分辨率和采樣速率可通過改變濾波器模型和抽取來控制。78 kHz采樣速率對許多應用可能是足夠的,但某些情況需要更高的速率。這些情況下,可利用圖7所示的濾波器庫來將系統采樣速率提至最高10 MSPS(真16位數據)。濾波器庫包含n個sinc3濾波器,其采樣時鐘延遲T(即sinc3濾波器傳播時間除以n)的倍數。數據選擇器以周期T輸出ADC碼。
圖7. 濾波器庫
相電流測量也可以由Zynq XADC執行。XADC信號測量鏈使用常規測量鏈的完整路徑,并在AD7401 Σ-Δ調制器之后增加一個Sallen-Key模擬重構濾波器。該濾波器是在控制板上利用運算放大器AD8646實現,如圖8 所示。隔離式Σ-Δ調制器和模擬重構濾波器的組合為實現XADC 輸入信號的模擬隔離提供了一種便利、低成本的方法,同時不影響測量質量。
圖8. XADC信號測量鏈
ADI公司智能驅動器套件帶有一套Simulink控制器模型、完整的Xilinx Vivado框架和ADI Linux基礎設施,便于用戶完成電機控制系統設計所需的全部步驟——從仿真開始,經過原型開發,最終在生產系統上實現。
可以利用兩個控制器模型(一個六步控制器和一個PMSM磁場定向控制器)來啟動設計過程。圖9顯示了這兩個控制器的高級視圖。六步控制器實現一個用于BLDC電機的梯形控制器;FOC控制器提供一個FOC內核以便集成到控制系統中。
圖9.Simulink控制器模型
工廠和控制器模型在仿真階段創建,通過完整系統的行為仿真來驗證控制器符合預期??刂破髂P蛣澐譃橛蒀代碼和HDL 實現的多個部分,并指定時序、定點實現、采樣速率和環路時間等約束條件以確??刂破髂P偷男袨榕c在硬件實現中一樣。圖10顯示了六步控制器的軟件和HDL劃分。
圖10.控制器的C代碼和HDL劃分
一旦控制器在仿真中經過全面驗證,下一步便是在硬件平臺上制作原型。針對ARM內核和可編程邏輯,Zynq SoC引導工作流程從劃分為多個子系統的Simulink模型產生C代碼和HDL。利用此工作流程,HDL轉碼器生成針對可編程邏輯的HDL,嵌入式轉碼器則生成針對ARM的C代碼。MathWorks Zynq支持包支持從模型生成由算法C代碼組成的ARM可執行文件(與AXI總線接口),并支持從模型生成由HDL代碼組成的位流(與可編程邏輯引腳和AXI總線接口)。圖11顯示了控制器實現及其與ADI智能驅動器硬件的關系。
圖11. 原型系統上的控制器實現
一旦將位流和可執行文件加載到硬件中,就可以開始控制器的運行測試。利用Simulink與運行開源Linux OS的嵌入式系統之間的以太網鏈路執行硬件在環(HIL)測試。軸轉速等電機參數可以在Simulink中捕捉,并與仿真結果相比較,確保實際系統實現與模型相符。一旦控制算法測試完畢,便可將控制器轉移到生產系統上。
除了智能驅動器套件以外,ADI公司還提供完整的Vivado框架和Linux基礎設施以用于原型開發和最終生產。圖12顯示了支持智能驅動器套件的Zynq基礎設施。該高級框圖說明了ADI參考設計在Xilinx Zynq SoC上是如何劃分的。可編程邏輯實現IP內核,用于與ADC、位置傳感器和電機驅動級接口。由HDL轉碼器生成的HDL代表電機控制算法,集成到ADI公司IP中。所有IP都有低速AXI-Lite接口用于配置和控制,并有高速AXIStreaming接口用于通過DMA通道向軟件傳輸實時數據。高速以太網接口可以利用ARM 處理系統的硬MAC外設或可編程邏輯中的Xilinx以太網IP實現。
ARM Cortex A9 處理系統運行ADI 公司提供的Ubuntu Linux,其中包括:與ADI公司智能驅動器硬件接口所需的Linux IIO驅動,用于監測和控制的IIO Oscilloscope(示波器)用戶空間應用程序,支持實時數據采集和通過TCP控制系統的libiio服務器,在遠程計算機上運行的客戶端,以及整合嵌入式轉碼器所生成C代碼的可選用戶應用程序。
圖 12. ADI Linux infrastructure.
所有ADI Linux 驅動均基于Linux 工業I/O (IIO)子系統,其現已包括在所有主流Linux內核中。IIO Scope是ADI公司開發的一款開源Linux應用程序,運行在Xilinx Zynq中的雙核ARMCortex A9上,能夠顯示連接到Xilinx Zynq平臺的ADI FMC卡所獲取的實時數據。這些數據可以在時域中、頻域中或以星座圖的形式顯示。支持以不同的常用文件格式(如逗號分隔值或.mat Matlab文件等)保存所捕獲的數據以供進一步分析。IIO Scope提供一個圖形用戶界面,用于更改或讀取ADI FMC卡的配置。
libiio服務器支持實時數據采集、通過TCP控制系統以及運行于遠程計算機上的客戶端。服務器運行于Linux下的嵌入式目標上,通過TCP管理目標與遠程客戶端之間的實時數據交換。IIO客戶端可以作為系統對象集成到MATLAB和Simulink原生應用程序中。一路HDMI 輸出用于在監視器上顯示Linux界面,鼠標和鍵盤可通過USB 2.0端口連接到系統。
ADI 公司為智能驅動器套件提供的Linux軟件和HDL基礎設施,連同MathWorks和Xilinx提供的工具,非常適合開發電機控制應用原型。它們還包含適用于生產的組件,可將其集成到最終控制系統中,從而減少從概念到生產所需的時間和成本。
結論
本文說明了采用FPGA的現代電機控制系統的要求和趨勢,以及為滿足這些約束條件和幫助實現更高效、更精確的電機控制解決方案,MathWorks、Xilinx和ADI公司帶給市場的工具和系統。通過將MathWorks基于模型的設計和自動生成代碼工具與強大的Xilinx Zynq SoC、ADI公司的隔離、功率、信號調理和測量解決方案相結合,電機驅動系統的設計、驗證、測試和實現可以比以前更有效率,進而提高電機控制性能并縮短上市時間。ADI公司智能驅動器套件與Avnet Zynq-7000 All Programmable SoC配合使用,為利用MathWorks Simulink設計的電機控制算法提供出色的原型開發環境。該智能驅動器套件帶有一組參考設計4,旨在為所有希望評估該系統的人士提供一個起點,并且幫助啟動任何新的電機控制項目。
-
FPGA
+關注
關注
1626文章
21665瀏覽量
601807 -
控制器
+關注
關注
112文章
16197瀏覽量
177396 -
電機控制
+關注
關注
3526文章
1855瀏覽量
268370
原文標題:基于FPGA的系統提高電機控制性能
文章出處:【微信號:motorcontrol365,微信公眾號:電機控制設計加油站】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論