Vestas Wind Systems A/S 在 80 個(gè)國(guó)家/地區(qū)安裝了 6.6 萬(wàn)臺(tái)以上的渦輪(總裝機(jī)容量超過(guò) 100 GW),是風(fēng)電裝機(jī)量最多的公司。Vestas 的工程師使用基于模型的設(shè)計(jì)和持續(xù)集成 (CI) 來(lái)開(kāi)發(fā)電廠控制軟件,并向 Vestas 客戶和電網(wǎng)運(yùn)營(yíng)商證明符合電網(wǎng)規(guī)范。 Vestas Wind Systems A/S 的控制系統(tǒng)軟件架構(gòu)師 Per Hagen Nielsen 說(shuō)道:“電網(wǎng)運(yùn)營(yíng)商希望了解電廠運(yùn)作情況的仿真,以及控制代碼是否與仿真一一匹配?!蹦壳埃軌蛘故具@一點(diǎn)的公司鳳毛麟角,而 Vestas 就是其中之一。這是因?yàn)槲覀兪褂昧嘶谀P偷脑O(shè)計(jì),通過(guò) MATLAB 和 Simulink 對(duì)電廠控制系統(tǒng)進(jìn)行建模和仿真,然后使用這些相同的模型生成 C++ 代碼,用于系統(tǒng)級(jí)仿真和生產(chǎn)?!?/p>
“借助 Simulink 和 Embedded Coder,我們可以向客戶和電網(wǎng)運(yùn)營(yíng)商展示仿真,其中包含將在我們的電廠控制器中運(yùn)行的實(shí)際代碼。這正是電網(wǎng)運(yùn)營(yíng)商所需要的,它讓 Vestas 比仍在使用傳統(tǒng)方法的競(jìng)爭(zhēng)對(duì)手更有優(yōu)勢(shì)。” —— Per Hagen Nielsen,Vestas
▼挑戰(zhàn)在采用基于模型的設(shè)計(jì)進(jìn)行電廠控制設(shè)計(jì)之前,Vestas 的工程師采用了一種傳統(tǒng)方法,即將電力工程師撰寫(xiě)的紙質(zhì)規(guī)范和設(shè)計(jì)文檔交給軟件工程師,再由軟件工程師手動(dòng)編寫(xiě)各個(gè)組件或功能的代碼。電力工程師可以使用 PSCAD 軟件運(yùn)行仿真,但這些仿真?zhèn)戎赜陔娏Χ皇擒浖刂?。也就是說(shuō),仿真并不包含控制代碼。這意味著,一旦集成和部署了軟件,就很難保證 PSCAD 仿真能反映系統(tǒng)性能。Vestas 希望消除手動(dòng)編碼帶來(lái)的潛在人為錯(cuò)誤,同時(shí)確保其電力系統(tǒng)仿真與控制軟件保持一致。 此外,Vestas 希望能夠讓分布在歐亞五個(gè)國(guó)家/地區(qū)的工程團(tuán)隊(duì)就相同的工程(在某些情況下是相同的模型)展開(kāi)協(xié)作。這支散布各地的團(tuán)隊(duì)需要對(duì)模型應(yīng)用版本控制,管理頻繁進(jìn)行的合并,并自動(dòng)執(zhí)行基于仿真的測(cè)試。為了滿足這些需求,Vestas 決定將 CI 與 Jenkins 結(jié)合使用,并將 CI 原則融入基于建模、仿真和代碼生成的工程工作流中。
Vestas 渦輪和發(fā)電廠控制。▼解決方案在獲得高級(jí)管理層的支持后,Vestas 電力系統(tǒng)工程師為電廠控制設(shè)計(jì)制定了新的工作流,將 CI 和基于模型的設(shè)計(jì)與 MATLAB 和 Simulink 相結(jié)合。 當(dāng)電網(wǎng)規(guī)范變更提議出臺(tái)或客戶要求提供新的功能或組件時(shí),Vestas 的工程師會(huì)創(chuàng)建一組形式化需求。根據(jù)這些需求,一個(gè)小組使用 Simulink 和 Simulink Test 開(kāi)發(fā)測(cè)試用例以用于驗(yàn)證新功能,而另一個(gè)小組使用 Simulink 和 Stateflow 設(shè)計(jì)新功能。 為了創(chuàng)建用于閉環(huán)仿真的系統(tǒng)模型,第二個(gè)小組的工程師將控制模型與 Simulink 模型相結(jié)合。該 Simulink 模型用于捕獲電網(wǎng)在接入電廠處的阻抗和動(dòng)態(tài)特性。使用 Simulink S-Function,他們集成了風(fēng)力發(fā)電機(jī)模型。該模型是用專(zhuān)有工具開(kāi)發(fā)的,由 Vestas 的另一個(gè)小組打包為 DLL。 在使用此系統(tǒng)模型運(yùn)行閉環(huán)仿真,并運(yùn)行檢查以確保其符合基于 MathWorks 汽車(chē)咨詢委員會(huì) (MAAB) 規(guī)范的建模標(biāo)準(zhǔn)后,工程師會(huì)將控制模型簽入一個(gè) Git 倉(cāng)庫(kù)中。模型簽入會(huì)觸發(fā)一個(gè) Jenkins 作業(yè),運(yùn)行之前使用 Simulink Test 開(kāi)發(fā)的測(cè)試用例,以及電力工程師創(chuàng)建的其他基于仿真的測(cè)試和另一輪建模規(guī)范合規(guī)性檢查。 如果控制模型通過(guò)了所有測(cè)試和檢查,Jenkins 將調(diào)用 Embedded Coder [1]從該模型中生成 C++ 代碼。生成的 C++ 代碼會(huì)被編譯為一個(gè) DLL 文件,而該文件會(huì)在 PSCAD 中用于運(yùn)行整個(gè)電廠及其控制軟件的仿真。 Vestas 使用這些仿真向輸電系統(tǒng)運(yùn)營(yíng)商展示在正常情況下以及存在電壓降、振蕩和其他擾動(dòng)的情況下電廠在接入電網(wǎng)時(shí)的運(yùn)作情況。最后,在目標(biāo)工業(yè)控制系統(tǒng)上對(duì)生成的代碼進(jìn)行測(cè)試,然后再將其部署到生產(chǎn)中。▼結(jié)果
生成無(wú)問(wèn)題的可靠代碼。
“如果我們控制系統(tǒng)的性能未達(dá)到應(yīng)有的標(biāo)準(zhǔn),我們將面臨處罰,”Nielsen 說(shuō)道?!敖柚?Simulink 和 Embedded Coder,我們很快了解到,我們生成的代碼值得信賴。事實(shí)上,我們迄今尚未發(fā)現(xiàn)任何問(wèn)題?!?/p>
自動(dòng)執(zhí)行多站點(diǎn) CI 工作流。
“我們?cè)谌蛴袛?shù)十名工程師在同一個(gè)模型上并行工作,需要進(jìn)行大量代碼合并,”Nielsen 說(shuō)?!笆褂没谀P偷脑O(shè)計(jì)和持續(xù)集成 (CI),我們縮短了迭代和自動(dòng)化測(cè)試過(guò)程的時(shí)間?!?/p>
避免受制于硬件。
“過(guò)去,我們通過(guò)為 PLC 平臺(tái)編寫(xiě)自定義結(jié)構(gòu)化文本來(lái)開(kāi)發(fā)控制器,這意味著我們被該平臺(tái)牢牢掣肘,”Nielsen 說(shuō)道?!叭缃?,我們可從 Simulink 模型中生成可移植的 C++ 代碼,這讓我們能夠靈活地使用替代的工業(yè)控制平臺(tái)?!?br />
審核編輯 :李倩
-
模型
+關(guān)注
關(guān)注
1文章
3329瀏覽量
49246 -
控制軟件
+關(guān)注
關(guān)注
2文章
35瀏覽量
12875 -
風(fēng)力發(fā)電場(chǎng)
+關(guān)注
關(guān)注
0文章
12瀏覽量
6482
原文標(biāo)題:Vestas 使用基于模型的設(shè)計(jì)和持續(xù)集成開(kāi)發(fā)風(fēng)力發(fā)電廠控制軟件
文章出處:【微信號(hào):MATLAB,微信公眾號(hào):MATLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論