# Table 3 Constraints

Constraint Description
xi,tatDepoti,t i,t Charge only if vehicle at depot
yi,tatDepoti,t i,t Discharge to grid only if vehicle at depot (V2G)
xi,t+yi,t≤1 i,t Discharge to grid only if vehicle not charging (V2G)
soci,t=arrival=SOCArr,i i SOC on arrival constrained to be equal to the calculated parameter, known from calculation based on the known schedule
soci,t=departureSOCDep,i i The SOC of a bus at departure must be equal to a predefined level SOCDep,i, set to 100%
soci,t=soci,t−1+ΔSOCi×(xi,t−1yi,t−1) i,t SOCBalance: The SOC at time t for bus i is equal to the SOC in the previous time slot plus/minus the amount charged/discharged in the current time slot.
zi,txi,t i,t Constraints employed for ‘No-Preemption Condition’
zi,txi,t−1 i,t
zi,txi,t−1+xi,t−1 i,t By default, xi,t variables are independent of each other with respect to the time slot. This allows the bus recharging process to be interrupted and restarted later (preemption).
$$\sum _{t}{x_{i,t}} - \sum _{t}{z_{i,t}} \leq 1 \ \forall i,t$$ If there is a requirement to prevent the interruption of the charging phase, the following constraints are introduced. The first 3 equations derive from a common trick used in optimization to assign the value 1 to a variable (zi,t in this case) if and only if both other variables are equal to 1 (in this case the charging command in the time slot t and (t−1)). The last equation constrains the number of occasions in which the vehicle is being charged at t but not in (t−1) to be 1. Effectively, this leads to the optimization charging a bus in a single charging process across multiple time slots until the battery is fully charged. 