本帖最后由 AutochipsMCU 于 2020-1-16 17:34 编辑
BLDC控制资源使用情况 模块 | 功能 | ADC | 1.注入组采总线电流,在PWM中点进行采样 | CTU | 配置ADC采样时机 | ACMP0 | 无感BLDC才需要 1.反电动势过零点检测 | PWDT | 1.HALL信号检测 2.速度检测 | PWM2 | 输出6路PWM | Timer | 无感BLDC才需要 延迟换相 |
有感BLDC控制来张比较直观的动图。该图体现出了HALL信号,相电压,MOS管导通之间的关系。对方波的控制方式不太熟悉的可以多琢磨琢磨。
方波控制换相顺序:
无感BLDC控制无感BLDC控制和带HALL BLDC控制差别在于换相时间点的不同。无感BLDC可通过反电动势检测电路来确定转子位置,换相时机在不考虑延迟等因素影响的情况下,比HALL换相晚30电角度。 反电动势检测电路过零检测BLDC控制换相时机 电机类型 | 六步方波控制换相时机 | 有传感(带HALL) | HALL信号变化时直接换相 | 无传感(BEMF) | 反电动势过零点后延迟30电度 |
无感BLDC启动流程- 脉冲注入识别初始位置
- 强吸转子初始位置预定位
- 开环加速启动
- 闭环控制
启动流程图脉冲注入法识别初始位置基本原理:根据定子铁芯非线性饱和效应的特征,向定子绕组施加一系列等宽的短时检测电压矢量,依据母线响应电流的大小来辨别转子初始位置区间。 硬件条件: 1.主拓扑为三相全桥 2.需采样母线电流 3.电机为永磁电机(BLDC或PMSM) 适用场景:启动时,转子处于静止状态。
转子预定位如果脉冲注入法不成功,再来一个备选机制(这一步也可以省掉,一般用不到),通过强吸的方式把转子吸到指定位置,开环启动以该位置开始启动。 开环加速启动升压升频启动 不断的改变PWM的占空比以及每一相的导通时间,使电机慢慢的从静止状态加速转起来
闭环控制 PID控制器 | 输入值 | 反馈值 | 输出 | 速度环 | 目标速度 | 当前转速 | 目标电流 | 电流环 | 目标电流 | 实际电流 | 占空比变化量 |
增量式PID实现控制对象标幺控制电机运行时,控制目标可能是电流、转速、位置等参数,需提前将所需控制量标幺到某个Q格式。 控制对象为转速时: 假设最大电机转速为3000RPM,设置Q15格式。 程序中电流数值为2^15=32768时,等于实际控制转速为3000RPM(对应50RPS)。 反馈转速需做相应处理: PID反馈转速 = 计算转速(RPM)* 32768(Q15)/ 3000RPM 控制对象为电流时: 假设最大电机电流为10A,设置Q15格式。 程序中电流数值为2^15=32768时,等于实际控制电流10A。 由于反馈电流通过采样电阻,通过OP放大之后由MCU进行ADC采样,反馈电流需做相应处理: PID反馈电流 = ADC值* 32768(Q15)*5(ADC电压范围)/ R(shunt 电阻大小) /opGainVal/ adcRange /10A
平台移植注意事项
1.PWM极性&PWM模式是否匹配? 先不接或不焊MOS管,通过示波器测量PWM波形,确保配置不会导致上下桥臂同时导通。 2.PWM通道是否与UVW线序对应上? 不同的硬件平台可能UVW相对应的PWM通道有改动。 3.PWM死区是否足够? 有些预驱芯片自带死区,MCU可不配置死区。有的预驱不带死区,MCU必须配置死区,死区时间与MOS管栅极电容有关,一般软件配为2us。可通过示波器测量上下桥臂MOS栅极控制信号波形,来确认死区时间是否OK。 4.PWM FALUT是否有效? 配置PWM时需根据硬件配置好PWM FALUT,并确保出现大电流时,FALUT能生效。 5.ADC采样时机是否正确? ADC采样在PWM导通的中点进行采样。采样时机是通过CTU进行配置。需注意PWM_TRIGGER_DELAY_CNT值不能超过255,该值与PWM频率相关。 6.电流采样放大倍数是否与硬件匹配? 电流放大倍数对应代码fan_type.h中CURRENT_GAIN宏。 7.ACMP配置是否与硬件一致? pollingChangeSeq与HALL ABC输入的ADC通道有关。如果是1,2,3通道,该值为:0x001110 =14。 8.PWDT滤波器配置。 滤波器设置时需考虑是否会影响达到最大转速。 9.转速计算方式 下图128分频与PWDT配置分频有关,配置调整时,此处需要对应调整。 10.30电度延时换相
|