Regulator Controller#

pydantic model gdm.distribution.controllers.RegulatorController#

Data model for a Regulator Controller.

Show JSON schema
{
   "title": "RegulatorController",
   "description": "Data model for a Regulator Controller.",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the regulator controller.",
         "title": "Name",
         "type": "string"
      },
      "delay": {
         "default": null,
         "description": "Delay for the first tap change operation",
         "title": "Delay",
         "type": "string"
      },
      "v_setpoint": {
         "default": null,
         "description": "The target control voltage for regulator controller.",
         "title": "V Setpoint",
         "type": "string"
      },
      "min_v_limit": {
         "default": null,
         "description": "The minimum voltage limit for regulator controller.",
         "title": "Min V Limit",
         "type": "string"
      },
      "max_v_limit": {
         "default": null,
         "description": "The maximum voltage limit for regulator controller.",
         "title": "Max V Limit",
         "type": "string"
      },
      "pt_ratio": {
         "description": "Value of the voltage (potential) transformer ratio used to step down the voltage for the controller.",
         "minimum": 0.0,
         "title": "Pt Ratio",
         "type": "number"
      },
      "use_ldc": {
         "description": "Boolean value representing whether the line drop compensator is used or not.",
         "title": "Use Ldc",
         "type": "boolean"
      },
      "is_reversible": {
         "description": "Boolean value representing whether the tap change is reversible or not.",
         "title": "Is Reversible",
         "type": "boolean"
      },
      "ldc_R": {
         "default": null,
         "description": "R setting on the line drop compensator of the regulator in Volts.",
         "title": "Ldc R",
         "type": "string"
      },
      "ldc_X": {
         "default": null,
         "description": "X setting on the line drop compensator of the regulator in Volts.",
         "title": "Ldc X",
         "type": "string"
      },
      "ct_primary": {
         "default": null,
         "description": "Current at which the line drop compensator voltages match the R and X settings.",
         "title": "Ct Primary",
         "type": "string"
      },
      "max_step": {
         "description": "Maximum number of steps upwards or downwards that can be made per control iteration.",
         "minimum": 0,
         "title": "Max Step",
         "type": "integer"
      },
      "bandwidth": {
         "default": null,
         "description": "The total voltage bandwidth for the controller",
         "title": "Bandwidth",
         "type": "string"
      },
      "controlled_bus": {
         "$ref": "#/$defs/DistributionBus",
         "description": "The bus that is being controlled by the controller."
      },
      "controlled_phase": {
         "$ref": "#/$defs/Phase",
         "description": "The phase that is being controlled by the controller."
      }
   },
   "$defs": {
      "DistributionBus": {
         "additionalProperties": false,
         "description": "Data model for distribution bus.\n\nExamples:\n    >>> from gdm import DistributionBus\n    >>> DistributionBus.example()",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "substation": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DistributionSubstation"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Name of the substation."
            },
            "feeder": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/DistributionFeeder"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Name of the feeder."
            },
            "in_service": {
               "default": true,
               "description": "Is the component in service?",
               "title": "In Service",
               "type": "boolean"
            },
            "voltage_type": {
               "$ref": "#/$defs/VoltageTypes",
               "description": "Voltage types for buses."
            },
            "phases": {
               "description": "List of phases for this bus.",
               "items": {
                  "$ref": "#/$defs/Phase"
               },
               "title": "Phases",
               "type": "array"
            },
            "voltagelimits": {
               "default": [],
               "description": "List of voltage limit sets for this bus.",
               "items": {
                  "$ref": "#/$defs/VoltageLimitSet"
               },
               "title": "Voltagelimits",
               "type": "array"
            },
            "rated_voltage": {
               "default": null,
               "description": "rated voltage for this bus.",
               "title": "Rated Voltage",
               "type": "string"
            },
            "coordinate": {
               "anyOf": [
                  {
                     "$ref": "#/$defs/Location"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "description": "Coordinate for the power system bus."
            }
         },
         "required": [
            "name",
            "voltage_type",
            "phases",
            "rated_voltage"
         ],
         "title": "DistributionBus",
         "type": "object"
      },
      "DistributionFeeder": {
         "additionalProperties": false,
         "description": "Class interface for distribution feeder.",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "title": "Name",
               "type": "string"
            }
         },
         "required": [
            "name"
         ],
         "title": "DistributionFeeder",
         "type": "object"
      },
      "DistributionSubstation": {
         "additionalProperties": false,
         "description": "Class interface for distribution feeder.",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "title": "Name",
               "type": "string"
            },
            "feeders": {
               "description": "List of feeders for this substation.",
               "items": {
                  "$ref": "#/$defs/DistributionFeeder"
               },
               "title": "Feeders",
               "type": "array"
            }
         },
         "required": [
            "name",
            "feeders"
         ],
         "title": "DistributionSubstation",
         "type": "object"
      },
      "LimitType": {
         "description": "Operational limit types.",
         "enum": [
            "min",
            "max"
         ],
         "title": "LimitType",
         "type": "string"
      },
      "Location": {
         "additionalProperties": false,
         "description": "Specifies geographic location.",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "default": "",
               "title": "Name",
               "type": "string"
            },
            "x": {
               "title": "X",
               "type": "number"
            },
            "y": {
               "title": "Y",
               "type": "number"
            },
            "crs": {
               "anyOf": [
                  {
                     "type": "string"
                  },
                  {
                     "type": "null"
                  }
               ],
               "default": null,
               "title": "Crs"
            }
         },
         "required": [
            "x",
            "y"
         ],
         "title": "Location",
         "type": "object"
      },
      "Phase": {
         "description": "This class is used to represent a single phase from a set of possible values.",
         "enum": [
            "A",
            "B",
            "C",
            "N",
            "S1",
            "S2"
         ],
         "title": "Phase",
         "type": "string"
      },
      "VoltageLimitSet": {
         "additionalProperties": false,
         "description": "Data model for voltage limit set.",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "default": "",
               "description": "Name of the voltage limit set.",
               "title": "Name",
               "type": "string"
            },
            "limit_type": {
               "$ref": "#/$defs/LimitType",
               "description": "Limit type used."
            },
            "value": {
               "default": null,
               "description": "Voltage threshold.",
               "title": "Value",
               "type": "string"
            }
         },
         "required": [
            "limit_type",
            "value"
         ],
         "title": "VoltageLimitSet",
         "type": "object"
      },
      "VoltageTypes": {
         "description": "Identifier of voltage types referenced in distribution models.",
         "enum": [
            "line-to-line",
            "line-to-ground"
         ],
         "title": "VoltageTypes",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "delay",
      "v_setpoint",
      "min_v_limit",
      "max_v_limit",
      "pt_ratio",
      "use_ldc",
      "is_reversible",
      "max_step",
      "bandwidth",
      "controlled_bus",
      "controlled_phase"
   ]
}

Config:
  • str_strip_whitespace: bool = True

  • validate_assignment: bool = True

  • validate_default: bool = True

  • extra: str = forbid

  • use_enum_values: bool = False

  • arbitrary_types_allowed: bool = True

  • populate_by_name: bool = True

Fields:
  • bandwidth (infrasys.quantities.Voltage)

  • controlled_bus (gdm.distribution.components.distribution_bus.DistributionBus)

  • controlled_phase (gdm.distribution.enums.Phase)

  • ct_primary (infrasys.quantities.Current | None)

  • delay (infrasys.quantities.Time | None)

  • is_reversible (bool)

  • ldc_R (infrasys.quantities.Voltage | None)

  • ldc_X (infrasys.quantities.Voltage | None)

  • max_step (int)

  • max_v_limit (infrasys.quantities.Voltage)

  • min_v_limit (infrasys.quantities.Voltage)

  • name (str)

  • pt_ratio (float)

  • use_ldc (bool)

  • uuid (uuid.UUID)

  • v_setpoint (infrasys.quantities.Voltage)

field bandwidth: WithJsonSchema(json_schema={'type': 'string', 'default': None}, mode=None), FieldInfo(annotation=NoneType, required=True, description='The total voltage bandwidth for the controller', metadata=[Ge(ge=0)])] [Required]#

The total voltage bandwidth for the controller

Constraints:
  • json_schema = {‘type’: ‘string’, ‘default’: None}

  • ge = 0

field controlled_bus: Annotated[DistributionBus, FieldInfo(annotation=NoneType, required=True, description='The bus that is being controlled by the controller.')] [Required]#

The bus that is being controlled by the controller.

field controlled_phase: Annotated[Phase, FieldInfo(annotation=NoneType, required=True, description='The phase that is being controlled by the controller.')] [Required]#

The phase that is being controlled by the controller.

field ct_primary: ', metadata=[Ge(ge=0)])] = None#

Current at which the line drop compensator voltages match the R and X settings.

Constraints:
  • json_schema = {‘type’: ‘string’, ‘default’: None}

  • ge = 0

field delay: WithJsonSchema(json_schema={'type': 'string', 'default': None}, mode=None), FieldInfo(annotation=NoneType, required=True, description='Delay for the first tap change operation')] [Required]#

Delay for the first tap change operation

Constraints:
  • json_schema = {‘type’: ‘string’, ‘default’: None}

field is_reversible: Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Boolean value representing whether the tap change is reversible or not.')] [Required]#

Boolean value representing whether the tap change is reversible or not.

field ldc_R: ', metadata=[Ge(ge=0)])] = None#

R setting on the line drop compensator of the regulator in Volts.

Constraints:
  • json_schema = {‘type’: ‘string’, ‘default’: None}

  • ge = 0

field ldc_X: ', metadata=[Ge(ge=0)])] = None#

X setting on the line drop compensator of the regulator in Volts.

Constraints:
  • json_schema = {‘type’: ‘string’, ‘default’: None}

  • ge = 0

field max_step: Annotated[int, FieldInfo(annotation=NoneType, required=True, description='Maximum number of steps upwards or downwards that can be made per control iteration.', metadata=[Ge(ge=0)])] [Required]#

Maximum number of steps upwards or downwards that can be made per control iteration.

Constraints:
  • ge = 0

field max_v_limit: ', metadata=[Gt(gt=0)])] [Required]#

The maximum voltage limit for regulator controller.

Constraints:
  • json_schema = {‘type’: ‘string’, ‘default’: None}

  • gt = 0

field min_v_limit: ', metadata=[Gt(gt=0)])] [Required]#

The minimum voltage limit for regulator controller.

Constraints:
  • json_schema = {‘type’: ‘string’, ‘default’: None}

  • gt = 0

field name: Annotated[str, FieldInfo(annotation=NoneType, required=False, default='', description='Name of the regulator controller.')] = ''#

Name of the regulator controller.

field pt_ratio: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Value of the voltage (potential) transformer ratio used to step down the voltage for the controller.', metadata=[Ge(ge=0)])] [Required]#

Value of the voltage (potential) transformer ratio used to step down the voltage for the controller.

Constraints:
  • ge = 0

field use_ldc: Annotated[bool, FieldInfo(annotation=NoneType, required=True, description='Boolean value representing whether the line drop compensator is used or not.')] [Required]#

Boolean value representing whether the line drop compensator is used or not.

field v_setpoint: ', metadata=[Gt(gt=0)])] [Required]#

The target control voltage for regulator controller.

Constraints:
  • json_schema = {‘type’: ‘string’, ‘default’: None}

  • gt = 0