999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于Simulink的翻譯模擬式虛擬DCS仿真功能實(shí)現(xiàn)方案

2020-03-27 17:02:16鄧志光
儀器儀表用戶 2020年4期
關(guān)鍵詞:指令功能

張 旭,鄧志光,彭 韜,彭 浩

(中國(guó)核動(dòng)力研究設(shè)計(jì)院 核反應(yīng)堆系統(tǒng)設(shè)計(jì)技術(shù)重點(diǎn)實(shí)驗(yàn)室,成都 610213)

0 引言

DCS的仿真主要包括3種技術(shù)路線,即純模擬(Simulation)、虛擬實(shí)物(Emulation)和實(shí)物模擬(Stimulation)。除了對(duì)實(shí)物DCS人機(jī)界面和使用的特性要求高的場(chǎng)合(培訓(xùn)操縱人員),采用純模擬的路線,將被仿真對(duì)象的算法邏輯翻譯到另一套仿真平臺(tái),能夠高效地實(shí)現(xiàn)仿真效果,且開發(fā)周期短、通用性強(qiáng)于虛擬實(shí)物路線。這種方法被稱為翻譯模擬(Translation)[1,2]。

基于Simulink的翻譯模擬式虛擬DCS,其周期運(yùn)算調(diào)度有兩種實(shí)現(xiàn)形式:一種形式是僅利用Simulink作為代碼生成器,將被翻譯平臺(tái)DCS組態(tài)翻譯到Simulink上,并利用Simulink生成代碼。經(jīng)過編譯生成*.dll、*.lib或其他格式的算法文件,再周期性調(diào)用該算法文件;另一種形式是虛擬DCS周期性向Simulink發(fā)送仿真運(yùn)算指令(sim()),實(shí)現(xiàn)運(yùn)算功能。兩種形式的虛擬DCS的仿真功能均可在每周期算法運(yùn)算之后進(jìn)行處理。本文詳細(xì)描述后一種形式的虛擬DCS。

圖1 基于Simulink的翻譯式虛擬DCS系統(tǒng)架構(gòu)Fig.1 Simulink-based translational virtual DCS system architecture

采用翻譯模擬方法的虛擬DCS應(yīng)按照國(guó)家能源標(biāo)準(zhǔn)NB/T 20015—2010[3]實(shí)現(xiàn)仿真功能,具體包括仿真狀態(tài)控制、變量值管理、工況相關(guān)功能3個(gè)方面。本文開發(fā)了一種基于Simulink平臺(tái)的翻譯模擬式虛擬DCS,實(shí)現(xiàn)了上述仿真功能。

1 系統(tǒng)設(shè)計(jì)與仿真功能實(shí)現(xiàn)

1.1 系統(tǒng)設(shè)計(jì)

基于Simulink的翻譯模擬式虛擬DCS主要由兩部分組成:一部分是組態(tài)翻譯軟件,另一部分是管理調(diào)度軟件。前者實(shí)現(xiàn)從源平臺(tái)DCS組態(tài)邏輯到Simulink組態(tài)邏輯的翻譯,后者實(shí)現(xiàn)虛擬DCS的周期運(yùn)算與仿真功能,包括每周期同步Level 0(工藝系統(tǒng)過程模型)發(fā)來的輸入數(shù)據(jù),進(jìn)行本周期的運(yùn)算,并執(zhí)行仿真功能。

圖1、圖2分別為基于Simulink的翻譯式虛擬DCS的系統(tǒng)架構(gòu)圖與軟件流程圖。

組態(tài)翻譯完成后,算法調(diào)度階段的各步流程如圖3所示。先進(jìn)行初始化階段,讀取點(diǎn)表、設(shè)置Simulink的配置信息與路徑。然后,啟動(dòng)用戶指令線程、計(jì)時(shí)線程與周期循環(huán)線程。用戶指令線程循環(huán)等待用戶輸入指令,通過設(shè)置指令標(biāo)志位與參數(shù)等形式將用戶指令傳遞給周期循環(huán)線程。周期循環(huán)線程每周期調(diào)用Simulink進(jìn)行本周期的運(yùn)算,同時(shí)按照指令標(biāo)志位和參數(shù)執(zhí)行仿真功能。計(jì)時(shí)線程對(duì)仿真時(shí)間計(jì)時(shí),與設(shè)置快慢速折算后的周期時(shí)間比較,發(fā)送下一周期開始的指令。

圖2 基于Simulink的翻譯模擬式虛擬DCS軟件流程圖Fig.2 Simulink-based translation analog virtual DCS software flowchart

圖3 算法調(diào)度階段流程圖Fig.3 Algorithm scheduling stage flowchart

部分算法邏輯與時(shí)間相關(guān),即本次運(yùn)算結(jié)果與上一次或幾次的計(jì)算結(jié)果相關(guān)(如RS觸發(fā)器、PID算法塊、回環(huán)反饋等)。按照Simulink平臺(tái)自身的機(jī)制,當(dāng)設(shè)置的仿真時(shí)間結(jié)束時(shí),會(huì)清空上述中間變量,因而不能簡(jiǎn)單地通過每周期調(diào)用一次Simulink模型進(jìn)行運(yùn)算達(dá)到預(yù)期效果。在初始化階段,通過設(shè)置Simulink配置參數(shù),實(shí)現(xiàn)系統(tǒng)仿真的連續(xù)性。

以C#語言為例,通過命令行的方式,設(shè)置Simulink模型的配置參數(shù)。設(shè)置初始狀態(tài)與結(jié)束狀態(tài)為同一向量,實(shí)現(xiàn)上一次仿真的輸出的狀態(tài)值能作為下一次仿真的起始狀態(tài),實(shí)現(xiàn)多次調(diào)度的連續(xù)仿真。設(shè)置狀態(tài)名為xFinal,命令行如下:

command = "set_param(modelName" + ",'InitialState'," +"'xFinal'" + ")";

command = "set_param(modelName" + ",'FinalStateName',"+ "'xFinal'" + ")";

修改計(jì)算方式為定步長(zhǎng),ode45算法,其命令行如下:

command = "set_param(modelName" + ",'Solver'," +"'ode45'" + ")";

圖4 系統(tǒng)狀態(tài)切換關(guān)系圖Fig.4 System state switching graph

圖5 基于Simulink的翻譯模擬式虛擬DCS數(shù)據(jù)流圖Fig.5 Simulink-based translation analog virtual DCS data flow diagram

1.2 仿真狀態(tài)控制

仿真狀態(tài)包括運(yùn)行、凍結(jié)、定時(shí)長(zhǎng)運(yùn)行,各系統(tǒng)狀態(tài)及切換關(guān)系如圖4所示。仿真狀態(tài)由管理調(diào)度軟件控制,程序啟動(dòng)時(shí),管理調(diào)度軟件未向Simulink發(fā)出運(yùn)算指令時(shí),Simulink處于凍結(jié)狀態(tài),可通過指令進(jìn)入運(yùn)行和定時(shí)長(zhǎng)運(yùn)行狀態(tài)。同時(shí),還可設(shè)置快慢速變速運(yùn)行。

可通過手動(dòng)控制在運(yùn)行和凍結(jié)兩種模式之間切換,同時(shí),可由凍結(jié)模式進(jìn)入定時(shí)長(zhǎng)運(yùn)行模式。當(dāng)管理調(diào)度軟件發(fā)出指定時(shí)長(zhǎng)的仿真運(yùn)算時(shí),進(jìn)入定時(shí)長(zhǎng)運(yùn)行模式,并在該時(shí)長(zhǎng)結(jié)束后自動(dòng)進(jìn)入凍結(jié)狀態(tài)。

變速運(yùn)行指加快仿真運(yùn)行速度或減慢仿真運(yùn)行速度。如前文所述,基于Simulink的翻譯式虛擬DCS有兩種形式,即僅使用Simulink作為代碼生成器或使用Simulink作為核心運(yùn)算單元。前者的算法提前編譯為算法文件,調(diào)用時(shí)間很短,幾乎可忽略不計(jì),其每周期末的延時(shí)時(shí)間約等于周期時(shí)間;后者需使用Simulink運(yùn)算,調(diào)用時(shí)間較慢,而且每周期的運(yùn)算時(shí)間不能做到十分精確,因而需單獨(dú)采用計(jì)時(shí)線程計(jì)時(shí)。在上一個(gè)周期結(jié)束后,周期循環(huán)線程將被鎖住,等待計(jì)時(shí)線程發(fā)出允許下一周期開始信號(hào)。在算法復(fù)雜度正常的情況下,Simulink的運(yùn)算時(shí)間一般小于1s,具體時(shí)長(zhǎng)應(yīng)考慮實(shí)際算法量測(cè)試而知??炻俟δ芡ㄟ^改變計(jì)時(shí)線程的周期計(jì)時(shí)時(shí)長(zhǎng)實(shí)現(xiàn)。折算后的實(shí)際周期時(shí)長(zhǎng)應(yīng)大于Simulink的實(shí)際運(yùn)算時(shí)間,否則會(huì)出現(xiàn)偏差。

1.3 變量值管理

管理調(diào)度軟件維護(hù)仿真系統(tǒng)對(duì)外的數(shù)據(jù)點(diǎn)表,外部系統(tǒng)對(duì)變量賦值和取值通過管理調(diào)度軟件實(shí)現(xiàn)。變量值分為原始值和超控值,原始值可被實(shí)時(shí)計(jì)算值沖刷代替,超控值不會(huì)被實(shí)時(shí)計(jì)算值覆蓋。變量值的數(shù)據(jù)結(jié)構(gòu)體包括原始值、超控標(biāo)志位、超控值。實(shí)時(shí)計(jì)算值改變?cè)贾担桓淖兂刂怠.?dāng)超控標(biāo)志位為True時(shí),認(rèn)為超控值為該變量的實(shí)際使用數(shù)值。

對(duì)于賦原始值,管理調(diào)度軟件為點(diǎn)表中的該變量結(jié)構(gòu)體中的原始值位置賦值,對(duì)于賦超控值,管理調(diào)度軟件將該結(jié)構(gòu)體的超控標(biāo)志位置為True,并為結(jié)構(gòu)體中的超控值賦值。取值時(shí),如果超控標(biāo)志位為True,則取超控值,反之取原始值。每個(gè)周期運(yùn)算開始時(shí),管理調(diào)度軟件按照上述規(guī)則向Simulink的輸入變量存儲(chǔ)區(qū)寫入輸入數(shù)據(jù)。

設(shè)置變量值是通過管理調(diào)度軟件對(duì)變量賦值的過程,為了能通過Simulink以外的軟件實(shí)現(xiàn)賦值功能,此類型的變量在Simulink中用常量Const算法塊實(shí)現(xiàn)。以C#語言為例,通過如下命令行實(shí)現(xiàn)設(shè)置變量值功能:

command = "set_param('Model_name/" + VariableName +"','Value','" + VariableValue + "')";

1.4 故障模擬

故障模擬實(shí)現(xiàn)模擬Level 1平臺(tái)某個(gè)板卡或某個(gè)信號(hào)通路故障,導(dǎo)致其對(duì)應(yīng)的輸入輸出信號(hào)質(zhì)量位為壞的情況。

故障模擬由管理調(diào)度軟件實(shí)現(xiàn),在管理調(diào)度軟件讀取設(shè)備組態(tài)文件與變量點(diǎn)表,獲取每個(gè)變量所在板卡和通道。故障模擬時(shí),改變?cè)撏ǖ涝诠芾碚{(diào)度軟件中的狀態(tài)記錄,同時(shí)向Simulink模型置該變量的質(zhì)量位為壞。對(duì)輸出變量而言,其質(zhì)量位會(huì)被實(shí)時(shí)計(jì)算值沖刷掉,向Simulink模型置變量質(zhì)量位信息并沒有實(shí)際意義。第三方軟件可通過管理調(diào)度軟件得到該故障信息。板卡故障可理解為批量設(shè)置的通道故障,即某張板卡的故障等效于該板卡上所有通道的變量的故障。

1.5 工況相關(guān)功能

根據(jù)參考文獻(xiàn)[3]的定義,工況指某時(shí)刻的數(shù)據(jù)狀態(tài),又稱初始條件(Initial Condition),表示可從該狀態(tài)開始新一次的實(shí)時(shí)模擬,由用戶手動(dòng)保存;回溯條件(Backtrack Condition)表示可重新設(shè)置模擬機(jī)回到的當(dāng)前過程前的某一狀態(tài),由系統(tǒng)自動(dòng)保存。工況文件除非用戶主動(dòng)刪除,否則永久保存;回溯條件文件在每次仿真關(guān)閉系統(tǒng)后失效。

圖5為基于Simulink的翻譯模擬式虛擬DCS的數(shù)據(jù)流圖。

虛擬DCS以Simulink為計(jì)算內(nèi)核,每個(gè)周期計(jì)算前,Simulink獲取外部程序輸入值以及Matlab的workspace的輸出變量、時(shí)間信息、時(shí)間相關(guān)變量等存儲(chǔ)區(qū)的信息,然后調(diào)用Simulink計(jì)算內(nèi)核執(zhí)行1個(gè)周期的仿真計(jì)算。如有保存或裝入工況指令,則將workspace的信息寫入或從物理文件讀取。周而復(fù)始實(shí)現(xiàn)周期的計(jì)算以及仿真功能。

圖6 Simulink平臺(tái)控制算法圖Fig.6 Simulink platform control algorithm diagram

保存與裝入工況功能是指系統(tǒng)當(dāng)前的狀態(tài)能夠保存在物理文件中,不因軟件停止或關(guān)機(jī)而丟失,并且能夠按照指令重新裝入系統(tǒng)。正常運(yùn)行中,Simulink計(jì)算內(nèi)核每周期更新MATLAB的workspace,并在下一周期以此為初始狀態(tài)。收到保存工況指令后,管理調(diào)度軟件令MATLAB將此時(shí)的workspace保存為*.mat格式的物理文件永久保存。裝入工況是將*.mat的系統(tǒng)狀態(tài)文件裝回workspace,并在下一周期被系統(tǒng)作為初始狀態(tài)使用,實(shí)現(xiàn)回到保存時(shí)的狀態(tài)。

在與Level 0對(duì)接成全范圍模擬機(jī)(FSS)時(shí),部分寫入Simulink輸入變量存儲(chǔ)區(qū)的數(shù)值取自Level 0,并由Level 0在每周期末讀取Simulink寫入物理文件的輸出變量值。周期計(jì)算指令(定時(shí)長(zhǎng)運(yùn)行)由Level 0提供,Level 0每周期向虛擬DCS發(fā)送1次Level 0周期時(shí)長(zhǎng)的定時(shí)長(zhǎng)指令運(yùn)行[4]。當(dāng)Level 0與翻譯模擬機(jī)構(gòu)成的Level 1周期不一致時(shí),周期短的一方將多進(jìn)行1次或多次的重復(fù)計(jì)算,但這并不影響最終的仿真結(jié)果。

2 實(shí)例分析

以簡(jiǎn)化的百萬千瓦級(jí)壓水堆核電廠蒸汽發(fā)生器水位調(diào)節(jié)系統(tǒng)為例,驗(yàn)證系統(tǒng)仿真效果??紤]到在FSS中虛擬DCS與過程模型對(duì)接的情況,蒸汽發(fā)生器水位調(diào)節(jié)系統(tǒng)拆分為L(zhǎng)evel 0 與Level 1兩部分,其中Level 1部分采用PI控制器,由源DCS平臺(tái)組態(tài)翻譯到Simulink平臺(tái)后如圖6所示,具體的翻譯過程不在本文中贅述。

與Level 0過程模型對(duì)接后形成小型FSS系統(tǒng),通過兩側(cè)的輸入輸出數(shù)據(jù)交互,形成控制回路。在水位調(diào)節(jié)過程中,進(jìn)行仿真功能的操作,包括修改變量值、凍結(jié)、保存與裝入工況、設(shè)置快慢速等。

圖7 仿真實(shí)驗(yàn)結(jié)果Fig.7 Simulation results

如前文所述,僅使用Simulink作為代碼生成器的翻譯模擬式虛擬DCS可在代碼生成后獨(dú)立于Simulink使用,而本文采用的以Simulink作為核心運(yùn)算單元的技術(shù)路線需要啟動(dòng)Simulink軟件,并實(shí)時(shí)向其發(fā)送指令。實(shí)驗(yàn)過程中,可觀察到Simulink按周期接收指令被調(diào)用運(yùn)算。

實(shí)驗(yàn)結(jié)果如圖7所示。

由實(shí)驗(yàn)結(jié)果可知:仿真結(jié)果符合預(yù)期,各種仿真功能得到驗(yàn)證。說明基于Simulink作為運(yùn)算內(nèi)核的翻譯模擬式虛擬DCS能夠正確地實(shí)現(xiàn)仿真功能,且具備在FSS中與過程模型對(duì)接的能力。

3 結(jié)論

基于Simulink平臺(tái)的翻譯模擬式虛擬DCS借助通用的高可靠性的Simulink仿真平臺(tái)作為運(yùn)算內(nèi)核,減少了開發(fā)內(nèi)容,降低了開發(fā)成本,提高了通用性和結(jié)果認(rèn)可度。通過對(duì)Simulink運(yùn)算數(shù)據(jù)區(qū)的管理和對(duì)Simulink平臺(tái)的仿真調(diào)度,實(shí)現(xiàn)了仿真功能。

猜你喜歡
指令功能
聽我指令:大催眠術(shù)
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
ARINC661顯控指令快速驗(yàn)證方法
LED照明產(chǎn)品歐盟ErP指令要求解讀
關(guān)于非首都功能疏解的幾點(diǎn)思考
懷孕了,凝血功能怎么變?
媽媽寶寶(2017年2期)2017-02-21 01:21:24
“簡(jiǎn)直”和“幾乎”的表達(dá)功能
殺毒軟件中指令虛擬機(jī)的脆弱性分析
一種基于滑窗的余度指令判別算法
中西醫(yī)結(jié)合治療甲狀腺功能亢進(jìn)癥31例
主站蜘蛛池模板: 国产一区二区精品高清在线观看| 久久精品国产在热久久2019| 性做久久久久久久免费看| 日韩最新中文字幕| aaa国产一级毛片| 老司机午夜精品视频你懂的| 久久午夜夜伦鲁鲁片无码免费| 国产精品成人一区二区| 久久综合亚洲色一区二区三区| 色屁屁一区二区三区视频国产| 在线观看免费国产| 成人福利在线视频| 久久无码av三级| 97视频精品全国在线观看| 青青草a国产免费观看| 久久免费精品琪琪| 四虎成人在线视频| 欧美亚洲日韩中文| 国产精品视频久| 久久久久免费看成人影片| 国产精品午夜福利麻豆| 台湾AV国片精品女同性| 中文字幕在线观看日本| 国产99精品久久| 二级毛片免费观看全程| 亚洲av无码牛牛影视在线二区| 国产综合亚洲欧洲区精品无码| 国产精品亚洲专区一区| 91黄视频在线观看| 国产91精品最新在线播放| 找国产毛片看| 日本欧美中文字幕精品亚洲| 99精品久久精品| 欧美一区日韩一区中文字幕页| 成人一级免费视频| 青青青国产视频| 天天操天天噜| 成人国内精品久久久久影院| 天天操天天噜| 澳门av无码| 国产精女同一区二区三区久| 538国产在线| 美女无遮挡免费视频网站| 久久不卡精品| www.狠狠| 国产特级毛片aaaaaa| 特级欧美视频aaaaaa| 国产99精品视频| 亚洲精品视频免费| 亚洲视频二| 国产丝袜一区二区三区视频免下载| 国产精品久久久久久久久久98| 99一级毛片| 亚洲美女高潮久久久久久久| 伊人蕉久影院| 老色鬼久久亚洲AV综合| 亚洲人成网址| 国产91无毒不卡在线观看| 小13箩利洗澡无码视频免费网站| 中文字幕免费播放| a毛片在线播放| 中文成人无码国产亚洲| 在线无码九区| 亚洲人成人无码www| 77777亚洲午夜久久多人| 日本91在线| 亚洲综合色吧| 香蕉视频国产精品人| 久久国产精品娇妻素人| 97精品久久久大香线焦| 日韩色图区| 亚洲激情99| 在线日韩日本国产亚洲| 高清无码手机在线观看| 色欲色欲久久综合网| 亚洲国产成人在线| 日韩在线第三页| 在线免费观看a视频| 国产91蝌蚪窝| 欧美亚洲国产精品久久蜜芽| 久久久波多野结衣av一区二区| 国产人妖视频一区在线观看|