void App_GainSet(void)
{
    if(st_TimerFlag1.u16_b1Second !=1)return; // 如果一秒钟还没过去,就退出函数

    if(tSys.u16Power==1200) // 如果系统功率为1200
    {
        tSys.fAcCurGain=  0.0061035F*0.5F*0.934F; // 设置交流电流增益
		tSys.fAcVOutGain=0.23163916f*0.92272; // 设置交流输出电压增益
	    tSys.fAcVGridGain=0.23163916f; // 设置电网电压增益
	    tSys.fBusVltGain=0.139316279f; // 设置母线电压增益
	    tSys.fIPeak =8.0f; // 设置最大输入电流
	    tSys.u16MpptQty=2; // 设置最大电流点数
        tDc.fPvPwrLmt=650.0F; // 设置最大光伏功率

    }
    else if(tSys.u16Power==2000) // 如果系统功率为2000
    {
        tSys.fAcCurGain=  0.011474609F*0.5F*0.965F;//1.06f;//0.913F; // 设置交流电流增益
		tSys.fAcVOutGain=0.23163916f*0.9895f; // 设置交流输出电压增益
	    tSys.fAcVGridGain=0.23163916f*0.9895f; // 设置电网电压增益
	    tSys.fBusVltGain=0.139316279f*0.977f; // 设置母线电压增益
	    tSys.fIPeak =10.0f; // 设置最大输入电流

	    tSys.u16MpptQty=4; // 设置最大电流点数
        tDc.fPvPwrLmt=550.0F; // 设置最大光伏功率
    }
    else if(tSys.u16Power==1800) // 如果系统功率为1800
    {
        tSys.fAcCurGain=  0.011474609F*0.5F*0.965F;//1.06f;//0.913F; // 设置交流电流增益
        tSys.fAcVOutGain=0.23163916f; // 设置交流输出电压增益
        tSys.fAcVGridGain=0.23163916f; // 设置电网电压增益
        tSys.fBusVltGain=0.139316279f*0.977f; // 设置母线电压增益
        tSys.fIPeak =10.0f; // 设置最大输入电流

	    tSys.u16MpptQty=4; // 设置最大电流点数
        tDc.fPvPwrLmt=550.0F; // 设置最大光伏功率
    }
    else if(tSys.u16Power==1600) // 如果系统功率为1600
    {
        tSys.fAcCurGain=  0.011474609F*0.5F*0.965F;//1.06f;//0.913F; // 设置交流电流增益
        tSys.fAcVOutGain=0.23163916f; // 设置交流输出电压增益
        tSys.fAcVGridGain=0.23163916f; // 设置电网电压增益
        tSys.fBusVltGain=0.139316279f*0.977f; // 设置母线电压增益
        tSys.fIPeak =10.0f; // 设置最大输入电流

        tSys.u16MpptQty=4; // 设置最大电流点数
        tDc.fPvPwrLmt=550.0F; // 设置最大光伏功率
    }
    else if(tSys.u16Power==800) // 如果系统功率为800
    {
        tSys.fAcCurGain=  0.0061035F*0.25F*0.95f; // 设置交流电流增益
        //tSys.fAcCurGain =  0.00830078125*0.25F*0.975f;
		tSys.fAcVOutGain=0.23163916f; // 设置交流输出电压增益
	    tSys.fAcVGridGain=0.23163916f; // 设置电网电压增益
        tSys.fBusVltGain=0.139316279f*0.977f; // 设置母线电压增益
        tSys.fIPeak =5.0f; // 设置最大输入电流
        tSys.u16MpptQty=2; // 设置最大电流点数
        tDc.fPvPwrLmt=500.0F; // 设置最大光伏功率

    }
    else if(tSys.u16Power==600) // 如果系统功率为600
    {
        tSys.fAcCurGain=  0.0061035F*0.25F; // 设置交流电流增益
        tSys.fAcVOutGain=0.23163916f; // 设置交流输出电压增益
        tSys.fAcVGridGain=0.23163916f; // 设置电网电压增益
        tSys.fBusVltGain=0.139316279f; // 设置母线电压增益
        tSys.fIPeak =5.0f; // 设置最大输入电流
        tSys.u16MpptQty=2; // 设置最大电流点数
        if(tSys.u16MpptQty==2)
        {
            tDc.fPvPwrLmt=400.0F; // 设置最大光伏功率
        }
        else
        {
            tDc.fPvPwrLmt=650.0F; // 设置最大光伏功率

        }


    }


    if(tSys.u16Power==1200) // 如果系统功率为1200
    {
        tGridInvCur.fKi=0.15f;//0.05 // 设置电网电流PI控制器的积分增益
        tGridInvCur.fKp=16.0f;//14 // 设置电网电流PI控制器的比例增益
        tVbus.fKi=0.00006f; // 设置母线电压PI控制器的积分增益
        tVbus.fKp=0.01f; // 设置母线电压PI控制器的比例增益

    }
    else if(tSys.u16Power==2000) // 如果系统功率为2000
    {
        tGridInvCur.fKi=0.07f;//0.05 // 设置电网电流PI控制器的积分增益
        tGridInvCur.fKp=11.0f;//14 // 设置电网电流PI控制器的比例增益
        tVbus.fKi=0.0001f; // 设置母线电压PI控制器的积分增益
        tVbus.fKp=0.01f; // 设置母线电压PI控制器的比例增益

    }
    else if(tSys.u16Power==800) // 如果系统功率为800
    {
        tGridInvCur.fKi=0.10f;//0.05 // 设置电网电流PI控制器的积分增益
        tGridInvCur.fKp=28.0f*0.6;//14 // 设置电网电流PI控制器的比例增益
        tVbus.fKi=0.00006f; // 设置母线电压PI控制器的积分增益
        tVbus.fKp=0.006f; // 设置母线电压PI控制器的比例增益

    }
    else if(tSys.u16Power==600) // 如果系统功率为600
    {
        tGridInvCur.fKi=0.15f;//0.05 // 设置电网电流PI控制器的积分增益
        tGridInvCur.fKp=28.0f;//14 // 设置电网电流PI控制器的比例增益
        tVbus.fKi=0.0001f; // 设置母线电压PI控制器的积分增益
        tVbus.fKp=0.01f; // 设置母线电压PI控制器的比例增益
    }

    


}

总结:该函数根据系统功率的不同,设置了交流电流增益、交流输出电压增益、电网电压增益、母线电压增益、最大输入电流、最大电流点数和最大光伏功率等参数;同时也根据系统功率的不同,调整了电网电流PI控制器和母线电压PI控制器的比例增益和积分增益。该函数的作用是在系统启动时,根据不同的电源功率,设置相关参数,以保证系统稳定运行。

App_GainSet 函数:根据系统功率设置增益和控制参数

原文地址: https://www.cveoy.top/t/topic/m9O3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录