一種基于rscad仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法
【專利摘要】本發(fā)明通過(guò)一種基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,包括下述步驟:(1)建立與RSCAD仿真系統(tǒng)中基礎(chǔ)功能塊對(duì)應(yīng)的圖形功能庫(kù);(2)建立與RSCAD仿真系統(tǒng)中自定義功能塊對(duì)應(yīng)的自定義功能塊;(3)配置定義轉(zhuǎn)換關(guān)系,轉(zhuǎn)換讀取到的RSCAD建模文件,并生成算法文件源代碼。本方法成功實(shí)現(xiàn)基于RSCAD仿真系統(tǒng)的建模文件的轉(zhuǎn)換,并能自動(dòng)生成算法文件源代碼,研發(fā)人員不再需要手工編寫數(shù)千行代碼,從而提高了生產(chǎn)效率、改善了設(shè)計(jì)質(zhì)量并且為創(chuàng)新提供了便利。
【專利說(shuō)明】—種基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種轉(zhuǎn)換方法,具體涉及一種基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法。
【背景技術(shù)】
[0002]實(shí)時(shí)數(shù)字仿真器RTDS(Real Time Digital Simulator)是由加拿大曼巴托尼直流研究中心推出的電力系統(tǒng)實(shí)時(shí)數(shù)字仿真系統(tǒng)。該系統(tǒng)以電力系統(tǒng)電磁暫態(tài)計(jì)算理論為基礎(chǔ),采用多處理器的并行計(jì)算方法,通過(guò)適當(dāng)?shù)娜蝿?wù)分配方式和通信技術(shù),實(shí)現(xiàn)電力系統(tǒng)的實(shí)時(shí)數(shù)字仿真。目前RTDS裝置已經(jīng)在全球范圍的電力系統(tǒng)相關(guān)部門、企業(yè)以及高等院校得到了應(yīng)用,主要包括教學(xué)與培訓(xùn)、電力系統(tǒng)分析研究、測(cè)試控制設(shè)備、測(cè)試保護(hù)設(shè)備四個(gè)方面。
[0003]RTDS的軟件RSCAD是基于目前已得到國(guó)際上普遍承認(rèn)的電磁暫態(tài)仿真程序EMTDC,其算法采用H.ff.Dommel于1969年創(chuàng)建的經(jīng)典電磁暫態(tài)計(jì)算理論。RTDS的元件庫(kù)中提供了豐富的電力系統(tǒng)元件模型,通過(guò)RSCAD圖形化的編程接口,用戶可以非常方便地建立仿真系統(tǒng)數(shù)學(xué)模型,但是建立的模型文件的算法邏輯卻不可以直接下載到目標(biāo)裝置中,不能做到可見(jiàn)即可得的效果。若要獲得算法模型,需工程師使用開(kāi)發(fā)工具開(kāi)發(fā)出相應(yīng)的算法功能模型,這將耗費(fèi)大量的人力物力,且收效不佳。
[0004]由RSCAD仿真系統(tǒng)建立的算法模型,不能直接轉(zhuǎn)換成源代碼文件,因此需要一種有效的文件轉(zhuǎn)換方法。通過(guò)文件轉(zhuǎn)換,實(shí)現(xiàn)源代碼生成,并編譯下載到目標(biāo)裝置。因此發(fā)明一種實(shí)用方法是非常有必要的。
【發(fā)明內(nèi)容】
[0005]為了克服上述現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其中圖形功能塊一一對(duì)應(yīng)轉(zhuǎn)換,數(shù)據(jù)關(guān)聯(lián)一一對(duì)應(yīng)轉(zhuǎn)換,實(shí)現(xiàn)全語(yǔ)義轉(zhuǎn)換。支持自動(dòng)生成源代碼,使仿真工作者得以從代碼編寫工作中解脫出來(lái),同時(shí)又可調(diào)試,以便根據(jù)實(shí)驗(yàn)中的問(wèn)題及時(shí)找出原因,修改算法模型。源代碼編譯后可下載到目標(biāo)裝置運(yùn)行。
[0006]為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明采取如下技術(shù)方案:
[0007]本發(fā)明提供一種基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,所述方法包括以下步驟:
[0008]步驟1:建立與RSCAD仿真系統(tǒng)中基礎(chǔ)功能塊對(duì)應(yīng)的圖形功能庫(kù);
[0009]步驟2:建立與RSCAD仿真系統(tǒng)自定義功能塊對(duì)應(yīng)的自定義功能庫(kù);
[0010]步驟3:將建立的圖形功能庫(kù)與自定義功能庫(kù)進(jìn)行統(tǒng)一分類;
[0011]步驟4:將圖形功能塊轉(zhuǎn)換為源代碼。
[0012]所述步驟I中,與RSCAD仿真系統(tǒng)中基礎(chǔ)功能塊對(duì)應(yīng)的圖形功能庫(kù)中的圖形功能塊包括加法器、減法器、乘法器、除法器和三角函數(shù)。
[0013]所述步驟2中,自定義功能庫(kù)的參數(shù)信息包括函數(shù)名、輸入?yún)?shù)類型、輸入?yún)?shù)變量名、輸出參數(shù)類型、輸出參數(shù)變量名、存儲(chǔ)參數(shù)類型和存儲(chǔ)參數(shù)變量名。
[0014]所述步驟3中,將圖形功能庫(kù)與自定義功能庫(kù)統(tǒng)一分為基本運(yùn)算類別、三角函數(shù)類別、反三角函數(shù)類別和算術(shù)功能類別。
[0015]所述步驟4中,按照先行后列方式的讀取規(guī)則,讀取每個(gè)圖形功能塊,并把圖形功能塊翻譯成C語(yǔ)言形式,最終生成后綴為.C的源代碼。
[0016]圖形功能塊中基本運(yùn)算類別對(duì)應(yīng)的源代碼如下:
[0017](I)加法器對(duì)應(yīng)的源代碼為out = in_l+in_2+in_3 ;;
[0018](2)減法器對(duì)應(yīng)的源代碼為out = in_l-1n_2-1n_3 ;
[0019](3)乘法器對(duì)應(yīng)的源代碼為out = in_l*in_2 ;
[0020](4)除法器對(duì)應(yīng)的源代碼為out = in_l/in_2。
[0021]圖形功能塊中三角函數(shù)類別對(duì)應(yīng)的源代碼如下:
[0022](I)正弦函數(shù)對(duì)應(yīng)的源代碼為out = sin (in);
[0023](2)余弦函數(shù)對(duì)應(yīng)的源代碼為out = cos (in);
[0024](3)正切函數(shù)對(duì)應(yīng)的源代碼為out = tan (in)。
[0025]圖形功能塊中反三角函數(shù)類別對(duì)應(yīng)的源代碼如下:
[0026](I)使用弧度將反正弦函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的源代碼,該源代碼為out = asin(in);
[0027](2)使用弧度將反余弦函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的源代碼,該源代碼為out = acos (in);
[0028](3)使用弧度將反正切函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的源代碼,該源代碼為out = atan(in)。
[0029]圖形功能塊中反算術(shù)功能類別對(duì)應(yīng)的源代碼如下:
[0030](I)絕對(duì)值模塊對(duì)應(yīng)的源代碼為out = fabs(in);
[0031](2)求倒模塊對(duì)應(yīng)的源代碼為out = 1.0/in ;
[0032](3)平方模塊對(duì)應(yīng)的源代碼為out = in*in ;
[0033](4)開(kāi)方模塊對(duì)應(yīng)的源代碼為out = sqrt(in);
[0034](5)自然數(shù)的冪次方對(duì)應(yīng)的源代碼為out = exp (in);
[0035](6)自然數(shù)為底的對(duì)數(shù)模塊對(duì)應(yīng)的源代碼為out = log(in)。
[0036]與現(xiàn)有技術(shù)相比,本發(fā)明的有益效果在于:
[0037]1.可靈活加入基本功能塊;
[0038]2.自定義功能塊,功能豐富,操作方便;
[0039]3.基本功能塊及自定義功能塊可以根據(jù)用戶需求靈活組合;
[0040]4.功能塊可嵌套復(fù)制,減輕工作量;
[0041]5.類別定義完善,支持個(gè)性化類別管理;
[0042]6.支持自動(dòng)生成源代碼,方便調(diào)試查錯(cuò)。
【專利附圖】
【附圖說(shuō)明】
[0043]圖1是本發(fā)明實(shí)施例中建立的圖形功能庫(kù)中圖形功能塊示意圖;
[0044]圖2是本發(fā)明實(shí)施例中建立的自定義功能庫(kù)中自定義功能塊示意圖;
[0045]圖3是本發(fā)明實(shí)施例中自定義功能塊結(jié)構(gòu)示意圖;
[0046]圖4是本發(fā)明實(shí)施例中自定義功能塊用戶自定義功能塊PI示意圖;
[0047]圖5是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將加法器轉(zhuǎn)換為源代碼模型示意圖;
[0048]圖6是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將減法器轉(zhuǎn)換為源代碼模型示意圖;
[0049]圖7是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將乘法器轉(zhuǎn)換為源代碼模型示意圖;
[0050]圖8是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將除法器轉(zhuǎn)換為源代碼模型示意圖;
[0051]圖9是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將正弦函數(shù)轉(zhuǎn)換為源代碼模型示意圖;
[0052]圖10是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將余弦函數(shù)轉(zhuǎn)換為源代碼模型示意圖;
[0053]圖11是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將正切函數(shù)轉(zhuǎn)換為源代碼模型示意圖;
[0054]圖12是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將反正弦函數(shù)轉(zhuǎn)換為源代碼模型示意圖;
[0055]圖13是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將反余弦函數(shù)轉(zhuǎn)換為源代碼模型示意圖;
[0056]圖14是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將反正切函數(shù)轉(zhuǎn)換為源代碼模型示意圖;
[0057]圖15是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將絕對(duì)值模塊轉(zhuǎn)換為源代碼模型示意圖;
[0058]圖16是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將求倒模塊轉(zhuǎn)換為源代碼模型示意圖;
[0059]圖17是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將平方模塊轉(zhuǎn)換為源代碼模型示意圖;
[0060]圖18是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將開(kāi)方模塊轉(zhuǎn)換為源代碼模型示意圖;
[0061]圖19是本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將自然數(shù)的冪次方轉(zhuǎn)換為源代碼模型不意圖;
[0062]圖20本發(fā)明實(shí)施例中通過(guò)PSCAD仿真系統(tǒng)將自然數(shù)為底的對(duì)數(shù)模塊轉(zhuǎn)換為源代碼模型示意。
【具體實(shí)施方式】
[0063]下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步詳細(xì)說(shuō)明。
[0064]本發(fā)明提供一種基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,所述方法包括以下步驟:
[0065]步驟1:建立與RSCAD仿真系統(tǒng)中基礎(chǔ)功能塊對(duì)應(yīng)的圖形功能庫(kù);
[0066]步驟2:建立與RSCAD仿真系統(tǒng)自定義功能塊對(duì)應(yīng)的自定義功能庫(kù);
[0067]步驟3:將建立的圖形功能庫(kù)與自定義功能庫(kù)進(jìn)行統(tǒng)一分類;
[0068]步驟4:將圖形功能塊轉(zhuǎn)換為源代碼。
[0069]所述步驟I中,(如圖1)與RSCAD仿真系統(tǒng)中基礎(chǔ)功能塊對(duì)應(yīng)的圖形功能庫(kù)中的圖形功能塊包括加法器、減法器、乘法器、除法器和三角函數(shù)。
[0070]所述步驟2中,(如圖2)自定義功能庫(kù)的參數(shù)信息包括函數(shù)名、輸入?yún)?shù)類型、輸入?yún)?shù)變量名、輸出參數(shù)類型、輸出參數(shù)變量名、存儲(chǔ)參數(shù)類型和存儲(chǔ)參數(shù)變量名。
[0071]1.如圖3,以建立自定義功能塊PI為例,建立圖解自定義功能塊的參數(shù)配置;
[0072]2.生成子函數(shù)框架
[0073]新建功能塊信息完善并確認(rèn)后。系統(tǒng)自動(dòng)生成子函數(shù)框架。
[0074]
void ZU_PI(Iloat a,Uinll6 I rcscl,Iloal K_P,lloat Κ_Ι,Iloat I_limit,Iloal PIJimilJloat*ZU_a_i_P I l, Il oal i|!a_pi)
{
/*再此添加程序代碼*/ rclurn ;
}
[0075]3.添加代碼
[0076]用戶在第2步生成的子函數(shù)框架里添加自己的程序代碼。
[0077]
【權(quán)利要求】
1.一種基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:所述方法包括以下步驟: 步驟1:建立與RSCAD仿真系統(tǒng)中基礎(chǔ)功能塊對(duì)應(yīng)的圖形功能庫(kù); 步驟2:建立與RSCAD仿真系統(tǒng)自定義功能塊對(duì)應(yīng)的自定義功能庫(kù); 步驟3:將建立的圖形功能庫(kù)與自定義功能庫(kù)進(jìn)行統(tǒng)一分類; 步驟4:將圖形功能塊轉(zhuǎn)換為源代碼。
2.根據(jù)權(quán)利要求所述的基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:所述步驟I中,與RSCAD仿真系統(tǒng)中基礎(chǔ)功能塊對(duì)應(yīng)的圖形功能庫(kù)中的圖形功能塊包括加法器、減法器、乘法器、除法器和三角函數(shù)。
3.根據(jù)權(quán)利要求1所述的基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:所述步驟2中,自定義功能庫(kù)的參數(shù)信息包括函數(shù)名、輸入?yún)?shù)類型、輸入?yún)?shù)變量名、輸出參數(shù)類型、輸出參數(shù)變量名、存儲(chǔ)參數(shù)類型和存儲(chǔ)參數(shù)變量名。
4.根據(jù)權(quán)利要求1所述的基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:所述步驟3中,將圖形功能庫(kù)與自定義功能庫(kù)統(tǒng)一分為基本運(yùn)算類別、三角函數(shù)類別、反三角函數(shù)類別和算術(shù)功能類別。
5.根據(jù)權(quán)利要求1所述的基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:所述步驟4中,按照先行后列方式的讀取規(guī)則,讀取每個(gè)圖形功能塊,并把圖形功能塊翻譯成C語(yǔ)言形式,最終生成后綴為.C的源代碼。
6.根據(jù)權(quán)利要求5所述的基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:圖形功能塊中基本運(yùn)算類別對(duì)應(yīng)的源代碼如下: (1)加法器對(duì)應(yīng)的源代碼為out= in_l+in_2+in_3 ;; (2)減法器對(duì)應(yīng)的源代碼為out= in_l-1n_2-1n_3 ; (3)乘法器對(duì)應(yīng)的源代碼為out= in_l*in_2 ; (4)除法器對(duì)應(yīng)的源代碼為out= in_l/in_2。
7.根據(jù)權(quán)利要求5所述的基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:圖形功能塊中三角函數(shù)類別對(duì)應(yīng)的源代碼如下: (1)正弦函數(shù)對(duì)應(yīng)的源代碼為out= sin (in); (2)余弦函數(shù)對(duì)應(yīng)的源代碼為out= cos (in); (3)正切函數(shù)對(duì)應(yīng)的源代碼為out= tan (in)。
8.根據(jù)權(quán)利要求5所述的基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:圖形功能塊中反三角函數(shù)類別對(duì)應(yīng)的源代碼如下: (1)使用弧度將反正弦函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的源代碼,該源代碼為out= asin(in); (2)使用弧度將反余弦函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的源代碼,該源代碼為out= acos(in); (3)使用弧度將反正切函數(shù)轉(zhuǎn)換為對(duì)應(yīng)的源代碼,該源代碼為out= atan(in)。
9.根據(jù)權(quán)利要求5所述的基于RSCAD仿真系統(tǒng)將其算法模型轉(zhuǎn)換為源代碼的方法,其特征在于:圖形功能塊中反算術(shù)功能類別對(duì)應(yīng)的源代碼如下: (1)絕對(duì)值模塊對(duì)應(yīng)的源代碼為out= fabs(in); (2)求倒模塊對(duì)應(yīng)的源代碼為out= 1.0/in ; (3)平方模塊對(duì)應(yīng)的源代碼為out= in*in ;(4)開(kāi)方模塊對(duì)應(yīng)的源代碼為out= sqrt(in);(5)自然數(shù)的冪次方對(duì)應(yīng)的源代碼為out= exp (in);(6)自然數(shù)為底的對(duì)數(shù)模塊對(duì)應(yīng)的源代碼為out= log (in)。
【文檔編號(hào)】G06F17/50GK104200023SQ201410437533
【公開(kāi)日】2014年12月10日 申請(qǐng)日期:2014年8月29日 優(yōu)先權(quán)日:2014年8月29日
【發(fā)明者】戴鳳嬌, 聶學(xué)斌, 蔡林海, 徐博, 蔣曉春 申請(qǐng)人:國(guó)家電網(wǎng)公司, 國(guó)網(wǎng)智能電網(wǎng)研究院