This paper proposes an innovate process to seamlessly coordinate, allocate and settle near real-time energy transactions in a district MES that includes electricity and heating sub-systems. The process operates in a decentralized way, fully on-chain. The mechanism aims at (i) forging the solidarity of the community, where participants act for common good. (ii) increasing the penetration of renewable energies, where participants are willing to purchase as much renewable energy as possible. (iii) minimizing the cost of energy consumption, by building the best possible portfolio for consumers to optimize their energy bill.
The energy transaction is matched according to the criteria of (i) connectivity: physical connection by cable or tunnel in the energy network, (ii) availability: real-time energy supply and demand, and (iii) priority: community generated green energy has higher priority for usage than energy from the grid, or other customized whitelist or blacklist.
The system architecture (as shown in Fig. 1) and testing data are derived from the eHub demonstrator of EMPA in Dübendorf, Switzerland.
In intraday trading, energy and financial transactions are resolved in a 15 min interval. We propose a 5-step settlement mechanism, where each step has an allocated period, globally coordinated by a single smart contract. Figure 2 illustrates the sequence of actions in one trading interval. Activities take place in both networks at the same time.
In the first step, all the devices register basic information for the upcoming 15 min. In the second step, all the consumers send out price queries to renewable energy producers or to storage units of the community. After all queries have been responded to, consumers sort all possible offers according to the updated unit prices. The received responses are sorted by the following guidelines: (i) Sort from the lowest price to the highest price. (ii) Rank down the unresponsive devices. At the same time, heat pumps receive the demand of hot water from their connected water tanks. Heat pumps convert the requested volume into needed electricity and broadcast the demand to connected devices. Meanwhile, water tanks calculate their new averaged unit price of the stored hot water for the upcoming trading period. In the third step, producers ask for the sorted result from their connected consumers and make their own list of ranks based on the preference of consumers. The guideline for producers to sort their connected consumers follows: (i) Outdated information is not considered for sorting. (ii) Sort all consumers based on their Rank. The smallest Rank is placed highest in the list. (iii) For two items with the same Rank, the smaller Total ranks up. (iv) Devices with larger consumption are ranked down. In the heating network, the water tanks query houses for the hot water consumption at this step. At stage four, nodes with negative energy load initiate energy transactions based on the sorted rank list. If one heat pump receives energy during this stage, it immediately initiates another transaction in the heating network to the connected water tank, as it consumes electricity to produce heat. Similarly, in the heating grid, each water tank transacts hot water to corresponding households. If there are still residues of generation or lack of supply, at the final clearing step five, producers and consumers act at the same time with storage or grid to offset the surplus or deficiency. It is possible for devices in the community to define “blacklists” for some connected devices. The communication is cut off with the blacklisted device. This mechanism allows punishment against deceit or unaffordable energy price.
Energy producers can choose different pricing strategies that aim for various goals, such as maximum payoff or maximum selling volume. Here we adapt several pricing scenarios in three categories. First, zero-intelligence pricing, a basic Real-Time-Pricing (RTP) strategy where agents have little or no information on both the performance of their own and others’ devices. This makes the pricing strategy totally random and independent of any system impulses. Secondly, inversed-production pricing, where agents need to predict the production of their own devices for the next 15 min interval based on historical data and set up the price according to a general demand-supply relation. It is a Critical Peak Pricing (CPP) strategy. Each agent performs independently, relying only on the historical information of its own device. Thirdly, game-theory based pricing, where each energy producing agent can adjust the selling price based on the behavior of other energy producers who hold a similar role, to maximize their utility function in a collective non-cooperative way. Here we define the utility function as the portion of energy sold out to the community at each time interval. Agents firstly share necessary information with each other and make their own decisions in combination with the historical performance of their own device. Unit prices are set by energy producers. The adopted strategy affects the payoff of the energy producer.
The mechanism is deployed as a set of smart contracts written in Solidity on the local test Remote Procedure Call (RPC) Ethereum simulator using the Truffle framework. All tests were later run on Node.js using the Mocha testing framework. The input data, as shown in Fig. 3, that record full-day activities are collected from the sensors at eHub is firstly scaled and processed to cohere with the assumption of the project. Three pricing strategies, as shown in Fig. 4, are tested on three different layouts of the district system. Besides the layout shown in Fig. 1, one testing layout does not contain a battery, while in the other layout, the battery is connected to all other devices. Apart from the differences in layouts, the following operating conditions are applied identically in the tests: (i) No active purchase from the battery, (ii) the unit price for the battery is static, and (iii) the load capacity of the grid is ±100 kW.