-
Notifications
You must be signed in to change notification settings - Fork 4
Electrics Module
The electrics module calculates the power output of the single junctions and of the multi-junction solar cell. For this, the Shockley diode equation including series RS and shunt RSH resistance is used:
Where J0 is the dark saturation current density, n the ideality factor, k the Boltzmann constant, and Tmodule the module temperature.
For each hour of the year the J-V characteristics is calculated. In this regard, each point in time is characterized by the short-circuit current density (see Energy Yield Core Module) and the module temperature. The module temperature is derived by a simple empirical model based on the nominal operating cell temperature (NOCT), which can be set in the configuration. The ambient temperature is then scaled depending on the insolation S heating up the solar module.
Different temperatures also influence the VOC and JSC of the solar cell. This influence is modelled by temperature coefficients (expressed in ppm K-1) for each parameter:
Solving the transcendental one-diode equation for the open-circuit voltage VOC, one can use the Lambert W function:
With the same approach, the voltage can be expressed depend on the current as follows:
The electrics module is called by the energy yield core module. Once the total short-circuit current density is calculated, the electrics module can be called. We can define the electrical parameters as described in the main.m
example.
electrics.configuration = '2T'; % 2T, 3T, 4T, 2T exp, 3T exp, 4T exp
electrics.shunt = 'with'; % with, without
electrics.RshTandem = 1300; % shunt resistance of tandem device
electrics.RsTandem = 3; % serial resistance of tandem device
electrics.Rsh = [1300, 1000]; % shunt resistance of n-th cell
electrics.Rs = [2, 1]; % serial resistance of n-th cell
electrics.CE = [1, 1]; % collection efficiency of n-th cell
electrics.j0 = [2.7e-18, 1e-12]; % reverse-blocking current of n-th cell
electrics.n = [1.1, 1]; % ideality factor of n-th cell
electrics.Temp = [25, 25]; % temperature of cells (can also be n vectors)
electrics.NOCT = [48, 48]; % nominal temperature of n-th cell, if a number, Temp is overwritten
electrics.tcJsc = [0.0002, 0.00032]; % temperature coefficient of Jsc in K^-1 of n-th cell
electrics.tcVoc = [-0.002, -0.0041]; % temperature coefficient of Voc in K^-1 of n-th cell
For testing, we define the short-circuit current densities for the top peroskite and bottom silicon solar cell as follows:
Jsc_top = 19.5; % mAcm-2
Jsc_bot = 18.2; % mAcm-2
And then we call the electrics module:
[el.Voc_Tandem, el.FF_Tandem, el.Power_Tandem, el.JMPP_Tandem, el.VMPP_Tandem] = ...
calctandemelectrics(electrics, min(Jsc_top,Jsc_bot) );
el =
struct with fields:
Voc_Tandem: 2.0072
FF_Tandem: 0.7728
Power_Tandem: 282.3224
JMPP_Tandem: 16.9000
VMPP_Tandem: 1.6705
We can also illustrate the single junction IV curves, by calling calcsingleelectrics()
.
shunt = 'with';
RshTandem = 1000;
RsTandem = 3;
Rsh = [1300, 1000];
Rs = [2, 1];
CE = [1, 1];
j0 = [2.7e-18, 1e-12];
n = [1.1, 1];
Temp = [25, 25];
NOCT = [48, 48];
tcJsc = [0.0002, 0.00032];
tcVoc = [-0.002, -0.0041];
jsc_RT = [19.5, 18.2];
[~, ~, ~, ~, ~, j_top, V_top] = calcsingleelectrics(jsc_RT(1), Rs(1), Rsh(1), j0(1), n(1), tcJsc(1), tcVoc(1), Temp(1), shunt);
[~, ~, ~, ~, ~, j_bot, V_bot] = calcsingleelectrics(jsc_RT(2), Rs(2), Rsh(2), j0(2), n(2), tcJsc(2), tcVoc(2), Temp(2), shunt);
plot(V_top,j_top,'o-'); hold on
plot(V_bot,j_bot,'x-');
xlabel('Voltage (V)'); ylabel('Current density (mA/cm²)')