PSCAD与C语言借口方法

上传人:飞*** 文档编号:43277021 上传时间:2018-06-05 格式:DOC 页数:2 大小:30KB
返回 下载 相关 举报
PSCAD与C语言借口方法_第1页
第1页 / 共2页
PSCAD与C语言借口方法_第2页
第2页 / 共2页
亲,该文档总共2页,全部预览完了,如果喜欢就下载吧!
资源描述

《PSCAD与C语言借口方法》由会员分享,可在线阅读,更多相关《PSCAD与C语言借口方法(2页珍藏版)》请在金锄头文库上搜索。

1、PSCAD_EMTDC 与 C 语言借口方法 在 PSCAD 中要实现新的算法,首先要建立一个自定义元件。自定义元件分为两种,一 种是电气元件,一种是信号处理元件。本帖实现的内容是一个非线性电感,其电感值随着 电流大小而变化,属于电气元件。写控制算法的同学可能主要用到后者,将输入信号经过 一系列的处理计算得到一个输出信号。 问题 1:将程序写在哪里?首先要将算法程序分成两个部分:一部分是 PSCAD 可以实现的,如处理仿真参数、读入仿真数据、输出仿真结果以及积 分、微分等简单函数。这部分内容写在自定义元件 definition 的 Script 中。可以写在 Fortran 中也可以写在 DS

2、DYN 中,两者略有不同但不会影响简单应用,具体内容请参阅帮助文件。另一部分是我们自己的 C 语言算法,要将 C 算法总结成 y=f(x,p)的输入输出形式的 形式写在一个*.c 文件中。并添加到 PSCAD 的 File Reference 中。 C 函数的命名形式一定是 void XX_XXX_()的形式,注意名字中的下划线,本人的试验结果是必须有这三个下划线, 哪位同学有其他发现可以一起探讨一下。 问题 2:如何传数据?由于 PSCAD 和 C 函数是互相传递指针,因此就需要将 C 函数写成 f(y,x,p)的形式,例如: void ja_model_(real *h,real *ht,

3、real *mt,real *ms,real *a,real *alpha,real *c,real *k,real *b,real *m)。其中 h 是输出,ht,mt 是输入,后面的都是参数。在 PSCAD 中用 call 语句调用,例 如:CALL JA_MODEL(H,HT,MT,$MS,$A,$ALPHA,$C,$K,B,M) 。注意函数名中的下划线,这里 只有一个!其中 H,HT,MT 都是 Fortran 程序中的变量,后面参数前面加“$”是引用参 数的意思,具体内容请参阅帮助文件。 问题 3:如何保存前一时刻的变量并在本时刻调用?在时域仿真的时候我们不可避免的要用到上一时刻的某

4、些计算结果。而 PSCAD 中的 Fortran 程序和 C 程序每一时刻都重新执行一次,变量都要清零,所以就要单独存放需要的 数据。PSCAD 提供了一个 STORF 数组,可以将某些变量当前时刻的值存入该数组,在下一 时刻读出。这里直接给出一个例子: #STORAGE REAL:4MY_NSTORF=NSTORFNSTORF=NSTORF+4BT=STORF(MY_NSTORF)HT=STORF(MY_NSTORF+1)MT=STORF(MY_NSTORF+2)H=STORF(MY_NSTORF+3)*$N/$L这是读上一时刻值。 以下是保持本时刻变量数值STORF(MY_NSTORF)=

5、BSTORF(MY_NSTORF+2)=M解决了上面 3 个问题就可以完成信号处理元件的建模。 问题 4:如何建立电气元件?我们对一个电气元件建模就是要描述其伏安特性。如一个双端口元件,测它两个结点 电压,然后计算出支路电流就可以了。PSCAD 提供了一个基于结点的电气接口函数,说白 了就是一个受控电流源叫 GGIN 和 CCIN。帮助里可以搜到,下面给出例子:CCIN($NA,$SS)=CCIN($NA,$SS)-STORF(MY_NSTORF+3)/1000.0CCIN($NB,$SS)=CCIN($NB,$SS)+STORF(MY_NSTORF+3)/1000.0GGIN($NA,$SS)=GGIN($NA,$SS)+GGGIN($NB,$SS)=GGIN($NB,$SS)+G我觉得解决以上 4 个问题就能满足一般应用了。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号