模型类
Class: Model
- Extends: Object
CloudPSS 算例类。
model.rid
项目在平台中的唯一值。
model.name
项目的名称。
model.description
项目的描述。
model.revision
当前项目的版本信息。
model.configs
当前项目的所有参数方案。
model.jobs
当前项目的所有计算方案。
model.context
当前项目的上下文相关信息。
Model.fetch(rid)
获取指定 rid 的项目。
model = Model.fetch('model/Demo/demo')
Model.create(model)
- 静态方法
model
: Model;需要创建的算例实例
新建项目,项目正确且项目 rid 和已存在的 rid 不冲突则返回保存成功;否则抛异常。
model = Model.fetch('model/Demo/demo')
model.rid = 'model/Demo/demo1'
Model.create(model)
Model.update(model)
- 静态方法
model
:Model;需要更新的项目
更新项目,项目正确且项目 rid 和已存在的 rid 不冲突则返回保存成功;否则抛异常。
model = Model.fetch('model/Demo/demo')
Model.update(model)
Model.dump(model, file, format='yaml', compress='gzip')
- 实例方法
model
: Model;需要保存的项目file
: String;文件保存路径format
: String;文件保存格式,支持json
,ubjson
,yaml
,zstd
,默认yaml
格式compress
: String;是否开启文件压缩,默认开启gzip
格式,若为None
时不开启文件压缩
保存当前项目到本地文件。
model = Model.fetch('model/Demo/demo')
Model.dump(model,'D:\\data\\demo.cmdl')
Model.load(filePath, format="yaml")
加载本地项目文件。
model = Model.load('D:\\data\\demo.cmdl')
model.save(key=None)
- 实例方法
key
: String;资源 id 的唯一标识符
保存/另存项目。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
model.save()
model.save('newKey') # 另存为新的项目
备注
- key 不为空时如果远程存在相同的资源名称时将覆盖远程项目。
- key 为空时如果项目 rid 不存在则抛异常,需要重新设置 key。
- 如果保存时,当前用户不是该项目的拥有者时,将重新创建项目,重建项目时如果参数的 key 为空将使用当前当前项目的 key 作为资源的 key ,当资源的 key 和远程冲突时保存失败
model.createJob(jobType, name)
- 实例方法
jobType
: String;计算方案类型如下:emtp
:电磁暂态仿真方案sfemt
:移频电磁暂态仿真方案powerFlow
:潮流计算方案iesLoadPrediction
: 负荷预测方案iesPowerFlow
: 时序潮流方案iesEnergyStoragePlan
: 储能规划方案
name
: String;计算方案名称- Returns: Dict;返回一个指定类型的计算方案,数据格式例如:
{'rid': '', 'args': {}, 'name': ''}
创建一个计算方案。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('emtp','emtp job')
备注
创建出的方案默认不加入到工程中,需要加入请调用 model.addJob
model.addJob(job)
- 实例方法
job
: Dict;计算方案,数据格式例如:{'rid': '', 'args': {}, 'name': ''}
将计算方案添加到工程中。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('emtp','emtp job')
model.addJob(job)
model.getModelJob(name)
获取指定名称的计算方案。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.getModelJob('电磁暂态方案 1')
model.createConfig(name)
创建一个参数方案。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
config = model.createConfig('config 1')
备注
根据项目的第一个参数方案生成一个方案,创建出的方案默认不加入到项目中,需要加入请调用 model.addConfig
model.addConfig(config)
- 实例方法
config
: Dict;参数方案,数据格式例如:{'args': {}, 'name': '', 'pins': {}}
将参数方案添加到工程中。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
config = model.createConfig('config 1')
model.addConfig(config)
model.getModelConfig(name)
获取指定名称的参数方案。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
config = model.getModelConfig('config 1')
model.addComponent(definition, label, args, pins, canvas=None, position=None, size=None)
- 实例方法
definition
: String;元件定义,元件的Ridlabel
: String;元件标签args
: Dict;元件参数数据pins
: Dict;元件引脚数据canvas
: String;元件所在图纸数据,默认为 Noneposition
: Dict;元件位置信息,默认为 Nonesize
: Dict;元件大小信息,默认为 None- Returns: Component,返回一个元件类
添加元件(创建一个新的元件并 添加到拓扑中)。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
component = model.addComponent(
definition='model/CloudPSS/newResistorRouter',
label='电阻1',
args={
'Name': '电阻1',
'Dim': '0',
'R': '1'
},
pins={
'0': '',
'1': ''
},
canvas='canvas_0',
position={'x': 0, 'y': 0},
size={'width': 50, 'height': 30}
)
model.updateComponent(key, label=None, args=None, pins=None, canvas=None, position=None, size=None)
- 实例方法
key
: String;元件keylabel
: String;元件标签,默认为 Noneargs
: Dict;元件参数数据,默认为 Nonepins
: Dict;元件引脚数据,默认为 Nonecanvas
: String;元件所在图纸数据,默认为 Noneposition
: Dict;元件位置信息,默认为 Nonesize
: Dict;元件大小信息,默认为 None- Returns: Boolean;True or False
更新元件。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
component = model.addComponent(definition='model/CloudPSS/newResistorRouter',
label='电阻1',
args={
'Name': '电阻1',
'Dim': '0',
'R': '1'
},
pins={
'0': '',
'1': ''
})
model.updateComponent(component.id, label='电阻2')
model.removeComponent(key)
删除元件。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
component = model.addComponent(definition='model/CloudPSS/newResistorRouter',
label='电阻1',
args={
'Name': '电阻1',
'Dim': '0',
'R': '1'
},
pins={
'0': '',
'1': ''
})
model.removeComponent(component.id)
model.getAllComponents()
- 实例方法
- Returns: Dict,返回所有元件信息
获取所有元件。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
components = model.getAllComponents()
model.getComponentByKey(componentKey)
获取指定key的元件。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
component = model.getComponentByKey('component_new_resistor_router_1')
model.getComponentsByRid(rid)
获取指定 rid 的所有元件。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
component = model.getComponentsByRid('rid')
model.run(job=None, config=None, name=None, policy=None, stop_on_entry=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指 定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案name
: String;任务名称,为空时使用项目的参数方案名称和计算方案名称policy
: Dict;仿真策略stop_on_entry
: Boolean;是否在仿真开始时停止kwargs
: Dict;可变数量仿真参数- Returns: Job;返回一个仿真任务
运行仿真任务。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('emtp','emtp job')
model.run(job)
model.runEMT(job=None, config=None, stop_on_entry=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案stop_on_entry
: Boolean;是否在仿真开始时停止kwargs
: Dict;可变数量仿真参数- Returns: Job;返回一个电磁暂态仿真任务
运行电磁暂态仿真。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('emtp','emtp job')
model.runEMT(job)
model.runSFEMT(job=None, config=None, stop_on_entry=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案stop_on_entry
: Boolean;是否在仿真开始时停止kwargs
: Dict;可变数量仿真参数- Returns: Job;返回一个移频电磁暂态仿真任务
运行移频电磁暂态仿真。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('sfemt','sfemt job')
model.runSFEMT(job)
model.runPowerFlow(job=None, config=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案kwargs
: Dict;可变数量仿真参数- Returns: Job;返回一个潮流计算仿真任务
运行潮流计算仿真。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('powerFlow','powerFlow job')
model.runPowerFlow(job)
model.runIESEnergyStoragePlan(job=None, config=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案kwargs
: Dict;可变数量仿真参数- Returns: Job;返回一个储能规划方案任务
运行储能规划方案。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('iesEnergyStoragePlan','iesEnergyStoragePlan job')
model.runIESEnergyStoragePlan(job)
model.runIESLoadPrediction(job=None, config=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案kwargs
: Dict;可变数量仿真参数- Returns: Job;返回一个负荷预测方案任务
运行负荷预测方案。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('iesLoadPrediction','iesLoadPrediction job')
model.runIESLoadPrediction(job)
model.runIESPowerFlow(job=None, config=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案kwargs
: Dict;可变数量仿真参数- Returns: Job;返回一个时序潮流方案任务
运行时序潮流方案。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('iesPowerFlow','iesPowerFlow job')
model.runIESPowerFlow(job)
model.runThreePhasePowerFlow(job=None, config=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案kwargs
: Dict;可变数量仿真参数- Returns: Job;返回一个三相不平衡潮流任务
运行三相不平衡潮流。
model = Model.fetch("model/Demo/demo") # 获取指定 rid 的项目
job = model.createJob('powerFlow','powerFlow job')
model.runThreePhasePowerFlow(job)
Class: ModelRevision
- Extends: Object
CloudPSS 算例的版本数据类。
modelRevision.implements
当前版本的实现数据。
modelRevision.parameters
项目当前版本的参数定义。
modelRevision.pins
项目当前版本的引脚定义。
modelRevision.documentation
项目当前版本的文档信息。
ModelRevision.create(revision, parentHash=None)
创建一个新版本。
revision = ModelRevision.create(revision)
modelRevision.run(job, config, name=None, policy=None, stop_on_entry=None, rid=None, **kwargs)
- 实例方法
job
: Dict;调用仿真时使用的计算方案,不指定将使用算例保存时选中的计算方案config
: Dict;调用仿真时使用的参数方案,不指定将使用算例保存时选中的参数方案name
: String;任务名称,为空时使用项目的参数方案名称和计算方案名称policy
: Dict;仿真策略stop_on_entry
: Boolean;是否在仿真开始时停止rid
: String;项目 rid- Returns: Job;返回一个仿真任务
运行当前版本。
model = cloudpss.Model.fetch('model/Maxwell/IEEE')
revision = model.revision
revision.run(mode.jobs[0], model.configs[0])
modelRevision.fetchTopology(implementType, config, maximumDepth)
- 实例方法
implementType
: String;拓扑实现类型config
: Dict;拓扑实现配置maximumDepth
: Number;拓扑最大递归深度,用于自定义项目中使用 diagram 实现元件展开情况- Returns: ModelTopology;返回一个拓扑实例
获取当前版本的拓扑。
model = cloudpss.Model.fetch('model/Maxwell/IEEE')
revision = model.revision
topology = revision.fetchTopology(implementType='powerFlow',config=model.config[0], maximumDepth=2) # 获取潮流实现仅展开 2 层的拓扑数据
modelRevision.getImplements()
- 实例方法
- Returns: Dict;返回一个实现实例
获取当前版本的实现。
model = cloudpss.Model.fetch('model/Maxwell/IEEE')
revision = model.revision
revision.getImplements()
Class: ModelTopology
- Extends: Object
算例拓扑类,用于处理拓扑数据。
modelTopology.components
摊平后的拓扑元件,参数和引脚不再保留表达式的形式,如果元件为拓扑实现,并有读取权限时将被展开。
modelTopology.mappings
拓扑分析后的一些映射数据。
ModelTopology.fetch(hash, implementType, config, maximumDepth=None)
- 静态方法
hash
: String 算例 hashimplementType
: String 拓扑实现类型config
: Dict 拓扑实现配置maximumDepth
: Number 拓扑最大深度,用于自定义项目中使用 diagram 实现元件展开情况- Returns: ModelTopology 返回一个拓扑
获取拓扑。
ModelTopology.fetch('','emtp',{'args': {}})
ModelTopology.dump(topology, filePath, indent=None)
保存拓扑到本地文件(JSON 格式)。
ModelTopology.dump(topology, filePath)