您好,歡迎來電子發(fā)燒友網(wǎng)! ,新用戶?[免費(fèi)注冊]

您的位置:電子發(fā)燒友網(wǎng)>電子百科>主機(jī)配件>軟驅(qū)>

模型驗(yàn)證 - 基于模型的Zynq SoC軟硬件協(xié)同設(shè)計(jì)工作流程及其案例研究

2017年11月17日 09:43 MathWorks 公司 作者:Eric Cigan,Noam Levin 用戶評論(0
關(guān)鍵字:matlab(227703)仿真(130856)

一旦性能使用高保真度模型驗(yàn)證完畢,接著在硬件中對控制器進(jìn)行原型設(shè)計(jì)。根據(jù)圖 1 所示的工作流程,首先從生成 IP 核入手。IP 核生成工作流程指導(dǎo)選擇目標(biāo)開發(fā)板,引導(dǎo)完成映射內(nèi)核的輸入和輸出端口到目標(biāo)接口的流程,包括 AXI4 接口和外部端口。

通過與 Vivado Design Suite 集成,該工作流程能完成比特流構(gòu)建和 Zynq-7020 SoC 的架構(gòu)編程。

現(xiàn)在 IP 核已經(jīng)加載到目標(biāo)器件上,下一步是從針對 ARM 內(nèi)核的 Simulink 模型上生成嵌入式 C 語言代碼。從生成 C 語言代碼、編譯 C 語言代碼和用嵌入式 Linux 構(gòu)建可執(zhí)行文件整個(gè)過程完全自動化,然后原型即可投入運(yùn)行。

為了運(yùn)行原型硬件并驗(yàn)證其結(jié)果是否與仿真模型一致,我們構(gòu)建了一個(gè)用作高級控制面板的修改版 Simulink 模型(圖 4a)。在這個(gè)模型中刪除了設(shè)備使用的仿真模型(即驅(qū)動電子電路、電機(jī)、負(fù)載和傳感器部分),用連接到 ZedBoard 的 I/O 替代。

在 Simulink 會話中使用該模型可以啟動電機(jī),選擇不同激勵(lì)配置,監(jiān)測相關(guān)信號,獲取供在 MATLAB 中后續(xù)處理的數(shù)據(jù),不過現(xiàn)在可以重復(fù)的是脈沖測試(圖 3)。

圖 4a 顯示了硬件原型的軸轉(zhuǎn)速和相流結(jié)果與仿真結(jié)果的對比情況。硬件原型的啟動順序與兩個(gè)仿真模型的啟動順序有明顯差別。不過這種情況的原因預(yù)計(jì)是硬件測試中電機(jī)的轉(zhuǎn)子和定子的初始角與仿真中使用的初始角不同,導(dǎo)致電流控制算法在通過自己的編碼器校準(zhǔn)模式驅(qū)動電機(jī)時(shí)的響應(yīng)不同。從施加脈沖第 2 秒開始,仿真和原型硬件的結(jié)果就基本完全吻合。

圖 4(a) - 用于測試原型硬件的 Simulink 模型

圖4(b) - 硬件原型和仿真的結(jié)果比較

以這些結(jié)果為基礎(chǔ),可以繼續(xù)進(jìn)一步不同負(fù)載和運(yùn)行條件下的測試,也可以開展進(jìn)一步的 C 語言和 HDL 優(yōu)化。
工程師正在轉(zhuǎn)為使用基于模型的設(shè)計(jì)工作流程,在賽靈思 Zynq SoC 上實(shí)現(xiàn)算法的軟硬件設(shè)計(jì)。Simulink 仿真能盡早評估算法,方便設(shè)計(jì)人員評估算法的有效性。無需實(shí)驗(yàn)室,在桌面上就能完成設(shè)計(jì)的權(quán)衡,顯著提升生產(chǎn)力。業(yè)經(jīng)驗(yàn)證的 C 語言和 HDL 代碼生成技術(shù),結(jié)合對賽靈思 All Programmable SoC 的硬件支持,為算法在真實(shí)硬件上運(yùn)行提供快速且可重復(fù)的流程。仿真和硬件環(huán)境間的持續(xù)驗(yàn)證讓設(shè)計(jì)人員能夠在開發(fā)流程中盡早發(fā)現(xiàn)并解決問題。

MathWorks 為基于 Zynq 的開發(fā)板、軟件定義無線電套件和電機(jī)控制套件提供工作流程支持。

MATLAB 和 Simulink 均為The MathWorks公司的注冊商標(biāo),詳見: marks 列出的其他商標(biāo)。其他產(chǎn)品品牌名稱均為其各自所有者的商標(biāo)或注冊商標(biāo)。

非常好我支持^.^

(0) 0%

不好我反對

(0) 0%

( 發(fā)表人:黃昊宇 )

      發(fā)表評論

      用戶評論
      評價(jià):好評中評差評

      發(fā)表評論,獲取積分! 請遵守相關(guān)規(guī)定!

      ?