This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Solar Explorer Kit MPPT Algorithms

Other Parts Discussed in Thread: CONTROLSUITE

Hi

I have to do my project with solar explorer kit,to track the mpp using another algorithms.like constant voltage method.Now the existing programm is with perturb and observe,incremental conductance method.I have to firstly understand the programm.Can anybody ask the following questions?

here is the MPPT part of the programm in CCS6

void B1(void)  // MPPT Execution
//----------------------------------------
{    
    if(Run_MPPT==1)
    {
        // MPPT routine
        mppt_incc1.Ipv = IpvRead_EMAVG; //IpvRead;
        mppt_incc1.Vpv = VpvRead_EMAVG; //VpvRead;

        mppt_incc_MACRO(mppt_incc1);
        
        VpvRef_MPPT = mppt_incc1.VmppOut;
        
        mppt_pno1.Ipv = IpvRead_EMAVG; //IpvRead;
        mppt_pno1.Vpv = VpvRead_EMAVG; //VpvRead;
    
        mppt_pno_MACRO(mppt_pno1);

        //VpvRef_MPPT = mppt_pno1.VmppOut;
        
        if(VpvRef_MPPT<_IQ24(0.0))
        {
            VpvRef_MPPT=_IQ24(0.0);
        }
        else if(VpvRef_MPPT>_IQ24(0.9))
        {
            VpvRef_MPPT=_IQ24(0.9);
        }
        
        VpvRef=VpvRef_MPPT;
        
        Run_MPPT=0;
    }

//MPPT is a slow task, the following code enables to modulate the rate at which the MPPT is called
    
    if(MPPT_slew==0)
    {
        if(MPPT_ENABLE==1)
        {
            Run_MPPT=1;
            mppt_incc1.mppt_enable=1;
        }
        MPPT_slew=0;
    }
    else
        MPPT_slew--;
    
    // Toggle LD2 on the control card if MPPT enabled
    if(MPPT_ENABLE==1)
    {
        if(LedBlinkCnt2==0)
            {
                GpioDataRegs.GPATOGGLE.bit.GPIO31 = 1;    //turn on/off LD2 on the controlCARD
                LedBlinkCnt2=1;
            }
        else
            LedBlinkCnt2--;
    }
    //-----------------
    //the next time CpuTimer1 'counter' reaches Period value go to B2
    B_Task_Ptr = &B2;    
    //-----------------
}


1.which method was used in this programm? is it pno or incc?,cause i've seen both names in the programm.

2.if i want to write a new mppt programm with new method,which parts should i change? the main.c code has so many lines,and i can't understand them all,the mppt must be connected to some specific parts,which i should replace.

thank you in advance

Jiayi