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.

TMS320F280025C-Q1: 例程代码咨询

Part Number: TMS320F280025C-Q1
Other Parts Discussed in Thread: C2000WARE

我在运行C2000Ware_MotorControl_SDK_5_00_00_00\solutions\universal_motorcontrol_lab实验例程,选择的是HALL有感FOC,在hall.h头文件中,为什么当霍尔状态发生变化一次,角度的增量thetaDelta_rad要变化2Π/36,三相霍尔状态每变化一次,角度增量不应该是Π/6吗?

下面的第一张图位于hall.h文件中,第二张图位于hall.c文件中,第三张图位于motor1_drive.c中

  • 你好,我咨询下相关工程师,一旦有回复会立即回复您。

  • 你好,至于thetaDelta_rad,该变量实际上不是状态变化增量。相反,thetaDelta_rad 是硬件偏移补偿。

    电机的角度由“thetaBuff”查找表确定,将霍尔传感器状态作为索引值。此表中的 7 个值取决于电机。请参阅 motor1_drive.c 文件中的 HALL_setAngleBuf() 函数和 HallAngleBuf 表。如果要验证这些值是否正确,请使用 MOTOR1_HALL_CAL 预定义进行 HALL 校准。

  • 那这种方式得到的角度可以用于FOC控制吗?感觉并没有进行插补把60°的霍尔角度细分

  • 已向相关工程师跟进。

  • 你好,参考下工程师的回复:

    By default, there is no interpolation in the HALL sensor routine- if you watch the motor angle via the DAC, you'll see it cycle through the course angle values. This naturally results in significantly more noise and error in other values like speed and current, but the motor will typically still run.

    If you'd like to implement interpolation yourself, the HALL_run() function called during the ISR also calculates an approximate speed of the motor based on the time between state transitions. Interpolation should be relatively simple from there.