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