3.2.2. Control Scheme
As there is no communication besides broadcast, the decision-making process of users is a non-cooperative game. The public information provided by broadcast promotes coherence among users, as the decision-making process is decentralized compared to centralized control approaches, whose coherence is guaranteed by centralized decision making and bi-directional communication.
As stated in the previous section, the control can be regarded as a flexibility allocation game. According to Proposition 1, this turns out to be a congestion game, which is a special class of potential game. Theorem 1 suggests that a potential game converges to a NE. NE is a stable state of a system involving the interaction of different participants, in which no participant can gain by a unilateral change of strategy if the strategies of the others remain unchanged. According to the definition of NE, it is reasonable to conclude that has achieved its minimum if the game converges to a NE. However, just like local optimum in numerical optimization, there might be multiple NE in one potential game. Therefore, the proposed control scheme has to fulfill two requirements: firstly, the game should be able to converge to NE within an acceptable time, secondly, there should be a guarantee that the game converges to a specific admissible NE.
One can figure out that the minimum of is obtained, where and . In other words, user i reaches its minimum cost when user i follows its own plan and the local voltage is close to the set point. Practically speaking, this is the idea of user deregulation. In this paper a so-called “suggest-convince” mechanism is proposed to configure the decision making of user i, to minimize in (2), where is the period.
is the incentive in the proposed control. Whenever user
i receives
, it will firstly operate Algorithm 1 independently to figure out the suggestion parameter
, in which Equation (8) is given by
Step 5 in Algorithm 1 works in a seesaw manner. When
has a large deviation from rated voltage, it is more dominating in the computation of
, otherwise,
will be dominating. This suggests that user
i always regards its own situation as a priority.
Algorithm 1 Suggest Phase |
Input: |
Public voltage information, |
Local voltage, ; |
Rated voltage, ; |
Output: |
Suggestion parameter, ; |
1: calculate according to Equation (8) |
2: if then |
3: ; |
4: end if |
5: ; |
6: Return |
Each user
i maintains a two dimensional vector
, where
. This is so called stubborn vector. The suggestion parameter
that is figured out by Algorithm 1, which indicates the suggested adjustment, is used to “convince” the corresponding stubborn vectors according to Algorithm 2.
Algorithm 2 Convince Phase |
Input: |
Suggestion parameter, ; |
Stubborn vector, ; |
Period index, m; |
Output: |
Strategy, ; |
1: if then |
2: ; |
3: else if then |
4: ; |
5: else if then |
6: ; |
7: end if |
8: Return |
Depending on
, the corresponding control will be implemented according to (1). Nevertheless,
needs to be specified if
, as
only indicates the direction. The specific
is figured out in Algorithm 3. One can find that it is possible for
even when
, while it is different from the situation when
, this will be explained later on. The last admissible status
is the last corresponding
when
is within
of rated voltage. In order to make the control robust and stable, users are encouraged to trace back to their
if a regulation needs to be applied. Different from centralized control, there is no explicit set point given to users. If
is not applicable, user
i can keep the current working status and count 1 more on
. This gives user
i some time to wait for other users contribute to the necessary regulation. Whereas, if the situation remains when
reaches to 2, user
i will do an experiment by adjusting its
2% towards the direction suggested by
and reset
to zero. For the users who cannot adjust their working status by such a step, the closest working state will be chosen. Performing experiments is the least preferred operation as it will not be often when the game converges to a proper NE.
Algorithm 3: The calculation of |
Input: |
Suggestion parameter, ; |
initial plan, |
Last admissible status, ; |
Current working status, ; |
Trace-back count, ; |
Output: |
Admissible adjustment, ; |
Trace-back count, ; |
1: if then |
2: , ; |
3: else if then |
4: , ; |
5: else if then |
6: ; |
7: else |
8: |
9: end if |
10: Return |
As shown in Algorithm 2, is a vector that can affect the distribution of , where . T is the timescale of while is the timescale of . In this paper, T is 24 h and is 0.5 h, therefore . For each period m, there is a scalar pair , in which and are two thresholds for as illustrated in Algorithm 2. Namely, is the threshold between staying with the current working status and making a change towards the direction suggests, while is the threshold between staying with the current working status and implementing change according to . It benefits the whole LVDN most if user i makes a change towards , while implementing change according to results in perfect user comfort. Scalar pair indicates control policy of user i, as it configures the corresponding probability distribution of . Given the situation that users have different behavioral characteristics during one day, different is needed to seek for the NE in different games during different periods of one day. This is why applies. In this paper, the optimal values of are figured out by a trial and error learning approach illustrated by Algorithm 4, where sign stands for the Bernoulli trial.
In Algorithm 4, a variant of the so-called log-linear trial and error learning [
43] is implemented. Note that
is given by a linear combination of two log models, and
is adjusted with probabilities in proportion to
when
approaches the median between
and technical boundaries (
of
).
Algorithm 4: Learning Phase |
Input: |
Strategy, ; |
Local voltage, ; |
Corresponding scalar pair, ; |
Boundary coefficient, ; |
Suggestion parameter, ; |
Adjust step, ; |
Output: |
Corresponding scalar pair, ; |
1: calculate according to Equation (8) |
2: ; |
3: if then |
4: ; |
5: ; |
6: else if = 1 then |
7: if then |
8: ; |
9: else if then |
10: ; ## do nothing |
11: else |
12: ; |
13: end if |
14: else if = 0 then |
15: if then |
16: ; |
17: if then |
18: ; |
19: end if |
20: else if then |
21: ; |
22: if then |
23: ; |
24: end if |
25: else |
26: ; |
27: end if |
28: else if = −1 then |
29: if then |
30: ; |
31: ; |
32: else if then |
33: ; |
34: else |
35: ; |
36: ; |
37: ; |
38: end if |
39: end if |
40: if then |
41: ; |
42: if then |
43: ; |
44: end if |
45: else if then |
46: ; |
47: if then |
48: ; |
49: end if |
50: end if |
51: Return |