TA的每日心情 | 郁闷 2017-4-3 23:39 |
|---|
签到天数: 10 天 连续签到: 4 天 [LV.3]偶尔看看II 累计签到:10 天 连续签到:4 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
由于项目要用到pscad的自定义元件功能,于是花了几天恶补了一下相关知识。正好看到说明书里面的CCIN功能,受到启发,正好可以实现电流放大功能。+ b5 u& x" M4 A$ Q# O
7 b5 {- W5 U1 a V+ z: {, A& q! F# d- W
本帖提出一种通过电流放大实现的方法,原理、实施都特别简单,但是该方法存在一些问题。: T9 p, d- f5 d: U& I7 w
: J) Y+ @% U. W 开此贴目的有三:
* w/ ~$ v6 q4 i
" ?& Y+ z, G6 j d, O6 D 首先,抛砖引玉,分享经验,我想到的方法不一定好,希望能集思广益,看看应该如何改进;/ _& Z8 e L* G9 H
" F. z7 A* y( B3 V+ ^, i
其次,通过一个实例帮助不熟悉自定义元件的人快速入门,并提供;5 R! I. M; Q7 V0 x, w
最后,帮助大家开拓思路,希望大家在建模时能多一种选择。
2 Z/ D7 L/ i# A1 Q( ~: F# Y$ S3 \7 O0 j. ~
" q7 O! j1 b4 j- C8 {
原理
# I b4 V8 z9 c8 b! P+ v3 Y 通过在Fortran Segment中调用PSCAD自带CCIN电流源功能,在每个仿真步长内将需要放大的电流值乘以(n-1),所得结果赋给CCIN,使得自定义元件流出电流与原电流的加和为被放大电流的n倍。
5 d- ~: Z' ?- s4 T' _/ z9 ?4 B4 W9 w: \/ w4 Q0 F# X
# O, p3 O4 ^1 z' z& a
实现方法0 B$ {$ J0 N# J! K+ }
考虑到大家对PSCAD4.2较熟悉,以下介绍如何在PSCAD4.5中实现,最后的附件中有两个版本的示例。6 J7 h0 U/ p. a5 r
0 F/ G2 N. s; ], ^ _5 J: L* e. [ W: w1 |. j
1.创建简单的仿真系统
, N# E/ y2 G! ^( M# |& s! o0 L 如图是一个简单的电压源串两个1Ohm电阻的系统,我们要实现的是Ia2放大为Ia1的n倍,即Ia2=Ia1*n。9 P6 y; C6 z, [$ z' z1 V
5 m9 ]3 _* x2 e# C
2 D' K/ ~: t5 q$ s! w0 g& L, s. l9 z- i4 ?) @1 J+ n
2.创建与编辑自定义元件* p% l' {2 {% d9 w
; x: `( F2 r }& h
为紧凑一点,把这个过程放在一张图上,红色数字对于下面的1)~6)步。
% L) l2 f" b; u- ]; X 1)在画布空白处点右键Create-Component,在右边弹出一个侧边栏;$ q+ N. |# W! F& B+ H
" x/ x9 g4 p. f7 K* J3 o7 B& ]7 R
2)侧边栏中Component Wizard是元件创建向导,我们只需要填下元件的名字(Name),画布上元件显示的名称(Title),然后点Finish完成创建;
7 o) n! g, p P5 y, U8 G9 ]1 m! C2 \" v8 Y9 N2 Z+ Q# \1 S0 D) F
3)在元件上右键Edit Definition进入元件编辑;
{- w3 Z' e! k, p' k' @( E
7 p% r. x z: j! Z! H 4)元件编辑界面分为3部分:Graphic图形界面,Parameter参数界面,Script脚本界面(也就是常说的编程序的地方),通过Edit Definition首先进入图形编辑界面,利用工具栏Shape里面的直线Line和端口Port,在元件上引出一根线,末端为端子N1;(PSCAD4.2好像默认将端子Connection Type设置为Input类型,颜色为绿色,请注意改为Electrical类型)% ~8 p+ V [. F# X& T
1 ]8 h9 w' s. @, }& o) r 5)为便于元件的使用,希望在主电路直接通过修改参数的方式设置放大倍数、需要放大的电流。为此需要增加元件的参数,在Parameters界面内点击右键New parameter创建参数;
8 w! w' b4 V* @4 [! K% K* G% F% C5 O+ m: Z! \1 Q8 E
6)创建两个参数:需要放大的电流Current、放大倍数Scale,有2点需要注意:8 \1 M$ J+ n" V, U- v9 \( I$ E
E! c+ i4 J/ A- W/ G, J a)每个参数中还有其他条目,Description是参数名,Symbol是在Script中用到的变量名,不要混淆;7 p) v- R" P( Y6 P% u t
b)Current为text文本类型,因为需要放大的变量是通过文本作为参数输入的,Scale为integer整型,这点比较好理解,在此处我设置了放大倍数的上下限是1~1000,也可以修改为其他值;- W2 t) K% T% M, {
file:///C:/Users/a/Documents/My%20Knowledge/temp/d48ab359-523f-4567-b793-723d9ea7e439.png
% j) @2 ?4 s2 ^7 N( i5 d" D6 V8 ]! g h0 [# Q4 S, b
3.编写脚本1 M* t7 G3 D7 `5 E% n9 t- m( `
上一步中创建的元件是“死”的,这里才是整个元件的核心 ,在Script里面加入如下代码:
6 q' I$ _ N3 F6 o+ k+ G6 D% Y a. ~+ P
- #BEGIN
5 P' m. a% ?- u7 l! b - ENABCCIN($N1,$SS)=.TRUE.2 |* z G e4 G* V2 T
- #ENDBEGIN
0 R, v" s% W5 H - CCIN($N1,$SS)=($Scale-1)*$Current
复制代码
7 ]6 _( ?1 s. ^$ ~) Q8 Q! [
! l) ?, E+ R: M$ j! X9 z 注意,Script包含多个Segment,请确保该段代码是放在Fortran Segment中。" J8 i% [! a( j
6 Q! H( T3 [3 E& u! c; _ d. h) A; c2 }
解释一下这几行代码:
* Z+ k' R* d6 \
9 N3 z5 I6 ]3 q) `2 Z: o5 B 1) #BEGIN/#ENDBEGIN是一对指令,包含在其中的代码段只在仿真初始阶段运行一次,
* _: l d9 B. v f* g# Q0 @; v0 R& N! |% x3 w7 M
【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:
5 U0 B% O$ C& j( V4 H; b- IF(TIMEZERO) THEN1 q; I% I6 n; i/ p: U
- ENABCCIN($NA,$SS)=.TRUE.
' V7 U) c( W% W' E0 V; b# h2 ~ - ENDIF& h/ A$ B! M3 X
- CCIN($NA,$SS)=$Current*$Scale
复制代码 】! L9 ?: s: R) T: E
5 W6 ]7 G6 B! |8 H& w
) E$ ]( X# D4 a) h$ \ 2)ENABCCIN($N1,$SS)=.TRUE.开启CCIN功能,ENABCCIN的参数是端子名$NA、子系统名$SS,前面加的$是放在变量名前面的替代符。这里的变量指的是从元件端口、系统变量、元件参数。实际上,NA、SS只是一个代号,在PSCAD将script编译为fortran的过程中,会把NA、SS替换为真实的名字,形式有点像数组,便于EMTDC软件包的运算。2 O) s9 b8 G: L$ W. V9 W+ T( ~
# H9 _0 T* S9 g. \0 Y0 Z
3)CCIN($NA,$SS)=($Scale-1)*$Current
. _# F; C4 y! C$ B) A: |+ g CCIN产生一个接地电流源,电流大小为Current放大Scale-1倍,这条语句在BEGIN之外,说明其在每一个仿真步长中都会执行!Scal、Current是Parameter中的Symbol。
9 P, U2 L* a0 {( H2 A* v) M' Z
) i$ |4 `+ X8 ^/ U4.结果
% J" m; r s1 z0 V/ `3 M 将建好的元件和主电路连接好,增加监视元件,运行后查看波形。
2 J+ \/ o. a6 q
& E* ]: t- T& z: l8 \2 z; h( Z9 j7 N2 Z4 l+ o5 O
6 P% C/ j ?& Z
" E8 h. E5 C- D* W存在问题3 F: V/ h2 W" e% ]7 ?. u' l% p& M# N
该种方法放大电流时,放大倍数增大将使得结果发散,表现为数值非常大(可达到10的数百次方)或干脆没有值(NaN),原因不明。
& T5 W( [& X7 h3 ^& C: S, r 我的猜想是,这种方法在某些情况下可能带来网络方程无法求解的问题,其具体原因可能是方程矛盾、矩阵奇异之类的,电网络学得不太好,这里也只是瞎猜。希望大家能给点意见。
- a/ `+ M# [# b" K, q* R. e0 B
- \. i7 i* m1 ^: A2 X
' q' _( \! Y r0 E7 x. G# C% L. }; C# q2 c' A! P
6 L3 J' f3 S/ m# E4 m! }
PSCAD电流放大(包含4.5、4.2版本).rar
(763.01 KB, 下载次数: 4)
3 A1 o) M$ w7 ? |
|