/Adavanced-ECMS

Advanced Energy Control Management System (Advanced-ECMS) for Electrical Vehicle System using proposed Plus Version of Alternating Direction Method of Multipliers (ADMM+) on Robotics Operating System (ROS)

Primary LanguageC++MIT LicenseMIT

ADVANCED-ECMS (Real-Time processing by ROS)

Requirements

  • ROS kinetic version
  • C++14

Topic Message

  • publisher : /geometry_msgs/Twist.msg
  • subscriber : std_msgs/Float32.msg, std_msgs/Int32.msg

Topic name of system variable

  • accel : /joy_teleop/cmd_vel
    (Twist.msg) --(ROS APP joystick)
  • velocity : /velocity
    (Float32.msg)
  • soc : /soc
    (Float32.msg)
  • gear : /gear
    (Int32.msg)
  • mass : /mass
    (Float32.msg)
  • mode : /mode
    (Int32.msg)
  • lambda : /lambda
    (Float32.msg)
  • mu : /mu
    (Float32.msg)
  • rho : /rho
    (Float32.msg)

Guide for Starting to Advanced_ECMS

  • [1] ROS workspace and build work (catkin_make, source devel/setup.bash)
  • [2] Access cfg folder, for editing ecms.yaml file
  • [2-Example] ecms/ECMS_mode = "performance" or "realtime"
  • [2-Example] ecms/method = "L" or "ADMM"
  • [2-Example] ecms/iter is maximum iteration number
  • [3] rosparam load ecms.yaml && cd ../../../ && rosrun ecms ecms, In terminal
  • [4] If you want to change specification of Engine, Motor and, Battery, then you must change files in data folder, and edit in src/ICEMG.cpp
  • [5] If you want to change driving cycle, then you must change files in data folder, and edit in src/performance.cpp
  • [6] After performance ECMS_mode, driving cycle information csv files are saved in output folder. And, in iter folder inside output folder, driving cycle information when changing iteration from 1 to ecms/iter

Method

  • Iterative Lagrangian method
  • Alternating Direction Method of Multipliers

Reference

  • [1] S. Boyd, “Distributed Optimization and Statistical Learning via the Alternating Direction Method of Multipliers,” Found. Trends® Mach. Learn., vol. 3, no. 1, pp. 1–122, 2010.
  • [2] A. Sciarretta and L. Guzzella, “Control of Hybrid Electric Vehicles,” IEEE Control Syst. Mag., vol. 27, no. 2, pp. 60–70, 2007.