Starting from:

$30

CE295-Optimal PHEV Energy Management using Dynamic Programming Solved

This assignment will provide hands-on practice for dynamic programming (DP) with application to energy management in plug-in hybrid electric vehicles (PHEVs). PHEVs are microgrids on wheels. Namely, their powertrains (i.e. power systems) include a local generator (internal combustion engine), energy storage (the battery), and local power demand (from the driver’s right foot). The goal is to manage energy flows to minimize fuel consumption.

Reading

The following readings are intended to provided context and background for this homework assignment.

•   “Hybrid and Electrified Vehicles: The Role of Dynamics and Control” by Rizzoni and Peng.

•   “Smart, Connected & Electric: The Future of the Automobile” by Phillips, McGee, Kristinsson, & Yu.

Problem Data

•   You will optimize for the Urban Dynamic Driving Schedule (UDDS) power demand, provided in bCourses.

•   Minimize total fuel consumption .

•   Engine power is given by Peng(k) = η(Peng(k)) · Pfuel(k), where η(·) is the engine efficiency as a function of power demand. This function is computed by eta_eng (a separate .m file in Matlab and integrated directly in the iPython Notebook).

•   The battery dynamics are given by: 

•   The battery SOC, battery power, and engine power are limited according to:

SOCmin

SOC(k) ≤ SOCmax
−Pbattmax

Pbatt(k) ≤ Pbattmax
0

 
Formulate
Problem 1: Formulate an optimization problem. Provide the following:

(a)     Write down the objective function.

(b)     Write down ALL the constraints, after eliminating the variable Peng(k) as done in lecture. Label the physical meaning of each constraint.

(c)      What is the control variable? What is the state variable?

Problem 2:

(a)     Define - in words - an appropriate value function, as done in lecture and the CH 5 notes.

(b)     Write down the principle of optimality equation and boundary condition.

Problem 3: This problem assists you to write the code. You should have formulated three pairs of upper/lower limits, i.e. inequalities.

(a)     Re-arrange each pair as upper/lower limits on Pbatt(k).

(b)     Clearly, one of the lower limits and one of the upper limits will dominate the others, at each time step. Collapse the three pairs into the form: max{·,·,·} ≤ Pbatt(k) ≤ min{·,·,·}. This produces simple bounds on Pbatt(k), for each time step. This will greatly assist our coding of the principle of optimality.

Data
Problem 4: Download the files { HW5_Skeleton.m, UDDS_Pdem.csv. eta_eng.m } for Matlab or {HW5_Skeleton.ipynb, UDDS_Pdem.csv } for Python from bCourses. The data file UDDS_Pdem.csv contains vectors t, v_dc, P_dem, which respectively give the time [sec], drive cycle speed [m/s], and corresponding power demand [kW].

(a)     In one figure, create two subplots. The top subplot plots the UDDS speed vs. time. The bottom subplot includes power demand vs. time. Use appropriate line styles, axis labels, font sizes, etc. Include the figure in your report.

(b)     In a second figure, plot the engine efficiency curve: Peng on the x-axis versus η(Peng) on the y-axis.

Code
Problem 5: For all the following subproblems, you may include the entire code in your report.

(a)     Encode the value function’s boundary condition in the skeleton code.

(b)     For each time-step and each state in the SOC grid, find the lower/upper bounds for Pbatt(k). Use these bounds to create a grid of feasible Pbatt values.

(c)      Implement the recursive principle of optimality equation in your code. This includes (i) the costper-time-step calculation, (ii) computing SOC(k + 1), and (iii) interpolation of Vk+1(SOC(k + 1)). Interpolation is necessary because Vk is defined on the SOC grid, and SOC(k + 1) will never fall exactly on a grid-point. Therefore we interpolate between grid points to find Vk+1(SOC(k + 1)). The key idea is that the sub-optimization is done by griding Pbatt and selecting the value which minimizes the min operator’s argument.

Problem 6: Simulate optimal energy management results. Provide the code and plots in your report. (a) Suppose the initial SOC is 0.75. Write a for loop that simulates the discrete-time battery dynamics, using the optimal battery power Pbatt∗ (k). This includes (i) interpolating Pbatt∗ (k) over the SOC grid, (ii) computing the accumulated fuel consumption, and (iii) the SOC dynamics.

(b)     What is the minimum fuel consumption?

(c)      Create a figure with four subplots, using appropriate line-styles, axis labels, and legends:

•   [Subplot 1] UDDS speed versus time.

•   [Subplot 2] SOC versus time

•   [Subplot 3] Accumulated fuel consumption [g] versus time.

•   [Subplot 4] Battery and engine power [kW] versus time.

(d)     Are all the inequality constraints satisfied?

Additional Analysis
Problem 7: Note that DP computes the optimal energy management strategy for all possible initial SOC values. Use this fact to complete Table 1.

Table 1: PHEV Energy Management Results

Initial SOC
Final SOC
Total Fuel Cons. [kg]
0.9

0.75 0.6

0.45

0.3
 
 
Problem 8: Comment on the SOC and engine power trajectories. As the initial SOC decreases, how does the SOC trajectory change? How does the total fuel consumption change? Explain why.

More products