
FOC_功率板_copy_xkb
简介
foc驱动器功率板
简介:foc驱动器功率板开源协议
:Public Domain
描述
有感FOC无刷驱动设计/学习记录
成品展示:
功能需求:
- 能够实现单路电机foc控制
- 能够适应多种位置传感器
- 能接收上位机指令实现被动控制
- 能独立进行多模式主动控制
- 有屏幕显示电机运行的一些状态参数
硬件设计:
主控板和功率板分离设计,便于更换测试,以及可以进行一些拓展使用。主控板和功率板公共信号引脚通过排针/排母座连接,两个板子通过铜柱组装加固。
主控板:
MCU使用stm32F103CBT6。和功率板连接接口包含三路互补PWM信号IO,4路adc通道IO(两相电流,母线电流,电源电压),GND/5V引脚。外部连接接口包括屏幕spi通信口,磁编码器spi接口/IIC接口,ABZ编码器接口,复位按键,功能按键,下载调试接口,上位机通信接口。携带LDO将驱动板5V供电降压成3.3V,且5V用以给传感器供电。
- mcu核心电路:晶振,boot,复位按键
- 公共接口排针:三路互补pwmIO,4路adc采样IO,GND/5V/3.3V
- spi磁编码器接口
- TFT屏幕接口
- 软件IIC编码器接口,增加一个IO,使其可以复用成ABZ编码器接口
- 功能按键
- 下载调试接口:swd下载,uart1调试
- 一路uart上位机通信接口
- 一个led系统指示灯,一个电源指示灯
功率板:
三相逆变器,六路预驱,电源电压分压供主板采集,ab相电流采集(加偏置电压),母线电流采集,DC-DC降压至5V供给主控板。外部接口除去供电和输出外,还需要led指示灯和电源开关。
- 三个H半桥
- pwm预驱
- 电源电压分压供adc采集
- 母线电流运放,ab相电流运放加偏置电压
- DC-DC降压至5V
- ldo降压5V->3.3V
- 公共接口排母座
- 电源led指示灯,母线电流led指示灯(指示三相逆变器是否有输出)
- 电源开关
三相逆变器:
使用的是集成三路半桥驱动的预驱FD6288,采样电阻放在下半桥,采用低端采样方案。mos能承受40V电压,120A电流,但是初代板pcb布局布线没法承受太大电流,不适合测试大功率电机(因为主驱分离设计,只需要保证接口一致即可,考虑后期重新设计一套pcb)。
电流采样运放:
使用的是集成4个运放的芯片,减小pcb体积。一路运放用作电压跟随器,生成电流采样运放所需的偏置电压Vref。两路运放采集AB相电流,因为有偏置电压Vref,所以能够采集正负电流。最后一路运放采集母线电流。
编码器:
编码器使用的as5600磁编码器器芯片,IIC和pwm接口都引出来了,最后程序使用的是IIC通信方式,个人使用感觉不咋的,会有偶尔的角度波动。
硬件存在的问题:
- B相电路采样运放输出(不论是否驱动电机)比理论值高出一个数值(0.01xN伏),经过电流计算后,相当于比实际电流值高出1A左右,目前还不知道原因(怀疑是pcb设计缺陷吧),暂时依靠程序设计来消除这个偏差。且运放干扰较大,无法满足电流环设计要求。
- 驱动板上的母线电流指示灯并没有什么卵用,实际小电流驱动时电压不够,根本不会亮(原本设想的是随着电流大小变化led亮度跟随变化 (⊙x⊙;)
- 因为主控板会装在驱动板上面,所以驱动板上设计的电源开关会被遮挡,使得开关电源很不方便,应该设计成侧边滑动开关的 X﹏X
软件设计:
参考了许多大佬的开源案例以及simplefoc的方案,用cubemx配置的外设驱动,最后结合自己做的板子手敲了一套代码,由于本人较为菜鸡的水平,代码整体看起来有些杂乱,也存在潜在的不合理设计。简而言之,水平有待提高。
由于硬件电流采样的缺陷,最后也没能调试成功电流环,目前只实现了通过控制电压的速度位置闭环。
总结:
初期的foc学习阶段告一段落,很感谢网上的诸位大佬的博客教程以及个大技术交流群的大佬们的讲解,不然一个人闷头学还真不好搞。现在一套做下来已经对foc有个初步认识了,后面再去深入学习一些foc理论知识,再重新设计一套软硬件,更进一步提高foc设计能力。
参考资料:
设计图
BOM
ID | Name | Designator | Footprint | Quantity |
---|---|---|---|---|
1 | 10uF | C1,C6 | C0603 | 2 |
2 | 10u | C2,C3,C4 | C0603 | 3 |
3 | 0.1u | C5 | C0603 | 1 |
4 | 1nf | C7,C8,C19,C22 | C0603 | 4 |
5 | 2.2uF | C9 | C0603 | 1 |

评论