SOH估计算法
安装
pip install thinkenergy-2.1.0-py3-none-any.whl
#执行激活脚本
使用方法
1.导入引擎工厂类
from thinkenergy.thinkengine import ThinkEngineFactory
2.使用 app_key 和 app_secret 初始化引擎工厂
Tip:用户需要申请app_key 和 app_secret,否则算法无法使用
tef = ThinkEngineFactory(app_key, app_secret)
3.根据算法编码获取具体的算法引擎
Tip:每一个算法都有对应的算法编号码,针对不同的算法请传入正确的算法编号,本例中A100155代表SOH估计算法
alg_code = 'A100155'
te1 = tef.get_engine(alg_code)
4.给算法引擎设置参数(可选)
Tip:算法参数可以通过两种方式实现:
通过算法配置文件
通过set_params方法实现
不配置参数会使用默认的参数
te1.set_params(params=params) # 设置参数
5.调用算法
Tip:run()函数接收的数据为DataFarme,用户可以将自己的数据构建成符合算法的DataFarme,本例采用的是读取.csv格式文件中的数据转为DataFarme.
data = pd.read_csv(r'/tmp/sample_data_A100155.csv')
te1.run(data)
算法的使用参数说明如下:
参数 | 类型 | 示例 | 说明 |
---|---|---|---|
app_key | str | 123456 | 用户申请的app_key |
app_secret | str | 'I2NEWMBQFW7IMSD7XFZNHFARCVJAK7IZDK23BGABSWNU5QLBBCWLRFTL6QDAHDM32ZDA5ITFR6JPPJT3JHCBHZC77ZXNYSE4NUPHAEA=' | 用户申请的app_secret |
alg_code | str | A100155 | 算法编码 |
data | DataFrame | pandas二维数组 | |
params | dict | 算法配置 |
算法输入数据样例
算法传入数据DataFarme字段
#SOH
['vin', 'timestamp', 'current', 'soc', 'max_single_volt', 'min_single_volt', 'max_temp', 'min_temp', 'mileage'](最少两条数据)
输入数据样例
sample_data_A100155.csv文件内容
timestamp | current | soc | max_single_volt | min_single_volt | max_temp | |
---|---|---|---|---|---|---|
0 | 1591489309 | -2.8 | 77 | 4.094 | 3.964 | 26 |
1 | 1591489319 | -6.5 | 77 | 4.102 | 3.973 | 26 |
2 | 1591489329 | -6.6 | 77 | 4.103 | 3.974 | 26 |
3 | 1591489340 | -6.6 | 77 | 4.104 | 3.975 | 26 |
4 | 1591489350 | -6.6 | 77 | 4.105 | 3.976 | 26 |
算法参数配置
#在配置文件中的配置
CO_PARAMS = {
'bat_config':{
'singleRatedCap': 153,
}
}
详细实例demo
import pandas as pd
from thinkenergy.thinkengine import ThinkEngineFactory
app_key = '123456' # 用户申请的 app_key
app_secret = 'I2NEWMBQFW7IMSD7XFZNHFARCVJAK7IZD' \
'K23BGABSWNU5QLBBCWLRFTL6QDAHDM32Z' \
'DA5ITFR6JPPJT3JHCBHZC77ZXNYSE4NUP' \
'HAEA=' # 用户申请的 app_secret
tef = ThinkEngineFactory(app_key, app_secret) # 初始化引擎工厂
# 实例化
alg_code = 'A100155' # 算法编号.本例为SOH算法编号
data = pd.read_csv(r'/tmp/charge_trip.csv', encoding = 'gbk') # 读取 CSV
params = {
'bat_config': {
'singleRatedCap': 102,
}
} #可传入符合厂商的配置参数
te1 = tef.get_engine(alg_code) # 获取SOH算法引擎
te1.set_params(params=params) # 设置参数.可选,非必须
print(te1.run(data)) # 调用SOH算法
算法结果
{
'soh': 94.88, //SOH
}