demo.py 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. # 获取数据
  2. base_path = 'F:\work\QX\data_analyze_platform'
  3. CONF_PATH = base_path + '\CONFIGURE\'
  4. import sys
  5. sys.path.append(CONF_PATH)
  6. import PathSetting
  7. sys.path.append(PathSetting.backend_path)
  8. import DBManager
  9. dbManager = DBManager.DBManager()
  10. df_bms, df_gps = dbManager.get_data(sn='PK50201A000002005', start_time='2021-04-01 00:00:00',
  11. end_time='2021-04-05 00:00:00', gps_switch=True, mode=0)
  12. # 下载数据 7255
  13. base_path = 'F:\work\QX\data_analyze_platform'
  14. CONF_PATH = base_path + '\CONFIGURE\'
  15. import sys
  16. sys.path.append(CONF_PATH)
  17. import PathSetting
  18. sys.path.append(PathSetting.backend_path)
  19. import Tools
  20. tools = Tools.Tools()
  21. write_path = r'D:\Platform\Users\CJH\Download\data'
  22. st = '2021-06-01 00:00:00'
  23. et = '2021-06-03 00:00:00'
  24. tools.data_download(write_path=write_path, sn='UD02030118B4C0010', start_time=st,
  25. end_time=et, mode=1)
  26. # 下载数据 非7255
  27. base_path = 'F:\work\QX\data_analyze_platform'
  28. CONF_PATH = base_path + '\CONFIGURE\'
  29. import sys
  30. sys.path.append(CONF_PATH)
  31. import PathSetting
  32. sys.path.append(PathSetting.backend_path)
  33. import Tools
  34. tools = Tools.Tools()
  35. write_path = r'D:\Platform\Users\WLM\data_ana\Data_Files'
  36. tools.data_download(write_path=write_path, sn='PK504B00100004017', start_time='2021-04-01 00:00:00',
  37. end_time='2021-04-05 00:00:00', gps_switch=True, mode=0)
  38. # 数据预处理
  39. base_path = 'F:\work\QX\data_analyze_platform'
  40. CONF_PATH = base_path + '\CONFIGURE\'
  41. import sys
  42. sys.path.append(CONF_PATH)
  43. import PathSetting
  44. sys.path.append(PathSetting.backend_path)
  45. import DataPreProcess
  46. importlib.reload(DataPreProcess)
  47. dataPrePro = DataPreProcess.DataPreProcess()
  48. # 时间完全相同的数据仅保留一行
  49. df_bms_pro, df_gps_pro = dataPrePro.time_filter(df_bms, df_gps)
  50. # bms数据按照电流和状态分段, 然后在状态分段内部,根据时间跳变继续分段(解决段内数据丢失)
  51. df_bms_pro = dataPrePro.data_split_by_status(df_bms_pro)
  52. df_bms_pro = dataPrePro.data_split_by_time(df_bms_pro)
  53. # bms数据将两次充电间的状态合并
  54. df_bms_pro = dataPrePro.combine_drive_stand(df_bms_pro)
  55. # bms 数据计算行车和充电开始前后的静置时间
  56. df_bms_pro = dataPrePro.cal_stand_time(df_bms_pro)
  57. # gps 数据可靠性判断, 并增加里程和速度至gps数据(根据未合并的数据段判断)
  58. df_bms_pro, df_gps_pro, res_record= dataPrePro.gps_data_judge(df_bms_pro, df_gps_pro)
  59. # gps 数据可靠性判断, 并增加里程和速度至gps数据(根据已合并的数据段判断)
  60. df_bms_pro, df_gps_pro, res_record= dataPrePro.data_gps_judge_after_combine(df_bms_pro, df_gps_pro)
  61. # 单cycle指标统计
  62. base_path = 'F:\work\QX\data_analyze_platform'
  63. CONF_PATH = base_path + '\CONFIGURE\'
  64. import sys
  65. sys.path.append(CONF_PATH)
  66. import PathSetting
  67. sys.path.append(PathSetting.middle_path)
  68. #import IndexStaByOneCycle
  69. import importlib
  70. importlib.reload(IndexStaByOneCycle)
  71. indexSta = IndexStaByOneCycle.IndexStaByOneCycle()
  72. data_number_list = sorted(list(set(df_bms[(df_bms['data_status'].isin(['drive']))]['data_split_by_status'])))
  73. for data_number in data_number_list[:]:
  74. df_sel_bms = df_bms[df_bms['data_split_by_status'] == data_number]
  75. df_sel_bms = df_sel_bms.reset_index(drop=True)
  76. df_sel_gps = df_gps[(df_gps['时间戳']>df_sel_bms.loc[0,'时间戳']) & (df_gps['时间戳']<df_sel_bms.loc[len(df_sel_bms)-1,'时间戳'])]
  77. df_sel_gps = df_sel_gps.reset_index(drop=True)
  78. print(indexSta.odo_sta(np.array(df_sel_gps['odo'])))
  79. print(indexSta.capacity_sta(40, np.array(df_sel_bms['SOC[%]']), np.array(df_sel_bms['SOH[%]'])))
  80. print(indexSta.energy_sta(40, np.array(df_sel_bms['SOC[%]']), np.array(df_sel_bms['SOH[%]']),np.array(df_sel_bms['总电压[V]'])))
  81. print(indexSta.acc_time_sta(np.array(df_sel_bms['时间戳'])))
  82. print(indexSta.mean_temp_sta(np.array(df_sel_bms['单体温度1'])))
  83. print(indexSta.temp_change_rate_sta(np.array(df_sel_bms['时间戳']), np.array(df_sel_bms['单体温度1'])))
  84. print(indexSta.dischrg_max_pwr_sta(np.array(df_sel_bms['总电压[V]']), np.array(df_sel_bms['总电流[A]'])))
  85. print(indexSta.chrg_max_pwr_sta(np.array(df_sel_bms['总电压[V]']), np.array(df_sel_bms['总电流[A]'])))
  86. print(indexSta.speed_sta(indexSta.odo_sta(np.array(df_sel_gps['odo'])), indexSta.acc_time_sta(np.array(df_sel_gps['时间戳'])), np.array(df_sel_gps['speed'])))
  87. break