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

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

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

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

    连续签到: 4 天

    [LV.3]偶尔看看II

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

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

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

    ×
        由于项目要用到pscad的自定义元件功能,于是花了几天恶补了一下相关知识。正好看到说明书里面的CCIN功能,受到启发,正好可以实现电流放大功能。" J" q  I$ Q  {; ?2 L: b  j0 l
    3 H2 D) P9 z9 A  t- e+ X8 d

    $ A' y" y/ N& ?( D2 M2 z    本帖提出一种通过电流放大实现的方法,原理、实施都特别简单,但是该方法存在一些问题
    ! ]$ S9 S8 t7 V$ O) R1 ~% l2 d. O
        开此贴目的有三:

    : E4 Q4 |6 p9 p# ]  z
    & q, e- r. X4 h      首先,抛砖引玉,分享经验,我想到的方法不一定好,希望能集思广益,看看应该如何改进;
    + Z6 f  H8 K+ O* p
    # \% w, l# ^- `. ?
          其次,通过一个实例帮助不熟悉自定义元件的人快速入门,并提供;

    - P  ?, L' V# F( t* l6 T      最后,帮助大家开拓思路,希望大家在建模时能多一种选择。
    ! I5 x0 K! y; s. i) J9 U9 t3 y

    # g) ]& [1 E# y3 _" Q6 v' I
      p6 D" T$ \) Y6 D$ T
    原理& \5 c9 i  [8 u' x' c) I  Q/ f6 n' ]
        通过在Fortran Segment中调用PSCAD自带CCIN电流源功能,在每个仿真步长内将需要放大的电流值乘以(n-1),所得结果赋给CCIN,使得自定义元件流出电流与原电流的加和为被放大电流的n倍。
    3 s$ g3 u6 x* g9 j, o  V4 s! v# |1 S3 R4 x2 u) p
    ( c  y6 k3 E, Y: c9 P
    实现方法& p4 o" k' |% c  m, i* q
    考虑到大家对PSCAD4.2较熟悉,以下介绍如何在PSCAD4.5中实现,最后的附件中有两个版本的示例。
    5 e  F4 @; S+ D
    & x4 Q9 |* t; r6 G+ P% B
    $ y. ]6 g9 ?2 s, n
    1.创建简单的仿真系统; i  f0 t& e6 Y: c7 E; r* m! K$ l
        如图是一个简单的电压源串两个1Ohm电阻的系统,我们要实现的是Ia2放大为Ia1的n倍,即Ia2=Ia1*n。+ P* \& G3 F( j8 O$ Y- Z+ n
    " I# C" w0 I, h2 M, j* q$ c
    简单系统.jpg
    ' [4 e4 [- h0 S& B# x

    3 @+ t# [5 }" Q2.创建与编辑自定义元件% A9 t8 y, S# I5 U1 a+ I

    2 W. d  e/ N! B' i! z0 C0 \+ l    为紧凑一点,把这个过程放在一张图上,红色数字对于下面的1)~6)步。
    创建与编辑自定义元件.jpg

    ! H  r2 b. W+ X    1)在画布空白处点右键Create-Component,在右边弹出一个侧边栏;
    ( y- Q. u; I; p) z: |5 Z8 j

    9 g# H2 X" ?2 V6 i    2)侧边栏中Component Wizard是元件创建向导,我们只需要填下元件的名字(Name),画布上元件显示的名称(Title),然后点Finish完成创建;
    6 E+ l5 ^5 ?/ O8 D. I
    # [) D2 L/ @. H( [
        3)在元件上右键Edit Definition进入元件编辑;6 i8 u- [* X  ~, X: \  s5 [* ^
    / W" s; T, K/ H
        4)元件编辑界面分为3部分:Graphic图形界面,Parameter参数界面,Script脚本界面(也就是常说的编程序的地方),通过Edit Definition首先进入图形编辑界面,利用工具栏Shape里面的直线Line和端口Port,在元件上引出一根线,末端为端子N1;(PSCAD4.2好像默认将端子Connection Type设置为Input类型,颜色为绿色,请注意改为Electrical类型/ H* S( X2 C. {* }. E9 L

    9 u& g# J, s8 T2 J+ I
        5)为便于元件的使用,希望在主电路直接通过修改参数的方式设置放大倍数、需要放大的电流。为此需要增加元件的参数,在Parameters界面内点击右键New parameter创建参数;
    # s( D1 j% D+ t% ]8 O6 `. Z* }. r( a' ]7 [
        6)创建两个参数:需要放大的电流Current、放大倍数Scale,有2点需要注意:
    + U) ~6 ^( e, F9 M7 T
    0 Q- C* y3 X5 r8 v. \: C5 [        a)每个参数中还有其他条目,Description是参数名,Symbol是在Script中用到的变量名,不要混淆;

    . [) l' v- g- X& o+ ~& E        b)Current为text文本类型,因为需要放大的变量是通过文本作为参数输入的,Scale为integer整型,这点比较好理解,在此处我设置了放大倍数的上下限是1~1000,也可以修改为其他值;
    ) Z) @6 e8 l  b) r* L" zfile:///C:/Users/a/Documents/My%20Knowledge/temp/d48ab359-523f-4567-b793-723d9ea7e439.png
    ' m( |& \8 d! N! O  L+ ?

    7 _) ^9 I  t0 V% z3.编写脚本
    # [2 D+ a* `6 `% b; }' g" I* y     上一步中创建的元件是“死”的,这里才是整个元件的核心 ,在Script里面加入如下代码:
    ! j0 B5 l! n/ q, U1 h, o' C
    8 _) s) Z! C6 _) A4 c0 {" G
    1. #BEGIN9 F6 `  ~0 A. p+ ^# b$ t) ^) m( G
    2.     ENABCCIN($N1,$SS)=.TRUE.
      1 `. T4 @6 V2 r
    3. #ENDBEGIN
      / x; {3 N# \# I2 E
    4.     CCIN($N1,$SS)=($Scale-1)*$Current  
    复制代码

    8 h6 N$ Z( ]0 u' Q  w, |; L5 U8 L5 I$ [* t8 d
        注意,Script包含多个Segment,请确保该段代码是放在Fortran Segment中
    . S6 v+ [7 i- c) U9 d% F% [( H9 w/ @! E0 H; Q" ^
        解释一下这几行代码:
      @& L+ R+ s: O$ Q; v
    " H! H! O0 l. q8 f
       1) #BEGIN/#ENDBEGIN是一对指令,包含在其中的代码段只在仿真初始阶段运行一次,

    6 R! N4 T. ?. q1 k
    2 S$ \3 f0 e! J% Q6 k
        【如不识别该指令语句,请用IF(TIMEZERO) THEN...ENDIF:
    $ q0 x. L. Y5 U
    1.     IF(TIMEZERO) THEN: M9 Z2 N5 V6 c8 h3 @
    2.     ENABCCIN($NA,$SS)=.TRUE.
      ; V9 o8 n# W# `" J, H" c- C
    3.     ENDIF
      5 y# V; I4 M. H  g' y6 P; Q, W+ N
    4.     CCIN($NA,$SS)=$Current*$Scale
    复制代码
    # k1 r% r# ^' p0 p; \

    8 T. j. w$ Y1 E1 q- y7 z/ L( {
    4 G- m& d, j+ K7 t
        2)ENABCCIN($N1,$SS)=.TRUE.开启CCIN功能,ENABCCIN的参数是端子名$NA、子系统名$SS,前面加的$是放在变量名前面的替代符。这里的变量指的是从元件端口、系统变量、元件参数。实际上,NA、SS只是一个代号,在PSCAD将script编译为fortran的过程中,会把NA、SS替换为真实的名字,形式有点像数组,便于EMTDC软件包的运算。" J- K; B4 m( V9 I9 |% O$ `
    : U1 i/ H' l3 R# i% n/ j
        3)CCIN($NA,$SS)=($Scale-1)*$Current
    9 U7 E* P& ~( u/ J# w. w9 X    CCIN产生一个接地电流源,电流大小为Current放大Scale-1倍,这条语句在BEGIN之外,说明其在每一个仿真步长中都会执行!Scal、Current是Parameter中的Symbol。
    . H7 ^9 d' a$ ^& k- T
    0 z3 v( b. \3 m8 N9 \0 l* @& X
    4.结果

    9 s6 a1 R' E* T2 X6 T    将建好的元件和主电路连接好,增加监视元件,运行后查看波形。
    1 E% z! Z7 U) d" Z. g' F3 E

    , u- \* I2 @4 o' J' x1 r6 v
    结果验证.jpg

    " Y% p5 l1 @) p3 A7 C& h2 P! C! ~: S1 I1 M; ?: Y
    - D+ c# }' Y4 L2 f- q
    存在问题
    . {& F+ }9 j* Y/ Y4 k. z& ?) q    该种方法放大电流时,放大倍数增大将使得结果发散,表现为数值非常大(可达到10的数百次方)或干脆没有值(NaN),原因不明。
    $ Z: _  P- Y. o- _  M0 a! E    我的猜想是,这种方法在某些情况下可能带来网络方程无法求解的问题,其具体原因可能是方程矛盾、矩阵奇异之类的,电网络学得不太好,这里也只是瞎猜。希望大家能给点意见。
    * W" k- w% H1 B) m# U4 l
    - _' |( Z1 S2 b* q, \1 i
    7 d' k3 Q" ^: V- g% `& T7 f- }9 w, b- g$ z, l. j5 C6 S
    2 {5 X8 @# r$ p5 O+ J) A* G
    PSCAD电流放大(包含4.5、4.2版本).rar (763.01 KB, 下载次数: 4) 3 ]4 o! e# k9 T  Y/ E- ?
    "真诚赞赏,手留余香"
    还没有人打赏,支持一下
    楼主热帖
    帖文化:【文明发帖 和谐互动】 社区精神:【创新、交流、互助、共享】
  • 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 编辑
    . M$ H, J8 `" H  ?/ S5 I
    1 ]. T. Z* v: K9 L7 M这么好的帖子,顶一下6 f) t* x; m6 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, 2026-4-25 20:15

    Powered by Discuz! X3.5 Licensed

    © 2001-2026 Discuz! Team.

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