I would like to approximate the following objective function using a simpler function that can use be defined in gurobi.
\begin{equation} \min_{I_{i,v}} \ \sum^{N_v}_{v}\sum^{TT_v}_{i} \ C_{loss,cyc} \end{equation}
The only continuous decision variable is (electrical) Current, $ I_{i,v}$ The variable, $SOC_{init}$ is a function of (electrical) Current values from the previous timeslot. $$SOC_{init} = I_{i-1,v}* \Delta t$$ Therefore $SOC_{init}$ should NOT be considered as a constant. Everything else in the objective function is a constant. The following are constants: $$ a = -4.092 \cdot 10^{-4} , b = -2.167 , c = 1.408 \cdot 10^{-5}, d = 6.130, E_a = 7806, R = 8.3145 , T_{ref} = 28, \Delta t = 0.1, SOC_{init} \in [0,1], C_{bat} = 270, T = 50 $$
I have added the constraints to the problem below. Constants in the constraints are $$ I_{max}, I_{c,max}, T^{dep}_{v},t_s, SOC^{dep}_{v}, SOC_{-1,v}, SOC_{xtra}$$
Explaination of the optimization problem.
In a charging station, that has $N_v$ vehicles that needs to be charged to some state of charge $SOC^{dep}_v$ within some departure time $T^{dep}_v$. The charging schedule for each vehicle, v is thus split into timeslots, i of width $\Delta t$ each for $TT_{v}$ number of slots. Within a timeslot, i the current $I_{i,v}$ is constant. $t_s $ is just starting time of optimization implementation. The objective is trying to minimize the Electric vehicle's battery capacity loss.
QUESTION
I plotted out the objective for different values of current $I_{i,v}$ and $SOC_{init} \in [0,1]$ as shown below.
I would like to know a simpler function to approximate this family of functions. I have already tried the MATLAB curve fitting tool and found fourier series and sum of sines to create good fits. somehow, sums of exponentials are UNABLE to fit these functions.
Note we want to minimize a concave objective function.
Now, I need to connect the different plots through $SOC_{init}$ which is a function of current from previous timeslots. How can I do this? We need to be careful about not multiplying $SOC_{init} and I_{i,v}$ in our new function approximation as this would make the new function approximation non-linear. Can you suggest such a new function approximation?
I need a linear function because this is part of a multi-objective problem that I am solving using gurobi.
Is there a way to define these curves as piece-wise linear? and Could you please suggest some functions to approximate these curves.
It is even possible to restrict the domain of $I_{i,v} \in [0,100]$ instead of up to 300A.
The following functions are avialble in gurobi to define objective functions. These functions are automatically piece-wise linearlized by gurobi. so we can add any of these functions together but cannot multiply them. I would like to use these or other gurobi functions that you can suggest.
• GRBaddgenconstrMax • GRBaddgenconstrMin • GRBaddgenconstrAbs • GRBaddgenconstrAnd • GRBaddgenconstrOr • GRBaddgenconstrIndicator • GRBaddgenconstrPWL • GRBaddgenconstrPoly • GRBaddgenconstrExp • GRBaddgenconstrExpA • GRBaddgenconstrLog • GRBaddgenconstrLogA • GRBaddgenconstrPow • GRBaddgenconstrSin • GRBaddgenconstrCos • GRBaddgenconstrTan: