产品软件平台面向微电网实验、控制算法验证与人工智能策略部署,提供统一的 Python API。用户无需直接操作底层 CAN 通信或 STM32 控制程序,即可通过脚本完成节点功率、电压、电流控制,以及数据采集、轨迹回放和运行日志管理。
平台采用“上层算法 + 下层实时控制”的分层架构:
Python 用户脚本
│
▼
Python SDK(api)
│
▼
Algorithm Runtime
│
▼
CAN 通信总线
│
▼
STM32 功率节点
│
├─ PV
├─ Battery
├─ Load
└─ PCC
上层 Jetson 负责运行 Python 脚本、AI 算法、能量管理策略和数据处理程序;下层 STM32 节点负责电压、电流闭环及硬件保护。用户脚本通过 Runtime 调用统一 API,将控制指令下发至指定节点,并读取节点反馈数据。
| 功能类别 | 主要能力 | 典型接口 |
|---|---|---|
| 运行控制 | 日志输出、周期等待、停止检测 | api.log()、api.sleep()、api.should_stop() |
| 节点控制 | 设置单节点功率、电压、电流及关机 | api.node[n].p、v、i、shutdown() |
| 斜坡控制 | 实现软启动、分步变化和目标值过渡 | step()、step_p()、step_v()、step_i() |
| 广播控制 | 向多个节点统一下发设定值 | set_broadcast_p()、set_broadcast_v() |
| 数据读取 | 获取节点实时数据、状态与原始数据 | get_data()、get_node_data() |
| 时间处理 | 将时间列转换为秒或相对时间 | to_seconds_series()、to_relative_time() |
| 轨迹回放 | 按 CSV 或 DataFrame 时间顺序回放控制事件 | replay_relative_schedule() |
| 数据记录 | 启停软件内置数据记录功能 | api.datarecord.start()、stop() |
运行器会向用户脚本注入以下对象:
api:主控制对象,所有硬件控制和数据读取均通过该对象完成。ctx:api 的别名,与 api 指向同一对象。loop(interval_sec):推荐的周期循环控制器,可自动处理停止请求和循环节流。math、time:Python 标准库模块。pd / pandas:可选的 pandas 模块,未安装时可能为 None。print():输出内容会重定向到软件日志面板,效果类似 api.log()。加载模板
↓
修改 Basic Parameters
↓
配置策略参数
↓
编写主循环控制逻辑
↓
运行脚本
↓
查看日志与 Data Record
推荐从软件内置的 template.py 开始开发,仅修改参数区和策略区,保留 API 导入、停止检测、循环节流及日志结构。这样可以减少脚本不可停止、控制频率过高或运行结构不统一等问题。
from algorithm_load.script_runtime import api
api.log("script start")
api.sleep(2.0)
while not api.should_stop():
api.node[1].p = 10.0
api.sleep(0.1)
api.log("script end")
该脚本持续向节点 1 下发 10 W 功率指令,并以 0.1 秒为周期运行,直到用户点击停止。
api 下发。loop() 或检查 api.should_stop()。