Class: GeneratorRecord¶
Generator (DER) data record for DistOPF. Covers PV and diesel generation types. Power values are in per-unit (base s_base).
classDiagram
class GeneratorRecord
click GeneratorRecord href "../GeneratorRecord/"
GeneratorRecord : control_variable
GeneratorRecord : generator_type
GeneratorRecord : id
GeneratorRecord : name
GeneratorRecord : pa
GeneratorRecord : pb
GeneratorRecord : pc
GeneratorRecord : phases
GeneratorRecord : qa
GeneratorRecord : qa_max
GeneratorRecord : qa_min
GeneratorRecord : qb
GeneratorRecord : qb_max
GeneratorRecord : qb_min
GeneratorRecord : qc
GeneratorRecord : qc_max
GeneratorRecord : qc_min
GeneratorRecord : s_base
GeneratorRecord : sa_max
GeneratorRecord : sb_max
GeneratorRecord : sc_max
Slots¶
| Name | Cardinality and Range | Description | Inheritance |
|---|---|---|---|
| id | 1 Integer |
Generator integer index (one-based row number) | direct |
| name | 0..1 String |
Generator name label (matches the name of the bus where the generator connect... | direct |
| generator_type | 0..1 String |
Generator technology type (for example, pv or diesel) | direct |
| pa | 0..1 Float |
Phase A active power output in per-unit (base s_base) | direct |
| pb | 0..1 Float |
Phase B active power output in per-unit (base s_base) | direct |
| pc | 0..1 Float |
Phase C active power output in per-unit (base s_base) | direct |
| qa | 0..1 Float |
Phase A reactive power output in per-unit (base s_base) | direct |
| qb | 0..1 Float |
Phase B reactive power output in per-unit (base s_base) | direct |
| qc | 0..1 Float |
Phase C reactive power output in per-unit (base s_base) | direct |
| sa_max | 0..1 Float |
Phase A apparent power rating in per-unit (base s_base) | direct |
| sb_max | 0..1 Float |
Phase B apparent power rating in per-unit (base s_base) | direct |
| sc_max | 0..1 Float |
Phase C apparent power rating in per-unit (base s_base) | direct |
| phases | 0..1 String |
Active phases for this generator (abc, a, b, c, ab, ac, bc) | direct |
| qa_max | 0..1 Float |
Phase A maximum reactive power in per-unit (base s_base) | direct |
| qb_max | 0..1 Float |
Phase B maximum reactive power in per-unit (base s_base) | direct |
| qc_max | 0..1 Float |
Phase C maximum reactive power in per-unit (base s_base) | direct |
| qa_min | 0..1 Float |
Phase A minimum reactive power in per-unit (base s_base) | direct |
| qb_min | 0..1 Float |
Phase B minimum reactive power in per-unit (base s_base) | direct |
| qc_min | 0..1 Float |
Phase C minimum reactive power in per-unit (base s_base) | direct |
| control_variable | 0..1 String |
OPF control variable (P = active power, Q = reactive power, PQ = both, empty ... | direct |
| s_base | 0..1 Float |
Apparent power base, in volt-amperes | direct |
Usages¶
| used by | used in | type | used |
|---|---|---|---|
| DistopfModel | generator_records | range | GeneratorRecord |
Comments¶
- DistOPF GeneratorRecord maps to different CIM classes depending on generator_type. Import: generator_type=diesel creates a SynchronousMachine; any other value (including the pv+bess type mentioned in older docs, which is not separately handled) creates a PhotoVoltaicUnit behind a PowerElectronicsConnection. Export: only PowerElectronicsConnection objects without an attached BatteryUnit are exported as GeneratorRecord (generator_type is always written as "pv"); SynchronousMachine objects are not currently exported at all.
TODOs¶
- Export never emits generator_type="diesel" — there is no exporter registered for cim.SynchronousMachine, so diesel generators created on import cannot be round-tripped back out.
Identifier and Mapping Information¶
Schema Source¶
- from schema: https://gridappsd.org/cimhub/distopf
Mappings¶
| Mapping Type | Mapped Value |
|---|---|
| self | distopf:GeneratorRecord |
| native | distopf:GeneratorRecord |
| related | cim:PowerElectronicsConnection, cim:SynchronousMachine |
LinkML Source¶
Direct¶
name: GeneratorRecord
description: Generator (DER) data record for DistOPF. Covers PV and diesel generation
types. Power values are in per-unit (base s_base).
todos:
- Export never emits generator_type="diesel" — there is no exporter registered for
cim.SynchronousMachine, so diesel generators created on import cannot be round-tripped
back out.
comments:
- 'DistOPF GeneratorRecord maps to different CIM classes depending on generator_type.
Import: generator_type=diesel creates a SynchronousMachine; any other value (including
the pv+bess type mentioned in older docs, which is not separately handled) creates
a PhotoVoltaicUnit behind a PowerElectronicsConnection. Export: only PowerElectronicsConnection
objects without an attached BatteryUnit are exported as GeneratorRecord (generator_type
is always written as "pv"); SynchronousMachine objects are not currently exported
at all.'
from_schema: https://gridappsd.org/cimhub/distopf
related_mappings:
- cim:PowerElectronicsConnection
- cim:SynchronousMachine
attributes:
id:
name: id
annotations:
order:
tag: order
value: 1
value_type:
tag: value_type
value: int
separator:
tag: separator
value: ','
description: Generator integer index (one-based row number).
comments:
- 'DistOPF-only: a row index used to key this record, not a CIM identity. On import
the generator''s ConnectivityNode is looked up by name (falling back to this
index against the bus table); the CIM objects are identified by their own mRID.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
identifier: true
domain_of:
- BusRecord
- GeneratorRecord
- CapacitorRecord
- BatteryRecord
- RegulatorRecord
range: integer
required: true
name:
name: name
annotations:
order:
tag: order
value: 2
value_type:
tag: value_type
value: string
quote:
tag: quote
value: false
separator:
tag: separator
value: ','
description: Generator name label (matches the name of the bus where the generator
connects).
comments:
- 'Import: name is used both as the CIM object''s own name (PowerElectronicsConnection.name
/ SynchronousMachine.name) and to look up the connected ConnectivityNode by
name. Export: name = the connected ConnectivityNode''s name (falls back to the
PowerElectronicsConnection''s own name if no terminal node is resolvable).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
exact_mappings:
- cim:IdentifiedObject.name
ifabsent: string("")
domain_of:
- BusRecord
- BranchRecord
- GeneratorRecord
- CapacitorRecord
- BatteryRecord
range: string
required: false
generator_type:
name: generator_type
annotations:
order:
tag: order
value: 3
native_name:
tag: native_name
value: type
value_type:
tag: value_type
value: string
quote:
tag: quote
value: false
separator:
tag: separator
value: ','
description: Generator technology type (for example, pv or diesel).
comments:
- 'Import: selects which CIM class is constructed — "diesel" creates a SynchronousMachine,
any other value creates a PhotoVoltaicUnit + PowerElectronicsConnection. Export:
always written as "pv" (see the class-level comment on the SynchronousMachine
export gap).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
related_mappings:
- cim:PowerElectronicsConnection
- cim:SynchronousMachine
rank: 1000
ifabsent: string("pv")
domain_of:
- GeneratorRecord
range: string
required: false
pa:
name: pa
annotations:
order:
tag: order
value: 4
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A active power output in per-unit (base s_base).
comments:
- 'Import: pa, pb, and pc are summed and converted to a single PowerElectronicsConnection.p
or SynchronousMachine.p = (pa + pb + pc) × s_base (per-unit to watts); there
is no per-phase p on import. Export: pa = PowerElectronicsConnection.p / s_base;
pb and pc are left at zero (see the pb/pc comments).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
close_mappings:
- cim:PowerElectronicsConnection.p
- cim:SynchronousMachine.p
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
pb:
name: pb
annotations:
order:
tag: order
value: 5
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B active power output in per-unit (base s_base).
todos:
- Export never writes pb; per-phase active power is not split back out from the
CIM object's single p value.
comments:
- 'Import: included in the pa+pb+pc sum written to PowerElectronicsConnection.p
/ SynchronousMachine.p (see the pa comment). Export: not populated — the exporter
only reads back the total power into pa.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
pc:
name: pc
annotations:
order:
tag: order
value: 6
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C active power output in per-unit (base s_base).
todos:
- Export never writes pc; per-phase active power is not split back out from the
CIM object's single p value.
comments:
- 'Import: included in the pa+pb+pc sum written to PowerElectronicsConnection.p
/ SynchronousMachine.p (see the pa comment). Export: not populated — the exporter
only reads back the total power into pa.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qa:
name: qa
annotations:
order:
tag: order
value: 7
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A reactive power output in per-unit (base s_base).
comments:
- 'Import: qa, qb, and qc are summed and converted to a single PowerElectronicsConnection.q
or SynchronousMachine.q = (qa + qb + qc) × s_base (per-unit to vars); there
is no per-phase q on import. Export: qa = PowerElectronicsConnection.q / s_base;
qb and qc are left at zero (see the qb/qc comments).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
close_mappings:
- cim:PowerElectronicsConnection.q
- cim:SynchronousMachine.q
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
- CapacitorRecord
range: float
required: false
unit:
ucum_code: pu
qb:
name: qb
annotations:
order:
tag: order
value: 8
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B reactive power output in per-unit (base s_base).
todos:
- Export never writes qb; per-phase reactive power is not split back out from
the CIM object's single q value.
comments:
- 'Import: included in the qa+qb+qc sum written to PowerElectronicsConnection.q
/ SynchronousMachine.q (see the qa comment). Export: not populated — the exporter
only reads back the total reactive power into qa.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
- CapacitorRecord
range: float
required: false
unit:
ucum_code: pu
qc:
name: qc
annotations:
order:
tag: order
value: 9
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C reactive power output in per-unit (base s_base).
todos:
- Export never writes qc; per-phase reactive power is not split back out from
the CIM object's single q value.
comments:
- 'Import: included in the qa+qb+qc sum written to PowerElectronicsConnection.q
/ SynchronousMachine.q (see the qa comment). Export: not populated — the exporter
only reads back the total reactive power into qa.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
- CapacitorRecord
range: float
required: false
unit:
ucum_code: pu
sa_max:
name: sa_max
annotations:
order:
tag: order
value: 10
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A apparent power rating in per-unit (base s_base).
comments:
- 'Import: sa_max, sb_max, and sc_max are summed and converted to a single PowerElectronicsConnection.ratedS
or SynchronousMachine.ratedS = (sa_max + sb_max + sc_max) × s_base (per-unit
to volt-amperes). Export: sa_max = ratedS / s_base; sb_max and sc_max are left
at zero (see the sb_max/sc_max comments).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
close_mappings:
- cim:PowerElectronicsConnection.ratedS
- cim:SynchronousMachine.ratedS
ifabsent: float(0.0)
domain_of:
- BranchRecord
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
sb_max:
name: sb_max
annotations:
order:
tag: order
value: 11
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B apparent power rating in per-unit (base s_base).
todos:
- Export never writes sb_max; per-phase rating is not split back out from the
CIM object's single ratedS value.
comments:
- 'Import: included in the sa_max+sb_max+sc_max sum written to ratedS (see the
sa_max comment). Export: not populated — the exporter only reads back the total
rating into sa_max.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
ifabsent: float(0.0)
domain_of:
- BranchRecord
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
sc_max:
name: sc_max
annotations:
order:
tag: order
value: 12
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C apparent power rating in per-unit (base s_base).
todos:
- Export never writes sc_max; per-phase rating is not split back out from the
CIM object's single ratedS value.
comments:
- 'Import: included in the sa_max+sb_max+sc_max sum written to ratedS (see the
sa_max comment). Export: not populated — the exporter only reads back the total
rating into sa_max.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
ifabsent: float(0.0)
domain_of:
- BranchRecord
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
phases:
name: phases
annotations:
order:
tag: order
value: 13
value_type:
tag: value_type
value: string
quote:
tag: quote
value: false
separator:
tag: separator
value: ','
description: Active phases for this generator (abc, a, b, c, ab, ac, bc).
todos:
- Export does not inspect PowerElectronicsConnectionPhase children, so a single-phase
or split-phase generator always exports as "abc".
comments:
- 'Not used on import (the importer always creates a single three-phase connection).
Export: always written as "abc"; the exporter does not inspect PowerElectronicsConnectionPhase
children to detect single- or split-phase generators.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
ifabsent: string("abc")
domain_of:
- BusRecord
- BranchRecord
- GeneratorRecord
- CapacitorRecord
- BatteryRecord
- RegulatorRecord
range: string
required: false
qa_max:
name: qa_max
annotations:
order:
tag: order
value: 14
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A maximum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power ceiling on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power upper bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qb_max:
name: qb_max
annotations:
order:
tag: order
value: 15
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B maximum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power ceiling on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power upper bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qc_max:
name: qc_max
annotations:
order:
tag: order
value: 16
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C maximum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power ceiling on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power upper bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qa_min:
name: qa_min
annotations:
order:
tag: order
value: 17
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A minimum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power floor on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power lower bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qb_min:
name: qb_min
annotations:
order:
tag: order
value: 18
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B minimum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power floor on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power lower bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qc_min:
name: qc_min
annotations:
order:
tag: order
value: 19
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C minimum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power floor on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power lower bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
control_variable:
name: control_variable
annotations:
order:
tag: order
value: 20
value_type:
tag: value_type
value: string
quote:
tag: quote
value: false
separator:
tag: separator
value: ','
description: OPF control variable (P = active power, Q = reactive power, PQ =
both, empty = fixed).
comments:
- 'DistOPF-only (N/A): OPF solver hint for which setpoints are dispatchable; not
read or written by the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: string("PQ")
domain_of:
- GeneratorRecord
- BatteryRecord
range: string
required: false
s_base:
name: s_base
annotations:
order:
tag: order
value: 21
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 0
separator:
tag: separator
value: ''
description: Apparent power base, in volt-amperes.
todos:
- Export hard-codes s_base = 1e6 rather than resolving the actual base used elsewhere
in the network (see _get_s_base_for_bus in converters.py).
comments:
- DistOPF-only scaling constant used to convert the per-unit pa/pb/pc, qa/qb/qc,
and sa_max/sb_max/sc_max fields to and from CIM's SI-unit power values; not
itself stored on the CIM object. The importer always uses 1e6 VA (1 MVA) as
the base regardless of this field's value on export.
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
ifabsent: float(1000000.0)
domain_of:
- BusRecord
- BranchRecord
- GeneratorRecord
range: float
required: false
unit:
ucum_code: VA
Induced¶
name: GeneratorRecord
description: Generator (DER) data record for DistOPF. Covers PV and diesel generation
types. Power values are in per-unit (base s_base).
todos:
- Export never emits generator_type="diesel" — there is no exporter registered for
cim.SynchronousMachine, so diesel generators created on import cannot be round-tripped
back out.
comments:
- 'DistOPF GeneratorRecord maps to different CIM classes depending on generator_type.
Import: generator_type=diesel creates a SynchronousMachine; any other value (including
the pv+bess type mentioned in older docs, which is not separately handled) creates
a PhotoVoltaicUnit behind a PowerElectronicsConnection. Export: only PowerElectronicsConnection
objects without an attached BatteryUnit are exported as GeneratorRecord (generator_type
is always written as "pv"); SynchronousMachine objects are not currently exported
at all.'
from_schema: https://gridappsd.org/cimhub/distopf
related_mappings:
- cim:PowerElectronicsConnection
- cim:SynchronousMachine
attributes:
id:
name: id
annotations:
order:
tag: order
value: 1
value_type:
tag: value_type
value: int
separator:
tag: separator
value: ','
description: Generator integer index (one-based row number).
comments:
- 'DistOPF-only: a row index used to key this record, not a CIM identity. On import
the generator''s ConnectivityNode is looked up by name (falling back to this
index against the bus table); the CIM objects are identified by their own mRID.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
identifier: true
owner: GeneratorRecord
domain_of:
- BusRecord
- GeneratorRecord
- CapacitorRecord
- BatteryRecord
- RegulatorRecord
range: integer
required: true
name:
name: name
annotations:
order:
tag: order
value: 2
value_type:
tag: value_type
value: string
quote:
tag: quote
value: false
separator:
tag: separator
value: ','
description: Generator name label (matches the name of the bus where the generator
connects).
comments:
- 'Import: name is used both as the CIM object''s own name (PowerElectronicsConnection.name
/ SynchronousMachine.name) and to look up the connected ConnectivityNode by
name. Export: name = the connected ConnectivityNode''s name (falls back to the
PowerElectronicsConnection''s own name if no terminal node is resolvable).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
exact_mappings:
- cim:IdentifiedObject.name
ifabsent: string("")
owner: GeneratorRecord
domain_of:
- BusRecord
- BranchRecord
- GeneratorRecord
- CapacitorRecord
- BatteryRecord
range: string
required: false
generator_type:
name: generator_type
annotations:
order:
tag: order
value: 3
native_name:
tag: native_name
value: type
value_type:
tag: value_type
value: string
quote:
tag: quote
value: false
separator:
tag: separator
value: ','
description: Generator technology type (for example, pv or diesel).
comments:
- 'Import: selects which CIM class is constructed — "diesel" creates a SynchronousMachine,
any other value creates a PhotoVoltaicUnit + PowerElectronicsConnection. Export:
always written as "pv" (see the class-level comment on the SynchronousMachine
export gap).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
related_mappings:
- cim:PowerElectronicsConnection
- cim:SynchronousMachine
rank: 1000
ifabsent: string("pv")
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: string
required: false
pa:
name: pa
annotations:
order:
tag: order
value: 4
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A active power output in per-unit (base s_base).
comments:
- 'Import: pa, pb, and pc are summed and converted to a single PowerElectronicsConnection.p
or SynchronousMachine.p = (pa + pb + pc) × s_base (per-unit to watts); there
is no per-phase p on import. Export: pa = PowerElectronicsConnection.p / s_base;
pb and pc are left at zero (see the pb/pc comments).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
close_mappings:
- cim:PowerElectronicsConnection.p
- cim:SynchronousMachine.p
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
pb:
name: pb
annotations:
order:
tag: order
value: 5
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B active power output in per-unit (base s_base).
todos:
- Export never writes pb; per-phase active power is not split back out from the
CIM object's single p value.
comments:
- 'Import: included in the pa+pb+pc sum written to PowerElectronicsConnection.p
/ SynchronousMachine.p (see the pa comment). Export: not populated — the exporter
only reads back the total power into pa.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
pc:
name: pc
annotations:
order:
tag: order
value: 6
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C active power output in per-unit (base s_base).
todos:
- Export never writes pc; per-phase active power is not split back out from the
CIM object's single p value.
comments:
- 'Import: included in the pa+pb+pc sum written to PowerElectronicsConnection.p
/ SynchronousMachine.p (see the pa comment). Export: not populated — the exporter
only reads back the total power into pa.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qa:
name: qa
annotations:
order:
tag: order
value: 7
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A reactive power output in per-unit (base s_base).
comments:
- 'Import: qa, qb, and qc are summed and converted to a single PowerElectronicsConnection.q
or SynchronousMachine.q = (qa + qb + qc) × s_base (per-unit to vars); there
is no per-phase q on import. Export: qa = PowerElectronicsConnection.q / s_base;
qb and qc are left at zero (see the qb/qc comments).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
close_mappings:
- cim:PowerElectronicsConnection.q
- cim:SynchronousMachine.q
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
- CapacitorRecord
range: float
required: false
unit:
ucum_code: pu
qb:
name: qb
annotations:
order:
tag: order
value: 8
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B reactive power output in per-unit (base s_base).
todos:
- Export never writes qb; per-phase reactive power is not split back out from
the CIM object's single q value.
comments:
- 'Import: included in the qa+qb+qc sum written to PowerElectronicsConnection.q
/ SynchronousMachine.q (see the qa comment). Export: not populated — the exporter
only reads back the total reactive power into qa.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
- CapacitorRecord
range: float
required: false
unit:
ucum_code: pu
qc:
name: qc
annotations:
order:
tag: order
value: 9
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C reactive power output in per-unit (base s_base).
todos:
- Export never writes qc; per-phase reactive power is not split back out from
the CIM object's single q value.
comments:
- 'Import: included in the qa+qb+qc sum written to PowerElectronicsConnection.q
/ SynchronousMachine.q (see the qa comment). Export: not populated — the exporter
only reads back the total reactive power into qa.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
- CapacitorRecord
range: float
required: false
unit:
ucum_code: pu
sa_max:
name: sa_max
annotations:
order:
tag: order
value: 10
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A apparent power rating in per-unit (base s_base).
comments:
- 'Import: sa_max, sb_max, and sc_max are summed and converted to a single PowerElectronicsConnection.ratedS
or SynchronousMachine.ratedS = (sa_max + sb_max + sc_max) × s_base (per-unit
to volt-amperes). Export: sa_max = ratedS / s_base; sb_max and sc_max are left
at zero (see the sb_max/sc_max comments).'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
close_mappings:
- cim:PowerElectronicsConnection.ratedS
- cim:SynchronousMachine.ratedS
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- BranchRecord
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
sb_max:
name: sb_max
annotations:
order:
tag: order
value: 11
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B apparent power rating in per-unit (base s_base).
todos:
- Export never writes sb_max; per-phase rating is not split back out from the
CIM object's single ratedS value.
comments:
- 'Import: included in the sa_max+sb_max+sc_max sum written to ratedS (see the
sa_max comment). Export: not populated — the exporter only reads back the total
rating into sa_max.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- BranchRecord
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
sc_max:
name: sc_max
annotations:
order:
tag: order
value: 12
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C apparent power rating in per-unit (base s_base).
todos:
- Export never writes sc_max; per-phase rating is not split back out from the
CIM object's single ratedS value.
comments:
- 'Import: included in the sa_max+sb_max+sc_max sum written to ratedS (see the
sa_max comment). Export: not populated — the exporter only reads back the total
rating into sa_max.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- BranchRecord
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
phases:
name: phases
annotations:
order:
tag: order
value: 13
value_type:
tag: value_type
value: string
quote:
tag: quote
value: false
separator:
tag: separator
value: ','
description: Active phases for this generator (abc, a, b, c, ab, ac, bc).
todos:
- Export does not inspect PowerElectronicsConnectionPhase children, so a single-phase
or split-phase generator always exports as "abc".
comments:
- 'Not used on import (the importer always creates a single three-phase connection).
Export: always written as "abc"; the exporter does not inspect PowerElectronicsConnectionPhase
children to detect single- or split-phase generators.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
ifabsent: string("abc")
owner: GeneratorRecord
domain_of:
- BusRecord
- BranchRecord
- GeneratorRecord
- CapacitorRecord
- BatteryRecord
- RegulatorRecord
range: string
required: false
qa_max:
name: qa_max
annotations:
order:
tag: order
value: 14
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A maximum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power ceiling on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power upper bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qb_max:
name: qb_max
annotations:
order:
tag: order
value: 15
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B maximum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power ceiling on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power upper bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qc_max:
name: qc_max
annotations:
order:
tag: order
value: 16
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C maximum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power ceiling on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power upper bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qa_min:
name: qa_min
annotations:
order:
tag: order
value: 17
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase A minimum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power floor on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power lower bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qb_min:
name: qb_min
annotations:
order:
tag: order
value: 18
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase B minimum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power floor on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power lower bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
qc_min:
name: qc_min
annotations:
order:
tag: order
value: 19
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 6
separator:
tag: separator
value: ','
description: Phase C minimum reactive power in per-unit (base s_base).
todos:
- No CIM equivalent for a per-phase reactive power floor on PowerElectronicsConnection/SynchronousMachine;
requires a CIM extension to roundtrip.
comments:
- 'DistOPF-only (N/A): OPF reactive power lower bound; not read or written by
the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: float(0.0)
owner: GeneratorRecord
domain_of:
- GeneratorRecord
range: float
required: false
unit:
ucum_code: pu
control_variable:
name: control_variable
annotations:
order:
tag: order
value: 20
value_type:
tag: value_type
value: string
quote:
tag: quote
value: false
separator:
tag: separator
value: ','
description: OPF control variable (P = active power, Q = reactive power, PQ =
both, empty = fixed).
comments:
- 'DistOPF-only (N/A): OPF solver hint for which setpoints are dispatchable; not
read or written by the CIM converters.'
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
rank: 1000
ifabsent: string("PQ")
owner: GeneratorRecord
domain_of:
- GeneratorRecord
- BatteryRecord
range: string
required: false
s_base:
name: s_base
annotations:
order:
tag: order
value: 21
value_type:
tag: value_type
value: float
precision:
tag: precision
value: 0
separator:
tag: separator
value: ''
description: Apparent power base, in volt-amperes.
todos:
- Export hard-codes s_base = 1e6 rather than resolving the actual base used elsewhere
in the network (see _get_s_base_for_bus in converters.py).
comments:
- DistOPF-only scaling constant used to convert the per-unit pa/pb/pc, qa/qb/qc,
and sa_max/sb_max/sc_max fields to and from CIM's SI-unit power values; not
itself stored on the CIM object. The importer always uses 1e6 VA (1 MVA) as
the base regardless of this field's value on export.
from_schema: https://gridappsd.org/cimhub/distopf/classes/generator
ifabsent: float(1000000.0)
owner: GeneratorRecord
domain_of:
- BusRecord
- BranchRecord
- GeneratorRecord
range: float
required: false
unit:
ucum_code: VA