工業設計人員可以利用快速原型與基于模型的設計將電機控制算法移至Zynq SoC環境。 作者: Tom Hill 賽靈思公司DSP解決方案高級經理 tom.hill@xilinx.com 自20世紀90年代以來,電機驅動開發人員一直采用多芯片架構實施電機控制與處理需求。 在這種架構中,離散數字信號處理(DSP)芯片負責執行電機控制算法,FPGA實施高速 I/O與網絡協議,離散型處理器負責處理執行控制。然而,隨著賽靈思 Zynq-7000 All Programmable SoC的問世,設計人員已經找到了能將這些功能組合到單個器件的方法,而且還可以集成其它處理任務。減少部件數量與復雜性不僅可以降低系統成本,而且還能提升系統性能與可靠性。 但是,驅動開發人員如何才能夠改變自己長期形成的設計實踐,轉而采用Zynq SoC呢? 長期以來,工業設計人員一直采用基于模型的設計,通過仿真和C代碼生成,在DSP芯片上研發定制電機算法。 如今,賽靈思與MathWorks合作開發了一種全新工作流程——將基于模型的設計擴展至可用Zynq-7000 All Programmable SoC的處理系統和可編程邏輯。 針對電機控制的ZYNQ SOCS 如今,先進的電機控制系統都屬于控制算法與工業網絡的組合,包括 EtherCAT、Profinet、Powerlink以及Sercos III,其能夠從計算資源中提取處理帶寬。此外,控制系統現在還聚合了其它需求,其中包括運動控制層、PLC層、診斷層以及用戶界面,以便進行調試和保養,或遠程監控。采用與處理系統自然貼合的元件,這些需求能轉化為邏輯分組和實體分組,而其它元件則最好適合于硬件輔助減負與加速。 您所選擇的硬件平臺應該提供穩健的可擴展型系統。賽靈思Zynq SoCs就能滿足上述需求,其配有高性能處理系統,以支持聯網、運動、soft-PLC、診斷以及遠程維護功能,并與可編程邏輯相結合,從而加速硬件中性能臨界的功能。對于處理方面,Zynq SoC與帶有NEON控制處理器、浮點擴展的ARM® Cortex™-A9 雙核處理系統相結合,可加速軟件執行速度。對于可編程邏輯,該器件配有444000個邏輯單元和2200個DSP48Slice,能提供大量的處理帶寬。利用五個高吞吐量AMBA®-4 AXI高速互連,可編程邏輯與處理系統緊密耦合,相當于3000多個PIN的有效帶寬。 表1列出了Zynq SoC 器件所能實現的處理性能。 圖1--針對Zynq SoC的MathWorks工作流程,采用C代碼與HDL代碼生成 表1--Zynq SoC的處理性能
采用Simulink與控制系統工具箱(CONTROL SYSTEMS TOOLBOX)的設備與電機模型 現代控制算法的系統時間與系統變量可跨越多個數量級,從而導致硬件/軟件分組成為一項艱巨、耗時、重復的任務。圖2給出了一個典型的電動驅動。其電源頻率通常為50Hz-60Hz,經過整流后,形成連續電壓(直流)。然后,該連續電壓轉換成變頻電壓,可控制饋送電機終端的電功率級。此外,控制器還必須讀取電機基本變量,其中包括電流和電壓。控制器同樣也必須讀取或確定軸的位置,包括軸的轉速和通信網絡或監視控制器的處理命令。 Simulink®可提供用于多域系統仿真和基于模型設計的方框圖環境,其完全適用于含有控制算法和設備模型的仿真系統。基于廣泛用于Simulink中對控制系統建模進行系統分析、設計與調節的方法,MathWorks的控制系統工具箱等產品可提供各種各樣的“應用”。利用Simulink執行系統建模,可以加快電機控制系統的開發速度,而且還可以從以下幾個方面降低風險: • 降低受損風險——在全新控制系統算法用于量產硬件測試之前,仿真法可對此算法進行全面檢驗,這樣就可以規避硬件測試存在損害驅動電子系統、電機以及系統其它組件的風險。 • 加快系統集成速度——支持員工需要將控制系統新算法集成至產品系統,這意味著部署新的控制器會消耗有限的時間,而且可能令部署過程變得冗長。 • 減少對設備可用性的依賴——在有些情況下,生產環境本身并不可用,例如定制驅動電子系統或電機尚在開發當中或者其所處位置使得控制系統設計人員無法對其進行訪問。 鑒于上述因素,仿真即是利用生產硬件進行測試的最佳替代方案。Simulink等仿真環境可以提供框架,以便利用機電組件既存構建模塊庫創建裝置模型,進而利用該裝置模型對新的控制系統架構進行評估。 將系統模型與快速原型環境以及最終生產系統相連接,從而進一步降低計劃的風險。快速原型工作流程允許算法開發人員可以在不依賴硬件設計人員的情況下進行原型設計。算法研開人員可在高度自動化過程中采用特定平臺支持包,進而將系統硬件和軟件組件部署到可以編譯為特定硬件開發平臺的設計模板。硬件與軟件設計團隊可以將這些相同的硬件和軟件組價重新應用于最終生產系統之中,無需做出任何修改即可加速研發過程、減少失誤。 采用Avnet智能驅動套件實現快速原型 設計人員可以將vnet Zynq-7000 AP SoC / 模擬器件智能驅動套件與Simulink以及Zynq SoC工作流程相結合,實現針對電機控制應用的整套快速原型系統。該套件整合了 Zynq SoC與最新一代模擬器件高精度數據轉換器以及數字隔離技術。該套件可支持高性能電機控制與雙端口千兆位以太網工業聯網(http://www.xilinx.com/products/ boards-and-kits/1-490M1P.htm)。 該套件配有Avnet ZedBoard 7020基板、模擬器件AD-FMCMOTCON1-EBZ模塊、額定轉速為4000RPM的24V BLDC電機,同時還配有霍爾效應傳感器和1250-CPR索引編碼器,其中AD-FMCMOTCON1-EBZ模塊可以驅動帶有24V外部電源(該套件本身帶有)的無刷直流步進式電機。此外,該套件還含有Zynq SoC磁場導向控制參考設計以及包括驅動程序、應用軟件與源代碼的模擬器件Ubuntu Linux框架。 實例:電機梯形控制 現在讓我們通過Simulink仿真將上述工作流程應用于圖1中的電機梯形控制系統,通過仿真裝置評估控制器,然后采用智能驅動套件對該控制器進行原型設計。最后,我們利用硬件測試的結果來對Simulink模型進行驗證。 在該實例中,我們將使用智能驅動套件來驅動以鋁盤形式存在的慣性載荷以及基礎梯形控制器。該控制器的主要組件如下: 霍爾效應傳感器——檢測電機位置 速度估計器——根據傳感器信號計算轉子轉速 六步換向器——根據轉子位置與轉速計算相位電壓與變頻器使能信號。 脈寬調制(PWM)——通過驅動回路驅動控制器輸出。 我們首先采用適用于控制環路分析的系統行為、控制環路模型。首先,我們利用仿真對模型進行評估,模型接受脈沖測試,指令模型按照150轉/秒的轉速旋轉,持續2秒,然后停止。通過調節控制回路的比例積分(PI)控制器增益,我們可以獲得1.2秒穩定時間,并且過沖可以忽略不計(圖3中紫色陰影標志即為控制環路仿真結果;有關本實例的詳情,敬請訪問mathworks.com/zidk)。 圖2——電機驅動控制器的主要時間約束 圖3——用于根據硬件測試結果進行驗證的硬件與軟件仿真模型 圖4——由分割后的Simulink模型生成的C代碼與HDL代碼 設置好控制環路增益之后,我們現在可將控制器置于更加精準的系統模型上進行測試。與控制環路模型相比,系統模型內含更加細化的驅動電子系統模型,更為重要的是,系統模型所包含的細化模型可以指定控制器與外設實施,其中包括PWM與霍爾效應傳感器處理過程中所使用的準確時序模型。 我們已針對Zynq SoC規劃出了控制器,速度控制器與速度估計器在ARM核上運行,頻率為1kHz,換向器、霍爾傳感器以及PWM均在Zynq SoC可編程邏輯上運行。 我們可以對比控制環路和系統模型的仿真結果(圖3中紅色標志即為系統模型結果)。一般來說,兩個波形的相似度非常高,但電機速率除外,它趨向于零。在這些點上,霍爾傳感器粗糙度非常明顯,而且電機軸每次轉動只有六個標志脈沖。這種高保真系統模型7分鐘內即可運行一次為時4秒的仿真,而對于保真較低的控制環路模型而言,只能運行一次為時7秒的仿真。對于控制系統設計人員而言,其意義在于上述仿真結果可以讓我們更加堅信,控制環路模型對于進一步評估控制器替代方案來說足夠準確,無需使用系統模型進行硬件測試,即可驗證替代方案。 有了這些發現,我們即可利用智能驅動套件設計出控制器的原型。通過Zynq SoC推薦的工作流程,我們可以利用Simulink模型生成C代碼與HDL代碼,Simulink模型已被分割成數個特定于ARM核以及可編程邏輯的子系統(圖4)。 我們按照上述工作流程,使用MathWorks的HDL代碼生成器生成IP核,此IP核將在Zynq SoC器件的可編程邏輯中運行,以便建立在ARM核上運行的可執行程序,并且在ARM核與可執行程序之間建立AXI總線接口。 將bit文件加載載入可編程邏輯以及在ARM核上運行可執行程序之后,我們即可進行環路中的硬件測試。對于此測試,我們采用經過改良的Simulink測試平臺模型,我們已經拆除該模型中的驅動電子系統、電機以及傳感器模型,因為我們采用了環路中的硬件取代被仿真的裝置模型。為了方便我們檢查測試結果,同時方便與仿真結果進行對比,我們可將Zynq SoC設置成將電機軸速度測量以及其它數據存儲于ARM核內存之中(圖3中黑色陰影標志即為硬件測試結果)。這樣,我們即可將結果上傳至MATLAB session,在試驗結束時將脈沖輸入應用于測試平臺,即可處理和查看結果。如此一來,我們即可在硬件中準確重復我們采用仿真進行的測試。原型設計的測試結果與仿真結果非常接近,其中包括因霍爾傳感器導致電機速度實測值發生中斷。 本簡述證明了MathWorks的Zynq SoC工作流程可應用于基于模型的設計,實現仿真和原型設計。如果想繼續深入生產,您可以將所生成的C代碼和HDL代碼導入Vivado® 設計套件,在該套件中您可將這些代碼與執行程序、聯網IP以及完整執行系統所必需的其它設計組件進行整合。 如需下載本文所述模型以及了解更多有關如何利用Zynq-7000 All Programmable SoC / Avnet模擬器件智能驅動套件完成基于模型的設計,敬請訪問:mathworks.com/zidk。您還可以從本頁瀏覽在Zynq SoC器件上執行完整磁場導向控制模型的Simulink模型,也可以觀看上述實例的視頻,了解更多詳情。 如需了解 MathWorks產品如何為賽靈思Zynq-7000 All Programmable SoC系列提供支持,敬請訪問:mathworks.com/zynq。 |