请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TIDA-010062 主题中讨论的其他器件:C2000WARE
尊敬的香槟:
我是为我们的客户提出这个问题的。
在
C:\ti\c2000_c2000_SDK_5_01_00_00\solutions\TIDA_010062\source\LLC\source\LLC.c Ware_Digital、下面存在函数"LLC_updateDeadband (void)"。
Question:
1.这个函数的目的是什么? 是否仅用于根据次级电流更新死区值? 是为了提高功效还是为了获得更好的瞬态响应、或者二者兼而有之?
2.在下面不同情况下的死区设置似乎是一样的。 它们为什么相同? 如果是、为什么需要此功能?
3.有5个电流范围。 你如何决定这一点?
//
// Update the deadband values based on the secondary current. There are 5
// current ranges (numbers 0 through 4) with corresponding values for the
// PWM dead-band, this ensures ZVS across loads.
//
void LLC_updateDeadband(void)
{
static uint16_t range = 0;
switch(range) // Update dead-time based on secondary current
{
//
// Range 0
//
case 0:
if(LLC_iSec_Amps < LLC_DEADBAND_RANGE0_UPPER_THRESHOLD)
{
LLC_PWMDbRedPri = LLC_DEADBAND_RANGE0_DBRED_PRI;
LLC_PWMDbFedPri = LLC_DEADBAND_RANGE0_DBFED_PRI;
range = 0;
}
else
range = 1;
break;
//
// Range 1
//
case 1:
if(LLC_iSec_Amps > LLC_DEADBAND_RANGE1_LOWER_THRESHOLD
&& LLC_iSec_Amps < LLC_DEADBAND_RANGE1_UPPER_THRESHOLD)
{
LLC_PWMDbRedPri = LLC_DEADBAND_RANGE1_DBRED_PRI;
LLC_PWMDbFedPri = LLC_DEADBAND_RANGE1_DBFED_PRI;
range = 1;
}
else
{
if(LLC_iSec_Amps >= LLC_DEADBAND_RANGE1_UPPER_THRESHOLD)
range = 2;
else
range = 0;
}
break;
//
// Range 2
//
case 2:
if(LLC_iSec_Amps > LLC_DEADBAND_RANGE2_LOWER_THRESHOLD
&& LLC_iSec_Amps < LLC_DEADBAND_RANGE2_UPPER_THRESHOLD)
{
LLC_PWMDbRedPri = LLC_DEADBAND_RANGE2_DBRED_PRI;
LLC_PWMDbFedPri = LLC_DEADBAND_RANGE2_DBFED_PRI;
range = 2;
}
else
{
if(LLC_iSec_Amps >= LLC_DEADBAND_RANGE2_UPPER_THRESHOLD)
range = 3;
else
range = 0;
}
break;
//
// Range 3
//
case 3:
if(LLC_iSec_Amps > LLC_DEADBAND_RANGE3_LOWER_THRESHOLD
&& LLC_iSec_Amps < LLC_DEADBAND_RANGE3_UPPER_THRESHOLD)
{
LLC_PWMDbRedPri = LLC_DEADBAND_RANGE3_DBRED_PRI;
LLC_PWMDbFedPri = LLC_DEADBAND_RANGE3_DBFED_PRI;
range = 3;
}
else
{
if(LLC_iSec_Amps >= LLC_DEADBAND_RANGE3_UPPER_THRESHOLD)
range = 4;
else
range = 0;
}
break;
//
// Range 4
//
case 4:
if(LLC_iSec_Amps > LLC_DEADBAND_RANGE4_LOWER_THRESHOLD
&& LLC_iSec_Amps < LLC_DEADBAND_RANGE4_UPPER_THRESHOLD)
{
LLC_PWMDbRedPri = LLC_DEADBAND_RANGE4_DBRED_PRI;
LLC_PWMDbFedPri = LLC_DEADBAND_RANGE4_DBFED_PRI;
range = 4;
}
else
{
if(LLC_iSec_Amps >= LLC_DEADBAND_RANGE4_UPPER_THRESHOLD)
range = 5;
else
range = 0;
}
break;
//
// Range 5
//
case 5:
if(LLC_iSec_Amps > LLC_DEADBAND_RANGE5_LOWER_THRESHOLD)
{
LLC_PWMDbRedPri = LLC_DEADBAND_RANGE5_DBRED_PRI;
LLC_PWMDbFedPri = LLC_DEADBAND_RANGE5_DBFED_PRI;
range = 5;
}
else
range = 0;
break;
default:
range = 0;
break;
}
}