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控制器的比例增益和积分增益。该函数的作用是在系统启动时,根据不同的电源功率,设置相关参数,以保证系统稳定运行。

void App_GainSetvoid ifst_TimerFlag1u16_b1Second !=1return; iftSysu16Power==1200 tSysfAcCurGain= 00061035F05F0934F;		tSysfAcVOutGain=023163916f092272;	 tSysfAcVGridGain=023163916f

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

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