FOC - 电机程序框架


【全文大纲】 : 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
群内专注 - 问题答疑,项目外包,技术研究

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

极客 - L U

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值