你好:
现在使用的控制板为LAUNCHXL-F28069M,驱动板为BOOSTXL-DRV8305EVM配套使用控制24VBLDC,代码为Lab02b例程。使用学习中遇到以下问题:
1. 使用user.h中自定义的电机参数时,调用USER_softwareUpdate1p6(ctrlHandle)函数,逐行仿真时计算了该函数中的变量具体值,见图1中所示,请问该函数的具体用途?
2. 由手册中的说明,个人理解该函数是为了得到电感最大值而进行了Q格式缩放,但仿真发现EST_getLs_coarse_max_pu(ctrlHandle->estHandle)返回值为44.79999924,在IQ24格式下,直接计算Ls_coarse_max*fullScaleInductance,即
_IQmpy(EST_getLs_coarse_max_pu(ctrlHandle->estHandle), _IQ(fullScaleInductance)),返回值为0.02068936825,并不会超IQ24范围,为什么这里需要缩放?
3. USER_softwareUpdate1p6(ctrlHandle)函数中计算L_max为0.00184731,比问题2中算出的返回值还小,就更不理解USER_softwareUpdate1p6(ctrlHandle)函数了。
4. 在通过电机参数计算PI系数时,在USER_calcPIgains(ctrlHandle)函数中有Ls_d = EST_getLs_d_H(obj->estHandle),仿真值为0.0007092811,与user.h中设置的值相同,Ls_q值也与Ls_d 相同,既然计算PI系数值时是直接调用user.h中的参数,为何还需要USER_softwareUpdate1p6(ctrlHandle)函数?
以上为学习中遇到的问题,请各位大神指点迷津,感激万分,谢谢。
Johnson Chen1:
调用USER_softwareUpdate1p6(ctrlHandle)是因为F2806xF/M与其他芯片的FAST 版本不一样,因此要调这个函数进行转换。
你好:
现在使用的控制板为LAUNCHXL-F28069M,驱动板为BOOSTXL-DRV8305EVM配套使用控制24VBLDC,代码为Lab02b例程。使用学习中遇到以下问题:
1. 使用user.h中自定义的电机参数时,调用USER_softwareUpdate1p6(ctrlHandle)函数,逐行仿真时计算了该函数中的变量具体值,见图1中所示,请问该函数的具体用途?
2. 由手册中的说明,个人理解该函数是为了得到电感最大值而进行了Q格式缩放,但仿真发现EST_getLs_coarse_max_pu(ctrlHandle->estHandle)返回值为44.79999924,在IQ24格式下,直接计算Ls_coarse_max*fullScaleInductance,即
_IQmpy(EST_getLs_coarse_max_pu(ctrlHandle->estHandle), _IQ(fullScaleInductance)),返回值为0.02068936825,并不会超IQ24范围,为什么这里需要缩放?
3. USER_softwareUpdate1p6(ctrlHandle)函数中计算L_max为0.00184731,比问题2中算出的返回值还小,就更不理解USER_softwareUpdate1p6(ctrlHandle)函数了。
4. 在通过电机参数计算PI系数时,在USER_calcPIgains(ctrlHandle)函数中有Ls_d = EST_getLs_d_H(obj->estHandle),仿真值为0.0007092811,与user.h中设置的值相同,Ls_q值也与Ls_d 相同,既然计算PI系数值时是直接调用user.h中的参数,为何还需要USER_softwareUpdate1p6(ctrlHandle)函数?
以上为学习中遇到的问题,请各位大神指点迷津,感激万分,谢谢。
user1772718:
回复 Johnson Chen1:
你好,谢谢解答
但还是有疑问,能详细解答下USER_softwareUpdate1p6(ctrlHandle)这个函数中的转换思路吗?我还是不太理解。
因为代码开源的函数毕竟不多,这个既然有代码,就想研究清楚。麻烦了