跳到主要内容

IESLab SDK 快速入门

1.1 案例概述

本案例利用 cloudpss 平台提供的 SDK,展示如何对系统进行仿真计算,并获取系统的仿真结果数据。

1.2 代码解析

导入必要的库。确保已安装 cloudpss 库。 cloudpss 库的更新可参考 SDK升级

import time
import os
import cloudpss

使用 cloudpss.setToken() 方法设置有效的 API 访问令牌。通过 os.environ['CLOUDPSS_API_URL'] 设置正确的 API 地址。

注意

注意令牌需要是有效且未过期的,否则无法调用云端仿真服务。地址 URL 需要准确,并以 '/' 结尾。

if __name__ == '__main__':    
# 设置API访问令牌和API地址
cloudpss.setToken('{token}')
os.environ['CLOUDPSS_API_URL'] = 'https://cloudpss.net/'

使用 cloudpss.IESLabSimulation.fetch() 方法获取指定 ID 为 1888 的算例。确保使用的算例 ID(本例中为 1888)是存在的。如果 ID 不存在,将无法获取算例。

    # 获取算例
iesProject = cloudpss.IESLabSimulation.fetch(1888)

通过调用 iesProject.run() 方法启动仿真计算。使用 runner.status() 来检查仿真是否完成。

    # 仿真计算测试
runner = iesProject.run()
while not runner.status():
print('running', flush=True)
time.sleep(3)
print('计算完成')
ies_result = runner.result

指定组件 ID 为 /PhotovoltaicSys_6,标签名为 功率(kW)。调用 ies_result.getPlotData() 方法获取指定组件和标签的绘图数据。
组件 ID 和标签名称的精确性非常重要。任何拼写错误或格式错误都可能导致无法获取预期的绘图数据。

    # 示例:使用 getPlotData 方法
compID = "/PhotovoltaicSys_6"
labelName = "功率($\mathrm{kW}$)"
plot_data = ies_result.getPlotData(compID, labelName)
print("Plot data: ", plot_data)

1.3 结果展示

以下为案例运行的结果

running
running
running
running
计算完成
Plot data: defaultdict(<function IESResult.getPlotData.<locals>.<lambda> at 0x000001E417B7B920>, {'有功功率': {'x': ['2021-01-01 00:00:00', '2021-01-01 01:00:00', '2021-01-01 02:00:00', '2021-01-01 03:00:00', '2021-01-01 04:00:00', '2021-01-01 05:00:00', '2021-01-01 06:00:00', '2021-01-01 07:00:00', '2021-01-01 08:00:00', '2021-01-01 09:00:00', '2021-01-01 10:00:00', '2021-01-01 11:00:00', '2021-01-01 12:00:00', '2021-01-01 13:00:00', '2021-01-01 14:00:00', '2021-01-01 15:00:00', '2021-01-01 16:00:00', '2021-01-01 17:00:00', '2021-01-01 18:00:00', '2021-01-01 19:00:00', '2021-01-01 20:00:00', '2021-01-01 21:00:00', '2021-01-01 22:00:00', '2021-01-01 23:00:00'], 'y': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 2.83453077690992, 14.606343058556925, 29.867047880425343, 35.292360874944606, 32.42029908112464, 17.067628492714082, 18.197775497994073, 15.81915160011411, 7.335965942276747, 1.3796850340064308, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}, '无功功率': {'x': ['2021-01-01 00:00:00', '2021-01-01 01:00:00', '2021-01-01 02:00:00', '2021-01-01 03:00:00', '2021-01-01 04:00:00', '2021-01-01 05:00:00', '2021-01-01 06:00:00', '2021-01-01 07:00:00', '2021-01-01 08:00:00', '2021-01-01 09:00:00', '2021-01-01 10:00:00', '2021-01-01 11:00:00', '2021-01-01 12:00:00', '2021-01-01 13:00:00', '2021-01-01 14:00:00', '2021-01-01 15:00:00', '2021-01-01 16:00:00', '2021-01-01 17:00:00', '2021-01-01 18:00:00', '2021-01-01 19:00:00', '2021-01-01 20:00:00', '2021-01-01 21:00:00', '2021-01-01 22:00:00', '2021-01-01 23:00:00'], 'y': [0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0]}})

1.4 常见问题

Q1: 如何解决 "API 访问令牌无效或过期" 的问题?
A1: 如果您的令牌已过期,您需要重新获取一个有效的 API 令牌。具体获取方法可以参考 SDK Token管理

Q2: 我不知道算例ID,在哪里可以获取我的算例ID?
A2: 如果您不知道具体的算例 ID,可以通过查看算例上方的 URL 地址,如本算例 URL 地址 https://cloudpss.net/ieslab/ies/diagram?simu_id=1888 中的 1888 即为算例 ID。 算例ID

Q3: 仿真一直在 "running" 状态,没有完成,我该怎么办?
A3: 如果仿真在长时间内仍未完成,可能是因为模型过于复杂或者服务器负载过高。首先,检查您的模型配置是否正确,并尝试简化模型。如果问题仍然存在,请联系运维人员获取帮助。

Q4: 为什么我无法获取到我想要的绘图数据?
A4: 确保您传入 getPlotData 方法的元件 ID 和标签名称与模型中定义的完全一致。任何拼写错误或格式错误都可能导致无法检索到数据。如果您确认信息无误但仍然无法获取数据,可能是因为模型仿真结果中不存在该数据。组件 ID 和标签名称获取方法如下:

获取元件ID
元件表 元件ID

获取标签名称 标签名称

1.5 完整代码

import time
import os
import cloudpss

if __name__ == '__main__':
# 设置API访问令牌和API地址
cloudpss.setToken('{token}')
os.environ['CLOUDPSS_API_URL'] = 'https://cloudpss.net/'

# 获取模型对象
iesProject = cloudpss.IESLabSimulation.fetch(1888)

# 仿真计算测试
runner = iesProject.run()
while not runner.status():
print('running', flush=True)
time.sleep(3)
print('计算完成')
ies_result = runner.result

# 示例:使用 getPlotData 方法
compID = "/PhotovoltaicSys_6"
labelName = "功率($\mathrm{kW}$)"
plot_data = ies_result.getPlotData(compID, labelName)
print("Plot data: ", plot_data)