STM32 FOC SDK2.0中使用hall传感器获取电角度的公式解析

1. 概述:函数 在使用霍尔传感器获取位置信息时,使用函数 s16 HALL_GetRotorFreq ( void )获取转子电角度增量信息。函数简介原文如下:

STM32 FOC SDK2.0中使用hall传感器获取电角度的公式解析_第1张图片

2. 参数简介:

dpp(digit per PWM ) 格式: dpp格式表达的是速度在一个PWM周期内随电角度(s16格式)的变化。

CKTIM : 用于捕获霍尔传感器的TIM定时器的输入时钟,例如使用的是TIM4 ,输入时钟是72MHz,则CKTIM = 72000000

SAMPLING_FREQ:FOC算法的采样频率,程序中是4KHz

captured value:hall传感器的捕获值(时钟),需要注意F1系列输入捕获没有双边沿触发,程序中使用下降沿捕获。

prescaler value:用于Hall传感器捕获的时钟分频系数。

参考手册为UM4092

3. 计算过程解析:

captured value * prescaler value 结果为捕获的CKTIM时钟数。

CKTIM/(captured value * prescaler value) 即输入捕获的霍尔传感器的脉冲频率。(注意是下降沿触发不是双边沿)

CKTIM/(captured value * prescaler value) /3 等于电气频率(电机电周期的倒数)为什么是3? 霍尔有6种状态,但是当前只有下降沿触发,这样一来只有3种状态(5,3,6)了。

CKTIM/(captured value * prescaler value) /(3* SAMPLING_FREQ) 换算到每个采样频率对应多少个2π电角度

CKTIM * 2^16/(captured value * prescaler value) /(3* SAMPLING_FREQ) 将2π电角度对应为65536,此时得到的即每采样周期对应的电角度(2π对应为65536)

你可能感兴趣的:(stm32)