App_GainSet 函数:根据系统功率设置增益和控制参数
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/m9O3 著作权归作者所有。请勿转载和采集!