器件型号:DRV8312-69M-KIT
目前、我们正在尝试验证5级(使用霍尔效应传感器的 BLDC 电机梯形控制)。
在构建级别5时、我们会遇到编译错误、如下所示。 MATH_TYPE 设置为 IQ_MATH。
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
器件型号:DRV8312-69M-KIT
目前、我们正在尝试验证5级(使用霍尔效应传感器的 BLDC 电机梯形控制)。
在构建级别5时、我们会遇到编译错误、如下所示。 MATH_TYPE 设置为 IQ_MATH。
由于您使用的是 F28069M 器件、因此您可以通过以下链接来相应地更改.cmd、但参考代码基于 F28069。
https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/418468/1931338
https://e2e.ti.com/support/microcontrollers/c2000/f/171/p/832121/3077993
您无需更改 IQmathLib.h 中的 MATH_TYPE、该参数应在 BLDC_Sensored-Settings.h 中设置为 FLOAT_MATH 在熟悉参考代码之前、请勿更改任何内容以进行评估。
对于上面的第一个链接,我们更改了设置,如所附的快照中所示,但与 ISA 错误有关的问题仍然存在。 (当 MATH_TYPE = IQ_MATH 时)
其次、我们想了解、为什么 BLDC_Sensored-Settings.h 只具有 float_Math? [为什么不能使用 IQ_Math?]
MATH_TYPE 如何影响5级或6级性能?
现在、我们按如下方式更改了 pid_组 noo.f 文件、然后5级开始工作。 [绕过 _IQsat ()]和 MATH_TYPE = FLOAT_MATH
/* v.term.out=_IQsat (v.data.v1、v.param.Umax、v.param.Umin);*/\
如果(v.data.v1 > v.param.Umax)\
V.term.out = v.param.Umax;\
如果(v.data.v1 < v.param.Umin)\
V.term.out = v.param.Umin;\
V.data.w1 =(v.term.out =v.data.v1)? _IQ (1.0):_IQ (0.0);\