Admittance Perturbations¶
Base Classes¶
AdmittanceGenerator¶
Bases: ABC
Abstract base class for applying perturbations to line admittances.
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
__init__()
¶Initialize the admittance generator.
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
11 12 13 | |
generate(example_generator)
abstractmethod
¶Generate admittance perturbations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
example_generator
|
Generator[Network, None, None]
|
A generator producing example (load/topology/generation) scenarios to which line admittance perturbations are added. |
required |
Yields:
| Type | Description |
|---|---|
Union[Generator[Network, None, None], List[Network]]
|
An admittance-perturbed scenario. |
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 | |
Concrete Implementations¶
NoAdmittancePerturbationGenerator¶
Bases: AdmittanceGenerator
Generator that yields the original example generator without any perturbations.
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
__init__()
¶Initialize the no-perturbation generator
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
35 36 37 | |
generate(example_generator)
¶Yield the original examples without any perturbations.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
example_generator
|
Generator[Network, None, None]
|
A generator producing example (load/topology/generation) scenarios to which line admittance perturbations are added. |
required |
Yields:
| Type | Description |
|---|---|
Network
|
The original example produced by the example_generator. |
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | |
PerturbAdmittanceGenerator¶
Bases: AdmittanceGenerator
Class for applying perturbations to line admittances.
This class is for generating different line admittance scenarios by applying perturbations to the resistance (R) and reactance (X) values of the lines. Perturbations are applied as a scaling factor sampled from a uniform distribution with a given lower and upper bound.
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |
__init__(base_net, sigma)
¶Initialize the line admittance perturbation generator. TODO: add BR_B
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
base_net
|
Network
|
The base power network. |
required |
sigma
|
float
|
A constant that specifies the range from which to draw samples from a uniform distribution to be used as a scaling factor for resistance and reactance. The range is set as [max([0, 1-sigma]), 1+sigma). |
required |
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 | |
generate(example_generator)
¶Generate a network with perturbed line admittance values.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
example_generator
|
Generator[Network, None, None]
|
A generator producing example (load/topology/generation) scenarios to which line admittance perturbations are added. |
required |
Yields:
| Type | Description |
|---|---|
Network
|
An example scenario with random perturbations applied to line |
Network
|
admittances. |
Source code in gridfm_datakit/perturbations/admittance_perturbation.py
85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 | |