TA的每日心情 | 郁闷 2017-4-3 23:39 |
|---|
签到天数: 10 天 连续签到: 4 天 [LV.3]偶尔看看II 累计签到:10 天 连续签到:4 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
由于项目要用到PSCAD的自定义元件功能,于是花了几天恶补了一下相关知识。正好看到说明书里面的CCIN功能,受到启发,正好可以实现电流放大功能。
/ } n. S4 L/ D8 {2 g/ ]
& ] o: }0 M7 v+ s6 Y& Q
6 h" y) Z. q( a/ `% K5 y: T/ ^ 本帖提出一种通过电流放大实现的方法,原理、实施都特别简单,但是该方法存在一些问题。
& j, b- |; L: \, B5 J: u- Z. z; f2 N0 W5 ~0 E
开此贴目的有三:( F$ _6 W: E8 }3 M. x4 F* q
. L! g S9 n, ` 首先,抛砖引玉,分享经验,我想到的方法不一定好,希望能集思广益,看看应该如何改进;5 ~9 ?+ ~$ ?) t8 k6 g6 s, U0 U, p: v
' [7 b4 x1 l2 U8 r9 s2 G
其次,通过一个实例帮助不熟悉自定义元件的人快速入门,并提供;; ?0 Z3 H+ @$ D( H0 U, n, Q
最后,帮助大家开拓思路,希望大家在建模时能多一种选择。; r6 g- Q/ ~8 ?1 i; w4 }
! X+ Z% X3 t, z
9 ~8 g3 ?" X- L原理! f& _- g9 G4 h" l* H; p3 ?
通过在Fortran Segment中调用PSCAD自带CCIN电流源功能,在每个仿真步长内将需要放大的电流值乘以(n-1),所得结果赋给CCIN,使得自定义元件流出电流与原电流的加和为被放大电流的n倍。) y7 A* k% w1 b
0 R. Q) L {$ F# P( M
0 X. I# ~% Q0 B; V& I实现方法7 [) j9 k2 ~7 p. v5 L* y
考虑到大家对PSCAD4.2较熟悉,以下介绍如何在PSCAD4.5中实现,最后的附件中有两个版本的示例。
" p5 D0 ?/ G0 y/ h* ?$ x# O4 A. u. ]4 t( E n4 j6 [) `
, U3 H( k- q7 m( o& Y9 q1.创建简单的仿真系统
1 _/ U3 ^; m P1 ~1 D2 k 如图是一个简单的电压源串两个1Ohm电阻的系统,我们要实现的是Ia2放大为Ia1的n倍,即Ia2=Ia1*n。
4 {; h& p- Y$ a
7 `. A, ?" W: A& @$ {7 G7 q
. O% H m( j/ V; e! _; P
' d/ x g% U# u, T( ?, \6 _* I4 i2.创建与编辑自定义元件2 t% }. N R8 J# u
3 y) D- g' l, g, `; f% a
为紧凑一点,把这个过程放在一张图上,红色数字对于下面的1)~6)步。
$ w, H3 Q' f0 E: g! J1 s 1)在画布空白处点右键Create-Component,在右边弹出一个侧边栏;$ h; L: N- e, U- j8 u
' p1 D# @* G, q
2)侧边栏中Component Wizard是元件创建向导,我们只需要填下元件的名字(Name),画布上元件显示的名称(Title),然后点Finish完成创建;6 ^1 B" y" y: r" w
$ \1 L z% B4 c1 D
3)在元件上右键Edit Definition进入元件编辑;
4 h8 y' X; E V+ \: l- M- d; ?* B2 l4 h3 p
4)元件编辑界面分为3部分:Graphic图形界面,Parameter参数界面,Script脚本界面(也就是常说的编程序的地方),通过Edit Definition首先进入图形编辑界面,利用工具栏Shape里面的直线Line和端口Port,在元件上引出一根线,末端为端子N1;(PSCAD4.2好像默认将端子Connection Type设置为Input类型,颜色为绿色,请注意改为Electrical类型)% v9 Y3 x. l* q* Y
/ x1 C. W5 W) r% l1 J7 u
5)为便于元件的使用,希望在主电路直接通过修改参数的方式设置放大倍数、需要放大的电流。为此需要增加元件的参数,在Parameters界面内点击右键New parameter创建参数;+ Z! ]$ V3 J- r& [. O& W
/ P. l+ {- f* J% y1 a, s 6)创建两个参数:需要放大的电流Current、放大倍数Scale,有2点需要注意:
# @' z% S" M: a2 \
) o& l- [; }" u a)每个参数中还有其他条目,Description是参数名,Symbol是在Script中用到的变量名,不要混淆;
; \' z/ {# N1 y, {- g1 w b)Current为text文本类型,因为需要放大的变量是通过文本作为参数输入的,Scale为integer整型,这点比较好理解,在此处我设置了放大倍数的上下限是1~1000,也可以修改为其他值;
& r# s% v. r# q# K5 F* C: afile:///C:/Users/a/Documents/My%20Knowledge/temp/d48ab359-523f-4567-b793-723d9ea7e439.png! C' w/ a$ @5 Q
0 R, v' X4 s% T( I( `3.编写脚本
+ C: O) A4 b& ~5 h; b 上一步中创建的元件是“死”的,这里才是整个元件的核心 ,在Script里面加入如下代码:
\7 d( O( ?$ [2 H8 i: p
$ Q, ?) ]" J% o% |8 |4 [) h- #BEGIN
% {3 ~2 h, F+ _( u - ENABCCIN($N1,$SS)=.TRUE.) o/ M9 ?6 K1 r; H; t: p4 X. J
- #ENDBEGIN
: O( w9 J! W }# S/ }5 y: n - CCIN($N1,$SS)=($Scale-1)*$Current
复制代码 ; k$ B3 u7 ]( O1 Y- O1 S
0 C! w6 ~% Y e; Q( Y D
注意,Script包含多个Segment,请确保该段代码是放在Fortran Segment中。
& t* u5 ~2 ^+ n; q. A, w; x3 ~. J: S# s! [) `2 |
解释一下这几行代码:* e3 F5 f" r/ m; p1 q. Z* |
0 S! |' U: w3 R9 `) B( I, } 1) #BEGIN/#ENDBEGIN是一对指令,包含在其中的代码段只在仿真初始阶段运行一次,
( H! x9 z8 N; ]0 S- P V: _) n5 l6 O* g% y$ W& R
【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:
. \/ O; x8 j$ L; |: Z% w- IF(TIMEZERO) THEN) A9 C( Q) {1 ]- y( R. j3 s
- ENABCCIN($NA,$SS)=.TRUE.
# u( W# {9 x# V. H' ?, _ - ENDIF
4 h" ]1 t. J- s1 F - CCIN($NA,$SS)=$Current*$Scale
复制代码 】( C& m. ^4 }7 q# w0 |( u
x% I$ E( M5 H# A+ o* b1 R7 Z& _- S2 U9 a! y9 O* S
2)ENABCCIN($N1,$SS)=.TRUE.开启CCIN功能,ENABCCIN的参数是端子名$NA、子系统名$SS,前面加的$是放在变量名前面的替代符。这里的变量指的是从元件端口、系统变量、元件参数。实际上,NA、SS只是一个代号,在PSCAD将script编译为fortran的过程中,会把NA、SS替换为真实的名字,形式有点像数组,便于EMTDC软件包的运算。
9 w* M8 o3 k) f+ m0 p
$ w; Z+ M! T9 A P, L E 3)CCIN($NA,$SS)=($Scale-1)*$Current
( |: C0 n9 E. p% p! [ CCIN产生一个接地电流源,电流大小为Current放大Scale-1倍,这条语句在BEGIN之外,说明其在每一个仿真步长中都会执行!Scal、Current是Parameter中的Symbol。8 j" V# q- W+ b* N5 o* ?. C$ V4 E
& ?3 d. X( B2 a5 N
4.结果) A- Y8 `! [; T- _% U* G9 R
将建好的元件和主电路连接好,增加监视元件,运行后查看波形。
6 k* Y7 q, O# }0 Q3 Q Q U0 N
' t, Z7 q2 t; Z7 U: K
5 c3 Y' E2 h2 }% T: W) r9 U8 x2 V- \# N" M1 C, c# M5 t
存在问题
5 Q u" R! q' H5 W7 @- \5 ?+ U0 m 该种方法放大电流时,放大倍数增大将使得结果发散,表现为数值非常大(可达到10的数百次方)或干脆没有值(NaN),原因不明。
) U: y; p Y9 y, F/ T 我的猜想是,这种方法在某些情况下可能带来网络方程无法求解的问题,其具体原因可能是方程矛盾、矩阵奇异之类的,电网络学得不太好,这里也只是瞎猜。希望大家能给点意见。2 y$ K2 v6 a( a! |$ E4 o) v }1 q1 B
N l9 N- b/ e0 x2 q
+ R$ q6 Q7 }: r9 r: b% q) C% K% m6 f ?2 F( r
+ Z! x8 A/ u3 V# Z
PSCAD电流放大(包含4.5、4.2版本).rar
(763.01 KB, 下载次数: 4)
6 R3 m _1 B% z1 S1 S' k/ t2 g) ?2 o
|
|