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

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

通过自定义元件实现电流跟踪放大

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

    连续签到: 4 天

    [LV.3]偶尔看看II

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

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

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

    ×
        由于项目要用到pscad的自定义元件功能,于是花了几天恶补了一下相关知识。正好看到说明书里面的CCIN功能,受到启发,正好可以实现电流放大功能。
    + j4 |5 i- v$ b0 o% D3 b: L, R0 l7 [/ S# l: H% V& u1 h

      g* j& {! y; n    本帖提出一种通过电流放大实现的方法,原理、实施都特别简单,但是该方法存在一些问题。' R, w" w. _- G3 U$ n7 ?- {

    , y3 O5 o( t5 {* B; v    开此贴目的有三:
    3 _0 w! D: c- h4 K! D# V0 Q
    % L1 n, ?* u7 c" r+ y
          首先,抛砖引玉,分享经验,我想到的方法不一定好,希望能集思广益,看看应该如何改进;
    $ M5 E/ r: a$ i( S- W$ G
    6 P6 p5 ]0 J0 e3 {' y1 A
          其次,通过一个实例帮助不熟悉自定义元件的人快速入门,并提供;
    # u9 k7 H; z- L0 J0 I
          最后,帮助大家开拓思路,希望大家在建模时能多一种选择。
    7 R8 A0 w1 Y% K! g* Q
    - U/ a# ~4 g8 }: K" u' b

    3 _2 h3 J2 r/ n  ?原理
    " b7 b: x) L: w3 h. b    通过在Fortran Segment中调用PSCAD自带CCIN电流源功能,在每个仿真步长内将需要放大的电流值乘以(n-1),所得结果赋给CCIN,使得自定义元件流出电流与原电流的加和为被放大电流的n倍。
    / E' _, e. @& ~) ^7 b; o8 L7 I
      z: Z1 ?+ {! `) r0 R2 Y" x

    % V4 c4 S& E+ }1 w& W/ X实现方法
    4 b6 }1 m4 A$ f" D8 U0 Q考虑到大家对PSCAD4.2较熟悉,以下介绍如何在PSCAD4.5中实现,最后的附件中有两个版本的示例。
    6 Z2 S7 y/ o. V& a
    ' u) F% ~$ U; C7 n9 B7 X

    . K2 a4 |+ b9 T2 }4 D( `7 @1.创建简单的仿真系统2 ^# m3 y6 V% B- b' r3 T
        如图是一个简单的电压源串两个1Ohm电阻的系统,我们要实现的是Ia2放大为Ia1的n倍,即Ia2=Ia1*n。
    5 B% H" t) v- V7 @3 N2 X

    5 u* L4 k# r- K/ n
    简单系统.jpg

    9 ~/ s& N- a$ [" b* G  r
    9 j5 q1 [; H5 d5 e9 B6 _2.创建与编辑自定义元件' G0 L/ @$ c$ E, D+ j6 j
    * \9 H' `3 p- {: k& z3 G
        为紧凑一点,把这个过程放在一张图上,红色数字对于下面的1)~6)步。
    创建与编辑自定义元件.jpg

    . r. R- g5 v' U2 J& X. \# L    1)在画布空白处点右键Create-Component,在右边弹出一个侧边栏;, l+ b* ~) [3 V& O! V  j* ?( w* ]) L
    - [0 h: P$ w* z
        2)侧边栏中Component Wizard是元件创建向导,我们只需要填下元件的名字(Name),画布上元件显示的名称(Title),然后点Finish完成创建;6 E9 A* `2 s: i; b- z  l. a, N9 ]7 R

    ; z; x  N+ r% v) [6 A    3)在元件上右键Edit Definition进入元件编辑;; E6 A, r  w% N' a

    ' _5 R, |0 H* x6 }' b* d8 }* i, M    4)元件编辑界面分为3部分:Graphic图形界面,Parameter参数界面,Script脚本界面(也就是常说的编程序的地方),通过Edit Definition首先进入图形编辑界面,利用工具栏Shape里面的直线Line和端口Port,在元件上引出一根线,末端为端子N1;(PSCAD4.2好像默认将端子Connection Type设置为Input类型,颜色为绿色,请注意改为Electrical类型)
    5 A3 Q: V4 n: U
    2 U3 _0 r6 u" P5 m6 B$ I0 L8 v8 e3 }
        5)为便于元件的使用,希望在主电路直接通过修改参数的方式设置放大倍数、需要放大的电流。为此需要增加元件的参数,在Parameters界面内点击右键New parameter创建参数;
    ! m- q. o7 l8 L+ I; s. x+ [$ J, W9 T) B& w0 {+ m, I
        6)创建两个参数:需要放大的电流Current、放大倍数Scale,有2点需要注意:
    + T: B5 Q9 e+ V$ `3 [& }' u
    . s1 K+ U! n* N( O3 e: A6 w4 L& G        a)每个参数中还有其他条目,Description是参数名,Symbol是在Script中用到的变量名,不要混淆;
    , E7 m2 M) h1 V
            b)Current为text文本类型,因为需要放大的变量是通过文本作为参数输入的,Scale为integer整型,这点比较好理解,在此处我设置了放大倍数的上下限是1~1000,也可以修改为其他值;$ }+ K7 l+ ~0 Z$ w4 K
    file:///C:/Users/a/Documents/My%20Knowledge/temp/d48ab359-523f-4567-b793-723d9ea7e439.png
    : H2 Q, `3 y, W( I5 f/ S
    - o- M# P5 W0 b3 _2 ]* P
    3.编写脚本
    $ N! `# P: y7 J& V0 `     上一步中创建的元件是“死”的,这里才是整个元件的核心 ,在Script里面加入如下代码:3 s) A, u" X3 N( q7 o$ S
    4 T+ C( i. A1 x; Z9 E) q4 h
    1. #BEGIN% `( H% Y" m: f# G9 M9 ^
    2.     ENABCCIN($N1,$SS)=.TRUE.
      4 Y' x) m. O* e% L+ a& f8 h0 [
    3. #ENDBEGIN
      : Y" U; c* _' O% ^8 T
    4.     CCIN($N1,$SS)=($Scale-1)*$Current  
    复制代码

    & u) _% o; c/ h$ c+ U, R+ M4 |( F5 z5 M% u- f
        注意,Script包含多个Segment,请确保该段代码是放在Fortran Segment中。
    $ n3 \7 V  w$ \8 P8 e0 U- a3 ~' z$ E
        解释一下这几行代码:
    3 t" L6 G" l( b6 B/ `
    " W' n  m3 N4 V) M; E( s& F, c4 A
       1) #BEGIN/#ENDBEGIN是一对指令,包含在其中的代码段只在仿真初始阶段运行一次,
    % Z. {' G. \) |, n

    # q7 j5 T) Z7 I( J! X3 e' `
        【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:& b- ?- u2 T4 J+ F5 S; Q
    1.     IF(TIMEZERO) THEN% \* Z( L( H7 K$ j% J8 d2 M  |
    2.     ENABCCIN($NA,$SS)=.TRUE.
      9 O1 ]# @! X; {: v+ D
    3.     ENDIF
        o% h* f1 F1 `+ b6 A% |  |
    4.     CCIN($NA,$SS)=$Current*$Scale
    复制代码
    】

    # D: W- b/ K: Z  l( }1 k2 ~
    0 y9 |# M$ o, C9 {
    8 C" V( a& j2 s
        2)ENABCCIN($N1,$SS)=.TRUE.开启CCIN功能,ENABCCIN的参数是端子名$NA、子系统名$SS,前面加的$是放在变量名前面的替代符。这里的变量指的是从元件端口、系统变量、元件参数。实际上,NA、SS只是一个代号,在PSCAD将script编译为fortran的过程中,会把NA、SS替换为真实的名字,形式有点像数组,便于EMTDC软件包的运算。) _  x+ a: n4 O8 D& h

    ( ~( }1 m9 z. M/ R2 ]    3)CCIN($NA,$SS)=($Scale-1)*$Current: \- Q* _+ k  I# k% j5 C- m9 ?6 ^
        CCIN产生一个接地电流源,电流大小为Current放大Scale-1倍,这条语句在BEGIN之外,说明其在每一个仿真步长中都会执行!Scal、Current是Parameter中的Symbol。
    ) R& x. b( j6 |, T% h- E$ O7 z
    . g/ r( l- a4 W7 h7 D: U7 _5 f( t: j
    4.结果
    0 {9 G" h, D& ^* t) H
        将建好的元件和主电路连接好,增加监视元件,运行后查看波形。
    : m/ \9 }! l7 }. s

    8 |; {" W; x: K: W; T0 }* y, j
    结果验证.jpg
    + V& h4 a' v; F' x9 x, h9 l5 w

    3 I# _9 D7 T  r1 A- [. w9 N6 f* l/ f6 }1 d
    存在问题
    0 W" W2 X' C7 m) r    该种方法放大电流时,放大倍数增大将使得结果发散,表现为数值非常大(可达到10的数百次方)或干脆没有值(NaN),原因不明。2 `( \0 d) \2 ]1 M* u1 g. J2 e/ O1 G
        我的猜想是,这种方法在某些情况下可能带来网络方程无法求解的问题,其具体原因可能是方程矛盾、矩阵奇异之类的,电网络学得不太好,这里也只是瞎猜。希望大家能给点意见。
      ~0 p0 `+ p5 t# g8 \  a, _% ~
    - a1 n6 z5 K" Q+ g! j( }% D% A$ s
    / k: `4 @' J# _; P, i- V* ]' z% X) c) o+ w8 [6 r7 _2 K

    . _0 d" P& c0 V  K/ p. @ PSCAD电流放大(包含4.5、4.2版本).rar (763.01 KB, 下载次数: 4)
    4 [" h, [, U$ m3 [- F) S
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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

    累计签到:275 天
    连续签到: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 编辑 7 Z# n3 t$ y& P) E) W0 y# i$ _8 g6 `

    8 d+ C8 ?& \. u- A% J' P- V这么好的帖子,顶一下
    : Z/ A. G5 K' s" b2 @8 {; l7 P
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
    回复 推荐 踩下

    使用道具 举报

  • 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, 2026-11-4 01:17

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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