TA的每日心情 | 郁闷 2017-4-3 23:39 |
|---|
签到天数: 10 天 连续签到: 4 天 [LV.3]偶尔看看II 累计签到:10 天 连续签到:4 天
|
马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!
您需要 登录 才可以下载或查看,没有账号?立即加入
×
由于项目要用到pscad的自定义元件功能,于是花了几天恶补了一下相关知识。正好看到说明书里面的CCIN功能,受到启发,正好可以实现电流放大功能。 D t/ J0 `7 b7 ? @
- V8 R4 @9 D+ t7 U. K- O# f1 f3 u
本帖提出一种通过电流放大实现的方法,原理、实施都特别简单,但是该方法存在一些问题。/ k% _* n; @! q
, j: R! a2 A! y8 _, n2 j 开此贴目的有三:
2 U; C8 ?0 i! f, }9 l8 q5 b8 M# s0 R* H! B( D8 I6 ~4 |
首先,抛砖引玉,分享经验,我想到的方法不一定好,希望能集思广益,看看应该如何改进;0 ~/ [% R, a' L1 Y/ J3 L
+ l' l( Z9 l' k3 ]2 t7 ~ 其次,通过一个实例帮助不熟悉自定义元件的人快速入门,并提供;
: q; T1 ~ E) f! D. f" m/ D 最后,帮助大家开拓思路,希望大家在建模时能多一种选择。
5 l7 R' ^1 S( n/ K$ W
4 g, \9 u" w) O% Z4 }3 E5 v% _' ?8 F8 [ Y; \! x( K
原理7 i6 {2 l! }8 R) x
通过在Fortran Segment中调用PSCAD自带CCIN电流源功能,在每个仿真步长内将需要放大的电流值乘以(n-1),所得结果赋给CCIN,使得自定义元件流出电流与原电流的加和为被放大电流的n倍。
) z2 ~: x3 y( b2 ^) P
' O9 O7 x+ b. H0 B! @( C8 r# B8 G$ A$ g( Z2 i
实现方法
! u* s5 _8 ~% m考虑到大家对PSCAD4.2较熟悉,以下介绍如何在PSCAD4.5中实现,最后的附件中有两个版本的示例。- `1 P3 u8 N$ r7 {( P
: Z$ z9 R9 u" t1 m9 c4 J+ _
! i' O* n [& d N4 ~
1.创建简单的仿真系统
* ~' |9 Z" y4 a% B 如图是一个简单的电压源串两个1Ohm电阻的系统,我们要实现的是Ia2放大为Ia1的n倍,即Ia2=Ia1*n。3 T, h! c* O/ A w y( L
* K: ~% E. G! k( u7 F% d: \) j
* _/ z( Z6 u& X9 n* o: ]9 o; R' u+ `8 `
2.创建与编辑自定义元件
8 y8 J$ n: l5 f2 q& Q
( X8 |+ x$ {# q 为紧凑一点,把这个过程放在一张图上,红色数字对于下面的1)~6)步。
' Q7 `) e0 U, a2 Q5 F. F7 V 1)在画布空白处点右键Create-Component,在右边弹出一个侧边栏;
) s( |, u( ?4 I. \% R( [5 |1 J" {3 I/ `5 a
2)侧边栏中Component Wizard是元件创建向导,我们只需要填下元件的名字(Name),画布上元件显示的名称(Title),然后点Finish完成创建;
; W! e& P" y: x9 `! |9 j" c- ]8 L( T, j- j8 z# w% l; h5 }+ b
3)在元件上右键Edit Definition进入元件编辑;
/ Q# {1 K) A% q4 i4 g: t* H* A0 y0 k+ s6 k! H) C. N
4)元件编辑界面分为3部分:Graphic图形界面,Parameter参数界面,Script脚本界面(也就是常说的编程序的地方),通过Edit Definition首先进入图形编辑界面,利用工具栏Shape里面的直线Line和端口Port,在元件上引出一根线,末端为端子N1;(PSCAD4.2好像默认将端子Connection Type设置为Input类型,颜色为绿色,请注意改为Electrical类型) B1 I. J5 G- B. E, E+ b6 [
' w4 S/ O. S: m. J 5)为便于元件的使用,希望在主电路直接通过修改参数的方式设置放大倍数、需要放大的电流。为此需要增加元件的参数,在Parameters界面内点击右键New parameter创建参数;
% P4 R6 X2 J' L* v3 s/ m9 Y
& y2 Y: [) B, ?6 h/ t2 M/ V 6)创建两个参数:需要放大的电流Current、放大倍数Scale,有2点需要注意:4 {7 O7 H. Q% ]+ Y0 J
: v9 I5 e- j# N
a)每个参数中还有其他条目,Description是参数名,Symbol是在Script中用到的变量名,不要混淆;
2 f2 `8 K% d; J. L4 O- O b)Current为text文本类型,因为需要放大的变量是通过文本作为参数输入的,Scale为integer整型,这点比较好理解,在此处我设置了放大倍数的上下限是1~1000,也可以修改为其他值;
/ \+ R. J! Y- x' O1 W( Kfile:///C:/Users/a/Documents/My%20Knowledge/temp/d48ab359-523f-4567-b793-723d9ea7e439.png
; ?0 \, k. D+ Y. m+ T; t4 a! ]% X, M, i7 d0 |
3.编写脚本
5 ^6 p& F7 {7 |! k) I6 ]8 B: _ 上一步中创建的元件是“死”的,这里才是整个元件的核心 ,在Script里面加入如下代码:8 L3 f! q" D, }1 b& o
6 ?8 t$ w5 |( ?
- #BEGIN
. q2 [, n3 o" l6 {; n1 y& d - ENABCCIN($N1,$SS)=.TRUE.) w* d8 y1 a$ Z# F; B/ X% U$ o+ Y
- #ENDBEGIN
1 P: \& Y/ X1 r b - CCIN($N1,$SS)=($Scale-1)*$Current
复制代码
* X [" Z. Q2 T' U$ f1 k$ T: L. Q& G+ d4 J& N9 Y
注意,Script包含多个Segment,请确保该段代码是放在Fortran Segment中。! i# ]0 K* ]% A& P5 B
o+ j0 d9 G9 [$ Q. ~
解释一下这几行代码:% W& J" _( m0 g; w( k1 {6 c# ^
8 o- C5 \( }( H# K/ A8 ^3 h) D5 T4 u 1) #BEGIN/#ENDBEGIN是一对指令,包含在其中的代码段只在仿真初始阶段运行一次, C; W# M3 W- Q$ [: a
! E( g* e! @$ o& p
【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:3 v$ L& C( D' \7 s
- IF(TIMEZERO) THEN
) P5 \% D \3 g! K* v - ENABCCIN($NA,$SS)=.TRUE.
2 }$ ?+ k6 A# a" y; K6 f1 I - ENDIF
: S* a, X$ _2 p4 U/ B+ \/ U - CCIN($NA,$SS)=$Current*$Scale
复制代码 】
" C! ^2 K7 h. l0 b* W; Y: x' Z) W; |, j
3 `# W9 @. ?% `' ]/ A% c3 ~
2)ENABCCIN($N1,$SS)=.TRUE.开启CCIN功能,ENABCCIN的参数是端子名$NA、子系统名$SS,前面加的$是放在变量名前面的替代符。这里的变量指的是从元件端口、系统变量、元件参数。实际上,NA、SS只是一个代号,在PSCAD将script编译为fortran的过程中,会把NA、SS替换为真实的名字,形式有点像数组,便于EMTDC软件包的运算。
# A: a. \* Y! b1 B% R/ ^; D+ I! ~0 f5 X3 G4 ?( w7 t2 f3 ]
3)CCIN($NA,$SS)=($Scale-1)*$Current
2 Z+ F {6 k0 @6 M: Q6 [ CCIN产生一个接地电流源,电流大小为Current放大Scale-1倍,这条语句在BEGIN之外,说明其在每一个仿真步长中都会执行!Scal、Current是Parameter中的Symbol。
1 U1 x. \, H- q3 x8 Z
: S t& W0 ?" y K! i- u4.结果; B) E; O& ^0 y2 M* f5 D4 h
将建好的元件和主电路连接好,增加监视元件,运行后查看波形。
( i& R( l- M5 h& S) @3 B& x! v
' @& J& ]0 K p& k& D3 v
! i$ T6 U( }- w ]- l, l, C$ ~; {( m
6 h, w P+ C: `+ [( A+ r
存在问题3 F' q9 P7 ?3 |3 l+ _1 S
该种方法放大电流时,放大倍数增大将使得结果发散,表现为数值非常大(可达到10的数百次方)或干脆没有值(NaN),原因不明。
( U) x6 d8 v k" ~2 s; h1 G( H 我的猜想是,这种方法在某些情况下可能带来网络方程无法求解的问题,其具体原因可能是方程矛盾、矩阵奇异之类的,电网络学得不太好,这里也只是瞎猜。希望大家能给点意见。( M( u4 J5 b+ A& ?; I' X! }
3 A0 G0 h0 |+ i' s4 K7 i" U9 B# n) W" t. E
: m3 B( {8 g: s/ [' @& p
d; |2 @$ y9 K. e
PSCAD电流放大(包含4.5、4.2版本).rar
(763.01 KB, 下载次数: 4)
7 Z+ s4 e. s$ J {* ?7 p |
|