Trading with an External Market

In urbs it is possible to model the trade with an external market. For this two new commodity types, buy and sell commodities are introduced. For each a time series representing the momentary cost at each timestep is given. This time series is of course known to the model in advance, which has two implications. First, the modeled system is considered too small to influence the external market and any possible influence is not captured by the model, and, second, the perfect price foresight can distort the results when compared to a realistic trader in a market. For models with buy and sell commodities the variable vector takes the following form:

\[x^{\text{T}}=(\zeta, \underbrace{\rho_{yvct}, \varrho_{yvct}, \psi_{yvct}} _{\text{commodity variables}}, \underbrace{\kappa_{yvp}, \widehat{\kappa}_{yvp}, \tau_{yvpt}, \epsilon^{\text{in}}_{yvcpt}, \epsilon^{\text{out}}_{yvcpt}}_{\text{process variables}}, \underbrace{\kappa_{yaf}, \widehat{\kappa}_{yaf}, \pi^{\text{in}}_{yaft}, \pi^{\text{out}}_{yaft}}_{\text{transmission variables}}),\]

where \(\varrho_{yvct}\) is the amount of sell commodity \(c\) sold to the external market in year \(y\) from vertex \(v\) at time \(t\) and \(\psi_{yvct}\) is the amount of buy commodity \(c\) bought from the external market in year \(y\) at vertex \(v\) and time \(t\).


The cost function is amended by two new cost types when the trading with an external market is modeled, the purchase and the revenue costs

\[\zeta = \zeta_{\text{inv}} + \zeta_{\text{fix}} + \zeta_{\text{var}} + \zeta_{\text{fuel}} + \zeta_{\text{rev}} + \zeta_{\text{pur}} + \zeta_{\text{env}}.\]

The two new cost types are then specified by the following equations:

\[\begin{split}\zeta_{\text{rev}}=&-w\Delta t \sum_{y\in Y\\v\in V\\c\in C_{sell}\\ t\in T_m}D_{m}\cdot k^{\text{s}}_{yvct}\cdot \varrho_{yvct}\\\\ \zeta_{\text{pur}}=&w\Delta t\sum_{y\in Y\\v\in V\\c\in C_{buy}\\ t\in T_m} D_{m}\cdot k^{\text{b}}_{yvct}\cdot \psi_{yvct},\end{split}\]

where \(k^{\text{b}}_{yvct}\) and \(k^{\text{s}}_{yvct}\) represents the time series of the given buy and sell commodity prices respectively.

Commodity Dispatch Constraints

Buy and sell commodities change the vertex rule (Kirchhoff’s current law), by adding a new way for in- an output flows of commodities. The rule is thus amended by the following two equations:

\[\begin{split}&\forall y\in Y,~v\in V,~c \in C_{\text{sell}},~t \in T_m:\\ &-\varrho_{ct} \geq \text{CB}(c,t)\\\\ &\forall y\in Y,~v\in V,~c \in C_{\text{buy}},~t \in T_m:\\ &\psi_{ct} \geq \text{CB}(c,t).\end{split}\]

The commodity balance itself is not changed. The new rules state that any amount of energy sold needs to be provided to (negative CB) the system via processes, storages or transmission lines, while buy commodity consumed by processes, storages or transmission lines in the system has to be replenished.

Buy/Sell Commodity Limitations

The trade with the market in each modeled year and each vertex can be limited per time step and for an entire year. This introduces the following constraints:

\[\begin{split}&\forall y\in Y,~v\in V,~c \in C_{\text{sell}}:\\ &w\sum_{t\in T_{m}}\varrho_{ct}\leq \overline{G}_{yvc}\\\\ &\forall y\in Y,~v\in V,~c \in C_{\text{sell}},~t\in T_m:\\ & \varrho_{yvct}\leq \Delta t \cdot \overline{g}_{yvc}\end{split}\]


\[\begin{split}&\forall y\in Y,~v\in V,~c \in C_{\text{buy}}:\\ &w \sum_{t\in T_{m}}\psi_{ct}\leq \overline{B}_{yvc}\\\\ &\forall y\in Y,~v\in V,~c \in C_{\text{buy}},~t\in T_m:\\ & \psi_{yvct}\leq \Delta t \cdot \overline{b}_{yvc}.\end{split}\]

Here, the parameters \(\overline{b}_{yvc}\) and \(\overline{B}_{yvc}\) limit the hourly and yearly maximums of buy from and \(\overline{g}_{yvc}\) and \(\overline{G}_{yvc}\) the hourly and yearly maximum of selling to the external market.

This concludes the discussion of the modeled trading with an external market.