1.首先了解电机每个管脚和相关的初始化设置:
2.通过按键部分启动电机,给电机信号
3.在按键按了fun以后,执行state=INIT程序
其中,主要对霍尔进行初始化,测算当时的电角度。然后通过ADC采集,进行三相电流的采集,另外开启定时器
(1)三相电流采集
下面为ADC设置:
定时器1得到更新中断,执行state=start
然后在定时器更新以后,执行ADC,通过设置以后,执行run,进行电流采样:
下面函数执行对电流三相转换到旋转坐标系下的电流和电压,通过PID,进行调整:
接着执行主函数,进行SVPWM计算:
通过计算得到现在所处的扇区是哪个:
下面就进行每个管子导通时间的确定:
通过以上步骤,使电机通过定时器触发电流采样,经过坐标系变换,和PID计算,然后计算出当前所在扇区以及应该导通的时间,从而控制电机进行旋转。其他细节,将在之后的文章进行讲述。 |