请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:LAUNCHXL-F28379D 工具与软件:
pMotor->cmplx_Id.kDirect = pMotor->FCL_params.Rd * invZbase *
__sqrt(2.0F - 2.0F * __cos(pMotor->FCL_params.wccD *
pMotor->FCL_params.tSamp)) /
(1.0F - pMotor->cmplx_Id.expVal);
pMotor->cmplx_Iq.kDirect = pMotor->FCL_params.Rq * invZbase *
__sqrt(2.0F - 2.0F * __cos(pMotor->FCL_params.wccQ *
pMotor->FCL_params.tSamp)) /
(1.0F - pMotor->cmplx_Iq.expVal);
在分析了FCL_runComplexCtrlWrapfcl_foc_cpu.h文件中的函数后,我发现的值kDirect实际上等于(wccD * Ts) / (1 - expVal),特别是当wccD和的乘积Ts相对较小的时候。 考虑到这一点,似乎很好奇为什么示例代码选择一个更复杂的公式来计算kDirect. 值得注意的是、与更简单的除法方法相比、使用平方根运算会消耗更多的 CPU 周期。