主题中讨论的其他器件:TMDXIDDK379D
大家好、我有几个关于快速电流环路库参数的问题。 我已经为 自己的硬件和电机定制了 tmdxiddk379d 示例解决方案代码。 我遇到了一个问题、在我发出3600 RPM 速度命令时、我只能将电机速度提高到3100 RPM。 电机额定转速为3600 RPM。 在3100 RPM 时、即使在轻负载水平下、也有接近额定值的大相电流。 我怀疑这是反电动势问题、在这些高速下、相电压不再能够克服 PMSM 产生的反电动势、从而阻止电机以更快的速度运行。 我对几个快速电流环路参数有一些问题、希望这些参数能帮助我解决这个问题。
1) 1)首先、在 fcl_f2837x_tmdxiddk_settings.h 文件中定义电机参数的位置、控制算法假定磁通的单位是多少? 我已粘贴在 TEKNIC_2310PLN04K 的#define 电机参数代码下方。
// // Define the electrical motor parameters (Teknic Servomotor) // #elif(USER_MOTOR == TEKNIC_2310PLN04K) #define RS 0.381334811 // Stator resistance (ohm) #define RR NULL // Rotor resistance (ohm) #define LS 0.000169791776 // Stator inductance (H) #define LR NULL // Rotor inductance (H) #define LM NULL // Magnetizing inductance (H) #define FLUX 0.0398557819 // BEMF constant (V/Hz) #define POLES 8 // Number of poles #define ENC_SLOTS 1000 // Numer of slots in the encoder #define M_ID_START 0.2 // alignment reference d-axis current #define M_IQ_LI5 0.10 // reference q-axis current for level5 #define M_IQ_LN5 0.10 // ref q-axis current for no level5
V LINE 到中性点 pk、V LINE 到中性点 rms、V LINE 到线路 rms、V LINE 到线路 pk 等中的值吗? 如果我发现这个装置有误、它会影响我在更高速度下的性能。 我将该值插入主脚本中的 FCL_params.BemfK 值、如下面的代码所示。 我的磁通当前已设置为0.5178 V 线至中性峰/ Hz。
2)我的第二个问题与 maxModIndex 的计算有关。 从下面的 initFCLVars()函数中,我的 maxModIndex 值为0.879。 这是根据使用单采样模式的60kHz 开关频率和1.00 (us)的默认 FCL_COMPUTATION_TIME 计算得出的。 由于调制指数直接影响逆变器输出相电压、因此电机生成的较大反电动势在较高速度时也会出现这种情况。 在我看来、maxModIndex 应该尽可能接近1、但这样做的唯一方法是进一步缩短 FCL 计算时间、使其尽可能接近零、这显然无法达到零。
//Function that initializes the variables for Fast current Loop library
void initFCLVars()
{
#if(SAMPLING_METHOD == SINGLE_SAMPLING)
maxModIndex = (TPWM_CARRIER - (2 * FCL_COMPUTATION_TIME)) / TPWM_CARRIER;
FCL_params.carrierMid = maxModIndex * INV_PWM_HALF_TBPRD * 0x10000L;
#elif(SAMPLING_METHOD == DOUBLE_SAMPLING)
maxModIndex = (TPWM_CARRIER - (4 * FCL_COMPUTATION_TIME)) / TPWM_CARRIER;
FCL_params.carrierMid = INV_PWM_HALF_TBPRD * 0x10000L;
#endif
FCL_params.adcScale = ADC_PU_PPB_SCALE_FACTOR * LEM_TO_SHUNT;
FCL_params.sdfmScale = SD_PU_SCALE_FACTOR * SDFM_TO_SHUNT;
FCL_params.cmidsqrt3 = FCL_params.carrierMid * sqrtf(3.0f);
FCL_params.tSamp = (1.0F / SAMPLING_FREQ);
FCL_params.Rd = RS;
FCL_params.Rq = RS;
FCL_params.Ld = LS;
FCL_params.Lq = LS;
FCL_params.BemfK = FLUX; // 0.8 default
FCL_params.Ibase = BASE_SHUNT_CURRENT; // LEM sensing is scaled to match
// with shunt sensing
FCL_params.Wbase = 2.0 * PI * BASE_FREQ;
FCL_params.wccD = CUR_LOOP_BANDWIDTH;
FCL_params.wccQ = CUR_LOOP_BANDWIDTH;
return;
}
那么、有几个有关这方面的问题。
定义调制指数的范围是多少? 它是否从0变为1?
该方程式来自何处计算 maxModIndex? 我想详细了解这一点。
我能否覆盖方程式并指定我自己的 maxModIndex (例如、将其设置为1)? 如果我这么做、会发生什么情况?
最后、carrierMid 的价值是什么?它有什么作用? 我的值计算为~2400万。
如果有任何帮助或指导 TI 进一步阅读有关此内容的资源、我们将不胜感激。 此外、我刚刚注意到3100 RPM 是我全速(3600 RPM)的~86%、并且鉴于我的 maxModIndex 是0.88、那么调制指数似乎是限制我速度的因素?