program main
    
    double precision :: q, k, beta, alpha
    double precision :: G, G_ref, CR_PTC, T, T_cell, T_ref, Voc_ref, Isc_ref
    double precision :: Vt, n_min, n_max, coef, n
    double precision :: Voc, Isc, I0, IL
    double precision :: Rs, Vm, Im, Pm, RA, P_mppt, Rss
    
    q = 1.602e-19        ! Carga del electrón (C)
    k = 1.381e-23        ! Constante de Boltzmann (J/K)
    beta  = - 0.0023     ! Coef. temperatura de Voc (V/°C)
    alpha =   0.0006     ! Coef. temperatura de Isc (I/°C)
    
    Vt = (k * T)/q       ! Voltaje térmico

! ---- ---- ---- ---- ---- ---- ---- Datos de ficha técnica y parámetros conocidos

    G = 990              ! Irradiancia de referencia (W/m²)
    G_ref = 1353         ! Irradiancia de referencia (W/m²)
    
    CR_PTC = 16.92         ! Relación de concentración
    
    T_cell = 54.85
    T = T_cell + 273.15  ! Temperatura de la celda (°C)
    T_ref = 25 + 273.15  ! Tempertura de referencia (°C)
    
    Voc_ref = 2.630       ! Voltaje de circuito abierto (Voc) de refrencia (V)
    Isc_ref = 0.168       ! Corriente de corto circuito (Isc) de referencia (I)
    
    Vmp = 2.290 !Voc * 0.91     ! Voltaje de máximo punto de potencia (MPP) de refrencia (V)
    Imp = 0.160 !Isc * 0.95     ! Corriente de máximo punto de potencia (MPP) de referencia (I)

    Vt = (k * T)/q       ! Voltaje térmico
    
    n_max = 2
    n_min = 1
    coef = 0.0015
    n = n_max + (n_min - n_max) * exp(-coef * G)

! ---- ---- ---- ---- ---- ---- ---- Cálculo de Voc e Isc

    Voc = Voc_ref + (((n * k * T)/q) * log(G/G_ref)) + (beta * (T - T_ref)) ! Voltaje de circuito abierto (Voc)
    Isc = Isc_ref * (G/G_ref) * (1 + alpha * (T - T_ref)) * CR_PTC          ! Corriente de corto circuito (Isc)

! ---- ---- ---- ---- ---- ---- ---- Cálculo de I0 e IL
    
    I0 = (Isc)/(exp(Voc/(n * Vt)) - 1 )                ! Corriente de saturación inversa del diodo (I0)
    IL = Isc * (G/G_ref) * (1 + (alpha * (T - T_ref))) ! Fotocorriente generada (IL) 

! ---- ---- ---- ---- ---- ---- ---- Cálculo de Rs

    Rs = ( ( (Voc - Vmp)/(Imp) ) * ( T/T_ref )**(beta) ) * (1/CR_PTC)

    Rss = ( (n * k * T)/(q * Imp ) ) * log( (IL + I0 - Imp)/(I0) ) - (Vmp/Imp)

! ---- ---- ---- ---- ---- ---- ---- Obtención del punto de máxima potencia (Pm) "

    Vm = ( (n * k * T)/q) * log( ( (n * k * T )/(q * I0) ) * (Isc/Voc) )
    Im = IL + I0 - ( (n * 1 * k * T)/q ) * ( Isc/Voc )
    Pm = Im * Vm

    RA = 40            ! Relación entre las áreas de cada celda de PV y el total del PTC
    P_mppt = Im * (Vm * RA)     ! Potencia producida por todas las celdas del PTC

    print *, "Voc (V): ", Voc
    print *, "Isc (A): ", Isc
    
    
    print *, "Vmp (V): ", Vm
    print *, "Imp (A): ", Im

    print *, "I0  (A): ", I0
    print *, "IL  (A): ", IL
    
    print *, "Rs (Ω): ", Rs
    print *, "Rss (Ω): ", Rss
    print *, "Pmp (W): ", Pm
    print *, "P_mppt (W): ", P_mppt

end program main

Embed on website

To embed this program on your website, copy the following code and paste it into your website's HTML: