FOC 电流采样方案对比(单电阻/双电阻/三电阻)
如果本文帮到了你,帮忙点个赞;
如果本文帮到了你,帮忙点个赞;
如果本文帮到了你,帮忙点个赞;
创作不易 谢谢支持
文章目录
1 电流采样的作用
在FOC算法中,电流采样在反馈环节是相当重要的一部分,无论是有感FOC,还是无感FOC,相电流是交流三相同步电机在进行坐标变换的关键,最终通过SVPWM实现电机转子磁场和定子磁场的同步转动,通常这里有三种方案,单电阻采样,双电阻采样,三电阻采样,关系到整体系统的成本,算法的复杂程度和最终运行的效果,这里需要更加项目的具体需求进行选择。本文参考ST的单电阻和三电阻采样以及TI的双电阻采样,还有microchip的资料,结合实际中可能需要注意的地方进行总结分析。
几种电流采样方案的对比;
| 电流采样 | 成本 | 算法 |
|---|---|---|
| 单电阻 | 低 | 复杂 |
| 双电阻 | 适中 | 适中 |
| 三电阻 | 高 | 简单 |
2 硬件架构
硬件上的设计通常是采集三相电流,通过运算放大器加偏置电压,这样可以就可以采集正负电流,最终在MCU中处理的时候减去偏置电压就行,以Infineon XC167CI SK Board单电阻的方案为例子,具体电路拓扑图如下;

下面是TI C2000 的方案

AP1608410 原文链接
运算放大器

3 采样关键
采样的关键是需要在三相逆变器高端关闭,低端打开的情况下进行采样,这是整体的采样点。因此,采样会存在窗口时间,因为ADC转换完成需要一定数量级的时间,也就是说,在ADC转换完成之前,桥低端是不能关闭的,在这里,双电阻和单电阻采样需要考虑窗口时间的限制,而三电阻采样则不存在窗口时间(PWM占空比接近100%),可以根据SVPWM当前所在象限,进行分类,只需要采集其中不受窗口时间限制的两相电流,然后根据 Ia+Ib+Ic=0I_{a}+I_{b}+I_{c} = 0Ia+Ib+Ic=0,进行电流的重构。
4 采样方案
电流采样比较关键的地方主要是硬件的设计和采样点的设置,这里在后面会涉及到通过相应的触发信号去通知ADC进行电流采样,最后进行电流重构。
5 三电阻采样
TI的三电阻采样

5.1 三电阻采样点
正如前面所提到的三电阻采样可以避免窗口时间,如下图所示;在不同扇区需要采样的相电流,可以看到,共同点是避免去采样PWM占空比接近100%的那一相电流。

可以参考一下ST的电机库的做法,通过TIMER_CH4作为ADC采样的触发信号,而采样则可以通过修改TIM_CCR4寄存器去改变采样点,相当灵活的做法;

5.2 双电阻采样
双电阻采样无法避免窗口时间,所以需要限制最终PWM的占空比,为ADC转换预留足够的时间;

5.3 双电阻采样点

5.4 单电阻采样
单电阻采样需要在一个PWM周期内进行两次采样,下面需要在SVPWM六个扇区进行相电流的分类,这里可以对SVPWM的原理进行分析,从而了解如何对电流进行重构;单电阻的电路结构如下图所示;

为了便于理解整个采样的过程,为了表示逆变器的开关管的状态,
Sa表示A相的上下管,同理Sb表示B相的上下管;
这里规定:
Sa = 1表示上管导通,下管断开;
Sa = 0表示下管导通,上管断开;
Sb和Sc以此类推;
5.4.1 Sa Sb Sc:100

5.4.2 Sa Sb Sc:110

5.4.3 SVPWM的开关状态
| 开关状态 | AH | BH | CH | 电流 |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 1 | 1 | 0 | 0 | IAI_{A}IA |
| 2 | 1 | 1 | 0 | −IC-I_{C}−IC |
| 3 | 0 | 1 | 0 | IBI_{B}IB |
| 4 | 0 | 1 | 1 | −IA-I_{A}−IA |
| 5 | 0 | 0 | 1 | ICI_{C}IC |
| 6 | 1 | 0 | 1 | −IB-I_{B}−IB |
| 7 | 1 | 1 | 1 | 0 |
因此,单电阻采样,需要在一个PWM周期内进行两次采样;具体如下图所示;

图中的SAL,SBL,SCL分别对应整流桥的下管,因此在一个周期内分别进行了Sample 1和Sample 2这两次采样,对照上表可以推出;
- Sample 1:采集了开关管状态为
SAL SBL SCL:101==>SAH SBH SCH:010,此时采样电流为 IBI_{B}IB; - Sample 2:采集了开关管状态为
SAL SBL SCL:100==>SAH SBH SCH:011,此时采样电流为 −IA-I_{A}−IA;
原理搞清楚之后,下面要注意的地方还有两点采样点的确认和窗口时间的限制;
5.4.4 ST方案

6 总结
本文介绍和对比了三种电流采样方案,简单给出了需要注意的地方,由于本人能力有限,文中难免出现错误和纰漏,请大佬不吝赐教。
7 附录
microchip 资料汇总
TI 1-, 2-, and 3-Shunt FOC Inverter Reference Design
FOC 电流采样方案对比(单电阻/双电阻/三电阻)的更多相关文章
- FOC 电流采样为什么不准?你忽略了这个细节
文章目录 1 引言 2 延迟类型及典型时间 3 延迟源详细分析 3.1PWM死区时间插入 3.2 光耦延迟和预驱动器延迟 3.3晶体管开关延迟 3.4其他延迟 4 结语 在电机驱动的FOC控制开发过程 ...
- python中的单引号,双引号,三引号
转载自: http://blog.csdn.net/wanghai__/article/details/6285310 先说1双引号与3个双引号的区别,双引号所表示的字符串通常要写成一行 如: s1 ...
- FOC中的电流采样
电流采样是FOC的基础,具体有电流传感器采样.电阻采样,电阻采样以其简单低成本的应用广泛使用. 电阻法采样有单电阻采样.双电阻采样.三电阻采样. 一. 单电阻采样 单电阻采用分时采样,在一个PWM周期 ...
- [硬件项目] 2、汽车倒车雷达设计——基于专用倒车雷达芯片GM3101的设计方案与采用CX20106A红外线检测芯片方案对比
前言 尽管每辆汽车都有后视镜,但不可避免地都存在一个后视镜的盲区,倒车雷达则可一定程度帮助驾驶员扫除视野死角和视线模糊的缺陷,提高驾驶安全性.上一节已经分析清倒车雷达的语音模块(上一节),本节将深入分 ...
- 三维重建:深度相机方案对比-KinectFusion的基本原理(尺度)
算法原理请参考此文: kinect fusion 3D重建基本算法 http://log.csdn.net/xiaohu50/article/details/51592503 三维重建为三维空间实 ...
- 烂泥:nagios监控单网卡双IP
本文由秀依林枫提供友情赞助,首发于烂泥行天下. 公司的业务有几台服务器存放在IDC机房中,说是双线路.但是我看到网卡的配置是单网卡双IP的形式.如下: 而公司这边的线路是联通的IP,如下: nagio ...
- hive 压缩全解读(hive表存储格式以及外部表直接加载压缩格式数据);HADOOP存储数据压缩方案对比(LZO,gz,ORC)
数据做压缩和解压缩会增加CPU的开销,但可以最大程度的减少文件所需的磁盘空间和网络I/O的开销,所以最好对那些I/O密集型的作业使用数据压缩,cpu密集型,使用压缩反而会降低性能. 而hive中间结果 ...
- Word中一条删除不掉的单或双横线的解决办法
Word中一条删除不掉的单或双横线 有时你或许会遇到这样一种情况:在word中,有一条单或双横线怎么都删除不了,并且具有这样的特点: 在上面输入文字,横线会自动下调一行,如果文章过页,每页的尾部会有一 ...
- 数据结构与算法之PHP实现链表类(单链表/双链表/循环链表)
链表是由一组节点组成的集合.每个节点都使用一个对象的引用指向它的后继.指向另一个节点的引用叫做链表. 链表分为单链表.双链表.循环链表. 一.单链表 插入:链表中插入一个节点的效率很高.向链表中插 ...
随机推荐
- CSS 中的伪类和伪元素
伪类(Pseudo classes) 由于状态的变化是非静态的,所以元素达到一个特定状态时,它可能得到一个伪类的样式:当状态改变时,它又会失去这个样式.由此可以看出,它的功能和 class 有些类似, ...
- [RCTF2015]EasySQL
[RCTF2015]EasySQL EasySQL github 打开靶机,是如下界面 到注册页面,试了一下,username 和 email 处有过滤,直接 fuzz 一下哪些字符被禁了 注册成功之 ...
- xshell下使用vim的编辑一个文件Ctrl+S和Ctrl+Q
xshell下使用vim的编辑一个文件,保存的时候习惯性的按了Ctrl+S 结构悲剧了.屏幕锁死了.按其他键都没有反应,exc也不行. 经过问度娘才知道. 原来Ctrl+S在Linux里,是锁定屏幕的 ...
- [JS] 自己弄得个倒计时
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Jmeter系列(3)- Jmeter安装目录介绍
如果你想从头学习Jmeter,可以看看这个系列的文章哦 https://www.cnblogs.com/poloyy/category/1746599.html Jmeter安装目录说明 bin:包含 ...
- Java 自动拆箱 装箱 包装类的缓存问题--结合源码分析
都0202 了 java 1.8 已经是主流 自动装箱 .拆箱已经很普遍使用了,那么有时候是不是会遇到坑呢? 我们先来看一段代码: public class TestWraperClass { pub ...
- C语言字符数组超细讲解
看到标题,有不少朋友会想:字符数组不也是数组吗?为什么要单独拿出来讲哩?莫非它是朵奇葩? 哈哈,确实,一起来认识一下这朵数组界的奇葩吧! 一.字符数组的定义.引用.初始化 大家好!我是字符数组,看我的 ...
- 2019-2020-1 20199303《Linux内核原理与分析》第九周作业
进程的切换和一般执行过程 知识总结 操作系统原理中介绍了大量进程调度算法,这些算法从实现的角度看仅仅是从运行队列中选择一个新进程,选择的过程中运用了不同的策略而已. 对于理解操作系统的工作机制,反而是 ...
- QT 获取可执行程序的路径
获取到生成.exe目录 QCoreApplication::applicationDirPath(); 获取当前工程目录 QDir::currentPath()
- 理解分布式一致性:Paxos协议之Basic Paxos
理解分布式一致性:Paxos协议之Basic Paxos 角色 Proposal Number & Agreed Value Basic Paxos Basic Paxos without f ...