# 电机调试代码 **Repository Path**: tuhol/motor_Sensorless ## Basic Information - **Project Name**: 电机调试代码 - **Description**: 电机调试时候的代码,有一定不完善地方 - **Primary Language**: C - **License**: LGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 1 - **Created**: 2022-08-05 - **Last Updated**: 2023-11-03 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ### 这是一个无刷电机驱动的代码部分 **前置条件** 1. 无感六步换向驱动需要检测的是换向的零电动势点,该电理论上在换向的时候不导通并并且没有电流 2.因此我们只需要在第三相断开的时候检测过零点就行 **实现部分** 1. 实际上,在换向点附近不仅有电流,还会有因为相位不平衡导致的过零点变换,因此代码里引入了过零点矫正,减去了电流并实时计算矫正后的电压 2.实际上,过零点会时常超出第三相断开的时序点,因此需要引入PID调节 3.实际上,超前和滞后所造成的后果是不同的,滞后换向时内部磁体会自动跟上,而超前时却会导致磁体换向超过180°而进入制动状态从而导致速度快速下降 4.而六步换向法却有强烈的电磁脉动,因此超前导致的制动效果更加明显 5.因此需要对电流作相位检测以及对误差进行线性化和扩大化处理 6.由于M0的算力问题,高速采样只能最快48KHZ,而处理则需要等到一个周期采样完成后才能计算,因此有比较大的延迟 7.因此采用两种方式切换,即初步加速阶段采用过零检测,高速阶段采用上升、下降电压平衡的算法从而控制闭环 8.采用这种方案的最高转速也只有400r/s,即24000rpm,过高的转速需要很高的电流用于抵消扭矩脉动,建议采用正弦叠加或者BLAV等分解方式修正这些误差 **特别标注** 1. 首先,由于中心对齐的采样方式电压在电容下降是线性的,并且采样的结果表明,三个采样虽然因为采样周期有延迟,但可以通过算法直接修正 2. 由于电流采样不快并采用了较好的采样比较器,因此没有差分出线但是结果还不错,基本采样值还不错 3. 但这种修正是不完善的,在条件允许(队友较好)的情况下建议按照推荐方式布线和采样(多ADC)