Generation ########## Solar Electric ************** Home Energy Score allows for a single photovoltaic system to be included per dwelling unit. For multi-family units and single-family attached units a shared PV system can be specified along with the number of units sharing that system and the proportion of the PV system allocated to that unit will be considered. In HPXML, multiple ``PVSystem`` elements can be specified to represent the PV systems on the house. The translator combines multiple systems and generates the appropriate HEScore inputs as follows: Number of Units Sharing System ============================== If the :ref:`dwelling-unit-type` is ``single_family_attached`` or ``apartment_unit`` the HPXML element ``NumberofUnitsServed`` can be provided to indicate a shared PV system. If that is provided the total capacity of the PV system will be divided by the number of units as described below. If this is omitted or the building is not one of those dwelling unit types, the entire PV system will be assumed to serve a single unit. Capacity Known ============== If each ``PVSystem`` has a ``MaxPowerOutput``, this is true. If each ``PVSystem`` has a ``NumberOfPanels`` or if each has ``CollectorArea``, this is false. Preference is given to known capacity if available. One of ``MaxPowerOutput``, ``NumberOfPanels``, or ``CollectorArea`` must be specified for each ``PVSystem``. DC Capacity =========== If each ``PVSystem`` has a ``MaxPowerOutput``, the system capacity is known. The ``system_capacity`` in HEScore is calculated by summing all the ``MaxPowerOutput`` elements in HPXML. If ``PVSystem`` is a shared system (i.e., serving multiple dwelling units), PV generation will be apportioned to the dwelling unit by dividing the building’s total PV capacity by the number of units. .. _number-of-panels: Number of Panels ================ If ``MaxPowerOutput`` is missing from any ``PVSystem``, the translator will check to see if every system has ``NumberOfPanels`` and calculate the total number of panels. If ``NumberOfPanels`` isn't available on every system, the translator will look for ``CollectorArea`` on every PVSystem. The number of panels is calculated by summing all the collector area, dividing by 17.6 sq.ft., and rounding to the nearest whole number. If ``PVSystem`` is a shared system (i.e., serving multiple dwelling units), the number of panels will be apportioned to the dwelling unit by dividing the building's total number of panels by the number of units. Weighted Averages ================= The below quantities are calculated using weighted averages. The weights used are in priority order: - ``MaxPowerOutput`` - ``NumberOfPanels`` - ``CollectorArea`` Which is the same data elements used to determine the PV sizing inputs above. Year Installed ============== For each ``PVSystem`` the ``YearInverterManufactured`` and ``YearModulesManufactured`` element values are retrieved, and the greater of the two is assumed to be the year that system was installed. When there are multiple ``PVSystem`` elements, a weighted average is calculated and used. Panel Orientation (Azimuth) =========================== For each ``PVSystem`` the ``ArrayAzimuth`` (degrees clockwise from north) is retrieved. If ``ArrayAzimuth`` is not available, ``ArrayOrientation`` (north, northwest, etc) is converted into an azimuth. A weighted average azimuth is calculated and converted into the nearest cardinal direction (north, northwest, etc) for submission into the ``array_azimuth`` HEScore input (which expects a direction, not a numeric azimuth). .. _panel-tilt: Panel Tilt ========== For each ``PVSystem`` the ``ArrayTilt`` (in degrees from horizontal) is retrieved. A weighted average tilt is calculated and submitted to the ``array_tilt`` HEScore input (which expects an enumeration, not a numeric tilt). The tilt is mapped to HEScore as follows: .. table:: Tilt mapping ===================== ================ HPXML HEScore ===================== ================ 0 - 7° flat 8 - 22° low_slope 23 - 37° medium_slope 38 - 90° steep_slope ===================== ================