Coder Social home page Coder Social logo

natetsang / optimizing-phev-battery-use Goto Github PK

View Code? Open in Web Editor NEW
40.0 3.0 11.0 549 KB

Utilizing dynamic programming, I optimally schedule electric battery usage for a plug-in hybrid electric vehicle to minimize fuel consumption.

Jupyter Notebook 100.00%

optimizing-phev-battery-use's Introduction

Optimizing PHEV battery use using dynamic programming

This project utilizes dynamic programming with application to energy management in plug-in hybrid electric vehicles (PHEVs). The purpose of this is to build a "cycle beater" that will optimize for the Urban Dynamic Driving Schedule (UDDS) power demand. In other words, the "cycle beater" will optimially discharge the electric battery to minimize fuel consumption and maximize the vehicles's miles-per-gallon. Since UDDS is used for vehicle emissions testing by the EPA, it is illegal for car manufacturers to use such a technique to schedule battery use. That being said, manufacturers have been caught doing so. This was completed as part of a class project in my MS program. Thanks to Prof. Scott Moura for providing UDDS data and overall framework on this.

Key questions explored

  • When is it optimal to use the battery instead of gasoline?
  • How does the battery's initial state of charge (SOC) affect cumulative fuel consumption and final SOC?

Techniques used

  • dynamic programming
  • control systems

Key findings

  • As I decrease the initial SOC, total fuel consumption increases. This makes sense because we have less energy stored in the battery and thus have to rely more on our engine to meet the power demand. Also, a lower initial SOC means that I have to charge our battery more throughout the ride. Charging the battery means that I have to utilize our engine to meet demand.
  • The results also show that the initial and final SOC are linked. The higher the initial SOC, the higher the final SOC. Batteries that have an initial SOC under 0.60 have the same final SOC (0.268), which is near the minimum possible level. This makes sense because the batteries can “freely” utilize its stored energy without exceeding the maximum allowable battery power. In the case where initial SOC is higher (e.g. 0.9), battery power appears to be more constrained by its upper bound, $P_{batt, max}$.
  • Interestingly, final SOC and total fuel consumption for starting SOC of 0.9 and 0.75 are nearly identical. Results for SOC_0 = 0.75

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.