TA的每日心情 | 郁闷 2017-4-3 23:39 |
---|
签到天数: 10 天 连续签到: 4 天 [LV.3]偶尔看看II 累计签到:10 天 连续签到:4 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
由于项目要用到pscad的自定义元件功能,于是花了几天恶补了一下相关知识。正好看到说明书里面的CCIN功能,受到启发,正好可以实现电流放大功能。
& M# b" b. q1 h; V" L7 ~" m" v! S" [2 v7 U
: S9 U. \6 M* X/ y/ O' N1 X+ } 本帖提出一种通过电流放大实现的方法,原理、实施都特别简单,但是该方法存在一些问题。
2 }! h. y7 r! g9 r" A, y+ _( k7 l( e5 H
开此贴目的有三:
' M0 n5 B3 \ r# ]' t4 \8 ^0 l& M3 |2 q- K5 Y
首先,抛砖引玉,分享经验,我想到的方法不一定好,希望能集思广益,看看应该如何改进;/ H' F" d1 ?$ t: R8 S. d
3 Z0 ]) H/ N) R3 g
其次,通过一个实例帮助不熟悉自定义元件的人快速入门,并提供;
+ ^4 W- ?2 c+ a6 j( U" O. h4 \6 h 最后,帮助大家开拓思路,希望大家在建模时能多一种选择。! M* w& t9 R6 g' x. L
+ y' Q& t t9 o3 `- M1 Q/ H* y" w
6 K% k* t, ~7 o% F$ D; `3 S* N原理* [' |) [. E$ L+ G9 s2 m
通过在Fortran Segment中调用PSCAD自带CCIN电流源功能,在每个仿真步长内将需要放大的电流值乘以(n-1),所得结果赋给CCIN,使得自定义元件流出电流与原电流的加和为被放大电流的n倍。
; S* K: u& c$ n1 d5 c
$ V: o6 Y; ^* S& x0 r, P6 P$ v
/ C* q' x$ n( o( u- M" d8 X实现方法
4 L V3 g G& s* [8 K考虑到大家对PSCAD4.2较熟悉,以下介绍如何在PSCAD4.5中实现,最后的附件中有两个版本的示例。$ E( _$ p9 S6 A/ [/ g. m: d
( I: W$ F0 E6 j8 |
+ I3 I3 [. W: i% Z; \2 |8 U1.创建简单的仿真系统" O$ R3 A) C+ A: @: |
如图是一个简单的电压源串两个1Ohm电阻的系统,我们要实现的是Ia2放大为Ia1的n倍,即Ia2=Ia1*n。, q2 T9 H8 J- `- ?2 ~
' T# j" ]& j" d4 L% k' e& b* a0 c( Q4 ^ |; Y; O- \
3 Q' X/ ?+ A: b4 O: \3 n4 z2.创建与编辑自定义元件
9 q- C$ i; a% R# j+ u- z
* d z5 _3 r! S' Z4 o 为紧凑一点,把这个过程放在一张图上,红色数字对于下面的1)~6)步。5 g9 _2 u; k" }7 ^. B
1)在画布空白处点右键Create-Component,在右边弹出一个侧边栏;; z% C- V- n3 w5 V5 x: C
7 f3 u/ J: T8 @% d6 {
2)侧边栏中Component Wizard是元件创建向导,我们只需要填下元件的名字(Name),画布上元件显示的名称(Title),然后点Finish完成创建;/ e0 Z* a' `4 @5 b# [
+ u. {$ |& z4 z$ k8 q4 D; }- l
3)在元件上右键Edit Definition进入元件编辑;
6 T8 P) l" T/ w% b* \6 D8 @, Z% c; Y
4)元件编辑界面分为3部分:Graphic图形界面,Parameter参数界面,Script脚本界面(也就是常说的编程序的地方),通过Edit Definition首先进入图形编辑界面,利用工具栏Shape里面的直线Line和端口Port,在元件上引出一根线,末端为端子N1;(PSCAD4.2好像默认将端子Connection Type设置为Input类型,颜色为绿色,请注意改为Electrical类型)
7 A$ p7 r$ W o
g ]0 u4 j. k 5)为便于元件的使用,希望在主电路直接通过修改参数的方式设置放大倍数、需要放大的电流。为此需要增加元件的参数,在Parameters界面内点击右键New parameter创建参数;$ X( }- } W5 p c. V* Y! h" A
; G$ e! L% s' |. q& C5 Y- y. _5 N 6)创建两个参数:需要放大的电流Current、放大倍数Scale,有2点需要注意:
! l! Q p4 x. K; [& H- d8 G
7 e+ n/ n( A6 F6 U2 j a)每个参数中还有其他条目,Description是参数名,Symbol是在Script中用到的变量名,不要混淆;
) f. }+ H* z& @/ B b)Current为text文本类型,因为需要放大的变量是通过文本作为参数输入的,Scale为integer整型,这点比较好理解,在此处我设置了放大倍数的上下限是1~1000,也可以修改为其他值;
. w2 S4 w. v, s& O3 U' T) R4 e/ w. ?file:///C:/Users/a/Documents/My%20Knowledge/temp/d48ab359-523f-4567-b793-723d9ea7e439.png
0 ~' }6 s5 Q6 p, `+ }: Y
6 Q" p; ^1 M1 U2 ?$ o3.编写脚本, { \9 N2 j7 F( b
上一步中创建的元件是“死”的,这里才是整个元件的核心 ,在Script里面加入如下代码:
- b A6 q+ E. O9 P
E1 S2 X" \& N1 z$ P: A- #BEGIN& A9 j3 p/ A" C" u- W8 k! a; _
- ENABCCIN($N1,$SS)=.TRUE.' t9 R) `; @3 T) Y( U! A
- #ENDBEGIN+ M/ \1 w/ S0 \9 S
- CCIN($N1,$SS)=($Scale-1)*$Current
复制代码 9 g9 ~1 N" S7 C0 W$ e$ Z& V
! B. _& c- w( f& W2 M
注意,Script包含多个Segment,请确保该段代码是放在Fortran Segment中。. F( [( C7 V3 {* u+ g2 G
3 k, F+ @' H4 A/ L* {
解释一下这几行代码: n6 s3 x- H& b2 {; z
/ A4 w2 _5 j+ q+ `0 _. f 1) #BEGIN/#ENDBEGIN是一对指令,包含在其中的代码段只在仿真初始阶段运行一次,
7 p o+ v# n9 O0 e: N2 {7 F2 @/ T$ C7 m, L
【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:& U5 u7 g/ R4 b4 x4 p, F/ J
- IF(TIMEZERO) THEN
0 H& R9 i3 w6 @8 K- g. \5 i. Q5 [ - ENABCCIN($NA,$SS)=.TRUE.& d d. [! I7 D3 h+ T
- ENDIF: u' H0 }9 m+ w* _, x% T3 d
- CCIN($NA,$SS)=$Current*$Scale
复制代码 】1 c r+ a5 P5 B2 t* L7 U
0 x+ x( D" S7 L: d9 Y
$ J% x) @0 r% V" I6 G d 2)ENABCCIN($N1,$SS)=.TRUE.开启CCIN功能,ENABCCIN的参数是端子名$NA、子系统名$SS,前面加的$是放在变量名前面的替代符。这里的变量指的是从元件端口、系统变量、元件参数。实际上,NA、SS只是一个代号,在PSCAD将script编译为fortran的过程中,会把NA、SS替换为真实的名字,形式有点像数组,便于EMTDC软件包的运算。& N+ J6 q g! s; G
) r' F3 N) L" \, x2 j0 j
3)CCIN($NA,$SS)=($Scale-1)*$Current
: |6 h* o2 @4 b o7 G, N CCIN产生一个接地电流源,电流大小为Current放大Scale-1倍,这条语句在BEGIN之外,说明其在每一个仿真步长中都会执行!Scal、Current是Parameter中的Symbol。& q$ l* I# l" S6 M5 C p+ d
$ G0 a& G# I8 v2 W* m8 ]- o5 A4.结果' K; n* u9 |, l3 l% T
将建好的元件和主电路连接好,增加监视元件,运行后查看波形。
5 R: ?% q$ {# A8 p( k" t, z
7 j$ Q1 l9 c5 y: `* [. Z4 E( V6 W* G2 b9 M) j* P5 v
+ y" e7 e2 d$ d+ H* \4 L
) C( `1 [" W! \7 Q4 x+ \2 h# h存在问题
& V# B/ N- S. o6 d2 T2 N2 v) W 该种方法放大电流时,放大倍数增大将使得结果发散,表现为数值非常大(可达到10的数百次方)或干脆没有值(NaN),原因不明。. ]- I f( [7 b/ @1 X) _' G3 n
我的猜想是,这种方法在某些情况下可能带来网络方程无法求解的问题,其具体原因可能是方程矛盾、矩阵奇异之类的,电网络学得不太好,这里也只是瞎猜。希望大家能给点意见。. g: T" s( R' N' I
0 x) M: H4 M* J+ S
6 B! F6 O9 u% y6 g4 y# p" ~
7 a% L6 B7 B3 J$ x8 k1 D" z9 B- x
$ g6 r+ _2 P: {# s
PSCAD电流放大(包含4.5、4.2版本).rar
(763.01 KB, 下载次数: 4)
' e( a. V$ Q/ e1 ~
|
|