NRJXpert — User guide

Electrical network simulation, sizing and economic viability of photovoltaic and wind energy systems. Lamine Thiaw — Electrical Engineering Department, École Supérieure Polytechnique (ESP), Université Cheikh Anta Diop, Dakar.
User guide Version 2.0.0 November 2026 EN / FR Click for the French version
User guide
NRJXpert 2.0.0 · November 2026

📋1. Overview

NRJXpert brings four tools together in one application:

ToolPurposeHow to open
Network simulationDraw a diagram (full or one-line), compute currents and voltages of a linear DC or AC network, run a load flow on a power system, short-circuit currents (IEC 60909); distributed-energy-resource and smart-grid studies: distribution load flow, time series, PV hosting capacity, dynamics, OPF and microgrid economic dispatch.Main window
Site weather dataDownload solar irradiation, temperature and wind for any site (NASA POWER, PVGIS, Open-Meteo) and compute monthly averages.Tools › Site weather data (Cmd/Ctrl+Shift+M)
Photovoltaic systemsSizing of centralised and decentralised stand-alone systems, costs, simulation versus the number of buildings, economic viability study (stand-alone or grid-connected).Tools › Photovoltaic systems (Cmd/Ctrl+P)
Wind systemsStatistical wind analysis (Weibull distribution), wind turbine output, number of machines for a given demand, economic viability study.Tools › Wind systems (Cmd/Ctrl+Shift+E)
NRJXpert client (Java / JavaFX) Photovoltaic systems Wind systems Diagram editor Site weather data SimElecNetworkPython — TCP 8500 NASA POWER · PVGISOpen-Meteo XML diagram / results HTTPS (JSON)
Network calculations are done by the SimElecNetwork server; the photovoltaic, wind and weather modules compute inside the client.
↑ Back to top

💻2. Installation and start-up

SimElecNetwork calculation server

The calculation server is hosted remotely, on a virtual private server (VPS): the user installs neither Python nor the server code. The client sends it the diagram (an XML text of a few kilobytes) and receives the results.

  • Address: proposed at first start (or given by the administrator of your institution); it is set in Simulation › Calculation and server settings (server name and port). It is remembered.
  • Access key (nrjx_…): personal or specific to your institution, supplied with the licence; it is entered in the same dialog box (« Show » box to check it) and accompanies each calculation. Test the connection reports « valid key: holder, expires on … » or the reason for a refusal (missing, invalid, revoked, expired key).
  • Encrypted connection (TLS): ticked for the remote server; exchanges are encrypted and the server certificate is checked as by a web browser. Untick it only for a local server.
  • Internet connection required for network calculations (linear network, load flow, short circuit, DER studies). The photovoltaic and wind modules and the reading of results already computed work offline.
  • Time-outs: connection 5 s, response 60 s. Usual calculations take less than one second on the server; DER studies (dynamics, OPF, economic dispatch, test bench) a few seconds. With a slow connection, allow one or two seconds more.
  • Confidentiality: only the diagrams sent for calculation go through the server, encrypted; projects stay on your computer; the server does not keep the diagrams.
↑ Back to top

🖥️3. Main window

  • Palette (left): components by category, in this order: Passive elements, Sources, Power system (load flow), Distributed energy resources (load flow), Renewable energy, Measurement (voltmeter, ammeter, wattmeters, at the bottom of the palette), then the Colors settings; passive elements, sources and meters exist in “full diagram” and “one-line diagram” versions;
  • drawing area (centre): grid, enlarged automatically, with scroll bars;
  • Selection panel (right): name, type, parameters and results of the selected component, or the components of a multiple selection or group, Group and Ungroup buttons;
  • results table: current and voltage of each dipole (magnitude and angle), and bus voltage, angle and powers for a load flow; above it, the short-circuit or DER study summary and the “Curves…” button;
  • status bar: message, calculation type, server, mouse position.
MenuCommands
FileNew, Open (.nxp), Save, Save as, Quit.
EditUndo, Redo, Component parameters, Rotate right / left, Delete, Stop placing / deselect, Copy, Paste, Group, Ungroup.
SimulationRun the simulation, Calculation and server settings, DER study settings…, Result curves…, Expert report of the last calculation (HTML)…, Save the OpenADR 2.0b message…, Calculate a network file (XML)…, Clear the results.
ToolsPhotovoltaic systems, Wind systems, Site weather data, Export the network in CIM format (IEC 61970 / 61968), Telecontrol points list (IEC 61850, 60870-5-104, Modbus), Cybersecurity risk assessment (IEC 62443).
OptionsLanguage (Français, English).
HelpHelp — complete guide (this document), Tutorial and training (course in 7 levels, exercises, quizzes, case studies, teacher's guide), Smart grid training (level 6: SGAM, protocols, IEC 62559 use cases, skills), Expert workshop (level 7: IEEE 2030.8 tests, AMI, OpenADR, IEC 62443), Open a tutorial example, Quick guide, About.

The toolbar gives the calculation type and the method, the « Run the simulation » button, the « Renewables » menu (PV, wind, weather), the language and the server settings. On macOS, the menus are in the system menu bar. In English, the tutorial opens in English.

3.2 Keyboard shortcuts

KeyActionKeyAction
F5 / Cmd/Ctrl+EnterRun the simulationF1Open this guide
EscStop placing, deselectDelDelete the selection (ungroup a group)
Cmd/Ctrl+EComponent parametersCmd/Ctrl+R / +ShiftRotate right / left
Cmd/Ctrl+ZUndoCmd/Ctrl+Y (or +Shift+Z)Redo
Cmd/Ctrl+C / VCopy / pasteCmd/Ctrl+G / +ShiftGroup / ungroup
Cmd/Ctrl+N, O, SNew, open, saveCmd/Ctrl+QQuit
Cmd/Ctrl+PPhotovoltaic systemsCmd/Ctrl+Shift+EWind systems
Cmd/Ctrl+Shift+MSite weather dataF5 (PV / wind windows)Size / compute
Cmd/Ctrl+Shift+DDER study parametersCmd/Ctrl+Shift+KResult curves
Cmd/Ctrl+,Calculation and server settings

3.3 Languages

Options › Language or the globe button of the toolbar: French or English (Pulaar will be added later). The main window switches language immediately; the choice is remembered. This guide opens in English when English is selected, otherwise in French. The PV and wind windows are in French.

↑ Back to top

🔌4. Drawing a network

4.1 Place, connect, edit

  1. Place: choose a component in the palette, then click in the drawing area; the component image follows the pointer. Click as often as needed; Esc stops placing.
  2. Connect: drag from a terminal (small circle) to another terminal. The connection is ideal, or carries a line model (R, L, RL, RLC π) if that model is selected in the calculation settings when drawing.
  3. Select, move: click a component and drag it (one gesture). A multiple selection is made by dragging a rectangle from an empty area.
  4. Parameters: double-click, right-click › Parameters or Cmd/Ctrl+E. Dialogs check the input (faulty field framed in red) and show live computed values (impedance, apparent power, cos φ…). Decimal commas are accepted.
  5. Rotate, delete: right-click or shortcuts. Deleting a modelled line also removes its hidden elements.
  6. Short-circuit point: double-click a terminal, or right-click a line › “Short circuit on the line…” for a fault at a given distance from its ends (see Short circuit).
Full or one-line diagram. In one-line mode each component has one visible terminal; the other is connected to the common neutral. Three-phase components are represented by their single-phase equivalent (phase a).

Undo / Redo (Edit menu, Cmd/Ctrl+Z, Cmd/Ctrl+Y or Cmd/Ctrl+Shift+Z): every change to the diagram (placing, moving, rotating, linking, deleting, parameters, pasting, grouping) is recorded; up to 100 steps back. The history restarts when a project is opened or with New; an undo clears the displayed calculation results (run the calculation again). In a text field these keys undo typing.

4.2 Copy, paste, group

  • Copy copies the selected group, multiple selection or component, with the connections between copied elements and their parameters. Paste places the copies at the last click in the drawing area (successive pastes shifted by 30 px), with new names.
  • Group replaces the selected components by a rectangle (Grp1…) whose terminals are those connected to the outside; the calculation is unchanged. Double-click: sub-network window. Ungroup (Del) restores the diagram. Groups are saved with the project.
  • A group may contain busbars. Only their terminals connected to the outside appear on the rectangle (one free terminal if they have none). Their number of outputs cannot be changed in the sub-network window: ungroup first. Busbars are copied and pasted like other components.

4.3 Component library

ComponentParametersNotes / model
Resistor, inductor, capacitorR (Ω), L (H, mH, µH), C (F, µF, nF)In DC, L is a short circuit and C an open circuit.
ImpedanceR, X (Ω)|Z| and angle displayed.
DC voltage and current sourcesE (V) or I (A)A network whose sources are all DC is solved as DC (no angles).
AC voltage and current sourcesRMS value, phase (° or rad), frequencyPhasor E·ejφ.
Three-phase voltage sourceLine voltage U or phase voltage V, φa, f, phase sequenceStar with neutral; three hidden single-phase sources (G1 - a, b, c).
Three-phase RLC loadR, L, C per phase; star (neutral connected or isolated) or deltaSeries R-L-C branches; one-line: delta → equivalent star.
Three-phase series RLC impedanceR, L, C per phase6 terminals (a, b, c → a', b', c').
Electric lines R, L, RL, RLC πLength (km, m), per-length r, l, cπ: C/2 to neutral at each end; characteristic impedance √(L/C) displayed; results: current, voltage drop, R·I² losses.
Three-phase transformerSn, U1n, U2n, ucc, Pcc, i0, P0Kapp model referred to the secondary: Zcc = ucc·U2n²/Sn, Rcc = Pcc·U2n²/Sn², Rfe = U2n²/P0. The turns ratio is not represented in the calculation (quantities referred to the secondary).
BusbarNumber of outputs (2 to 20)Connection node (JB1…).
Generator busSlack (V, θ imposed) or PV (P, V imposed), voltage, powers; short-circuit data (Rd, Xd, Ri, Xi, R0, X0, neutral); “Distributed energy resource (DER studies)” sectionLoad flow: exactly one slack bus. Short circuit: voltage source behind Rd + jXd.
Load bus (PQ)P, QApparent power and cos φ displayed.
PV, wind, diesel and battery generatorsSee 4.4Generator buses with their own parameters (“Distributed energy resources” section).
Voltmeter, ammeterName, display“Measurement” section, at the bottom of the palette. The measurement appears in the tooltip and the Selection panel.
Single-phase and three-phase wattmetersName, display“Measurement” section. Single-phase (4 terminals): current circuit in series (input on the left, output on the right), voltage circuit between U+ and U− (bottom terminals), in parallel across the measured voltage. Three-phase (5 terminals, balanced circuit): current circuit in series on one phase, voltage terminals V1, V2, V3 connected to the three phases (V1 on the phase of the current circuit); phase voltage through the artificial neutral V1N = (U12 + U13)/3. P, Q, S and cos φ are computed on the computer from the phasors (S = U·I*, ×3 in three-phase) after a linear-circuit calculation; P > 0 when power flows from input to output. For the server, the two current terminals are one node (zero-impedance ammeter). The voltage terminals must be connected.

4.4 Distributed energy resources

The “Distributed energy resources” section of the palette offers four generators, drawn like the classic “G” generator with a pictogram: photovoltaic generator (PV1, PV2…), wind turbine (Eol1…), diesel generating set (GE1…) and storage battery (Bat1…). They are generator buses (PV or slack) whose nature is set by the symbol; each one has its own parameter dialog (double-click).

GeneratorParametersShort circuit
Photovoltaic, windAvailable (PV) or rated (wind) power, inverter rating Sn (empty: 1.1·P), Q, voltage V; production profile (pu, one value per time step); inverter control: fixed P and Q, fixed power factor (absorbed or supplied), Q(V), P(V), Q(V) + P(V), P or Q priority; grid-following inverter dynamics: P-f droop, current limit Imax, LVRT k.Limited current source I_skPF = Imax·In (In = Sn/(√3·V)) or the “Manufacturer Isk” when entered; positive-sequence contribution only (see 5.3). The current is shown live.
BatteryEnergy Emax, converter rating Sn, initial SOC, duration at full power (displayed); P (> 0 when discharging), Q, V; PV bus or slack role (reference of an islanded microgrid); inverter control; grid-forming inverter dynamics: droop or VSM, mp, mq, H, Imax.
Generating setSn, P, Q, V, minimum load, PV or slack role; fuel price, start-up cost, live fuel consumption and kWh cost; synchronous machine dynamics (H, droop, Tg, X'd, Xd, T'd0, Ka).Voltage source behind Rd + jXd (Ri, Xi, R0, X0, neutral); “Xd from X'd and Sn” button. Defaults X'd = 0.25 pu, Rd = 0.1·Xd, isolated neutral.

The classic “G” generator can also receive these data through the “Distributed energy resource (DER studies)” section of its dialog. Parameters are saved with the project and copied by Copy / Paste.

4.4 bis Renewable energy: PV system simulation

The “Renewable energy” palette section is used to draw and simulate a photovoltaic system supplying a load with a given power profile. Blocks are connected like components (drag from one terminal to another), in the order Weather → PV generator → charge controller → DC bus (battery, DC loads) → inverter → AC loads:

BlockDouble-clickTerminals
Weather“Site weather data” window: choose the site, download the data, then Use for PV sizing (module plane or horizontal).One terminal: PV generator input.
PV generatorModule from the equipment database, modules in series, parallel strings, losses, temperature coefficient, NOCT.Input: Weather; output: controller.
Charge controllerController from the database (MPPT or PWM), number in parallel, efficiency.Input: generator; output: battery.
DC busRename.Bar whose two terminals are one point; several links per terminal: controller, batteries, inverter, DC loads.
BatteryBattery from the database, units in series and parallel strings, depth of discharge, efficiency, initial state of charge.One terminal: DC bus.
InverterInverter from the database, number in parallel, efficiency; Inverter-charger box (bidirectional: surplus from a wind turbine or grid-tie inverter, the diesel generator or the grid can charge the battery).Input: DC bus, or the PV generator directly (grid-tie inverter, built-in MPPT); output: AC loads, grid, diesel generator.
Wind turbineTurbine from the wind module database (power curve, otherwise mean efficiency), number of turbines, hub height, losses.Input: Weather (site chosen with a source that provides wind: NASA POWER, Open-Meteo, PVGIS typical year); output: DC bus (built-in rectifier and controller) or AC side.
Diesel generatorPower and number of generators, minimum load, consumption F = F0·Pn + F1·P, diesel price, “battery charging” option.One terminal: AC side (inverter output, loads).
GridMaximum import, export (allowed, limit), load-shedding hours (“19-23”, “12-14, 19-22”), purchase and sale price per kWh.One terminal: AC side.
LoadInterface of tab “2. Demand” of the “Photovoltaic systems” module: infrastructures and appliances.One terminal: inverter output or DC bus. AC appliances supplied by the inverter, DC appliances by the DC bus (converter efficiency 0.9 if their voltage differs from the bus voltage).

Simulation (F5 or Simulation › Simulate the PV system menu): hourly calculation over a typical year (8,760 h), on the computer, without the calculation server. Each day of a month uses the site's hourly typical day; the load follows the appliances' average profile (power at operating hours × days of use / 7). Array production: P = Ns·Np·Pc·G/1000·[1 + γ(Tc − 25)]·(1 − losses), Tc = Ta + (NOCT − 20)·G/800; MPPT controller at maximum power, PWM controller at battery voltage; production supplies the loads first, directly through the DC bus and the inverter, without going through the battery; the battery stores the surplus and supplies what is missing, between (1 − DoD)·Enom and Enom; inverter limited to its rated power. Blocks are never sent to the server: a diagram can contain both an electrical network and a PV system.

Configurations: stand-alone system (above); wind or PV + wind system (turbine on the DC bus); grid-connected PV system: Weather → PV generator → grid-tie inverter → loads and Grid block (no battery), or with storage: charge controller, DC bus, battery and inverter-charger connected to the loads and the grid; hybrid PV, diesel, battery system: diesel generator on the AC side. Energy priority each hour: renewable production used on site; surplus → battery → grid export → lost surplus; shortfall → battery → grid → diesel generator (backup during load shedding) → deficit. Wind: hourly speeds rebuilt from the site's monthly Weibull law and average daily profile (exact distribution, calm and windy days), extrapolated to hub height (power law), corrected for air density. Diesel generator: load following (at least its minimum load; surplus lost without an inverter-charger) or battery charging (it then runs as high as the inverter-charger and battery can absorb). Load shedding: grid-tie inverters stop when the grid is absent (interface protection), unless a battery inverter or a diesel generator forms the local grid.

Results: production (PV, wind, diesel, grid import) and consumption on one chart, grid export with surplus and deficit; balance: diesel (l/yr, cost), generator running hours and starts, import and export (purchases, sales), load-shedding hours, renewable share of consumption, self-consumption rate. PV production and consumption on one chart, energy in the battery (with its limits), production surplus and deficit; whole year (daily values) or a chosen month (hourly values); annual balance (coverage, surplus, energy supplied directly by the array or by the battery, deficit hours and days, battery cycles) and configuration warnings. Export: each figure separately or the three in a single image (PNG), hourly data (CSV); right-click a figure to export it alone or copy it.

4.5 Smart grid: switching devices, EV chargers, capacitor banks

The « Smart grid » section of the palette offers three symbols (smart grid guide, chapters 2 and 3):

SymbolParametersIn the calculations
Switching device (S1, S2…)Type: feeder breaker, recloser, switch (load-break switch), tie switch; normal state closed or open (NO); remote-controlled; fault passage indicator (FPI). The drawing shows the state, the cross of the breaker, the remote-control square and the FPI arrow. Closed: contact resistance of 0.1 mΩ; open: open circuit (all calculations). Self-healing operates the devices; their final state is shown in the tooltip.
Charging station / fleet of electric vehicles (VE1…)Number of vehicles, battery, power of one charger, arrival and departure times, states of charge on arrival and targeted at departure, charging mode (uncontrolled, V1G, V2G), coincidence factor. Load flow and short circuit: load of power n·P·k; time series: uncontrolled charging profile; economic dispatch and virtual power plant: optimised charging (V1G) and feed-in (V2G).
Stepped capacitor bank (CB1…)Number of steps, power of one step (Mvar), steps switched on in the initial state. Reactive power injection of the initial state; switched by the Volt/VAR control (IVVC).

The dialog box of a load bus has a Number of customers field, used by the reliability indices and the smart metering calculation (empty: 1 customer per 2 kW). The lengths of the lines (« Line » components and links with a model) are sent to the server for the failure rates.

↑ Back to top

⚙️5. Calculations and results

Choose the calculation type and method in the toolbar, then F5. The diagram is sent to the remote calculation server (XML); the answer appears in the results table, the Selection panel and the tooltips. The calculation runs in the background (time-outs: connection 5 s, answer 60 s).

5.1 Linear network

Node voltage method (modified nodal analysis for ideal sources and zero-impedance branches). Frequency: that of the AC sources; 0 Hz if all sources are DC; mixing DC and AC sources is rejected. Current and voltage of each dipole are given in its own direction.

5.2 Load flow

Methods: Newton-Raphson, Gauss-Seidel, fast decoupled. The network must contain exactly one slack bus. Calculations are made per unit, with the network base voltage (calculation settings). Results: voltage (kV) and angle of each bus, Pgen, Qgen (slack power, PV-bus reactive power, local load included), line currents.

5.3 Short circuit (IEC 60909)

  1. Place the fault: double-click a terminal, or right-click a line › “Short circuit on the line…” (distance in km or m; the line is split into two π sections at the fault). One fault at a time.
  2. Set the fault (“Fault” section of the same dialog): type (three-phase, two-phase isolated, two-phase to earth, single-phase to earth), maximum current (breaking capacity) or minimum (protection settings), voltage tolerance in low voltage, location (general case or far from generators), nominal voltage Un at the fault point.
  3. Compute: choose “Short circuit” in the Calculation list, then F5. The calculation uses the one-line diagram (three-phase components in full-diagram form are rejected).

Method: equivalent voltage source c·Un/√3 at the fault (c = 1.10 for maximum currents above 1 kV; 1.05 or 1.10 in low voltage depending on the tolerance; 1.00 or 0.95 for minimum currents), positive-, negative- and zero-sequence networks built by the server from the diagram. Loads and capacitances are neglected in the positive and negative sequences; line capacitances are kept in the zero sequence. Optional zero-sequence data: line R0, X0, C0, transformer vector group (YN, D…). Peak current ip = κ·√2·I"k with κ = 1.02 + 0.98·e−3R/X.

Generators:

  • classic generator and generating set: voltage source behind Rd + jXd (positive), Ri + jXi (negative), R0 + jX0 (zero sequence, unless the neutral is isolated);
  • inverter-based generators (PV, wind, battery): limited current source I_skPF in the positive-sequence network, with no negative- or zero-sequence contribution (IEC 60909-0:2016, “full converter”). The equivalent source becomes E' = c·Un/√3 + Σ Z1(f,j)·I_skPF,j, Z1(f,j) being the transfer impedance between inverter j and the fault; for example, three-phase: I"k = [c·Un/√3 + Σ |Z1(f,j)|·I_skPF,j] / |Z1|. Inverters add no DC component: ip = κ·√2·I"k(machines) + √2·I"k(inverters);
  • network fed only by inverters (islanded microgrid, battery as slack): three-phase I"k = Σ I_skPF; unbalanced faults estimated (warning), zero to earth without a zero-sequence path.

Results: above the table, I"k, ip, κ, S"k, Ib = Ik when the fault is far from generators, inverter share (“of which inverters (current sources)” and each I_skPF), the three phase currents and IE, impedances Z1, Z2, Z0 seen from the fault, I"k of the four fault types at the same point. In the table: current and voltage of each element for phase a (phase b for a two-phase fault); tooltip and Selection panel: the three phases and the symmetrical components.

5.4 DER and smart-grid studies

The Calculation list offers six distributed-energy-resource (DER) studies, run on the one-line diagram. The generators of the “Distributed energy resources” section (or a generator bus with its “Distributed energy resource” section) provide their data; a slack bus (upstream grid, generating set or battery) is required.

CalculationMethodResults
Distribution load flowBackward/forward sweep (radial network, high R/X), ZIP loads, inverter controls (power factor, Q(V), P(V)).Voltages, losses, source power, Vmin/Vmax and bus, most loaded branch.
Time seriesLoad flow repeated at each step of the profiles (load, production).V, P, Q, I curves of the buses; energy produced and curtailed; hours outside the voltage band.
PV hosting capacityMaximum PV power added at the chosen bus without exceeding Vmax or the maximum branch loading.Hosting capacity (MW) at the studied bus and test conditions (Vmax, load).
Dynamics (RMS)Time-domain simulation (Runge-Kutta 4): synchronous machines, grid-forming (droop, VSM) and grid-following (PLL, LVRT) inverters, batteries (SOC, limits); scheduled events.V, P, Q, f, SOC curves; nadir, RoCoF and final frequency of each machine; event log.
Economic OPFOptimisation over the profile horizon: generation and purchase cost, losses (linearised LinDistFlow), voltage limits.Cost, indicators, power and SOC curves.
Microgrid dispatchMixed-integer linear programming (MILP): generator on/off and start-ups, battery charge/discharge, grid purchases and sales, load shedding.Cost, indicators, generator commitment, curves.

Simulation › DER study parameters… (Cmd/Ctrl+Shift+D), four tabs:

  • Profiles: load profile (pu, applied to all loads), time step; profile editor: typing or pasting from a spreadsheet, presets (residential, PV, constant), preview;
  • Economy: purchase and sale prices (constant or hourly), maximum purchase and sale, voltage band, load shedding, reserves;
  • Hosting capacity: studied bus, Vmax, load during the test, maximum branch loading, inverter control;
  • Dynamics: duration, step, base power, list of events (three-phase fault at a bus with its impedance, load step, opening of a series element, available power, set-point change).

A summary appears above the table; the tooltip and Selection panel of each bus give the min/max of its series, SOC start → end and energies. Study parameters are saved with the project.

5.4 bis Smart grid: self-healing, Volt/VAR, virtual power plant, islanding

CalculationMethodResults
Self-healing (FLISR), reliabilityPermanent or transient fault on the chosen element: tripping of the upstream protection, location by the FPIs, isolation by the remote-controlled switches, restoration upstream and transfer of the downstream part by the NO switches (each operation validated by a load flow: minimum voltage, current ratings; partial transfer if necessary), then crew intervention and repair; comparison with operation without automation. Annual study: each element is put in fault in turn (rate × length). Time-stamped sequences, final state of the switches, customers interrupted (sustained and momentary interruptions), customer-minutes, ENS; annual SAIDI, SAIFI, MAIFI, ASAI, ENS with and without automation, investment, gain and payback; interruption time of each bus.
Volt/VAR control (IVVC)Over the profile: S0 no control, S1 local control (Q(V), capacitor relays), S2 centralised IVVC (substation on-load tap changer = slack-bus voltage, capacitor steps), S3 IVVC/r (+ reactive power of the inverters); objective losses or consumption reduction (CVR, ZIP loads). Losses, energy drawn, Vmin/Vmax, hours out of range, operations, reactive power of the inverters, reductions with respect to S0; curves of each strategy, taps and steps.
Virtual power plant (VPP)Economic dispatch (MILP) of the DER, EVs and demand response with an exchange programme at the substation (deviation penalty) and sale of fast reserve; network check by a load flow at each step (DERMS); OpenADR 2.0b demand response event (§ 5.4 ter). Cost, programme compliance, reserve sold, charging cost, upward and downward flexibility, hours with constraints, curves.

Settings: Simulation › DER study settings, tabs « Self-healing », « Volt/VAR » and « Virtual power plant ». In the « Dynamics » tab, three microgrid events (IEEE 2030.7): Islanding (opening of the coupling point), Synchronised reconnection (synchroniser and synchro-check according to IEEE 1547: Δf, ΔV, Δφ depending on the island rating; maximum delay), Closing without synchro-check. Grid-following inverters have a Frequency-Watt function (droop, dead band fwDeadband in Hz).

Tools › Export the network in CIM format: RDF/XML file (IEC 61970-301 / 61968-13, equipment profile): nodes, terminals, line segments, loads, sources, machines, inverters (PhotoVoltaicUnit, BatteryUnit), capacitor banks, breakers and switches (normal state), FPIs. Tools › Telecontrol points list: CSV of the states, measurements, commands and set-points of each element, with the IEC 61850 logical node, the IEC 60870-5-104 ASDU type and address, Modbus registers (SunSpec models of the inverters) and OCPP messages of the chargers — indicative mappings to be validated with the selected equipment.

5.4 ter Expert training: IEEE 2030.8 test bench, smart metering (AMI), OpenADR demand response, cybersecurity

  • Microgrid controller test bench (IEEE 2030.8) (Calculation list): six simulated tests of the microgrid controller — T1 unplanned islanding, T2 planned islanding (the exchange at the point of common coupling is cancelled before opening), T3 resynchronisation (IEEE 1547 synchro-check), T4 load step and T5 loss of the largest generation in island mode, T6 24 h dispatch function, connected / islanded. Microgrid tests tab of the DER settings: point of common coupling (switching device or series element between the upstream grid and the site), tests to run, acceptance criteria (frequency range, RoCoF, settling, voltage, resynchronisation time, energy not supplied). The dynamic parameters of the generators are those of the dynamic simulation; T6 uses the profile and the prices. Result: verdict per test and per criterion, compliance rate, frequency and voltage curves, test report (Report… button).
  • Smart metering (AMI): each load is an MV/LV substation with its « customers » (number entered in the load dialog box). The server simulates one week of 15-min load profiles (frauds, meters, honest consumption drops), runs a load flow at each step and draws up the balance: technical losses, non-technical losses, balance gap per substation, fraud detection (precision and recall of three methods), DLMS/COSEM data collection over G3-PLC or cellular (completeness, hops, volume, collection time). Smart metering tab. Load tooltip: balance gap, suspect customers, completeness.
  • OpenADR 2.0b demand response: Virtual power plant tab, « Demand response event » section: LOAD_DISPATCH (MW), SIMPLE (level 1 to 3) or ELECTRICITY_PRICE (adder) signal, time window, payment, penalty, notification. The VPP is optimised without then with the event; results: requested and delivered reduction, delivery rate, net gain; the oadrDistributeEvent message is in the report and is saved with Simulation › Save the OpenADR 2.0b message.
  • Cybersecurity risk assessment (IEC 62443) (Tools menu): inventory of the communicating assets of the diagram, zones and conduits, target level SL-T per zone, measures in place for requirements FR1 to FR7, protection and exposure of the conduits; consequence × likelihood matrix and action plan (Results tab, HTML report). The settings are saved with the project.
  • Reports: Simulation › Expert report of the last calculation (HTML); files in ~/.nrjxpert/rapports/. Tutorial: Help › Expert workshop (level 7, in French and English).

5.5 Result curves

After a study returning series (time series, dynamics, OPF, dispatch), the “Result curves” window opens (also: Simulation › Result curves, Cmd/Ctrl+Shift+K, or the “Curves…” button). Choose the quantity (voltage, P, Q, current, frequency, SOC, generator commitment, network-wide series) and the elements shown (All / None). Hourly profiles are drawn as steps. “Copy” puts the displayed curves on the clipboard (paste into a spreadsheet); “Export CSV…” saves all series (“;” separator, decimal comma).

5.6 Calculation and server settings

Simulation › Calculation and server settings: calculation type and method, model of new connections (ideal, R, L, RL, RLC π), network frequency (Hz), base voltage (kV), calculation server address and port (supplied with the software or by your administrator), “Test connection” button. Settings are remembered.

Opening a network file (XML): File › Open (type "Network files (XML)") or Help › Open a tutorial example. The diagram is drawn in the editing area from the file: buses, generators (PV, wind, diesel, battery), loads, EV chargers, capacitor banks, switching devices, R, L, C, Z elements (two terminals between two nodes, one-line when shunt-connected) and their links. The layout starts from the source: main feeder on one row, each branch on a free row below, loop-closing elements on the right. The calculation type, the method and the study settings (profiles, prices, events, tests, AMI, FLISR…) are restored; F5 runs the calculation, Save as… turns it into an .nxp project.

Simulation › Calculate a network file (XML)…: sends a network described in XML (the format sent by the client; tutorial examples) to the server, editable before sending; the window shows a summary (global sections, bus voltages and powers) and the full answer.

5.7 Reading the results

  • Table: I, ∠I, U, ∠U (angles in degrees; hidden in DC); for a load flow, bus V, Pgen, Qgen.
  • Automatic prefixes (mA, kV, MW…); hidden model components shown as “RLC1 - Ra”, “G1 - a”…
  • Two successive simulations give the same results; “Clear results” empties the display.
↑ Back to top

🌤️6. Site weather data

Tools › Site weather data, or the “Données météo en ligne…” button of the PV and wind windows.

  1. Site: pick a town in the list, search a place by name (“Search”), or type latitude (N > 0), longitude (E > 0, W < 0) and elevation (“Find” button: Copernicus 90 m digital elevation model).
  2. Source and period (see table). The period is limited to 20 years for hourly series.
  3. Calculation: module tilt (fixed, optimal over the year, optimal for the worst month), albedo, hub height, wind extrapolation method (automatic, measured shear, logarithmic law, power law α = 1/7), terrain (roughness z₀), calm threshold.
  4. Download and compute: the task runs in the background (Cancel button). Answers are cached for 90 days in ~/.nrjxpert/meteo/cache: a second calculation on the same site is immediate.
  5. Browse the Solar, Wind, Temperature & air, Source & notes tabs; “Export CSV”; “Use for PV sizing” / “Use for wind sizing”.
DatasetContentNotes
NASA POWER — climatologyLong-term monthly means: H, T, Tmax, Tmin, RH, P, wind at 10 and 50 mOne request, fast; no wind distribution (Rayleigh, k = 2, assumed).
NASA POWER — dailyDaily series since 1984Weibull fitted on daily means: k over-estimated.
NASA POWER — hourly (recommended)Hourly series since 2001 (local solar time)One request per year; hourly Weibull, typical days, 10 m / 50 m shear.
PVGIS — monthly irradiationSatellite irradiation (SARAH-3, ≈ 5 km), horizontal and optimal planeHorizon shading included; no wind.
PVGIS — typical year (TMY)8760 hours: G, Gd, T, RH, P, wind at 10 mMeasured diffuse.
Open-Meteo — ERA5 hourlySince 1940, wind at 10 and 100 mFree for non-commercial use.

Computed quantities (12 months + year)

  • Solar (kWh/m²/day): horizontal irradiation H, extraterrestrial H0, clearness index Kt = H/H0, diffuse Hd (measured, otherwise Erbs correlation), plane-of-array irradiation Hβ (Liu-Jordan/Klein model), day length, optimal tilts.
  • Air: mean temperature, mean daily maximum and minimum, daytime temperature, humidity, pressure, air density ρ (moist air).
  • Wind: mean speeds at 10 m and 50/100 m, shear exponent α, maximum speed, Weibull c, k and calm fraction at 10 m, speed, c and k at hub height, power density (W/m²), wind energy (kWh/m²).
  • Hourly typical days (hourly sources): mean irradiance, temperature and wind for each hour and month.

Sent to the PV module: irradiation (plane of array or horizontal, as chosen), temperature, coordinates, elevation and typical days. Sent to the wind module: hourly speeds at 10 m (as measurements), monthly Weibull parameters, air density; measurement height 10 m.

Quote the data source in your reports: NASA POWER (NASA Langley Research Center), PVGIS © European Union, Open-Meteo (CC BY 4.0, Copernicus ERA5 reanalysis).
↑ Back to top

☀️7. Photovoltaic systems

Six-tab window; toolbar: New, Open, Save (.nxpv), Equipment databases, Help, Size (F5). Units: powers entered in W, energies in kWh, costs in kF (thousands of currency units; the unit — CFA franc by default, euro, dollar, dirham… — is chosen in the Options and costs tab), cost per kWh in unit/kWh.

7.1 Tab 1 — Site

  • Site name, locality from the database (monthly irradiation and temperature, coordinates) or Données météo en ligne… button.
  • Irradiation measured on a horizontal plane: ticked for database localities and weather stations; irradiation is then converted to the module plane (facing the equator) at the entered tilt, or at the optimal tilt for the worst month if the field is empty. The “Plan des modules” column shows the converted values.
  • Value used for sizing: the least sunny month (recommended for stand-alone systems) or the annual mean.
  • Local distribution grid (centralised system): length per subscriber (km), investment (kF/km), maintenance (kF/km/yr).
  • Editable monthly table (double-click): irradiation (kWh/m²/day), temperature (°C); chart.

7.2 Tab 2 — Demand

Demand is described by buildings (house, school, health post…, N copies) containing loads.

Load parameterMeaning
Number, powerPower of one appliance.
EfficiencyAbsorbed power = power / efficiency.
Power factorAC loads: apparent power = P / cos φ (inverter sizing).
Utilisation and simultaneity factorsMultiply the power (partial operation, non-simultaneous appliances).
Voltage, DC / ACA DC load at bus voltage (or with no voltage entered) is supplied directly; otherwise a 90 % efficient converter is counted.
Days per week, schedule (24 boxes)Daily profile; weekly energy = hours × days × power.
PriorityLoads to be supplied first (priority demand).

The hourly profile, daily demand (kWh/day) and battery load (Ah/day) are displayed. Ah/day include cable (0.98), converter (0.9) and battery (0.9) losses.

7.3 Tab 3 — Options and costs

For the centralised system (one generator and the local grid) and the decentralised systems (one system per infrastructure):

  • Optimised choice of the equipment (minimum life-cycle cost among the database) or imposed equipment;
  • DC bus voltage (12, 24, 48 V…), battery autonomy (h), depth of discharge (%);
  • MPPT charge controller (otherwise PWM) — essential with 60- or 72-cell modules;
  • lifetimes used when the database gives none: batteries (5 years), inverters and charge controllers (10 years); empty field = default value;
  • design margin (%): increases the needs (Ah/d) before the array and battery are sized, to cover the uncertainty on the load profile, demand growth and ageing; 10 % by default for new projects, 0 % for projects saved before it was introduced;
  • wiring: one-way lengths of the links array → controller, controller → battery, battery → inverter, inverter → distribution board, ambient temperature, copper or aluminium; Wiring assumptions and prices… button (maximum voltage drops 3 / 1 / 3 %, grouping factor, cos φ, prices of conductors, installation and protection, lifetime, maintenance).

Wiring: for each link, design current Ib = 1.25 × rated current, standard protection In ≥ Ib, cross-section the largest of the one imposed by heating (Iz0·kθ·kg ≥ In, IEC 60364-5-52) and the one imposed by the voltage drop at rated current (NF C 15-100, UTE C15-712-1). The cost (cables, installation, protection) is included in the investment, the life-cycle cost, the discounted cost and the LCOE; tab 4 gives the details link by link. The wind module (tab 5) does the same for the links machine → electronics and electronics → connection or battery.

Economic parameters: operating period, depreciation period, inflation, interest rate (also used as discount rate of the LCOE).

7.4 Tab 4 — Results

For each solution: peak power, design irradiation, demand, battery load, required capacity, array current (PWM) or required peak power (MPPT), annual production on the DC bus, monthly surplus and deficit, number of deficit months, demand coverage, useful energy, local grid, investment, operating cost, life-cycle cost, cost per kWh, present cost and levelized cost of energy (LCOE), equipment table (type, series × parallel, quantity, costs) and production / demand chart on the DC bus. Warnings (deficit, default lifetimes, module voltage…) are shown in red.

7.5 Tab 5 — Simulation

Life-cycle cost and cost per kWh (simple and levelized) of the centralised and decentralised solutions versus the number of typical buildings (start, end, step). The crossing of the curves shows from how many subscribers the centralised solution becomes attractive.

7.6 Tab 6 — Economic viability

Study of a system of given power, grid-connected or stand-alone, with hour-by-hour production.

  1. System: type, target power (kWp) — adjusted to a whole number of groups (modules + one inverter).
  2. Irradiance and temperature: 12 typical days of the site (downloaded profiles when available, otherwise half-sine and entered day/night spread), or an hourly measurement file (Excel or text: 24 columns, one irradiance row in W/m² then one temperature row per day; 2, 60 or 730 rows for a typical day, month or year; the “?” button recalls the expected format).
  3. Equipment: module (Pp, Vmp, Imp, Voc, Isc, cost), inverter (DC voltage, kVA, cost), battery and controller (stand-alone), autonomy in hours of average daily production. Equipment chosen from the equipment databases (their values cannot be edited here).
  4. Economic data: O&M, installation, insurance (per kW), subsidy, tariff and its growth, lifetime, inflation, discount rate.
  5. Model parameters…: cells, reference conditions, NOCT, Pmax temperature coefficient, system losses, degradation, clipping, inverter efficiency and power factor, depth of discharge, battery efficiency and stored share, lifetimes.
  6. Compute; Sensitivity analysis (NPV, IRR, break-even tariff versus power and tariff; CSV export); Minimum subsidy, Minimum tariff; Report (savable text).

Results: installed power, number of modules, inverters, batteries, controllers, annual energy, specific yield (kWh/kWp/yr) and performance ratio PR, investment, NPV, IRR, simple and discounted payback, LCOE, minimum tariff, minimum subsidy, charts (weather, hourly and monthly production, cash flows, sensitivity).

7.7 Equipment databases

Modules (Pp, Vopt, Iopt, Voc, Isc, coefficients), batteries (Ah, efficiency, voltage, technology, recommended depth of discharge), charge controllers (A, MPPT or PWM, maximum input voltage), inverters (VA, DC voltage, efficiency, stand-alone or grid), locations (coordinates, 12 horizontal irradiations, 12 temperatures) and — for solar water pumping — pumps (type, rated power, head and flow, efficiencies, price; “Pumps” tab). Costs of each item: unit price, replacement cost and period, annual maintenance, installation (kF). Changes are saved in ~/.nrjxpert/pv/; « Restore the original values » goes back to the supplied files.

Supplied database (November 2026): current generic equipment and indicative prices in Dakar (in thousands of CFA francs incl. VAT; to be converted if another currency unit is chosen) — modules from 100 to 620 Wp (≈ 170 to 250 F/Wp), AGM, gel and OPzV lead-acid and LFP lithium batteries (lifetimes in hot climate: 4, 5, 8 and 12 years; depth of discharge 50, 60, 70 and 90 %), PWM and MPPT charge controllers, stand-alone inverters from 12 to 48 V and grid inverters. Sizing uses the depth of discharge of the battery when the database gives one, charge controllers of the system type (MPPT or PWM) whose input voltage withstands the array when cold, and stand-alone inverters at the bus voltage (grid inverters are used only in tab 6). A personal database older than this version is set aside (*.avant-2026-11.csv).

Prices are orders of magnitude: replace them by quotations from your suppliers before an economic study.

7.8 PV calculation methods

Horizontal → module plane (monthly mean day, Klein)

Hβ = H·[(1 − Hd/H)·Rb + (Hd/H)·(1 + cos β)/2 + ρg·(1 − cos β)/2]

Hd/H: Erbs correlation as a function of Kt = H/H0; Rb: mean beam tilt factor (Liu-Jordan); albedo 0.2.

Demand and battery load

Ed = Σ n·P·Ku·Ks/η · h · (days/7)    Qd (Ah/day) = Ed / (Ubus·ηconv·ηcables·ηbat)

PV array — PWM controller (original model)

Iarray = Qd / Hdesign ; Np = ⌈Iarray / (0.9·Imp)⌉ ; Ns = ⌈1.2·Ubus / (0.9·Vmp)⌉ ; Emonth = Ubus·Np·Imp·0.9·H·days

PV array — MPPT controller

Pp = Qd·Ubus / (Hdesign·0.9·fT·ηMPPT) ; fT = 1 − 0.004·(Tc − 25), Tc = Ta + 25 °C ; ηMPPT = 0.96 ; Emonth = Pp·H·0.9·fT·ηMPPT·days

String of Ns modules such that the hot Vmp (cells at 70 °C) exceeds 1.3·Ubus. The 0.9 factor groups cables, dust, mismatch and ageing.

Battery, controller, inverter

C (Ah) = autonomy(h)·Qd/24 / DoD ; Ns,bat = Ubus/Ubat ; controllers: 1.25·Np·Isc (PWM) or 1.25·Pp/Ubus (MPPT) ; inverters: 1.25·Smax

All quantities are rounded up. The balance is made month by month on the DC bus (array production; demand including conversion, cable and storage losses, the battery efficiency being applied to all the energy consumed, including what the array supplies directly to the inverter: a conservative assumption): surplus = Σ max(0, Eprod − Edem), deficit = Σ max(0, Edem − Eprod), coverage = Σ min(Eprod, Edem) / Σ Edem.

Costs

Life-cycle cost (original method) = depreciation annuities of the investment over the depreciation period + maintenance and replacements over the operating period (with inflation); cost per kWh = life-cycle cost / annual useful energy / period. Present cost and LCOE: see economic methods.

Viability: module model

Single-diode model: I = Isc·(1 − exp((V − Voc + I·Rs)/(Ns·n·Vt))), n = 1.5; Rs derived from the fill factor; current solved by bisection, maximum power point by golden-section search; power calibrated on Vmp·Imp at reference conditions; dVoc/dT calibrated on the Pmax temperature coefficient.

Tc = Ta + (NOCT − 20)/800·S ; PAC = min(ηinv·(1 − losses)·Ns·Np·Pmod(S, Tc), Pinv)

Energy of year y: E1·(1 − d)y−1; stand-alone: × [(1 − f) + f·ηbat] (f: stored share). Storage of a group: mean daily energy × autonomy/24 / (DoD·ηbat).

7.9 Solar water pumping

Solar water pumping… button of the Photovoltaic systems window (or Renewables menu › Solar water pumping). The window sizes and simulates a photovoltaic pumping system, either direct solar (water stored in a tank) or with battery. Projects are saved as .nxpomp. The example of the course “Le pompage photovoltaïque” (village of 500 inhabitants, 25 m³/d, TDH 15 m, irradiation 5 h, margin 0 %) opens with Help › Open a tutorial example… › pompage_village.nxpomp (§ 3.8 of the tutorial, level 3).

  • 1. Site and measurements: monthly irradiation and temperature (online data, file, paste from Excel or entry), conversion to the module plane.
  • 2. Water demand: population (l/inh/d), livestock in TLU (cattle 1, sheep or goat 0.2, donkey 0.3, horse 1.2, camel 1.5; l/TLU/d), irrigation (area × net requirement / efficiency), other needs, distribution losses, monthly coefficients and hourly consumption profile.
  • 3. Well and pipe: TDH entered, or calculated from the static level, the drawdown (fixed or flow/specific capacity), the tank inlet height and the elevation; head losses as a lump sum (% of static head) or by Darcy-Weisbach. System curve TDH(Q).
  • 4. Pump and sizing: pump type (selection advice from the course), pump chosen from the database (“Pumps” tab of the equipment database: 26 centrifugal, positive-displacement and floating pumps with their head and flow range) or entered characteristics, configuration, efficiencies, design margin (10 % by default: increases the needs before the flow, array, tank and simulation are calculated), starting threshold, pumping duration, peak power method, module, voltage, battery and tank. Month-by-month results.
  • 5. Simulation: hour-by-hour simulation over the site's typical days; monthly balance, typical day, tank level, operating point, report.
  • 6. Economic viability: investment, levelised cost per m³, comparison with a diesel motor-pump.

Total dynamic head

TDH = HG + HL; HG = Ns + R + htank + elevation; R = Q / qs (qs: specific capacity) or fixed
HL = λ·(L/D)·v²/2g·(1 + kminor); Swamee-Jain: λ = 0.25 / [log10(ε/3.7D + 5.74/Re0.9)]²; λ = 64/Re if Re < 2000

Course lump sum: HL ≈ 10 to 20 % of HG at nominal flow, proportional to Q².

Energy method (course)

Eel (Wh/d) = CH·ΔQ·TDH / Rp; CH = g·ρ/3600 = 2.725 Wh/(m³·m); Rp = ηp·ηm·ηconv
Pc = Eel / (Irr·ηc); ηc = (1 − losses)·[1 + γ·(Tc − 25)], Tc = Ta + (NOCT − 20) (irradiance of 800 W/m²)

The sizing month is the one with the largest Pc (high demand and low irradiation).

Power method (course)

Qmax = π·ΔQ / (2·ΔT) (cosine flow over ΔT; ≈ ΔQ/6 for 9 h); PH = Qmax·TDH/367; Pm = PH/ηp; Pel = Pm/ηm; Pg = Pel/(ηconv·ηc); Pc = Pg·1000/G

Pel also gives the nominal electrical power of the motor-pump (unless a power is imposed).

With battery (course)

EAh = Eel/U; Pc = Eel/(Irr·ηc·ηB); CBt = EAh·Aut/DOD/ηB; NBs = U/UB

Array and battery

Direct solar: Ns modules in series approach the motor or converter input voltage; with battery, Ns·Vmp ≥ 1.2·U. In automatic mode, the selected module gives the smallest array above Pc among those with a suitable voltage; the battery, the smallest installed energy above CBt.

Hourly simulation

Typical days: half-sine between sunrise and sunset, scaled to the monthly irradiation (or downloaded measured profiles). Array power: P = Pc·G/1000·(1 − losses)·[1 + γ(Tc − 25)]. Motor-pump of nominal power Pn supplied with x·Pn:

x < s: Q = 0; otherwise PH = ηp·ηm·Pn·(x − s)/(1 − s) and Q·TDH(Q)/367 = PH (intersection with the system curve)

This linear-above-threshold model reproduces the measured behaviour of PV-powered motor-pumps (Hamidat and Benyoucef, 2008): efficiency is zero at start-up and reaches ηp·ηm at nominal power. The pump stops when the tank is full; the deficit is the water demanded while the tank is empty. With battery, the pump runs at nominal power as long as the tank is not full and the battery is above 1 − DOD. Coverage = (demand − deficit)/demand; LWSP = deficit/demand.

The simulation accounts for the starting threshold, low-irradiance hours and part-load efficiency, which the course methods ignore: it often gives a coverage below 100 % for an array sized by the energy method. The Simulation method selects the smallest array (by strings of modules) that reaches the target coverage.

Economics

Present cost = investment + Σ (operation + replacements)·(1 + i)t/(1 + a)t; cost per m³ = present cost / Σ delivered volume/(1 + a)t. Diesel motor-pump for comparison: same pump, pipe, tank and borehole; generator of 2·Pn (2 kW minimum), consumption in l/kWh, maintenance per running hour, replacement according to its lifetime.

References: L. Thiaw, Le pompage photovoltaïque, ESP-UCAD; E. Schiller et al., Le pompage photovoltaïque, IEPF, 1998; Sandia National Laboratories, Stand-Alone Photovoltaic Systems, 1995; IEC 62253:2011 (photovoltaic pumping systems); GIZ/FAO, Toolbox on Solar Powered Irrigation Systems; IWMI, SIP sizing tool; Practical Action, Solar photovoltaic water pumping, 2014; A. Hamidat, B. Benyoucef, Renewable Energy 33 (2008) 933-942; T. R. Lunel, D. R. Rousse, pvpumpingsystem, Journal of Open Source Software 5 (2020) 2637; I. M. Mahmoud et al., Discover Sustainability 5 (2024).

↑ Back to top

🌬️8. Wind systems

Five-tab window; toolbar: New, Open, Save (.nxeol), Import an EolXpert project (.EOL), Wind turbines (database), Help, Compute (F5).

8.1 Tab 1 — Site and measurements

  • Terrain (roughness z₀): open water (0.005 m), short-grass prairie (0.02), open country (0.07), crops and scattered dwellings (0.25), hedgerows, suburbs (0.40), urban areas and forests (1.00).
  • Measurement height (anemometer, often 10 m), hub height, air density (1.225 kg/m³ at sea level and 15 °C; ≈ 1.17 in Dakar). The speed ratio and turbulence intensity are displayed.
  • Wind data: measurements (one column of speeds in m/s per month, January first; empty cells = missing data) imported from Excel (.xls, .xlsx), a .csv/.txt file, pasted from Excel, supplied examples (Dakar-Yoff 1975, 1976, average, Saint-Louis 1999) or Données en ligne…; or monthly Weibull parameters (c, k, % calms) at measurement height.
  • Weibull fit: maximum likelihood (recommended) or regression on the cumulative frequency (EolXpert method).

8.2 Tab 2 — Wind analysis

For the year and each month, at hub height: number of measurements, calms, mean and maximum speeds, c, k, power density (W/m²), recoverable energy (Betz limit, kWh/m²). Charts: histogram and Weibull distribution, monthly quantities.

8.3 Tab 3 — Wind turbine

Choice in the database; characteristics (Pn, cut-in, rated and cut-out speeds, diameter, average efficiency); power curve P = f(v); method: manufacturer's curve (recommended) or average efficiency. The database (« Wind turbines… » button) allows machines to be added, duplicated and deleted, and the curve to be entered or pasted point by point.

Supplied database (November 2026): eight generic machines from 1 to 250 kW (permanent magnets up to 20 kW, variable pitch above), with power curve at ρ = 1.225 kg/m³, diameter, usual hub height and indicative prices of the machine and the tower (in thousands of CFA francs incl. VAT in Dakar, to be replaced by quotations). The Database prices button of tab 5 uses these prices. The EolXpert (2002) machines are removed; an older personal database is renamed aerogenerateurs.avant-2026-11.csv.

8.4 Tab 4 — Production and sizing

  • Design margin (%): increases the needs used for the number of machines and the storage (10 % by default for new projects, 0 % for old ones).
  • Production losses (%): unavailability, electrical losses, blade soiling (6 % by default) — net production = gross × (1 − losses).
  • Demand (kWh/day) and losses to the loads (storage, conversion, cables: 15 to 25 %).
  • Results: net energy per month and per year (gross recalled), mean power, capacity factor, demand coverage, production per wind class, number of turbines (worst month and annual balance), comparison of all database machines, check against the measured series.

8.5 Tab 5 — Economic viability

  1. System: grid-connected (all net energy is sold, × conversion efficiency) or stand-alone (useful energy = min(available production, demand) each month; batteries for N days of autonomy). Number of machines: entered, or 0 to use the number from tab 4.
  2. Investment: turbine (kF/kW), tower and foundations (kF/machine), power electronics (kF/kW), batteries (kF/kWh), installation (% of equipment).
  3. Operation: O&M and insurance (kF/kW/yr), major overhaul (% of turbine price, year), lifetimes of electronics and batteries.
  4. Economic data: tariff (selling price or avoided cost) and growth, duration, inflation, discount rate, subsidy, yearly production loss; tariff range of the sensitivity.
  5. Compute, Minimum tariff, Minimum subsidy, Default values.

Results: energy sold or used, capacity factor, coverage, investment, NPV, IRR, simple and discounted payback, LCOE, minimum tariff, minimum subsidy; cumulative cash-flow chart (simple and discounted) and monthly energy; sensitivity: NPV versus tariff for wind from 80 to 120 % and LCOE versus wind; savable report; CSV export.

Wind energy varies very fast with wind speed: a 10 % weaker wind often costs 15 to 25 % of the energy. The quality of the wind data (on-site measurements over at least one year, at hub height) matters more than the precision of the costs.

8.6 Wind calculation methods

Weibull distribution

f(v) = (k/c)·(v/c)k−1·exp(−(v/c)k) ; v̄ = c·Γ(1 + 1/k) ; ⟨v³⟩ = c³·Γ(1 + 3/k)

Maximum likelihood on non-zero winds: 1/k = Σvkln v / Σvk − ⟨ln v⟩, c = (⟨vk⟩)1/k; windy fraction F = 1 − calms.

Height extrapolation, turbulence

v(H) = v(Hmeas)·ln(H/z₀) / ln(Hmeas/z₀) ; I = 1/ln(H/z₀) (z₀ ≤ 0.2 m)

Power density and recoverable energy

P/A = ½·ρ·(1 + 3I²)·F·⟨v³⟩ ; recoverable = 16/27·P/A (Betz limit)

Production

Emonth = (1 − losses)·F·∫vivmax P(v)·f(v) dv · 24 · days

Manufacturer's curve read at the equivalent speed v·(ρ/1.225)1/3 (IEC 61400-12-1). Efficiency method: P = η·½ρ(1 + 3I²)·πD²/4·v³, limited to Pn. Number of machines = ⌈demand / (Enet·(1 − losses to loads))⌉ for the worst month.

↑ Back to top

💰9. Economic methods

The PV and wind viability studies share the same definitions. Year 0: investment; years 1 to N: yearly flows; discount rate a, inflation i, tariff growth g.

F0 = −I·(1 − s) ; Fy = t·(1+g)y·Ey − (Cyr + Ry)·(1+i)y (+ Vsalv·(1+i)N in year N)
IndicatorDefinition
NPVΣ Fy/(1+a)y. Viable if NPV ≥ 0.
IRRRate that makes NPV zero (bisection search); viable if IRR ≥ a.
PaybackYear when the cumulative flow (simple or discounted) becomes positive, interpolated.
LCOE[I·(1 − s) + PV(costs, replacements − salvage)] / Σ Ey/(1+a)y.
Minimum tariffTariff giving NPV = 0 (exact: NPV is linear in the tariff).
Minimum subsidyShare of the investment giving NPV = 0 at the entered tariff; “impossible” if > 100 %.
Salvage valueRemaining lifetime share of the last equipment bought (straight-line depreciation).
Present cost (PV, tabs 4 and 5)Investment + Σ (maintenance + replacements)·(1+i)t/(1+a)t − discounted salvage; a = interest rate.
↑ Back to top

📏10. Default values and typical ranges

QuantityDefaultTypical range
PV — system losses (dust, cables, mismatch)8 %5 to 15 % (dust: 3 % or more in the Sahel)
PV — Pmax temperature coefficient−0.40 %/°C−0.30 to −0.45 %/°C
PV — NOCT45 °C42 to 48 °C
PV — degradation0.5 %/yr0.3 to 0.8 %/yr
PV — performance ratio PR—0.70 to 0.85
PV — specific yield in Dakar—1,450 to 1,700 kWh/kWp/yr
Lead-acid batteries — lifetime / DoD5 yr / 60 %4 to 6 years in hot climates; lithium 10 to 15 years, DoD 80 to 90 %
Inverters, controllers — lifetime10 yr8 to 15 years
Wind — production losses6 %5 to 10 % (remote site: more)
Wind — yearly production loss0.5 %/yr0.5 to 1.5 %/yr
Wind — O&M40 kF/kW/yr2 to 3 % of the investment per year
Wind — capacity factor (small wind)—10 to 25 %
Inverter — current limit Imax1.1 pu (PV, wind); 1.2 pu (battery)1.0 to 1.5 pu (manufacturer I_skPF when known)
Generating set — X'd, Rd0.25 pu; 0.1·XdX'd 0.15 to 0.35 pu
Inflation / discount rate3 % / 8 %depending on country and financing
↑ Back to top

📁11. Files and folders

File / folderContent
*.nxpNetwork project (diagram, parameters, groups).
*.nxpvPhotovoltaic project (site, demand, options, viability, imported weather data).
*.nxeolWind project (site, measurements, turbine, production, viability).
*.EOLOld EolXpert projects (import only).
~/.nrjxpert/pv/Modified PV equipment databases (CSV).
~/.nrjxpert/meteo/cache/Weather service answers (90 days).
~/.nrjxpert/aide/Copy of this guide, opened in the browser.
ExportsMonthly averages (CSV, “;” separator, decimal comma), sensitivities (CSV), reports (text).
↑ Back to top

🛠️12. Troubleshooting

SymptomCause and solution
« Connection impossible » when simulatingNo Internet connection, wrong server address or port, institution firewall blocking the port, or server under maintenance: check Simulation › Calculation and server settings › « Test the connection », then contact the administrator.
« access key missing », « invalid », « revoked » or « expired »Enter or correct the key in Simulation › Calculation and server settings (« Show » box to read it again); a revoked or expired key is renewed by the software supplier.
« Encrypted connection failed »Local server without TLS: untick « Encrypted connection ». Remote server: check the address (the certificate is issued for a name, not for an IP address) and the date of the computer; an institution proxy intercepting encrypted connections can also be the cause.
« server busy » or « maximum calculation time exceeded »Many simultaneous calculations: try again in a moment. Study too heavy (long dynamics, OPF over many steps, test bench with long tests): reduce the simulated duration, the number of steps or the length of the profiles.
Response time-outSlow connection or long DER study (dynamics, OPF): reduce the simulated duration or the number of steps, then run again.
« The load flow needs a slack bus »Place one generator bus of slack type.
« The network contains no source »Add a source or a generator bus.
Mixing of DC and AC sources refusedCalculate the DC and AC parts separately.
Weather download impossibleInternet connection or proxy; service temporarily unavailable (automatic retry); try again later or change the source.
December without irradiation (NASA)CERES data are published a few months late: choose an earlier period.
PV: months in deficitSize on the least sunny month, increase the tilt or the peak power.
PV: high-voltage module on a 12/24 V busTick « MPPT charge controller ».
Wind: Weibull / series difference > 10 %Rounded measurements, many calms or bimodal distribution: the value calculated on the series is the most reliable.
Short circuit: « Configuration error of the short-circuit point »Double-click on a terminal or place a fault on a line, then choose the « Short circuit » calculation.
Short circuit: « zero positive-sequence impedance »A conventional generator without Rd, Xd is at the fault point: enter its impedances (inverters are current sources).
Short circuit: zero earth currentNo zero-sequence path (isolated neutrals, delta winding): this is normal; otherwise enter R0, X0 and the neutral of the generators.
DER study refused: « non-radial network »The distribution load flow needs a radial network: open a loop.
DER study: wrong profile lengthAll profiles and hourly prices must have the same number of values (DER study settings › Profiles).
OPF / economic dispatch / test bench: server errorThe server needs SciPy 1.9 or later (scipy.optimize.milp); the message gives the version found. Tip: a dedicated environment, conda create -n nrjxpert python=3.11 numpy scipy, then conda activate nrjxpert before starting the server.
Test bench: « point of common coupling not found » or « does not separate an island »Choose as PCC the switching device or series element located between the slack bus (upstream grid, dynamic model « grid ») and the site, in the « Microgrid tests » tab.
Test bench: all dynamic tests fail (« collapse »)No grid-forming source in the island: give a battery the grid-forming model (droop or VSM) or add a genset.
Help not openedOpen ~/.nrjxpert/aide/help-en.html in a web browser.
↑ Back to top

📚13. Glossary and references

Slack busBus whose voltage and angle are imposed; it supplies the balance of power. PV / PQ busGenerator bus with P and V imposed / load bus with P and Q imposed. KtClearness index: ratio of ground irradiation to extraterrestrial irradiation. NOCTCell temperature under 800 W/m², 20 °C, wind 1 m/s. PRPerformance ratio: AC energy / (peak power × irradiation on the plane). MPPT / PWMCharge controller with maximum power point tracking / with simple switching. DoDAdmissible depth of discharge of the battery. Capacity factorEnergy produced / (rated power × 8760 h). LCOELevelized cost of energy. NPV, IRRNet present value, internal rate of return. DERDistributed energy resources: generation (PV, wind, gensets) and storage connected to the distribution network. I"k, ipInitial symmetrical short-circuit current, peak current. I_skPFShort-circuit current of an inverter-based generator (« full converter »), limited by its control. Grid-following / grid-forming inverter (GFL / GFM)Inverter that follows the grid voltage (PLL) / that imposes its own voltage and frequency (droop, virtual synchronous machine VSM). SOCBattery state of charge. RoCoF, nadirRate of change of frequency, minimum frequency after a disturbance. OPF, MILPOptimal power flow; mixed-integer linear programming. SGAMSmart Grid Architecture Model (IEC SRD 63200): domains × zones × interoperability layers. ADMS, DERMS, VPPAdvanced distribution management system; DER management system; virtual power plant. FLISR (FDIR)Fault location, isolation and service restoration (self-healing). FPIFault passage indicator. SAIDI, SAIFI, MAIFI, ENSAverage interruption duration and frequency per customer; momentary interruptions; energy not supplied. IVVC, IVVC/r, CVRIntegrated Volt/VAR control (with inverters); conservation voltage reduction. V1G, V2GSmart charging; bidirectional charging (vehicle-to-grid). CIMCommon Information Model: IEC 61970 (transmission), IEC 61968 (distribution), IEC 62325 (markets). PCCPoint of common coupling between the microgrid and the upstream grid. AMI, HES, OBISAdvanced metering infrastructure; head-end system; object identification system of DLMS/COSEM data. NTLNon-technical losses (theft, faulty meters, unregistered customers, billing errors). VTN, VENVirtual top node (operator, aggregator) and virtual end node (site, VPP) of OpenADR. SL-T, SL-A, FRTarget and achieved security levels, foundational requirements of IEC 62443.

References

  • Smart grids, standards: IEC SRD 63200 (SGAM), IEEE 2030.7 / 2030.8 (microgrids), IEEE 1547-2018, EN 50549, IEEE 1366 (reliability indices), IEEE P2030.14 (VPP), IEC 61970 / 61968 (CIM), IEC 61850, IEC 62056 (DLMS/COSEM), ITU-T G.9903 (G3-PLC), IEC 60870-5-104, ISO 15118, OCPP 2.0.1, OpenADR 2.0b, IEC 62559-2 (use cases), IEC 62443 and IEC 62351 (cybersecurity).
  • L. Thiaw: smart grid specialisation guide, École Supérieure Polytechnique (ESP), Université Cheikh Anta Diop de Dakar (UCAD), 2026.
  • J. A. Duffie, W. A. Beckman, Solar Engineering of Thermal Processes, Wiley (solar geometry, Liu-Jordan, Klein).
  • D. G. Erbs, S. A. Klein, J. A. Duffie, “Estimation of the diffuse radiation fraction…”, Solar Energy 28, 1982.
  • IEC 61400-12-1, power performance measurements of wind turbines; J. F. Manwell et al., Wind Energy Explained, Wiley.
  • C. G. Justus et al., “Methods for estimating wind speed frequency distributions”, J. Appl. Meteorol., 1978.
  • IEC 60909-0:2016, Short-circuit currents in three-phase a.c. systems — Calculation of currents.
  • IEEE 1547-2018, interconnection of distributed energy resources (Q(V), P(V) controls).
  • NASA POWER: power.larc.nasa.gov; PVGIS: re.jrc.ec.europa.eu; Open-Meteo: open-meteo.com.
  • L. Thiaw: NRJXpert, EolXpert (C++, 2002) and PV Systems Analyser (MATLAB, 2010-2013) programs.
  • L. Thiaw: applied electricity course materials, École Supérieure Polytechnique (ESP), Université Cheikh Anta Diop de Dakar (UCAD).
  • L. Thiaw: SimElecNetwork, first development phase (Python and Java), 2018-2020, École Supérieure Polytechnique (ESP), Université Cheikh Anta Diop de Dakar (UCAD).

NRJXpert — ESP / UCAD, Dakar. This guide is copied to ~/.nrjxpert/aide/ each time it is opened from the Help menu.

↑ Back to top

👤Author

LT
Prof. Lamine THIAW
Department of Electrical Engineering
École Supérieure Polytechnique
Cheikh Anta Diop University, Dakar
lamine.thiaw@ucad.edu.sn
lamine.thiaw@esp.sn

November 2026