## 2 Models and Methods
### DP Algorithm with Emission Constraints
For the \(j\)th SOC grid points in the kth time step, the fuel consumption value loss function is  
\[J_{\text{fuel}}(j,k)=\min\Big{[}m_{fuel}(j,k,l)+J_{fuel\_next}+m_{0}e_{\text{ lim}}(j,k,l)\Big{]}\quad l=1,2,\cdots,3316 \tag{11}\]  
where \(J_{\text{fuel}}(j,k)\) is the fuel consumption value function at the \(j\)-\(k\) grid point (the \(j\)th SOC grid point of the \(k\)th time step), which is the minimum cumulative fuel consumption with j as the initial SOC state in the k to N time control stage; \(m_{\text{fuel}}(j,k,l)\) is the fuel consumption at the \(j\)-\(k\) grid point due to the lth action; \(J_{\text{fuel,next}}\) is the corresponding fuel consumption value loss function at the \((k+1)_{\text{th}}\) time step due to the lth action; \(m_{0}e_{\text{lim}}(j,k,l)\) is the penalty function term for limiting pollutant emissions at the j-k grid point. Therein, \(J_{\text{fuel,next}}\) is calculated by interpolating the fuel consumption value loss functions recorded at the state-time grid points in the \((k+1)_{\text{th}}\) time step, which needs the battery charge state in the \((k+1)_{\text{th}}\) time step due to the lth action. This battery charge state is derived from the state transfer equation:  
\[SOC_{next}=SOC(j,k)-\frac{U_{\text{OC}}-\big{(}U_{\text{OC}}^{2}-4R_{\text{ int}}P_{\text{bat}}\big{)}^{\frac{1}{2}}}{2R_{\text{int}}Q_{\text{max}}} \tag{12}\]  
where \(SOC(j,k)\) is the battery charge state at the \(j\)-\(k\) grid point; \(SOC_{\text{next}}\) is the battery charge state at the \((k+1)_{\text{th}}\) moment due to the \(l\)th action; \(U_{\text{OC}}\) is the open-circuit voltage of the battery, and \(R_{\text{int}}\) is the internal resistance of the battery (the relationship between \(U_{\text{OC}}\), \(R_{\text{int}}\), and SOC is obtained from the battery characteristic curves); \(Q_{\text{max}}\) is the maximum capacity of the battery; and \(P_{\text{bat}}\) is the output or input power of the battery. Since the engine in the EREV can supply electricity directly to the drive motor without going through the battery, the following energy balance relationship is available:  
\[P_{\text{bat}}=\frac{P_{\text{dem}}}{\eta_{\text{m}}}-\eta_{\text{g}}P_{\text{ e}} \tag{13}\]  
where \(P_{\text{e}}\) is the engine output power, which can be derived from \(n_{\text{e}}\) and \(T_{\text{e}}\) at the action discrete point; \(\eta_{\text{g}}\) is the generator efficiency taken from the generator efficiency characteristic diagrams; \(P_{\text{dem}}\) is the demand power, which is calculated from the real-time motor output speed and torque recorded during RDE Test B; and \(\eta_{\text{m}}\) is the motor efficiency taken from the motor efficiency characteristic diagrams. After obtaining \(SOC_{\text{next}}\), \(J_{\text{fuel,next}}\) can be calculated by interpolating the fuel consumption value loss function stored at the two grid points neighboring \(SOC_{\text{next}}\) on the \(k+1\) time step. Additionally, in the case that \(SOC_{\text{next}}\) calculated by the state transfer equation is outside the SOC range of 0.2-0.8, the action discrete point should be excluded from the action optimization process. Equation (11) also includes the penalty function term of \(m_{0}e_{\text{lim}}(j,k,l)\), So the pollutant emissions generated by all the actions at the \(j\)-\(k\) grid point need to be calculated. For the \(l\)th action at the \(j\)-\(k\) grid point, the resulting pollutant emissions can be calculated using the interpolated-startup-corrected emission model. Suppose that the \(l\)th action is judged to result in an engine start-stop event. In that case, the interpolated-startup-corrected emission model will additionally include the startup emissions in the resulting pollutant emissions of this action. The engine start-stop event is judged based on the change rate of the engine speed:  
\[\Delta n_{\text{e}}>1000\,\text{r}/\min \tag{14}\]where \(\Delta n_{\rm e}\) is the change rate of the engine speed.