Network Fixers
Network fixers are a set of pre-processing steps that run before the network is solved.
Whilst this means that the model solved in the power flow model is not a 'true' reflection of the network 'as is' from the ingestors, these fixers are provided as a pragmatic concession to the observed fact that network models and load data are often imperfect, and that getting results for the network with some small tweaks made is better than having a model that doesn't solve at all. They correct common data quality issues in CIM network models that, if left unaddressed, would cause the power flow solver to produce inaccurate results or fail to converge. Each fixer is independently configurable and can be enabled or disabled via the work package configuration.
The fixers run once per feeder, before any scenario or forecast year is built, and every scenario-year model starts from the fixed network. They read each energy consumer's base year load and generation over the configured load time period, and flag consumers whose peak load or generation violates a configured threshold. Forecast demand growth, forecast DER and interventions are applied later and are not considered, so a consumer or conductor that only exceeds a threshold in a forecast year is not fixed.
They always run in the order listed below: single phase loads, then overloading consumers, then undersized service lines, then undersized LV lines. The order matters, as each fixer sees the network as left by the ones before it. A consumer relocated to the HV side of its transformer by the overloading consumer fixer is no longer an LV consumer by the time the conductor fixers run, so no LV conductors are upgraded on its behalf. Similarly, the single phase load fixer changes the phase count on the conductors it rephases, which changes the VA rating the conductor fixers calculate for them.
Only energy consumers that have at least one usage point and belong to the feeder being processed are considered. Every change a fixer makes is logged against the feeder, naming the consumer or conductor, so the logs show exactly what was changed. Each conductor fixer also logs a summary of how many conductors it upgraded, and warns if a customer exceeds the largest catalogue conductor. If all four fixers are disabled, a warning is logged that no fixes were applied.
Single Phase Load Fixer
| Variable Name | Data Type | Default | Description |
|---|---|---|---|
| fixSinglePhaseLoads | bool | true | Flag to enable this feature. If True, then the model generator uses the maxSinglePhaseLoad threshold to upgrade single phase customers with high peak loads. If False, the maxSinglePhaseLoad parameter is ignored and this network fixer will not run. |
| maxSinglePhaseLoad | float | 30000.0 | The max peak load for a single phase customer, beyond which will trigger the single phase load fixing algorithm. |
This fixer corrects energy consumers that are recorded as single-phase in the CIM model but have a peak demand too large to be a realistic single-phase connection. The assumption is that a consumer drawing more than maxSinglePhaseLoad in watts (default 30,000 W) on a single phase is most likely a three-phase consumer with an incorrect phase assignment in the source data.
What it does:
A consumer is eligible for fixing if all of the following are true:
- It has a peak load across the modelled time period that exceeds
maxSinglePhaseLoad(generation is not considered) - It is single phase
- It is an LV consumer (base voltage at or below 1,000 V)
- It belongs to an LV feeder that is already three-phase at the feeder head (not a single phase transformer)
When a consumer meets these criteria, the fixer reassigns its terminals to three-phase (ABC or ABCN depending on whether a neutral is present). It then traces upstream through the network toward the distribution transformer, progressively spreading three-phase assignments to each conductor and switch it encounters along the way. The trace stops when it reaches a conductor that is already three-phase, an open switch, or the distribution transformer itself.
Overloading Consumer Fixer
| Variable Name | Data Type | Default | Description |
|---|---|---|---|
| fixOverloadingConsumers | bool | true | Flag to enable this feature. If True, the model generator uses the maxLoadTxRatio and maxGenTxRatio thresholds to identify and relocate consumers that are likely connected to the wrong side of a transformer. If False, this network fixer will not run. |
| maxLoadTxRatio | float | 3.0 | The maximum load-to-transformer rating ratio for a single consumer, beyond which the overloading consumer fixer will trigger. |
| maxGenTxRatio | float | 10.0 | The maximum generation-to-transformer rating ratio for a single consumer, beyond which the overloading consumer fixer will trigger. |
This fixer corrects energy consumers that have a peak demand or generation where they alone are exceeding the capacity of the distribution transformer they are connected to. Consumers in this situation are assumed to be HV industrial or commercial customers that have been incorrectly connected to the LV side of a transformer in the CIM data. The fixer relocates them to the HV terminal of the transformer.
What it does:
For each LV energy consumer, the fixer finds all distribution transformers that supply it (via its LV feeders) and sums their rated capacity (this is typically just one, but can be more than one in rare instances). If the consumer's peak load exceeds maxLoadTxRatio times the total transformer rating, or its peak generation exceeds maxGenTxRatio times the total transformer rating, the consumer is moved to the HV terminal of one of those transformers. The ratios compare the consumer's peak in watts with the transformer rating in VA. If none of the transformers has an HV terminal, the consumer is left where it is and a warning is logged.
Relocation means all terminals of the consumer are disconnected from the LV bus and reconnected to the HV terminal. The consumer's base voltage is updated to match the HV side, and phase assignments are propagated accordingly.
Example: A consumer with a 50 kW peak load connected downstream of a 10 kVA transformer has a load-to-transformer ratio of 5:1. With maxLoadTxRatio = 3.0, this consumer would be detected and moved to the HV terminal of the transformer, treating it as an HV customer.
Undersized Service Line Fixer
| Variable Name | Data Type | Default | Description |
|---|---|---|---|
| fixUndersizedServiceLines | bool | true | Flag to enable this feature. If True, the model generator uses the maxLoadServiceLineRatio threshold to upgrade service line conductors with unrealistically low current ratings. If False, this network fixer will not run. |
| maxLoadServiceLineRatio | float | 1.5 | The maximum load-to-service-line rating ratio for a consumer, beyond which the undersized service line fixer will trigger. |
This fixer corrects service lines in the network that have current ratings too low for the load they serve, which would cause the solver to report persistent overloads or fail to converge. Unrealistically low ratings are a common data quality issue in CIM models, particularly for service line conductors. The fixer upgrades the affected conductors to a rating and impedance type from the hardcoded conductor catalogue that can support the load.
Starting from each energy consumer and tracing upstream, it upgrades any service line conductor whose rating multiplied by maxLoadServiceLineRatio is less than the consumer's peak load or generation. The trace stops as soon as it reaches a conductor that is sufficiently rated for the load, or when it hits a non service line. What counts as a service line is set per company in the model generator and is not configurable. Not all networks have data that distinguishes service lines from other conductors, so this fixer only works as intended on networks where this has been configured. If you are unsure whether it has been configured for your network, contact Zepben.
What it does:
For each energy consumer, the fixer calculates its peak load or generation across the modelled time period and uses whichever is larger (largest absolute power value). It then traces upstream from the consumer. For each conductor encountered:
- If the conductor's VA rating multiplied by the
maxLoadServiceLineRatiois less than the consumer's peak, the conductor is upgraded. - The upgrade replaces the conductor's asset info (current rating and impedance values r, r0, x, x0) with the smallest entry in the hardcoded conductor catalogue that can support the consumer's peak (not to be confused with the input table conductor_catalog, which is unrelated). If the peak exceeds every catalogue entry, the largest entry is used.
Undersized LV Line Fixer
| Variable Name | Data Type | Default | Description |
|---|---|---|---|
| fixUndersizedLvLines | bool | true | Flag to enable this feature. If True, the model generator uses the maxLoadLvLineRatio threshold to upgrade LV backbone conductors with unrealistically low current ratings. If False, this network fixer will not run. |
| maxLoadLvLineRatio | float | 2.0 | The maximum load-to-LV-line rating ratio for a consumer, beyond which the undersized LV line fixer will trigger. |
This fixer corrects LV backbone conductors in the network that have current ratings too low for the load they serve. It traces all the way up to the distribution transformer, and uses maxLoadLvLineRatio as the threshold, which is typically set higher than the service line ratio to avoid upgrading backbone conductors that serve many consumers where a single high-demand consumer would otherwise trigger an upgrade.
What it does:
For each energy consumer, the fixer calculates its peak load or generation across the modelled time period and uses whichever is larger (largest absolute power value). It then traces upstream from the consumer. For each conductor encountered:
- If the conductor's VA rating multiplied by the
maxLoadLvLineRatiois less than the consumer's peak, the conductor is upgraded. - The upgrade replaces the conductor's asset info (current rating and impedance values r, r0, x, x0) with the smallest entry in the conductor catalogue that can support the consumer's peak. If the peak exceeds every catalogue entry, the largest entry is used.
The trace stops as soon as it reaches a conductor that is adequately rated for the load, or when it reaches a transformer or any equipment at 1,000 V or above, whichever comes first. It starts at the consumer rather than at the end of the service line, so service line conductors are walked as well. In practice these have usually already been dealt with by the undersized service line fixer that ran immediately before, in which case the trace stops there. If fixUndersizedServiceLines is disabled and this fixer is left enabled, service lines will instead be sized against the looser maxLoadLvLineRatio threshold.
Conductor Catalogue
The undersized service line and LV line fixers pick replacement conductors from a built-in catalogue of LV overhead and underground conductors, including parallel cable sets, with ratings from around 100 A to several thousand amps per phase. Entries are chosen by rating alone. The conductor's existing cable or overhead type is not used, as it could be unreliable on a line that needs repairing. The catalogue is hard coded and not configurable. To get the full table, or to request a change to it, contact Zepben.