Solar Equipment#

pydantic model gdm.distribution.equipment.SolarEquipment#

Data model for Solar Model.

Show JSON schema
{
   "title": "SolarEquipment",
   "description": "Data model for Solar Model.",
   "type": "object",
   "properties": {
      "uuid": {
         "format": "uuid",
         "title": "Uuid",
         "type": "string"
      },
      "name": {
         "title": "Name",
         "type": "string"
      },
      "rated_power": {
         "default": "0 kilovar",
         "description": "Maximum power of the PV array for 1.0 kW/m^2 irradiance.",
         "title": "Rated Power",
         "type": "string"
      },
      "power_temp_curve": {
         "anyOf": [
            {
               "$ref": "#/$defs/Curve"
            },
            {
               "type": "null"
            }
         ],
         "default": null,
         "description": "The power temperature curve for the PV array."
      },
      "resistance": {
         "description": "Percentage internal resistance for the PV array.",
         "maximum": 100.0,
         "minimum": 0.0,
         "title": "Resistance",
         "type": "number"
      },
      "reactance": {
         "description": "Percentage internal reactance for the PV array.",
         "maximum": 100.0,
         "minimum": 0.0,
         "title": "Reactance",
         "type": "number"
      },
      "rated_voltage": {
         "description": "Rated voltage for this solar equipment.",
         "title": "Rated Voltage"
      },
      "voltage_type": {
         "$ref": "#/$defs/VoltageTypes",
         "description": "Rated voltage is line to line or line to neutral."
      }
   },
   "$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"
      },
      "VoltageTypes": {
         "description": "Identifier of voltage types referenced in distribution models.",
         "enum": [
            "line-to-line",
            "line-to-ground"
         ],
         "title": "VoltageTypes",
         "type": "string"
      }
   },
   "additionalProperties": false,
   "required": [
      "name",
      "rated_power",
      "resistance",
      "reactance",
      "rated_voltage",
      "voltage_type"
   ]
}

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:
  • name (str)

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

  • rated_power (gdm.quantities.PositiveActivePower)

  • rated_voltage (gdm.quantities.PositiveVoltage)

  • reactance (float)

  • resistance (float)

  • uuid (uuid.UUID)

  • voltage_type (gdm.distribution.enums.VoltageTypes)

field power_temp_curve: Annotated[Curve | None, FieldInfo(annotation=NoneType, required=False, default=None, description='The power temperature curve for the PV array.')] = None#

The power temperature curve for the PV array.

field rated_power: ')] [Required]#

Maximum power of the PV array for 1.0 kW/m^2 irradiance.

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

field rated_voltage: Annotated[PositiveVoltage, FieldInfo(annotation=NoneType, required=True, description='Rated voltage for this solar equipment.')] [Required]#

Rated voltage for this solar equipment.

field reactance: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Percentage internal reactance for the PV array.', metadata=[Strict(strict=True), Ge(ge=0), Le(le=100)])] [Required]#

Percentage internal reactance for the PV array.

Constraints:
  • strict = True

  • ge = 0

  • le = 100

field resistance: Annotated[float, FieldInfo(annotation=NoneType, required=True, description='Percentage internal resistance for the PV array.', metadata=[Strict(strict=True), Ge(ge=0), Le(le=100)])] [Required]#

Percentage internal resistance for the PV array.

Constraints:
  • strict = True

  • ge = 0

  • le = 100

field voltage_type: Annotated[VoltageTypes, FieldInfo(annotation=NoneType, required=True, description='Rated voltage is line to line or line to neutral.')] [Required]#

Rated voltage is line to line or line to neutral.