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

这篇具有很好参考价值的文章主要介绍了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中断路器,PSCAD,EMTDC,学习,笔记

PSCAD文件System_Base_Case_TF

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

pscad中断路器,PSCAD,EMTDC,学习,笔记

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

pscad中断路器,PSCAD,EMTDC,学习,笔记

个人建议:在运行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模型名称保持一致

pscad中断路器,PSCAD,EMTDC,学习,笔记

该示例将结果保存在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为 目标组件所在的页面。

pscad中断路器,PSCAD,EMTDC,学习,笔记

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

pscad中断路器,PSCAD,EMTDC,学习,笔记

 pscad中断路器,PSCAD,EMTDC,学习,笔记

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

以工况一为例,断路器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的开关逻辑,点击想要在脚本中设置的参数,阅读下方的说明就可以得到答案。其他组件同理。

pscad中断路器,PSCAD,EMTDC,学习,笔记pscad中断路器,PSCAD,EMTDC,学习,笔记

工况运行

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文件做复杂的处理,只想把模型中的波形图保存下来该怎么做呢?感兴趣的朋友可以点赞评论一下,有机会我会在后续的更新中进行讲解。文章来源地址https://www.toymoban.com/news/detail-836853.html

到了这里,关于PSCAD学习笔记(2)——python调用PSCAD自动化库代码解析:组件控制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 使用python调用微步在线接口实现自动化查询IP情报

    目录 一、微步在线接口说明 二、官方示例 三、自动化查询IP情报信息         针对入站场景的IP进行分析, 能够提供IP的地理位置、ASN信息,通过判定规则精准判别IP是否恶意、风险严重级别、可信度级别;识别威胁类型,如:漏洞利用(exploit)、傀儡机(Zombie)、代理

    2024年02月13日
    浏览(49)
  • selenium 自动化测试框架学习笔记

    pip install selenium == 4.9.1  -i https://pypi.tuna.tsinghua.edu.cn/simple 下载驱动: 安装完 selenium 后,还需要安装使用 selenium 控制的浏览器需要的驱动。 谷歌驱动下载地址: https://googlechromelabs.github.io/chrome-for-testing/#stable 驱动下载完成后将文件移动到系统环境变量中: MacOS :将文件移动

    2024年01月23日
    浏览(44)
  • Python Selenium 自动化的笔记

            大部分URL都是https开头,但是遇到http开头的URL的时候,浏览器很可能会把http自动识别成https,导致无法进入正确的URL。使用driver.get()就会经常遇到这种情况,遇到这种情况我使用的方式是让uiautomation输入一遍完整的URL,避免浏览器或者driver.get()函数自动补全http为ht

    2024年02月04日
    浏览(60)
  • PyCaret:低代码自动化的机器学习工具

    随着ChatGPT和AI画图的大火,机器学习作为实现人工智能的底层技术被大众越来越多的认知,基于机器学习的产品也越来越多。传统的机器学习实现方法需要较强的编程能力和数据科学基础,这使得想零基础尝试机器学习变得非常困难。 机器学习、深度学习和人工智能(AI)的

    2024年02月04日
    浏览(84)
  • 如何通过python写接口自动化脚本对一个需要调用第三方支付的报名流程进行测试?

    对于需要调用第三方支付的报名流程进行接口自动化测试,可以通过以下步骤来编写Python代码: 1. 确认API需求 首先,需要确认报名流程的API需求和预期功能。这涉及到对业务需求的理解和API设计的分析。 2. 安装依赖库 在Python程序中,需要安装requests库(用于发送HTTP请求)和

    2024年02月10日
    浏览(71)
  • python 自动化学习(四) pyppeteer 浏览器操作自动化

    背景 之前我在工作中涉及到了很多地方都是重复性的页面点点点工作,又因为安全保密原则不开放接口和数据库,只有一个页面来提供点击进行操作,就想着用前面学的自动化来实现,但发现前面学的模拟操作对浏览器来说并没有那么友好,而后改用“selenium”,但是存在一

    2024年02月12日
    浏览(45)
  • 不用写一行代码!Python最强自动化神器!

    Playwright 是一个由 Microsoft 开发的开源自动化测试工具,它可以用于测试Web应用程序。Playwright支持多种浏览器,包括Chrome、Firefox和WebKit,同时也支持多种编程语言,如JavaScript、TypeScript、Python和C#。 Playwright具有以下特点: 支持所有主流浏览器 跨平台:Windows、Linux 和macOS 可用

    2024年04月28日
    浏览(40)
  • python自动化测试框架学习

    今天发现python有多个框架可以用于自动化测试方面,下面整理了下splinter和urllib2框架,对于 pywinauto框架和ruby框架先记录下以后需要用到再学习。 python有个splinter框架: 特性: 1、可以模拟浏览器行为,访问指定的URL,并且可以指定不同的浏览器类型。比如firefox或者chrome等。

    2024年02月08日
    浏览(53)
  • selenium python 实现基本自动化测试的示例代码

    安装selenium 打开命令控制符输入:pip install -U selenium 火狐浏览器安装firebug:www.firebug.com,调试所有网站语言,调试功能 Selenium IDE 是嵌入到Firefox 浏览器中的一个插件,实现简单的浏览器操 作的录制与回放功能,IDE 录制的脚本可以可以转换成多种语言,从而帮助我们快速的开

    2024年02月02日
    浏览(57)
  • python学习-自动化测试Selenium

     自动化测试Selenium Selenium简介 第一个Selenium应用 Selenium Python API Selenium WebDriver Selenium 初始化浏览器 Selenium导航到URL Selenium定位元素 Selenium By类 Selenium WebElement类 Selenium页面交互 Selenium ActionChains Selenium鼠标操作 Selenium键盘操作 Selenium调用JavaScript Selenium等待机制 Selenium expected

    2024年01月18日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包