【導讀】模型驅(qū)動開發(fā)已被業(yè)界采用,作為快速原型設(shè)計和縮短上市時間的解決方案。但是,在最終實現(xiàn)階段通常必須投入大量時間和精力,以使產(chǎn)品的性能與模型的性能相匹配。
模型驅(qū)動開發(fā)已被業(yè)界采用,作為快速原型設(shè)計和縮短上市時間的解決方案。但是,在最終實現(xiàn)階段通常必須投入大量時間和精力,以使產(chǎn)品的性能與模型的性能相匹配。因此,模型驅(qū)動開發(fā)的全部潛力在實踐中并未實現(xiàn)。在本文中,我們將討論如何在模型開發(fā)過程中遵循一些準則和技術(shù)來解決這一差距。我們還介紹了如何從模型中生成有效的代碼,以縮短產(chǎn)品的上市時間。
介紹
分布式能源(如并網(wǎng)太陽能逆變器)的滲透深度不斷提高,導致電力轉(zhuǎn)換社區(qū)為這些市場尋找更好、更高效和具有成本效益的解決方案。文獻中有許多算法和拓撲可以提高功率轉(zhuǎn)換過程的輸出質(zhì)量和效率。芯片供應商正在推出具有功能和硬件支持的新控制處理器,以有效地實現(xiàn)這些算法。構(gòu)建完整逆變器的硬件原型并在各種條件下試驗其性能是非常昂貴的。此外,在實驗過程中算法的任何故障都可能損壞整個系統(tǒng)。這些市場中的產(chǎn)品還需要滿足相關(guān)的安全標準。因此,電源轉(zhuǎn)換行業(yè)在將這些創(chuàng)新技術(shù)應用于最終產(chǎn)品方面一直很慢。
模型驅(qū)動開發(fā)已被采用作為此問題的解決方案。在模型驅(qū)動開發(fā)中,在生成硬件原型之前構(gòu)建和仿真系統(tǒng)的完整模型。這驗證了算法功能并顯著降低了風險。此外,當前的建模工具支持直接從模型生成代碼,從而簡化和放寬安全認證標準。然而,業(yè)界尚未接受完整的模型驅(qū)動開發(fā),主要是因為1)最終產(chǎn)品和模型的性能差異很大,2)生成的代碼對于目標控制處理器來說效率不高,需要手動修改才能將其帶到產(chǎn)品中。
在本文中,我們將討論可以使模型性能非常接近最終產(chǎn)品性能的技術(shù)和方法,以最大程度地降低硬件更改和延遲的風險。我們還討論了如何從這些模型中有效地生成代碼,以使產(chǎn)品更快地進入市場。
模型開發(fā)指南
模型驅(qū)動開發(fā)
考慮并網(wǎng)住宅太陽能逆變器的簡化圖,如圖1所示。太陽能電池板上的太陽輻射產(chǎn)生與輻射強度成比例的直流電。轉(zhuǎn)換器將這種直流電轉(zhuǎn)換為交流電,可用于家用電器,也可以饋送到電網(wǎng)。來自信號鏈中各個點的電流和電壓由適當?shù)膫鞲衅鳈z測,并將饋送到逆變器中的控制處理器。在控制處理器上運行的算法分析這些信號并控制功率模塊,使產(chǎn)生的電流和電壓達到電網(wǎng)所需的頻率、幅度和相位。在這種情況下,太陽能電池板充當電源,電網(wǎng)和家用電器充當水槽。在不同的電源轉(zhuǎn)換系統(tǒng)中,源和灌電流會有所不同,但大多數(shù)將落入圖2所示的結(jié)構(gòu)中。
圖1.太陽能逆變器系統(tǒng)。
圖2.電源轉(zhuǎn)換組件。
電源轉(zhuǎn)換系統(tǒng)/算法設(shè)計人員的主要目的是為模塊的控制處理器和轉(zhuǎn)換器硬件(如圖2所示)找到合適的組件和算法,并滿足所有源極和負載變化所需的性能。因此,在設(shè)計系統(tǒng)時,清楚地了解系統(tǒng)將要運行的環(huán)境非常重要。例如,在為系統(tǒng)設(shè)計太陽能逆變器時(如圖1所示),設(shè)計人員應該知道逆變器的預期安裝位置、太陽輻射強度的變化、太陽能電池板的效率、電網(wǎng)條件等。在模型驅(qū)動開發(fā)中,設(shè)計人員首先創(chuàng)建轉(zhuǎn)換器的模型,模擬預期的變化,并驗證模型是否按預期工作。大多數(shù)情況下,建模工具將提供用于對源和匯進行建模的模型和庫塊。例如,Simscape Power Systems?來自 Mathworks 有網(wǎng)格、光伏 (PV) 面板和各種負載的模型。這些可用于模擬和驗證系統(tǒng)的各種用例。
系統(tǒng)性能取決于系統(tǒng)的所有組件。在某些情況下,設(shè)計人員可以自由地從頭開始設(shè)計,并決定系統(tǒng)的所有組件,以滿足對源和負載的限制。在其他一些情況下,由于設(shè)計人員無法控制的原因,系統(tǒng)的一部分可能已經(jīng)修復,并且他們的自由度僅限于少數(shù)組件。在本文中,我們假設(shè)設(shè)計人員的主要目的是為現(xiàn)有拓撲選擇和實現(xiàn)正確的控制算法,但所解釋的大多數(shù)準則也可以應用于一般情況。
構(gòu)建模型
使用正確的接口以模塊化方式構(gòu)建模型非常重要。結(jié)構(gòu)良好的模型有助于快速分析和調(diào)整模型以適應各種用例。建模工具通常提供各種選項,以在適當?shù)某橄蠹墑e對組件進行分組并重用。例如,Simulink 具有創(chuàng)建子系統(tǒng)、庫模型或參考模型的規(guī)定??紤]圖2所示的電源轉(zhuǎn)換系統(tǒng)。圖 3 給出了 Simulink 模型的頂層視圖作為示例。在此圖中,電源轉(zhuǎn)換器和控制處理器封裝在標記為ADIInverter的子系統(tǒng)中。Simscape Power Systems 提供的太陽能電池板和電網(wǎng)模型用于對電源進行建模,并配置強度和溫度。圖中的ADIInverter子系統(tǒng)可以進一步分層劃分為控制處理器和控制算法模塊。
圖3.示例 Simulink 模型。
除控制處理器上運行的控制算法之外的所有塊都是硬件塊。因此,反映這些組件的所有約束的仿真精度是最重要的標準。
這些模塊的接口是模擬信號,最合適的選擇是連續(xù)模型。塊控制算法用于在微控制器上運行,應僅使用離散狀態(tài)和固定步長。最好將其保留為具有不同配置和求解器設(shè)置的單獨模型,并從頂級模型中引用該模型。這也將有助于算法的代碼生成和處理器在環(huán)(PIL) 測試,如下文所述。
求解器步長和數(shù)據(jù)類型
仿真的速度和精度主要取決于求解器的類型和步長。較小的步長將提供更準確的結(jié)果,但會使模擬運行速度變慢。我們希望以最大的精度模擬硬件組件。在大多數(shù)情況下,具有可變步長的連續(xù)求解器應該可以工作。但是,當開關(guān)頻率較高時,可能需要手動調(diào)整最大步長。例如,如果步長較大,開關(guān)頻率為100 kHz(如圖4a所示)下的PWM產(chǎn)生可能會失真(如圖4b所示)。檢查快速開關(guān)器件的輸出以確認步長是否足夠始終是一個好主意。由于控制算法在微控制器上運行,因此應使用具有固定步長的離散模型。使用的步長應該是系統(tǒng)中使用的采樣周期的最大公約數(shù)(GCD)。大多數(shù)情況下,建模軟件會自動選擇它。
(a). 具有正確步長的輸出。
(b). 大步長輸出。
圖4.100 kHz 的模擬 PWM 輸出。
使用的數(shù)據(jù)類型也決定了模擬的準確性。使用雙精度算術(shù)的模擬始終比使用單精度算法的模擬更準確。對于仿真硬件塊,建議使用建模軟件支持的最高數(shù)據(jù)類型。但是對于控制算法,我們希望獲得與在控制處理器上運行相同的算法的性能,而不是更準確。因此,我們應該使用控制處理器支持的數(shù)據(jù)類型。例如,如果控制處理器是ADI公司的ADSP-CM41x處理器,則適當?shù)臄?shù)據(jù)類型是單精度浮點數(shù),因為它帶有帶有浮點單元(FPU)的Cortex-M4處理器。如果控制處理器是定點處理器,例如 Cortex-M3,則應以定點數(shù)據(jù)類型設(shè)計和實現(xiàn)算法。建模軟件可能支持從浮點數(shù)據(jù)類型到定點的自動轉(zhuǎn)換,這將有助于加快開發(fā)速度。?
采樣周期和精度
傳感器在功率轉(zhuǎn)換信號鏈中各個點感測的電流和電壓信號通過控制處理器的模數(shù)轉(zhuǎn)換器(ADC)提供給算法。ADC的采樣速率主要取決于功率模塊的開關(guān)頻率以及應控制的速度。采樣頻率對控制算法的性能和動態(tài)有顯著影響。因此,仿真應通過為系統(tǒng)選擇合適的采樣率來完成。用于控制處理器的ADC僅接受預定義范圍內(nèi)的輸入。傳感器的輸出應歸一化,使檢測信號的范圍完全適合ADC的范圍,以獲得最佳性能。
ADC的分辨率和精度也因處理器而異,這對算法性能起著重要作用。高精度ADC有助于更好地控制輸出,并有助于簡化算法并降低指定控制標準的控制頻率。為了獲得準確的仿真,這些特征應反映在模型中。例如,ADI公司的ADSP-CM41x處理器配備有效位數(shù)(ENOB)以上的16位ADC。ADC模塊的建模應使其以所需的采樣頻率和精度將連續(xù)信號作為輸入和輸出離散信號。如果ADC模型支持選擇在某些當前采樣場景中很重要的采樣點,則可以進一步提高仿真精度。
代碼生成
通過開發(fā)模型和運行用例模擬來驗證算法的性能,可顯著降低風險并縮短上市時間。但是,當前的建模工具提供了在我們進入硬件原型之前執(zhí)行更多操作的功能。所有芯片供應商都提供評估平臺,用于在其處理器上開發(fā)算法。如果我們可以在評估硬件上運行并驗證算法性能,這將為算法的性能提供額外的信心,但嵌入式處理器的編譯器通常只接受C / C++代碼,并且在建模和驗證階段手動開發(fā)這些代碼通常非常耗時。所以在過去,這個階段被推到了發(fā)展的后期。幸運的是,大多數(shù)建模軟件現(xiàn)在都支持從模型自動生成代碼??梢詫⒖刂扑惴ǖ哪P团渲脼槭褂妙A定義的 API 生成代碼。仿真工具還提供 PIL 選項,用于直接從建模環(huán)境在目標上運行生成的代碼。在PIL仿真中,控制算法的輸入和輸出通過UART等接口與評估板交換。此選項可用于比較在目標上運行算法和在主機上運行算法的性能。
通常,建模和仿真軟件支持生成 C 代碼,面向更廣泛的處理器。硬件供應商將在處理器上具有差異化功能,以加快處理器設(shè)計的應用程序的執(zhí)行速度。例如,ADSP-CM41x處理器帶有數(shù)學單元加速器,可加快正弦、余弦和平方根等數(shù)學運算。利用這些功能以獲得最佳處理器性能非常重要。建模工具提供將部分代碼替換為自定義代碼或?qū)⒄麄€算法塊替換為其他代碼的功能。對于功率轉(zhuǎn)換算法,可以通過為常見算法模塊(如直接正交零點(DQZ)變換、鎖相環(huán)(PLL)等)提供手寫優(yōu)化例程來生成優(yōu)化代碼。代碼生成可以配置為使用這些手寫例程,而不是默認的泛型例程。芯片供應商可以提供模型庫,以加快算法在其處理器上的執(zhí)行速度??梢岳眠@些選項為控制處理器生成優(yōu)化的代碼。
除了控制算法代碼外,控制處理器還需要用于配置外設(shè)(如ADC、PWM等)的代碼,以及用于維護系統(tǒng)時序和其他功能的框架代碼。建模工具也可用于生成這些代碼。但是,框架代碼應該做的不僅僅是運行控制算法。為所有這些關(guān)聯(lián)任務開發(fā)模型并從中生成代碼可能不是一種有效的方法。在這種情況下,框架和外設(shè)配置代碼可以單獨開發(fā),并規(guī)定集成生成的控制算法代碼。
硬件在環(huán) (HIL) 仿真
電源模塊和系統(tǒng)的仿真通常在主機PC上運行。即使在PIL仿真中,也只有控制算法在目標控制處理器上運行。系統(tǒng)的所有其他部分都由主機上的建模軟件進行仿真。由于這種模擬需要如此多的資源和執(zhí)行時間,因此不可能在軟件中實時運行這些資源和時間。ADC和PWM的系統(tǒng)動態(tài)和性能未在此類測試中得到驗證。HIL 仿真 硬件 使用 現(xiàn)場 可 編 程 門 列 (FPGA) 來 仿真 轉(zhuǎn)換 器 組 件、 源 極和 吸收 器 , 從而 克服 了 這一 缺點。它有助于實時運行整個仿真,并查看ADC采樣和PWM控制的實際效果。HIL 硬件 通常 由 不同 的 供應 商 提供, 并提供 接口 控制 處理 器。應該注意的是,HIL平臺無法模擬電源模塊的詳細開關(guān)特性。應單獨分析這些影響,以在將其帶入最終產(chǎn)品時將風險降至最低。
結(jié)論
近年來,建模工具有了很大的改進。在本文中,我們討論了使模型輸出非常接近最終產(chǎn)品輸出的各種方法。但是,應該注意的是,有些特性(例如電磁兼容性(EMC))無法在仿真環(huán)境中進行驗證。識別這些特征并通過替代方法進行分析和驗證非常重要。
本文中介紹的步驟(HIL級除外)已成功用于設(shè)計和開發(fā)針對ADSP-CM41x處理器的控制算法,用于具有3電平ANPC拓撲的逆變器。
(作者:Bijesh Poyil and Martin Murnane)
免責聲明:本文為轉(zhuǎn)載文章,轉(zhuǎn)載此文目的在于傳遞更多信息,版權(quán)歸原作者所有。本文所用視頻、圖片、文字如涉及作品版權(quán)問題,請聯(lián)系小編進行處理。
推薦閱讀:
開關(guān)電源環(huán)路穩(wěn)定性分析(六)
“感知未來”——艾邁斯歐司朗參展2023 CES,以最新的先進光學技術(shù)幫助應對全球挑戰(zhàn)