pvperfsolar performance modeling

PVsyst files and the PVsyst 8 path

pvperf reads the component and weather files that PVsyst writes and runs them through its HTTP API.

The PVsyst 8 path selects the method of PVsyst 8 at each calculation step. A run can return its hourly series under PVsyst's variable names and units.

Files pvperf reads

File Endpoint Returns
PAN module file, text form POST /v1/parse-pan the module section and an id
OND inverter file POST /v1/parse-ond the inverter section and an id
MET weather file, hourly POST /v1/parse-weather the weather section and an id
Variant file (.VC0, .VC1, …) with a 3D scene POST /v1/parse-scene a scene body and the racking fields it implies

Each endpoint takes a multipart form with the file in file.

curl -X POST https://pvperf.com/v1/parse-pan -F "file=@module.PAN"

A run request names a parsed file by its id. The module takes {"id": "pan_…"}, the inverter {"id": "ond_…"} and the weather {"id": "met_…"}. A PAN file in binary or encrypted form is refused with a request for its text form. The scene reader takes the pvShading block of a PVsyst 8 variant file. Its array_patch goes into the request's array section before the run.

The PVsyst 8 path

The PVsyst 8 path selects, at each step, the method of PVsyst 8 with its default settings. The table gives the methods for a fixed monofacial array without a horizon profile, and the methods that change with the request.

StepPVsyst 8 path
Irradiance
Solar positionPVsyst 8 ephemeris
Sun timingSunlit-slice midpoint
Dark intervalsZero
TranspositionPerez 1990
Perez settingsPVsyst 8 settings
Circumsolar treatmentLike beam
Low-light thresholdThreshold on the plane global
Far shading (horizon)Do not modelWith a horizon profile: Crossing fraction + diffuse integrals
Near shading (row to row)Infinite rows, PVsyst applicationWith a scene: Shading-factor table, PVsyst application
Sky-diffuse maskingIsotropic integral of the row shading factor
Backtracking widthActive band width
Backtracking anglePlanar backtracking, PVsyst application
Irradiance-optimised trackingOffWith irradiance-optimised tracking on in the request: Best plane angle, PVsyst application
Best plane angle searchPVsyst 8 settings
Incidence-angle modifier, beamFresnel, AR coatingWith an IAM curve in the module file: Module IAM profile
Incidence-angle modifier, diffuse and albedoMask-conditioned integrals
Ground IAM angleHorizontal direction
SoilingMonthly table
Rear side and front ground reflectionMonofacialWith a bifacial module: Unlimited sheds or trackers 2D (PVsyst)
Rear-side geometryRacking and bifacial sections
Energy
Cell temperaturePrilliman transient
Module modelMermoud one-diode
One-diode STC pointThrough the datasheet MPP
Spectral correctionOffWith a CdTe module and precipitable water or humidity in the weather: Lee and Panchula
Where the correction actsAfter the cell temperature
Rear mismatchFlat fraction
DC ohmic wiringI²R on the MPP current
MPPT inputsOne input per string
Inverter efficiencyLinear in power and voltage
Inverter operating limitsOperating point on the array's I–V curve
DC drop referenceDrop at the MPP current
MPPT minimumHold the MPPT minimum, fitted voltage trim
MPPT minimum loss rowPower-limit loss when it would have clipped
IV shading current scaleScale the curve by the electrical shading
Night consumptionOn
AC ohmic wiringk·P² on the inverter output
AC resistive referenceInverter output
AC power referenceP_nom inverter
Medium-voltage transformerIron and copper losses
System-level AC lossesOn the sum of the inverters
MV lineResistive loss
HV transformerIron and copper losses
HV lineResistive loss
Transmission and other lossesFlat fractions
AuxiliariesDay and night draw
Grid power limitationAt the injection point
UnavailabilityFlat fraction and periods
Power factorInside the inverter and AC rows

POST /v1/tree/irradiance/describe and POST /v1/tree/energy/describe take a run request and return each path's changes to it as presets[].patch. Apply the irradiance patch, then the energy patch, and send the result to POST /v1/run. In the workbench, the Model tab's PVsyst 8 path button applies the same changes.

Hourly series under PVsyst's names

With "include_pvsyst_series": true, the answer carries a second hourly block, pvsyst_series. Its keys are PVsyst's hourly variable names, such as GlobInc, EArrNom and E_Grid, with PVsyst's units. A CSV written from it lines up with a PVsyst hourly export column for column. A year of it is about 3 MB. The workbench's hourly CSV export uses the same names.

Further pages