小众却真香,电机矢量控制电流采样方案的抉择

2024-05-18 18:18

本文主要是介绍小众却真香,电机矢量控制电流采样方案的抉择,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

前面的话

最近做的电机控制项目,之前纠结电流采样的方案,在这里简单总结了一下;

晚风轻轻飘荡,让欢畅更欢畅,幻想更幻想,就像你还在身旁

文/陈婧霏

推荐一首歌晚风,一开始一听到这首歌居然有种王菲的感觉,非常好听;夜已深,继续水文

目录

  • 1 电流采样的作用

  • 2 硬件架构

  • 3 采样关键

  • 4 采样方案

  • 5 三电阻采样

    • 5.1 三电阻采样点

    • 5.2 双电阻采样

    • 5.3 双电阻采样点

    • 5.4 单电阻采样

  • 6 总结

  • 7 附录

1 电流采样的作用

在FOC算法中,电流采样在反馈环节是相当重要的一部分,无论是有感FOC,还是无感FOC,相电流是交流三相同步电机在进行坐标变换的关键,最终通过SVPWM实现电机转子磁场和定子磁场的同步转动,通常这里有三种方案,单电阻采样双电阻采样三电阻采样,关系到整体系统的成本,算法的复杂程度和最终运行的效果,这里需要更加项目的具体需求进行选择。
本文参考ST的单电阻和三电阻采样以及TI的双电阻采样,还有microchip的资料,结合实际中可能需要注意的地方进行总结分析。

几种电流采样方案的对比;

电流采样成本算法
单电阻复杂
双电阻适中适中
三电阻简单

2 硬件架构

硬件上的设计通常是采集三相电流,通过运算放大器加偏置电压,这样可以就可以采集正负电流,最终在MCU中处理的时候减去偏置电压就行,以Infineon XC167CI SK Board单电阻的方案为例子,具体电路拓扑图如下;下面是TI C2000 的方案

AP1608410 原文链接运算放大器

3 采样关键

采样的关键是需要在三相逆变器高端关闭,低端打开的情况下进行采样,这是整体的采样点。因此,采样会存在窗口时间,因为ADC转换完成需要一定数量级的时间,也就是说,在ADC转换完成之前,桥低端是不能关闭的,在这里,双电阻和单电阻采样需要考虑窗口时间的限制,而三电阻采样则不存在窗口时间(PWM占空比接近100%),可以根据SVPWM当前所在象限,进行分类,只需要采集其中不受窗口时间限制的两相电流,然后根据 ,进行电流的重构。

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表示下管导通,上管断开;

SbSc以此类推;

5.4.1 Sa Sb Sc:100
5.4.2 Sa Sb Sc:110

5.4.3 SVPWM的开关状态

开关状态AHBHCH电流
00000
1100IA
2110-IC
3010IB
4011-IA
5001IC
6101-IB
71110

因此,单电阻采样,需要在一个PWM周期内进行两次采样;具体如下图所示;图中的SAL,SBL,SCL分别对应整流桥的下管,因此在一个周期内分别进行了Sample 1Sample 2这两次采样,对照上表可以推出;

  • Sample 1:采集了开关管状态为SAL SBL SCL:101==>SAH SBH SCH:010,此时采样电流为

  • Sample 2:采集了开关管状态为SAL SBL SCL:100==>SAH SBH SCH:011,此时采样电流为

原理搞清楚之后,下面要注意的地方还有两点采样点的确认和窗口时间的限制;

5.4.4 ST方案

6 总结

本文介绍和对比了三种电流采样方案,简单给出了需要注意的地方,由于本人能力有限,文中难免出现错误和纰漏,请大佬不吝赐教。

7 附录

microchip 资料汇总TI 1-, 2-, and 3-Shunt FOC Inverter Reference Design

PID微分器与滤波器的爱恨情仇

三面大疆惨败,因为不懂PID的积分抗饱和

 简易PID算法的快速扫盲 

 一文教你搞懂C语言的Q格式

  现成轮子OSAL操作系统抽象层的移植

 一招教你单片机固件快速瘦身

基础知识 | hex文件格式详解

—— The End ——

长按识别二维码关注获取更多内容

这篇关于小众却真香,电机矢量控制电流采样方案的抉择的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/995643

相关文章

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Springboot3+将ID转为JSON字符串的详细配置方案

《Springboot3+将ID转为JSON字符串的详细配置方案》:本文主要介绍纯后端实现Long/BigIntegerID转为JSON字符串的详细配置方案,s基于SpringBoot3+和Spr... 目录1. 添加依赖2. 全局 Jackson 配置3. 精准控制(可选)4. OpenAPI (Spri

关于跨域无效的问题及解决(java后端方案)

《关于跨域无效的问题及解决(java后端方案)》:本文主要介绍关于跨域无效的问题及解决(java后端方案),具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录通用后端跨域方法1、@CrossOrigin 注解2、springboot2.0 实现WebMvcConfig

Python远程控制MySQL的完整指南

《Python远程控制MySQL的完整指南》MySQL是最流行的关系型数据库之一,Python通过多种方式可以与MySQL进行交互,下面小编就为大家详细介绍一下Python操作MySQL的常用方法和最... 目录1. 准备工作2. 连接mysql数据库使用mysql-connector使用PyMySQL3.

在Java中将XLS转换为XLSX的实现方案

《在Java中将XLS转换为XLSX的实现方案》在本文中,我们将探讨传统ExcelXLS格式与现代XLSX格式的结构差异,并为Java开发者提供转换方案,通过了解底层原理、性能优势及实用工具,您将掌握... 目录为什么升级XLS到XLSX值得投入?实际转换过程解析推荐技术方案对比Apache POI实现编程

如何搭建并配置HTTPD文件服务及访问权限控制

《如何搭建并配置HTTPD文件服务及访问权限控制》:本文主要介绍如何搭建并配置HTTPD文件服务及访问权限控制的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录一、安装HTTPD服务二、HTTPD服务目录结构三、配置修改四、服务启动五、基于用户访问权限控制六、

使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)

《使用Python和Matplotlib实现可视化字体轮廓(从路径数据到矢量图形)》字体设计和矢量图形处理是编程中一个有趣且实用的领域,通过Python的matplotlib库,我们可以轻松将字体轮廓... 目录背景知识字体轮廓的表示实现步骤1. 安装依赖库2. 准备数据3. 解析路径指令4. 绘制图形关键

Java实现本地缓存的常用方案介绍

《Java实现本地缓存的常用方案介绍》本地缓存的代表技术主要有HashMap,GuavaCache,Caffeine和Encahche,这篇文章主要来和大家聊聊java利用这些技术分别实现本地缓存的方... 目录本地缓存实现方式HashMapConcurrentHashMapGuava CacheCaffe

无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案

《无法启动此程序因为计算机丢失api-ms-win-core-path-l1-1-0.dll修复方案》:本文主要介绍了无法启动此程序,详细内容请阅读本文,希望能对你有所帮助... 在计算机使用过程中,我们经常会遇到一些错误提示,其中之一就是"api-ms-win-core-path-l1-1-0.dll丢失

利用Python实现可回滚方案的示例代码

《利用Python实现可回滚方案的示例代码》很多项目翻车不是因为不会做,而是走错了方向却没法回头,技术选型失败的风险我们都清楚,但真正能提前规划“回滚方案”的人不多,本文从实际项目出发,教你如何用Py... 目录描述题解答案(核心思路)题解代码分析第一步:抽象缓存接口第二步:实现两个版本第三步:根据 Fea