文章目录
【全文大纲】 : https://blog.csdn.net/Engineer_LU/article/details/135149485
1 . 前言
框架让底层硬件,应用逻辑,算法结合在一起,把杂乱的事件归纳好,以下笔者对电机框架的一个总结
2 . 状态机
电机常用电流环与转速环,电流环放在中断里处理,转速环频率不需要很高,一般1-2ms处理一次,一般放在后台或定时中断,按照这个场景推理,希望得到一个处理及时的事件循环,和一个一般事务处理的事件循环即可,因此设定两个状态机,分别如下
- 1 . 中断式事件循环,处理电流环以及及时更新的事件
- 2 . 一般式事件循环,处理转速环以及异常更新的事件
3 . 程序流程
- 1 . 芯片外设初始化 :包含时钟,GPIO,基准电压VREF,ADC,PWM,CMP,DAC,运放,PCAP输入捕获(检索霍尔更新事件),QEP(检索编码器更新事件),定时器(处理一般事件循环),串口,硬件加速(电机专用芯片一般有硬件加速,例如乘法,硬件PI,硬件SVPWM等),NVIC中断
- 2 . 软件初始化 :异常结构体初始,输入结构体初始,速度环限制与斜率初始
- 3 . 中断式事件循环,获取ADC采样值
- 4 . 中断式事件循环,检索异常,异常序号越小优先级越高,越需要及时处理
异常序号 | 异常现象 | 异常原因 |
---|---|---|
1 | 硬件过流 | 电机堵转,电机短路,MOS击穿 |
2 | 软件过流 | 电机堵转,电机短路,MOS击穿 |
3 | 电机堵转 | 负载过大,输出力矩不足,电流环异常 |
4 | 电机缺相 | 电机相线接触不良,定子过流相线断路 |
5 | 输入超压 | 电源模块异常,电机反电动势过高 |
6 | 输入欠压 | 电源模块异常,电源模块带载能力不足 |
7 | 偏置错误 | 运放模块异常,ADC模块异常 |
8 | 电机高温 | 输出转矩效率低,电机堵转,散热异常 |
9 | 电机低温 | 环境温度过低 |
10 | 驱动板高温 | 环境温度过高,元器件工作异常 |
11 | 驱动板低温 | 环境温度过低 |
12 | 电机位置异常 | 传感器异常,观测器异常 |
13 | 启动失败 | 综合以上异常 |
- 5 . 中断式事件循环,电机电流环处理
- 6 . 一般式事件循环,系统控制处理
4 . 电机状态简述
- 1 . 空闲状态,电机处于没有任何驱动的状态
- 2 . 初始状态,电机的参数处于初始状态
- 3 . 检测状态,电机的电流偏置值检测状态
- 4 . 充电状态,电机的预驱上桥自举电容充电状态
- 5 . 定位状态,电机的初始位置需要进行定位
- 6 . 开环状态,电机的转速由开环带动转起来
- 7 . 运行状态,电机的转速起来后可以切入闭环运行状态
- 8 . 错误状态,电机的电流,角度,转速等出现异常进入异常状态
5 . 电机状态详述
一,电机空闲状态
- 1 . 速度平均初始化
- 2 . 电流环PI,速度环PI复位
- 3 . 电机转速复位
- 4 . 跳转初始状态
- 5 . 异常检测恢复
- 6 . 检测到异常进入异常状态
二,电机初始状态
- 1 . 检测到异常进入异常状态
- 2 . 判断电机是否需要运行,否则回到空闲状态
- 3 . 电流环,速度环PI初始化
- 4 . FOC结构体初始化
- 5 . 进入充电状态
三,电机充电状态
- 1 . 检测到异常进入异常状态
- 2 . 判断电机是否需要运行,否则回到空闲状态
- 3 . 打开互补PWM模式
- 4 . 占空比设四分之一
- 5 . 三路管子全部按占空比输出
- 6 . 充电50ms进入硬件检测状态
四,硬件检测状态
- 1 . 检测到异常进入异常状态
- 2 . 判断电机是否需要运行,否则回到空闲状态
- 3 . 获取电流偏置
- 4 . 偏置错误进入异常状态,否则根据需求进入定位,开环,运行状态
五,定位状态
- 1 . 检测到异常进入异常状态
- 2 . 判断电机是否需要运行,否则回到空闲状态
- 3 . 电机二次定位后进入开环状态
六,开环状态
- 1 . 检测到异常进入异常状态
- 2 . 判断电机是否需要运行,否则回到空闲状态
- 3 . 电机根据开环参数转到预设参数后进入运行状态
七,运行状态
- 1 . 检测到异常进入异常状态
- 2 . 判断电机是否需要运行,否则回到空闲状态
- 3 . 电机电流环处理
- 4 . 电机速度环处理
- 5 . 电机根据角度,双环实时更新运行
八,错误状态
- 1 . 停止PWM输出
- 2 . 进入空闲状态
6 . 小结
大致的程序流程如上,框架往下填可以细分更多的细节,在每个状态处理完进入下一个状态,根据头文件的参数实现电调兼容性,方便电机调试工作
技术交流QQ群 : 745662457
群内专注 - 问题答疑,项目外包,技术研究