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