void App_GainSetvoid ifst_TimerFlag1u16_b1Second !=1return; iftSysu16Power==1200 tSysfAcCurGain= 00061035F05F0934F; tSysfAcVOutGain=023163916f092272; tSysfAcVGridGain=023163916f
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控制器的比例增益和积分增益。该函数的作用是在系统启动时,根据不同的电源功率,设置相关参数,以保证系统稳定运行。
原文地址: https://www.cveoy.top/t/topic/bFKF 著作权归作者所有。请勿转载和采集!