仿真内核调用及结果获取
功能介绍
使用 EMTLab SDK 修改元件参数、调用潮流及电磁暂态仿真内核、获取并解析仿真结果。
使用说明
用到的 API
模型类:Class: Model
- 实例方法:
方法 功能 model.getComponentByKey(componentKey)
获取指定key的元件 model.getComponentsByRid(rid)
获取指定 rid 的所有元件 model.run(job=None, config=None)
运行仿真任务
结果类:Class: Result
- 实例方法:
方法 功能 result.result
仿真完成后的结果缓存
潮流结果类:Class: PowerFlowResult
- 实例方法:
方法 功能 powerflowResult.getBuses()
获取潮流结果 buses 数据 powerflowResult.getBranches()
获取潮流结果 branches 数据 powerflowResult.powerFlowModify(model)
潮流数据写入 model
电磁暂态结果类:Class: EMTResult
- 实例方法:
方法 功能 emtResult.getPlots()
获取所有的 plots 数据 emtResult.getPlot(index)
获取指定序号的数据分组 emtResult.getPlotChannelNames(index)
获取一组输出分组下的所有通道名称 emtResult.getPlotChannelData(index, channelName)
获取一组输出分组下某条通道的数据
调用方式
- 使用
model.getComponentByKey(componentKey)
和model.getComponentsByRid(rid)
方法,修改元件参数 - 使用
model.run(job=None, config=None)
方法,运行仿真任务 - 使用
powerflowResult.getBuses()
和emtResult.getPlots()
方法获取仿真结果
案例介绍
通过一个完整的案例来展示如何基于上述 API 编写 Python 脚本实现修改元件参数、调用潮流及电磁暂态仿真内核、获取并解析仿真结果的功能。
代码解析
以IEEE-3机9节点项目为例,使用Model.fetch
方法获取该项目实例。
获取IEEE 3机9节点项目实例
import os
import cloudpss
if __name__ == '__main__':
os.environ['CLOUDPSS_API_URL'] = 'http://orange.local.cloudpss.net/'
cloudpss.setToken('{token}')
# 获取IEEE 3机9节点项目实例
model = cloudpss.Model.fetch('model/Maxwell/IEEE')
修改该项目中三相故障电阻元件的故障类型参数,首先,需要获取三相故障电阻元件的 key,元件的 key 的获取方式有以下两种:
- 在 SimStuido 工作台打开该算例,选中元件,此时浏览器地址栏 cell 后面就是当前元件的 Key,在每个算例中,元件 Key 是唯一的。
- 在 SimStuido 工作台打开该算例,选中元件,点击右上角的元件信息,选择元件 ID 即可复制该元件的 key 值。