PSCAD学习笔记(2)python调用PSCAD自动化库代码解析:组件控制

 引言

该学习笔记结合官方文件和个人学习见解撰写,主要分享一些常见实用功能,欢迎讨论、补充、指正。PSCAD相关免费学习资源实属稀缺,如果本文对您有所帮助,麻烦点赞评论支持一下。您的支持是我更新的动力。

使用版本

PSCAD版本:4.6.3

python版本:3.7

mhrc-automation版本:1.2.4

python编辑软件:PyCharm Community Edition 2023.2.5(非必须安装)

准备工作

python

python、pycharm的安装教程很多,此处不赘述。  

PSCAD自动化库mhrc-automation

PSCAD自动化库mhrc-automation的安装可以参考这个帖子,

PSCAD通过python调用自动化库的实现

如果你和我一样是个倒霉蛋,怎么安装都不成功,可以参考这两个帖子。

python安装pscad自动化的whl

PSCAD自动化库mhrc.automation安装及使用

安装失败的原因很多,我的原因可能有:(1)电脑已经安装过anaconda和pycharm,aconda又自带python3.6;(2)自动化库安装后有问题,将python3.7和自动化库卸载后重新安装,但电脑判定对象已经存在无需安装。

最后我是通过安装AutomationLibrary_463_124\AutomationLibrary中的分装包解决的。

官方示例

A Comprehensive Script Example

文件名后面的V463和V5指PSCAD版本,这里使用SIMPLE V463讲解。

PSCAD文件System_Base_Case_TF

文件中绘制了简易的电网模型,本模型的重点在于三个断路器的开关控制。

根据断路器的开关逻辑控制可知,初始状态为开,第0.5s闭合。

个人建议:在运行python脚本前,先运行PSCAD模型进行检查,避免重复工作,检查完毕后,记得将PSCAD界面关闭。

运行结束后,将会生成System_Base_Case_TF.if12的文件夹,如果在project settings中设置过保存运行结果文件.out和生成快照文件.snp,都可以在该文件夹中找到。相关设置可以参考我的上一篇笔记。

PSCAD学习笔记(1)——Project Settings(重点snapshot设置)

Python脚本文件Switching

官方python脚本的整体思路是运行三种工况,每种工况下对3个断路器的开、关时间进行不同的设置。

此处重点讲述想要改写官方示例以自用时需要修改的部分。

版本与项目名称

pscad_version = 'PSCAD 4.6.3 (x64)' # PSCAD版本
fortran_version = 'GFortran 4.6.2'    # 编译器版本
fortran_ext = '.gf46'    # 编译器
project_name = 'System_Base_Case_TF'    # PSCAD模型名称

fortran_version可以在Application Options——Dependencies中查询,注意修改保持一致。 project_name自定义,与PSCAD模型名称保持一致

该示例将结果保存在POW_output文件夹中,可自定义名称。

dst_folder = working_dir + "POW_output"   # 结果保存文件夹的名称,自定义

重要!!!跳过PSCAD认证环节!

原代码如下,该代码会导致脚本运行PSCAD时跳出用户登录界面,不登录就无法仿真。

pscad = mhrc.automation.launch_pscad(pscad_version=pscad_version, fortran_version=fortran_version)

修改为如下代码可以跳过认证环节。

pscad = mhrc.automation.launch_pscad(pscad_version=pscad_version, fortran_version=fortran_version, minimize=False, certificate=False)

控制组件(断路器)和阻抗扫描器的ID

# Get the "Main" canvas
main = project.user_canvas('Main') # 断路器所在的页面

# Get all breaker components 断路器的ID
b1 = main.user_cmp(1857653396)
b2 = main.user_cmp(2005115066)
b3 = main.user_cmp(656681394)

# Get the Harmonic Impedance component 阻抗扫描器的ID
harm = main.user_cmp(229910773)

main为 目标组件所在的页面。

这里的b1,b2,b3指PSCAD模型中的三个断路器B1,B2,B3的开关控制逻辑。ID获取方法:选中目标组件,右键Attributes,复制ID即可。阻抗扫描器的ID同理。

 

 控制组件(断路器)的参数设置

以工况一为例,断路器1的开关逻辑为初始状态为开,第0.5s闭合,断路器2/3的开关逻辑为初始状态为开,第555s闭合(有限的仿真时间下即断路器不工作)。

注意:脚本中的参数设置不会受到模型中参数设置的任何影响,脚本运行时将覆盖模型中的设置。

        #-----------------------------------------------------
        # Test 1 Energize T1 with T2 and T3 out of service
        #-----------------------------------------------------

        # Close Breaker 1 at 0.5
        b1.set_parameters(INIT=1, TO1=0.5)
        # Open Breaker 2
        b2.set_parameters(INIT=1, TO1=555)
        # Open Breaker 3
        b3.set_parameters(INIT=1, TO1=555)

 有人会问,为什么这两个参数叫INIT和TO1?其他组件的参数叫什么呢?

双击断路器1的开关逻辑,点击想要在脚本中设置的参数,阅读下方的说明就可以得到答案。其他组件同理。

工况运行

project.run()即运行仿真。

注意:该指令相当于点击PSCAD中的Run按钮,因此需要先设置好project settings并保存,才可以运行脚本。

        project.run()

        # Save data to output folder
        folder = os.path.join(dst_folder, "Test_1")
        File.move_files(src_folder, folder, ".out", ".inf")

Test_1为保存工况一结果建立的文件夹,可自定义。文件夹中保存了所有的.out和.inf文件。

结论

python脚本在需要大批量进行PSCAD仿真工作时十分有效,非常推荐大家学习。

如果不想要对.out文件做复杂的处理,只想把模型中的波形图保存下来该怎么做呢?感兴趣的朋友可以点赞评论一下,有机会我会在后续的更新中进行讲解。

现已更新:PSCAD学习笔记(3)——python调用PSCAD自动化库代码解析:仿真波形图自动保存到word

  • 29
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 10
    评论
评论 10
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_GGG_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值