设为首页收藏本站|繁體中文 快速切换版块

 找回密码
 立即加入
搜索
查看: 3234|回复: 15

[经验] 通过自定义元件实现电流跟踪放大

[复制链接]
  • TA的每日心情
    郁闷
    2017-4-3 23:39
  • 签到天数: 10 天

    连续签到: 4 天

    [LV.3]偶尔看看II

    累计签到:10 天
    连续签到:4 天
    发表于 2015-10-28 21:34:17 | 显示全部楼层 |阅读模式

    马上加入,结交更多好友,共享更多资料,让你轻松玩转电力研学社区!

    您需要 登录 才可以下载或查看,没有账号?立即加入

    ×
        由于项目要用到pscad的自定义元件功能,于是花了几天恶补了一下相关知识。正好看到说明书里面的CCIN功能,受到启发,正好可以实现电流放大功能。3 n. U0 m9 D; d

    - l! ^6 r& ?9 r% h0 P

    ( Z  v  V9 }/ B& R( d; i    本帖提出一种通过电流放大实现的方法,原理、实施都特别简单,但是该方法存在一些问题* P1 u, C0 |, D; K! f- u
    * Q% U  H5 z* {  l6 X
        开此贴目的有三:
    . R8 }! H- H  o* D) J4 j0 f' E
    / a" g+ w6 f( P# k
          首先,抛砖引玉,分享经验,我想到的方法不一定好,希望能集思广益,看看应该如何改进;

    ( x0 v1 R4 o& o- g3 Z  C( \: T  E6 t+ F1 a2 S
          其次,通过一个实例帮助不熟悉自定义元件的人快速入门,并提供;
    5 [: E; N- U( v5 [  @. B0 L0 K! Z
          最后,帮助大家开拓思路,希望大家在建模时能多一种选择。
    , V& L! |* s# ]
    : p9 a& y# K  T8 _* r# v

    1 o( N% u4 j! k6 g/ i4 K5 Q, I原理
    , r5 P  r6 D8 ~! ?0 N4 m. o    通过在Fortran Segment中调用PSCAD自带CCIN电流源功能,在每个仿真步长内将需要放大的电流值乘以(n-1),所得结果赋给CCIN,使得自定义元件流出电流与原电流的加和为被放大电流的n倍。. ?$ L! u$ d$ p8 Y- K* g2 T/ S
    - T& q2 u9 ~' A

    / [9 Z# X" |; a8 S$ X6 o实现方法/ C, ?# w; \: p: T
    考虑到大家对PSCAD4.2较熟悉,以下介绍如何在PSCAD4.5中实现,最后的附件中有两个版本的示例。. j3 Y" Q, x  `( b; q1 U
    % x& h% O% B# X. l! ~4 i6 s; J
    - x) \. b# k4 Z6 E, Z/ o4 @' }) @
    1.创建简单的仿真系统
    " h9 Z5 A. l7 F! |    如图是一个简单的电压源串两个1Ohm电阻的系统,我们要实现的是Ia2放大为Ia1的n倍,即Ia2=Ia1*n。' n. w; B! m3 Y

    5 x7 {* q/ S9 u' A
    简单系统.jpg

    + i6 M3 Q* X  Q* ], B3 T5 e7 D0 F! s  C2 w: i3 T; n
    2.创建与编辑自定义元件; y/ G. M" V; g' R9 f4 Y

    - f' l5 R; E, C# k* }" ]    为紧凑一点,把这个过程放在一张图上,红色数字对于下面的1)~6)步。
    创建与编辑自定义元件.jpg

    : U) F  |: Z) V& J    1)在画布空白处点右键Create-Component,在右边弹出一个侧边栏;- V& b/ l6 m* b

    % n% F1 I* s8 R    2)侧边栏中Component Wizard是元件创建向导,我们只需要填下元件的名字(Name),画布上元件显示的名称(Title),然后点Finish完成创建;
    / x% m% k! \& y0 O+ I

    2 z# ~; c  s# v* n1 e    3)在元件上右键Edit Definition进入元件编辑;8 a3 B% C' Q" s" l1 S* I2 ]

    5 w4 @3 z' C0 S' L    4)元件编辑界面分为3部分:Graphic图形界面,Parameter参数界面,Script脚本界面(也就是常说的编程序的地方),通过Edit Definition首先进入图形编辑界面,利用工具栏Shape里面的直线Line和端口Port,在元件上引出一根线,末端为端子N1;(PSCAD4.2好像默认将端子Connection Type设置为Input类型,颜色为绿色,请注意改为Electrical类型& p/ w3 i+ |9 a' A3 _' Z& f5 Z# r
    : ^3 [+ Y7 Z' P% }8 A
        5)为便于元件的使用,希望在主电路直接通过修改参数的方式设置放大倍数、需要放大的电流。为此需要增加元件的参数,在Parameters界面内点击右键New parameter创建参数;+ f$ ]) x0 c5 E0 {: h2 y
    & i+ f6 a+ j+ k7 ~% _" }; @7 a
        6)创建两个参数:需要放大的电流Current、放大倍数Scale,有2点需要注意:/ D/ ^) S0 i4 T
    8 t  r, D  h  R% ]. S. k, V
            a)每个参数中还有其他条目,Description是参数名,Symbol是在Script中用到的变量名,不要混淆;
      b1 Z1 S  [3 G; e  ~( m1 m
            b)Current为text文本类型,因为需要放大的变量是通过文本作为参数输入的,Scale为integer整型,这点比较好理解,在此处我设置了放大倍数的上下限是1~1000,也可以修改为其他值;
    / H: l( ^# h8 }; w' m; {file:///C:/Users/a/Documents/My%20Knowledge/temp/d48ab359-523f-4567-b793-723d9ea7e439.png
    $ o4 o% l6 P4 j' }" D( Q! L
    . P! Q- C" {# d6 N" Q: N; h5 R$ B, |
    3.编写脚本
    8 c" z% f) E& Y/ t. H5 R     上一步中创建的元件是“死”的,这里才是整个元件的核心 ,在Script里面加入如下代码:. b$ E$ |1 J# |# L
    : E: G! o! i" d
    1. #BEGIN: N- [3 t" ]+ o, ?9 G& \& g
    2.     ENABCCIN($N1,$SS)=.TRUE.: B5 {6 Q5 {- j1 g) g! R) {/ |
    3. #ENDBEGIN
      ! I* Y. d$ k5 w/ l: t0 h. D7 u
    4.     CCIN($N1,$SS)=($Scale-1)*$Current  
    复制代码
    # A. s* u: y0 j( n
    * P$ d& ?7 c) P9 Z" J1 A# t. [' O
        注意,Script包含多个Segment,请确保该段代码是放在Fortran Segment中
    - i5 q# Z) O9 q4 o6 Y# t( l, G! R: ^" |" Y' g4 E
        解释一下这几行代码:
    5 G8 Z6 N6 j- Z- S% n# ?

    / A! O$ a2 x- |   1) #BEGIN/#ENDBEGIN是一对指令,包含在其中的代码段只在仿真初始阶段运行一次,

    ; ^. X* I# i5 P
    ( k" W" Q; \  l
        【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:
    2 I& t- K7 H3 T3 c% Q
    1.     IF(TIMEZERO) THEN
      + R- x: Y# d: v; w" A& F3 }
    2.     ENABCCIN($NA,$SS)=.TRUE.
      " }6 r4 ]2 R4 B9 ?; V
    3.     ENDIF8 a! W5 H1 Q- z; H8 l6 ]
    4.     CCIN($NA,$SS)=$Current*$Scale
    复制代码
    , q: ?7 \5 `3 T) y/ M! t, ~

    . i. y2 Z& z0 W9 E# Z6 X

    $ }+ Z4 x! N" S+ l    2)ENABCCIN($N1,$SS)=.TRUE.开启CCIN功能,ENABCCIN的参数是端子名$NA、子系统名$SS,前面加的$是放在变量名前面的替代符。这里的变量指的是从元件端口、系统变量、元件参数。实际上,NA、SS只是一个代号,在PSCAD将script编译为fortran的过程中,会把NA、SS替换为真实的名字,形式有点像数组,便于EMTDC软件包的运算。  C  D1 H: ?% d% D! l* n, ?8 s1 `

    * C' Z% R& ^  d' M8 f    3)CCIN($NA,$SS)=($Scale-1)*$Current  i2 s4 s* X/ l( i4 M
        CCIN产生一个接地电流源,电流大小为Current放大Scale-1倍,这条语句在BEGIN之外,说明其在每一个仿真步长中都会执行!Scal、Current是Parameter中的Symbol。
    + o' t" U5 F6 u, Z. C. {& O  m
    : |7 a. o7 ?3 d  }, ~5 c$ N/ r( V& H
    4.结果
    1 m( f( w  ]7 t: _5 m$ P- S
        将建好的元件和主电路连接好,增加监视元件,运行后查看波形。  N, X2 w. o9 f. I% H" R
    + x4 J% ^5 O8 C  _, ~: I
    结果验证.jpg

    * Y7 i2 {, t- d! [0 ~, Z
    : r  B) A0 c$ n) d; }
      r+ s3 a; f, W& F& q7 r存在问题
    3 W6 F9 T& O. Y$ L6 r    该种方法放大电流时,放大倍数增大将使得结果发散,表现为数值非常大(可达到10的数百次方)或干脆没有值(NaN),原因不明。6 M: a* R* J( l" \
        我的猜想是,这种方法在某些情况下可能带来网络方程无法求解的问题,其具体原因可能是方程矛盾、矩阵奇异之类的,电网络学得不太好,这里也只是瞎猜。希望大家能给点意见。' E1 ~7 j; R; y3 j

    $ [& v* i1 E6 d! X8 H* a- _" ]; x* `# Y2 @0 r/ B7 i5 E" D4 U1 p3 F
    5 B8 M1 y. U& M5 X8 h3 e/ b/ g2 v
    6 y/ b, e' X+ O7 |$ b9 A8 b4 }
    PSCAD电流放大(包含4.5、4.2版本).rar (763.01 KB, 下载次数: 3)
    - W% Y4 L) t# A3 l( R2 `! E( P
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    愤怒
    2021-4-6 14:21
  • 签到天数: 76 天

    连续签到: 1 天

    [LV.6]常住居民II

    累计签到:76 天
    连续签到:1 天
    发表于 2019-3-28 14:33:29 | 显示全部楼层
    scale.png 这是按照PSCAD官网的scaling模型搭建出来的,实现了电流的跟踪放大,用的理想受控源就是CCIN的模型表现。只是需要注意的就是这个模块放置的位置,不然会有部分电路被短路掉,比如YnD接线方式的变压器,注入电流在D一侧就会短路变压器。
    scaling.png
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

  • TA的每日心情
    开心
    2018-11-17 19:58
  • 签到天数: 14 天

    连续签到: 1 天

    [LV.3]偶尔看看II

    累计签到:14 天
    连续签到:1 天
    发表于 2018-3-8 10:06:40 | 显示全部楼层
    #BEGIN/#ENDBEGIN里面的程序都仿真开始会跑一次对吧,为什么我加了之后,没有跑里面的程序
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

  • TA的每日心情
    难过
    2021-6-12 16:44
  • 签到天数: 271 天

    连续签到: 2 天

    [LV.8]以坛为家I

    累计签到:273 天
    连续签到:1 天
    发表于 2019-3-26 10:31:39 | 显示全部楼层
    学习了!还不是很明白 等研究一下 再做交流
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

    该用户从未签到

    尚未签到

    发表于 2015-10-31 18:29:11 | 显示全部楼层
    很好,很完整的例子,感谢楼主分享!
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • TA的每日心情
    开心
    2017-1-5 08:51
  • 签到天数: 2 天

    连续签到: 2 天

    [LV.1]初来乍到

    累计签到:2 天
    连续签到:2 天
    发表于 2015-11-3 21:33:11 | 显示全部楼层
    附件下载不到了  我照着楼主说的做了一下 没成功  想请教一下  【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:  不懂什么意思
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】

    该用户从未签到

    尚未签到

    发表于 2018-3-18 18:09:13 | 显示全部楼层
    强烈支持楼主ing……
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-12-23 14:39
  • 签到天数: 281 天

    连续签到: 1 天

    [LV.8]以坛为家I

    累计签到:281 天
    连续签到:1 天
    发表于 2019-3-25 23:41:45 | 显示全部楼层
    本帖最后由 stoat 于 2019-3-26 10:32 编辑
    4 H2 x0 c# t4 n0 V# a+ H3 W1 G6 Y6 ]% s
    这么好的帖子,顶一下  z1 j# d( o5 I/ F& \
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

  • TA的每日心情
    开心
    2019-3-26 10:43
  • 签到天数: 81 天

    连续签到: 1 天

    [LV.6]常住居民II

    累计签到:81 天
    连续签到:1 天
    发表于 2019-3-26 10:50:17 | 显示全部楼层
    赞楼主的原创,认真学习中。。,谢谢
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

  • TA的每日心情
    郁闷
    2019-12-22 11:38
  • 签到天数: 241 天

    连续签到: 1 天

    [LV.8]以坛为家I

    累计签到:241 天
    连续签到:1 天
    发表于 2019-3-26 10:51:53 | 显示全部楼层
    学习到了感谢分享
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即加入

    本版积分规则

    招聘斑竹

    小黑屋|手机版|APP下载(beta)|Archiver|电力研学网 ( 赣ICP备12000811号-1|赣公网安备36040302000210号 )|网站地图

    GMT+8, 2024-4-24 19:49

    Powered by Discuz! X3.5 Licensed

    © 2001-2024 Discuz! Team.

    快速回复 返回顶部 返回列表