Inverter Equipment#

pydantic model gdm.distribution.equipment.InverterEquipment#

Data model for inverter equipment.

Show JSON schema
{
   "title": "InverterEquipment",
   "description": "Data model for inverter equipment.",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "default": "",
         "description": "Name of the inverter controller.",
         "title": "Name",
         "type": "string"
      },
      "rated_apparent_power": {
         "default": "0 ohm",
         "description": "Apparent power rating for the inverter.",
         "title": "Rated Apparent Power",
         "type": "string"
      },
      "rise_limit": {
         "default": "0 ohm",
         "description": "The rise in power output allowed per unit of time",
         "title": "Rise Limit",
         "type": "string"
      },
      "fall_limit": {
         "default": "0 ohm",
         "description": "The fall in power output allowed per unit of time",
         "title": "Fall Limit",
         "type": "string"
      },
      "cutout_percent": {
         "description": "If the per-unit power drops below this value the PV output is turned off.",
         "maximum": 100.0,
         "minimum": 0.0,
         "title": "Cutout Percent",
         "type": "number"
      },
      "cutin_percent": {
         "description": "If the per-unit power rises above this value the PV output is turned on.",
         "maximum": 100.0,
         "minimum": 0.0,
         "title": "Cutin Percent",
         "type": "number"
      },
      "dc_to_ac_efficiency": {
         "description": "DC to AC efficiency of the inverter.",
         "maximum": 100.0,
         "minimum": 0.0,
         "title": "Dc To Ac Efficiency",
         "type": "number"
      },
      "eff_curve": {
         "anyOf": [
            {
               "$ref": "#/$defs/Curve"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "Efficency curve for inverter."
      }
   },
   "$defs": {
      "Curve": {
         "additionalProperties": false,
         "description": "An interface for representing a curve using x and y points. e.g for volt-var and volt-watt curves.\n\nExamples\n--------\n\nExample of a Curve (Volt-Var IEEE-1547 standard).\n\n>>> Curve(\n        curve_x=[0.5, 0.92, 0.98, 1.02, 1.08, 1.5], curve_y=[1.0, 1.0, 0.0, 0.0, -1.0, -1.0]\n    )\n\nExample of a Curve (Volt-Var Volt-Watt IEEE-1547 standard)\n\n>>> Curve(curve_x=[0.5, 1.06, 1.1, 1.5], curve_y=[1.0, 1.0, 0.0, 0.0])",
         "properties": {
            "uuid": {
               "format": "uuid",
               "title": "Uuid",
               "type": "string"
            },
            "name": {
               "default": "",
               "description": "Name of the curve.",
               "title": "Name",
               "type": "string"
            },
            "curve_x": {
               "anyOf": [
                  {
                     "items": {
                        "type": "number"
                     },
                     "type": "array"
                  },
                  {}
               ],
               "description": "The x values of the curve",
               "title": "Curve X"
            },
            "curve_y": {
               "anyOf": [
                  {
                     "items": {
                        "type": "number"
                     },
                     "type": "array"
                  },
                  {}
               ],
               "description": "The y values of the curve",
               "title": "Curve Y"
            }
         },
         "required": [
            "curve_x",
            "curve_y"
         ],
         "title": "Curve",
         "type": "object"
      }
   },
   "additionalProperties": false,
   "required": [
      "rated_apparent_power",
      "rise_limit",
      "fall_limit",
      "cutout_percent",
      "cutin_percent",
      "dc_to_ac_efficiency"
   ]
}

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:
  • cutin_percent (float)

  • cutout_percent (float)

  • dc_to_ac_efficiency (float)

  • eff_curve (gdm.distribution.common.curve.Curve | None)

  • fall_limit (gdm.quantities.ActivePowerOverTime | None)

  • name (str)

  • rated_apparent_power (gdm.quantities.PositiveApparentPower)

  • rise_limit (gdm.quantities.ActivePowerOverTime | None)

  • uuid (uuid.UUID)

field cutin_percent: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='If the per-unit power rises above this value the PV output is turned on.', metadata=[Ge(ge=0), Le(le=100)])] [Required]#

If the per-unit power rises above this value the PV output is turned on.

Constraints:
  • ge = 0

  • le = 100

field cutout_percent: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='If the per-unit power drops below this value the PV output is turned off.', metadata=[Ge(ge=0), Le(le=100)])] [Required]#

If the per-unit power drops below this value the PV output is turned off.

Constraints:
  • ge = 0

  • le = 100

field dc_to_ac_efficiency: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='DC to AC efficiency of the inverter.', metadata=[Ge(ge=0), Le(le=100)])] [Required]#

DC to AC efficiency of the inverter.

Constraints:
  • ge = 0

  • le = 100

field eff_curve: Annotated[Curve | None, FieldInfo(annotation=NoneType, required=False, default=None, description='Efficency curve for inverter.')] = None#

Efficency curve for inverter.

field fall_limit: WithJsonSchema(json_schema={'type': 'string', 'default': '0 ohm'}, mode=None), FieldInfo(annotation=NoneType, required=True, description='The fall in power output allowed per unit of time')] [Required]#

The fall in power output allowed per unit of time

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

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

Name of the inverter controller.

field rated_apparent_power: ')] [Required]#

Apparent power rating for the inverter.

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

field rise_limit: WithJsonSchema(json_schema={'type': 'string', 'default': '0 ohm'}, mode=None), FieldInfo(annotation=NoneType, required=True, description='The rise in power output allowed per unit of time')] [Required]#

The rise in power output allowed per unit of time

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