通过自定义元件实现电流跟踪放大
由于项目要用到PSCAD的自定义元件功能,于是花了几天恶补了一下相关知识。正好看到说明书里面的CCIN功能,受到启发,正好可以实现电流放大功能。本帖提出一种通过电流放大实现的方法,原理、实施都特别简单,但是该方法存在一些问题。
开此贴目的有三:
首先,抛砖引玉,分享经验,我想到的方法不一定好,希望能集思广益,看看应该如何改进;
其次,通过一个实例帮助不熟悉自定义元件的人快速入门,并提供;
最后,帮助大家开拓思路,希望大家在建模时能多一种选择。
原理
通过在Fortran Segment中调用PSCAD自带CCIN电流源功能,在每个仿真步长内将需要放大的电流值乘以(n-1),所得结果赋给CCIN,使得自定义元件流出电流与原电流的加和为被放大电流的n倍。
实现方法
考虑到大家对PSCAD4.2较熟悉,以下介绍如何在PSCAD4.5中实现,最后的附件中有两个版本的示例。
1.创建简单的仿真系统
如图是一个简单的电压源串两个1Ohm电阻的系统,我们要实现的是Ia2放大为Ia1的n倍,即Ia2=Ia1*n。
2.创建与编辑自定义元件
为紧凑一点,把这个过程放在一张图上,红色数字对于下面的1)~6)步。
1)在画布空白处点右键Create-Component,在右边弹出一个侧边栏;
2)侧边栏中Component Wizard是元件创建向导,我们只需要填下元件的名字(Name),画布上元件显示的名称(Title),然后点Finish完成创建;
3)在元件上右键Edit Definition进入元件编辑;
4)元件编辑界面分为3部分:Graphic图形界面,Parameter参数界面,Script脚本界面(也就是常说的编程序的地方),通过Edit Definition首先进入图形编辑界面,利用工具栏Shape里面的直线Line和端口Port,在元件上引出一根线,末端为端子N1;(PSCAD4.2好像默认将端子Connection Type设置为Input类型,颜色为绿色,请注意改为Electrical类型)
5)为便于元件的使用,希望在主电路直接通过修改参数的方式设置放大倍数、需要放大的电流。为此需要增加元件的参数,在Parameters界面内点击右键New parameter创建参数;
6)创建两个参数:需要放大的电流Current、放大倍数Scale,有2点需要注意:
a)每个参数中还有其他条目,Description是参数名,Symbol是在Script中用到的变量名,不要混淆;
b)Current为text文本类型,因为需要放大的变量是通过文本作为参数输入的,Scale为integer整型,这点比较好理解,在此处我设置了放大倍数的上下限是1~1000,也可以修改为其他值;
file:///C:/Users/a/Documents/My%20Knowledge/temp/d48ab359-523f-4567-b793-723d9ea7e439.png
3.编写脚本
上一步中创建的元件是“死”的,这里才是整个元件的核心 ,在Script里面加入如下代码:
#BEGIN
ENABCCIN($N1,$SS)=.TRUE.
#ENDBEGIN
CCIN($N1,$SS)=($Scale-1)*$Current
注意,Script包含多个Segment,请确保该段代码是放在Fortran Segment中。
解释一下这几行代码:
1) #BEGIN/#ENDBEGIN是一对指令,包含在其中的代码段只在仿真初始阶段运行一次,
【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:
IF(TIMEZERO) THEN
ENABCCIN($NA,$SS)=.TRUE.
ENDIF
CCIN($NA,$SS)=$Current*$Scale 】
2)ENABCCIN($N1,$SS)=.TRUE.开启CCIN功能,ENABCCIN的参数是端子名$NA、子系统名$SS,前面加的$是放在变量名前面的替代符。这里的变量指的是从元件端口、系统变量、元件参数。实际上,NA、SS只是一个代号,在PSCAD将script编译为fortran的过程中,会把NA、SS替换为真实的名字,形式有点像数组,便于EMTDC软件包的运算。
3)CCIN($NA,$SS)=($Scale-1)*$Current
CCIN产生一个接地电流源,电流大小为Current放大Scale-1倍,这条语句在BEGIN之外,说明其在每一个仿真步长中都会执行!Scal、Current是Parameter中的Symbol。
4.结果
将建好的元件和主电路连接好,增加监视元件,运行后查看波形。
存在问题
该种方法放大电流时,放大倍数增大将使得结果发散,表现为数值非常大(可达到10的数百次方)或干脆没有值(NaN),原因不明。
我的猜想是,这种方法在某些情况下可能带来网络方程无法求解的问题,其具体原因可能是方程矛盾、矩阵奇异之类的,电网络学得不太好,这里也只是瞎猜。希望大家能给点意见。
这是按照PSCAD官网的scaling模型搭建出来的,实现了电流的跟踪放大,用的理想受控源就是CCIN的模型表现。只是需要注意的就是这个模块放置的位置,不然会有部分电路被短路掉,比如YnD接线方式的变压器,注入电流在D一侧就会短路变压器。 #BEGIN/#ENDBEGIN里面的程序都仿真开始会跑一次对吧,为什么我加了之后,没有跑里面的程序 学习了!还不是很明白 等研究一下 再做交流 很好,很完整的例子,感谢楼主分享! 附件下载不到了我照着楼主说的做了一下 没成功想请教一下【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:不懂什么意思 强烈支持楼主ing…… 本帖最后由 stoat 于 2019-3-26 10:32 编辑
这么好的帖子,顶一下
赞楼主的原创,认真学习中。。,谢谢 学习到了感谢分享
页:
[1]
2
