一种基于pscad仿真系统将其算法模型转换为源代码的方法

文档序号:6625405阅读:539来源:国知局
一种基于pscad仿真系统将其算法模型转换为源代码的方法
【专利摘要】本发明提供一种基于PSCAD仿真系统将其算法模型转换为源代码的方法,所述方法包括以下步骤:建立与PSCAD仿真系统中基础功能块对应的图形功能库;建立与PSCAD仿真系统自定义功能块对应的自定义功能库;将建立的图形功能库与自定义功能库进行统一分类;将图形功能块转换为源代码。本发明采用基于图形化方式的操作方式,实现功能块图形一一对应转换,数据关联一一对应转换,实现算法模型文件自动生成源代码,编译可下载到装置。
【专利说明】—种基于PSCAD仿真系统将其算法模型转换为源代码的方法

【技术领域】
[0001]本发明涉及一种转换方法,具体涉及一种基于PSCAD仿真系统将其算法模型转换为源代码的方法。

【背景技术】
[0002]PSCAD/EMTDC(全称 Power Systems Computer Aided Design)是世界上广泛使用的电磁暂态仿真系统,EMTDC是其仿真计算核心,PSCAD为EMTDC(ElectromagneticTransients including DC)提供图形操作界面。PSCAD是一种有效的用户图形界面,能够显著地提高电力系统电磁暂态模拟研究的效率。通过PSCAD可以很方便建立各种电力系统算法模型,并可以很直观看到仿真效果。
[0003]通过PSCAD仿真系统可以轻松方便建立算法模型,但是建立的模型文件算法逻辑却不可以直接下载到需要使用这种算法模型的装置中去,不能做到可见即可得的效果。如果需要这样算法,须通过工程师使用开发工具开发出相应的算法功能模型,需要大量人力物力,而且效果不是很好。
[0004]通过PSCAD仿真系统建立算法模型,不能直接转换成需要的代码文件,因此需要有一种有效的文件转换方法,通过文件转换,可以生成指定的源代码,并编译下载到装置,因此发明一种实用方法是非常用必要的。


【发明内容】

[0005]为了克服上述现有技术的不足,本发明提供一种基于PSCAD仿真系统将其算法模型转换为源代码的方法,采用基于图形化方式的操作方式,实现图形功能块一一对应转换,数据关联一一对应转换,实现算法模型文件自动生成源代码,编译可下载到装置。
[0006]为了实现上述发明目的,本发明采取如下技术方案:
[0007]本发明提供一种基于SCAD仿真系统将其算法模型转换为源代码的方法,所述方法包括以下步骤:
[0008]步骤1:建立与PSCAD仿真系统中基础功能块对应的图形功能库;
[0009]步骤2:建立与PSCAD仿真系统自定义功能块对应的自定义功能库;
[0010]步骤3:将建立的图形功能库与自定义功能库进行统一分类;
[0011]步骤4:将图形功能块转换为源代码。
[0012]所述步骤I中,与PSCAD仿真系统中基础功能块对应的图形功能库中的图形功能块包括加法器、减法器、乘法器、除法器和三角函数。
[0013]所述步骤2中,自定义功能库的参数信息包括函数名、输入参数类型、输入参数变量名、输出参数类型、输出参数变量名、存储参数类型和存储参数变量名。
[0014]所述步骤3中,将图形功能库与自定义功能库统一分为基本运算类别、三角函数类别、反三角函数类别和算术功能类别。
[0015]所述步骤4中,按照先行后列方式的读取规则,读取每个图形功能块,并把图形功能块翻译成C语言形式,最终生成后缀为.C的源代码。
[0016]图形功能块中基本运算类别对应的源代码如下:
[0017](I)加法器对应的源代码为out = in_l+in_2 ;
[0018](2)减法器对应的源代码为out = in_l-1n_2 ;
[0019](3)乘法器对应的源代码为out = in_l*in_2 ;
[0020](4)除法器对应的源代码为out = in_l/in_2。
[0021]使用角度或者弧度将图形功能块中三角函数类别转换为对应的源代码,分别表示为:
[0022](I)使用角度将正弦函数转换为对应的源代码,该源代码为out =sin (in*0.0174533);
[0023](2)使用弧度将正弦函数转换为对应的源代码,该源代码为out = sin (in);
[0024](3)使用角度将余弦函数转换为对应的源代码’该源代码为out =cos (in*0.0174533);
[0025](4)使用弧度将余弦函数转换为对应的源代码,该源代码为out = cos (in);
[0026](5)使用角度将正切函数转换为对应的源代码,该源代码为out =tan (in*0.0174533);
[0027](6)使用弧度将正切函数转换为对应的源代码,该源代码为out = tan (in)。
[0028]图形功能块中反三角函数类别对应的源代码如下:
[0029](I)使用角度将反正弦函数转换为对应的源代码,该源代码为out =asin(in)*57.29578 ;
[0030](2)使用弧度将反正弦函数转换为对应的源代码,该源代码为out = asin(in);
[0031](3)使用角度将反余弦函数转换为对应的源代码,该源代码为out =acos (in)*57.29578 ;
[0032](4)使用弧度将反余弦函数转换为对应的源代码,该源代码为out = acos (in);
[0033](5)使用角度将反正切函数转换为对应的源代码,该源代码为out =atan(in)*57.29578 ;
[0034](6)使用弧度将反正切函数转换为对应的源代码,该源代码为out = atan (in)。
[0035]图形功能块中反算术功能类别对应的源代码如下:
[0036](I)绝对值模块对应的源代码为out = fabs(in);
[0037](2)平方模块对应的源代码为out = in*in ;
[0038](3)开方模块对应的源代码为out = sqrt(in);
[0039](4)自然数的幂次方对应的源代码为out = exp (in);
[0040](5)自然数为底的对数对应的源代码为out = log(in)。
[0041]与现有技术相比,本发明的有益效果在于:
[0042]L可灵活加入基本功能块;
[0043]2.自定义功能块,功能丰富,操作方便;
[0044]3.基本功能块及自定义功能块可以根据用户需求灵活组合;
[0045]4.功能块可嵌套复制,减轻工作量;
[0046]5.类别定义完善,支持个性化类别管理;
[0047]6.支持自动生成源代码。

【专利附图】

【附图说明】
[0048]图1是本发明实施例中建立的图形功能库中图形功能块示意图;
[0049]图2是本发明实施例中建立的自定义功能库中自定义功能块示意图;
[0050]图3是本发明实施例中自定义功能块结构示意图;
[0051]图4是本发明实施例中自定义功能块用户自定义功能块PI示意图;
[0052]图5是本发明实施例中通过PSCAD仿真系统将加法器转换为源代码模型示意图;
[0053]图6是本发明实施例中通过PSCAD仿真系统将减法器转换为源代码模型示意图;
[0054]图7是本发明实施例中通过PSCAD仿真系统将乘法器转换为源代码模型示意图;
[0055]图8是本发明实施例中通过PSCAD仿真系统将除法器转换为源代码模型示意图;
[0056]图9是本发明实施例中通过PSCAD仿真系统将正弦函数转换为源代码模型示意图;
[0057]图10是本发明实施例中通过PSCAD仿真系统将余弦函数转换为源代码模型示意图;
[0058]图11是本发明实施例中通过PSCAD仿真系统将正切函数转换为源代码模型示意图;
[0059]图12是本发明实施例中通过PSCAD仿真系统将反正弦函数转换为源代码模型示意图;
[0060]图13是本发明实施例中通过PSCAD仿真系统将反余弦函数转换为源代码模型示意图;
[0061]图14是本发明实施例中通过PSCAD仿真系统将反正切函数转换为源代码模型示意图;
[0062]图15是本发明实施例中通过PSCAD仿真系统将绝对值模块转换为源代码模型示意图;
[0063]图16是本发明实施例中通过PSCAD仿真系统将平方模块转换为源代码模型示意图;
[0064]图17是本发明实施例中通过PSCAD仿真系统将开方模块转换为源代码模型示意图;
[0065]图18是本发明实施例中通过PSCAD仿真系统将自然数的幂次方转换为源代码模型不意图;
[0066]图19是本发明实施例中通过PSCAD仿真系统将自然数为底的对数转换为源代码模型示意。

【具体实施方式】
[0067]下面结合附图对本发明作进一步详细说明。
[0068]本发明涉及一种基于PSCAD仿真系统将算法模型转换为源代码的方法,主要包括下述步骤:(I)建立与PSCAD仿真系统中基础功能块对应的图形功能库;(2)建立PSCAD仿真系统自定义功能对应的自定义功能项;(3)配置定义转换关系,转换PSCAD建模文件并生成文件源代码。该系统基于Window xp操作系统,使用VC++6.0开发工具及Access数据库系统。系统通过读取PSCAD仿真建模软件搭建的文件,解析每个功能块,并转换成系统认知的图形功能块,读取数据流方向,转换成系统专有数据联接方式,当建模文件转换成功后,可以使用系统中自动生成代码功能,生成PSCAD建模中所对应的控制模块程序。本方法通过转换基于PSCAD算法模型文件,模型文件能够自动转换,并代码能够自动生成,研发人员不再需要手工编写数千行代码,从而提高了生产效率、改善了设计质量并且为创新提供了便利。
[0069]本发明提供一种基于SCAD仿真系统将其算法模型转换为源代码的方法,所述方法包括以下步骤:
[0070]步骤1:建立与PSCAD仿真系统中基础功能块对应的图形功能库;
[0071]步骤2:建立与PSCAD仿真系统自定义功能块对应的自定义功能库;
[0072]步骤3:将建立的图形功能库与自定义功能库进行统一分类;
[0073]步骤4:将图形功能块转换为源代码。
[0074]所述步骤I中,(如图1)与PSCAD仿真系统中基础功能块对应的图形功能库中的图形功能块包括加法器、减法器、乘法器、除法器和三角函数。
[0075]所述步骤2中,(如图2)自定义功能库的参数信息包括函数名、输入参数类型、输入参数变量名、输出参数类型、输出参数变量名、存储参数类型和存储参数变量名。
[0076]1.建立如图3的自定义功能块;
[0077]2.生成子函数框架
[0078]新建功能块页面信息填好,并确认后。自动生成子函数框架。
[0079]
void ZU_PI(float a?Uintl6 I—reset,float K P3Aoat K_I5floatPI_limit,float
iiiZU a i PI Uloat *a_pi)
{
/*再此添加程序代码*/

return ;
}
[0080]3.添加代码
[0081]用户在第2步生成的子函数框架里添加自己的程序代码。
[0082]void ZU_PI(noal a.Uini 16 I_rescl,noat K_P, Iloal K_I,float I—limit,float PI_limit,float*ZU_a_i_rM_IJloat i|ia_pi)
{
float a_p=0;
float a i=();
Iloal a_pi_oul=0;
float Ilimilncg=O;
float P1-1imil neg=0;
if(I_rcscl) (*ZU _a_i_PI_l )=0:
a_p = K_P*a;
a_1- K_Pa + (;-ZU_a_i_PI_l);
ir(l」inik>=0)
{
I_limit_ncg=(-1)氺
if(a_i < I limil ncg) a_i=[_limil_ncg:1l'(a i > I limit) a i=J limit;
}
* ZU_a丄PIj = a_i;
[0083]

a—pi—out = a_p+a_i;
if(PI—limit>=0)

{

PI_limit_ncg=(-l)^PI_!imil;

out < PI limit ncg) a_pi out=PI limit neg;

i1、(a—pi—out > PI—limit) a_pi_oUl= PI IimiI;

}

(*a—pi)=a—pi—oul;
return ;
[0084]4.生成源代码
[0085]当生成编译功能块代码没有错误,可以建立对应的功能块图形,并把生成文件存入到图形库管理系统中,以后功能调用就可以了。
[0086]图4是导入类别管理主要是解决不同仿真建模软件建立的文件,需要分别处理。例如PSCAD仿真系统,通过建模仿真建立文件,对于不同建模软件,对一种功能模块,其在各自系统中使作代号可能是不一样的。通过导入类别管理可以把功能相同,而代码不一致的功能块,通过设定可以把建模软件的功能块与组态软件的功能块一一相应起来,这样组态软件在解析建模文件时可以建立对应关系,把其绘制到组态软件。
[0087]所述步骤3中,将图形功能库与自定义功能库统一分为基本运算类别、三角函数类别、反三角函数类别和算术功能类别。
[0088]所述步骤4中,按照先行后列方式的读取规则,读取每个图形功能块,并把图形功能块翻译成C语言形式,最终生成后缀为.C的源代码。
[0089]如图5-8,图形功能块中基本运算类别对应的源代码如下:
[0090](I)加法器对应的源代码为out = in_l+in_2 ;
[0091](2)减法器对应的源代码为out = in_l-1n_2 ;
[0092](3)乘法器对应的源代码为out = in_l*in_2 ;
[0093](4)除法器对应的源代码为out = in_l/in_2。
[0094]其中,in_l和in_2为各自的第一输入端口和第二输入端口。
[0095]由于角度和弧度之间存在如下关系,1°?0.0174533弧度,I弧度& 57.29578° ;使用角度或者弧度将图形功能块中三角函数类别转换为对应的源代码,如图9-11,分别表示为:
[0096](I)使用角度将正弦函数转换为对应的源代码,该源代码为out =sin (in*0.0174533);
[0097](2)使用弧度将正弦函数转换为对应的源代码,该源代码为out = sin (in);
[0098](3)使用角度将余弦函数转换为对应的源代码’该源代码为out =cos (in*0.0174533);
[0099](4)使用弧度将余弦函数转换为对应的源代码,该源代码为out = cos (in);
[0100](5)使用角度将正切函数转换为对应的源代码,该源代码为OUt =tan (in*0.0174533);
[0101](6)使用弧度将正切函数转换为对应的源代码,该源代码为out = tan (in)。
[0102]其中,in表不输入量。
[0103]如图12-14,图形功能块中反三角函数类别对应的源代码如下:
[0104](I)使用角度将反正弦函数转换为对应的源代码,该源代码为out =asin(in)*57.29578 ;
[0105](2)使用弧度将反正弦函数转换为对应的源代码,该源代码为out = asin(in);
[0106](3)使用角度将反余弦函数转换为对应的源代码,该源代码为out =acos (in)*57.29578 ;
[0107](4)使用弧度将反余弦函数转换为对应的源代码,该源代码为out = acos (in);
[0108](5)使用角度将反正切函数转换为对应的源代码,该源代码为out =atan(in)*57.29578 ;
[0109](6)使用弧度将反正切函数转换为对应的源代码,该源代码为out = atan (in)。
[0110]其中,in表不输入量。
[0111]如图15-19,图形功能块中反算术功能类别对应的源代码如下:
[0112](I)绝对值模块对应的源代码为out = fabs(in);
[0113](2)平方模块对应的源代码为out = in*in ;
[0114](3)开方模块对应的源代码为out = sqrt(in);
[0115](4)自然数的幂次方对应的源代码为out = exp (in);
[0116](5)自然数为底的对数对应的源代码为out = log (in)。
[0117]其中,in表不输入量。
[0118]最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,所属领域的普通技术人员参照上述实施例依然可以对本发明的【具体实施方式】进行修改或者等同替换,这些未脱离本发明精神和范围的任何修改或者等同替换,均在申请待批的本发明的权利要求保护范围之内。
【权利要求】
1.一种基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:所述方法包括以下步骤: 步骤1:建立与PSCAD仿真系统中基础功能块对应的图形功能库; 步骤2:建立与PSCAD仿真系统自定义功能块对应的自定义功能库; 步骤3:将建立的图形功能库与自定义功能库进行统一分类; 步骤4:将图形功能块转换为源代码。
2.根据权利要求1所述的基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:所述步骤I中,与PSCAD仿真系统中基础功能块对应的图形功能库中的图形功能块包括加法器、减法器、乘法器、除法器和三角函数。
3.根据权利要求1所述的基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:所述步骤2中,自定义功能库的参数信息包括函数名、输入参数类型、输入参数变量名、输出参数类型、输出参数变量名、存储参数类型和存储参数变量名。
4.根据权利要求1所述的基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:所述步骤3中,将图形功能库与自定义功能库统一分为基本运算类别、三角函数类别、反三角函数类别和算术功能类别。
5.根据权利要求4所述的基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:所述步骤4中,按照先行后列方式的读取规则,读取每个图形功能块,并把图形功能块翻译成C语言形式,最终生成后缀为.C的源代码。
6.根据权利要求5所述的基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:图形功能块中基本运算类别对应的源代码如下: (1)加法器对应的源代码为out= in_l+in_2 ; (2)减法器对应的源代码为out= in_l-1n_2 ; (3)乘法器对应的源代码为out= in_l*in_2 ; (4)除法器对应的源代码为out= in_l/in_2。
7.根据权利要求5所述的基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:使用角度或者弧度将图形功能块中三角函数类别转换为对应的源代码,分别表示为: (1)使用角度将正弦函数转换为对应的源代码,该源代码为out=sin(in*0.0174533); (2)使用弧度将正弦函数转换为对应的源代码,该源代码为out= sin (in); (3)使用角度将余弦函数转换为对应的源代码,该源代码为out=cos (in*0.0174533); (4)使用弧度将余弦函数转换为对应的源代码,该源代码为out= cos (in); (5)使用角度将正切函数转换为对应的源代码,该源代码为out=tan (in*0.0174533); (6)使用弧度将正切函数转换为对应的源代码,该源代码为out= tan (in)。
8.根据权利要求5所述的基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:图形功能块中反三角函数类别对应的源代码如下: (I)使用角度将反正弦函数转换为对应的源代码,该源代码为out =asin(in)*57.29578 ; (2)使用弧度将反正弦函数转换为对应的源代码,该源代码为out= asin(in); (3)使用角度将反余弦函数转换为对应的源代码,该源代码为out=acos (in)*57.29578 ; (4)使用弧度将反余弦函数转换为对应的源代码,该源代码为out= acos (in); (5)使用角度将反正切函数转换为对应的源代码,该源代码为out=atan(in)*57.29578 ; (6)使用弧度将反正切函数转换为对应的源代码,该源代码为out= atan (in)。
9.根据权利要求5所述的基于PSCAD仿真系统将其算法模型转换为源代码的方法,其特征在于:图形功能块中反算术功能类别对应的源代码如下: (1)绝对值模块对应的源代码为out= fabs(in); (2)平方模块对应的源代码为out= in*in ; (3)开方模块对应的源代码为out= sqrt(in); (4)自然数的幂次方对应的源代码为out= exp (in); (5)自然数为底的对数对应的源代码为out= log (in)。
【文档编号】G06F17/50GK104182590SQ201410437534
【公开日】2014年12月3日 申请日期:2014年8月29日 优先权日:2014年8月29日
【发明者】聂学斌, 戴凤娇, 蔡林海, 徐博, 蒋晓春 申请人:国家电网公司, 国网智能电网研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1