当前位置:   article > 正文

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

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个断路器的开、关时间进行不同的设置。

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

版本与项目名称

  1. pscad_version = 'PSCAD 4.6.3 (x64)' # PSCAD版本
  2. fortran_version = 'GFortran 4.6.2' # 编译器版本
  3. fortran_ext = '.gf46' # 编译器
  4. 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

  1. # Get the "Main" canvas
  2. main = project.user_canvas('Main') # 断路器所在的页面
  3. # Get all breaker components 断路器的ID
  4. b1 = main.user_cmp(1857653396)
  5. b2 = main.user_cmp(2005115066)
  6. b3 = main.user_cmp(656681394)
  7. # Get the Harmonic Impedance component 阻抗扫描器的ID
  8. harm = main.user_cmp(229910773)

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

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

 

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

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

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

  1. #-----------------------------------------------------
  2. # Test 1 Energize T1 with T2 and T3 out of service
  3. #-----------------------------------------------------
  4. # Close Breaker 1 at 0.5
  5. b1.set_parameters(INIT=1, TO1=0.5)
  6. # Open Breaker 2
  7. b2.set_parameters(INIT=1, TO1=555)
  8. # Open Breaker 3
  9. b3.set_parameters(INIT=1, TO1=555)

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

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

工况运行

project.run()即运行仿真。

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

  1. project.run()
  2. # Save data to output folder
  3. folder = os.path.join(dst_folder, "Test_1")
  4. File.move_files(src_folder, folder, ".out", ".inf")

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

结论

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

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

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/码创造者/article/detail/778141
推荐阅读
相关标签
  

闽ICP备14008679号