在电机驱动的FOC控制开发过程中,您是否遇到过电机噪声过大、效率偏低甚至无法运转的情况?这一切有可能源于相电流的采样异常,从而导致FOC算法中无法重建正确的三相电流!小编这里给大家分析影响电流采样的一个因素——延迟源!

1 引言

在双电阻采样的电机驱动FOC控制中,采样点设置为驱动桥下管打开的中间时刻。注意,这里是驱动桥下管打开的中间时刻,而不是MCU输出的PWM周期中间时刻。因为从MCU计算生成PWM到电流信号送入MCU的ADC模块,这个典型的驱动拓扑中,存在多达七个延迟源!

2 延迟类型及典型时间

下面表格详细指明了电机驱动系统拓扑中存在的七个延迟源及其典型的时间。这些延迟将叠加在一起,产生的影响是:实际输出PWM波形滞后于MCU计算预期输出的PWM波形,按照这个计算,相电流采样点需要滞后于MCU计算预期输出的PWM波形的中间时刻。

3 延迟源详细分析

3.1PWM死区时间插入

在三相无刷电机驱动系统中,需要三个桥臂来控制相线电流流向,在每个桥臂上有两个功率器件,如MOSFET、IGBT。这一对功率器件不能同时导通,否则就会出现短路的情况。这里以MOSFET作为功率器件来说明。在控制中,必须插入死区时间以确保上部和下部MOSFET不会同时处于打开状态。死区时间的典型值可能在100ns到2μs之间,具体取决于系统中的各种因素,如MOSFET驱动电压、MOSFET型号。

在所需的PWM波形插入死区时间之后,我们得到的是PWM中点和上升沿都向右移动。因此,在FOC控制算法计算出适当的PWM之后,我们立即开始看到第一个延迟,即死区时间。

3.2 光耦延迟和预驱动器延迟

在MCU控制FTM模块输出PWM波形到MOSFET栅极受控制的那一刻之间,各种光电耦合器和预驱动器的信号响应导致了额外的延迟。

与MCU引脚输出的波形相比,预驱动器的输出延迟了一段时间(Delay1)。

3.3晶体管开关延迟

经过预驱动器后,PWM波形到达MOSFET晶体管,但由于其固有特性,所有晶体管都需要一定的时间导通和截止。根据晶体管类别及导通/截止之间切换所需要的电压电平,此延迟时间有所不同。

Delay2为相线电压理论切换点(CMP2)与实际切换点的时刻之间的整个延迟。

最后,栅极电压到达了能令晶体管导通的程度,电流通过相线和采样电阻,在采样电阻两端产生电压差,红色波形为理想状态下的相电流波形。此时与MCU计算生成的PWM周期中点存在延迟总时间如图中“相电流中点移位”。

3.4其他延迟

如下图所示,影响电流采样的最后延迟链是由放大器转换速率、MCU引脚上的低通滤波器和ADC转换速率构成的。图中用红色圆圈标记的时刻为正确的电流采样时刻,可以看出,与FTM输出的PWM中点相比,相电流采样点大大延迟。

4 结语

所有的电子电路中,都会存在信号的延迟问题。信号延迟不可能被完全消除,但可通过选用低延迟的器件以减小影响。

在电机驱动中,除了选用合适的器件外,还需要对信号延迟进行软件补偿。文中提及的这些延迟源的精确延迟时间,我们可以通过示波器和计算得出,在软件上补偿这些延迟,才可得出正确的电流采样时刻。这样在正确的时刻采集到的数据才能作为FOC控制中重建电机三相电流的数据来源。

原文标题:FOC电流采样为什么不准?你忽略了这个细节

文章出处:【微信号:Zlgmcu7890,微信公众号:周立功单片机】

FOC 电流采样为什么不准?你忽略了这个细节的更多相关文章

  1. FOC 电流采样方案对比(单电阻/双电阻/三电阻)

    如果本文帮到了你,帮忙点个赞: 如果本文帮到了你,帮忙点个赞: 如果本文帮到了你,帮忙点个赞: 创作不易 谢谢支持 文章目录 1 电流采样的作用 2 硬件架构 3 采样关键 4 采样方案 5 三电阻采 ...

  2. FOC中的电流采样

    电流采样是FOC的基础,具体有电流传感器采样.电阻采样,电阻采样以其简单低成本的应用广泛使用. 电阻法采样有单电阻采样.双电阻采样.三电阻采样. 一. 单电阻采样 单电阻采用分时采样,在一个PWM周期 ...

  3. 学习Java,容易被你忽略的小细节(3)

    在<学习Java,容易被你忽略的小细节(2)>中我们已经深入讨论过String类中equals()方法的使用,在本文中我们将进一步讨论equals()方法在其他境况下的使用方法. 首先,我 ...

  4. 学习Java,容易被你忽略的小细节(2)

    昨天心情真的太糟糕了,写完<学习Java,值得注意你注意的问题(1)>之后,迎来些许的支持以后就是一片片的谴责.我的主页上涌现出许许多多Java方面的牛人,谴责我水平太低,写的问题太初级. ...

  5. 学习Java,值得你留意的问题(1)更名为《学习Java,容易被你忽略的小细节(1)》

    记得大二快要结束的时候,有个女孩子突然问我“你会Java吗,帮我做大作业好吗?” 实话说,那个女孩真的很漂亮,我当时也非常想帮她.但是我从来没有接触过Java,让我在短短的几天内完成Java程序设计课 ...

  6. 被忽略的js细节

    今天在写一个程序,出了一点小bug,找了许久许久,终于把问题给揪了出来,真相大白那一刻感觉好蛋疼--深刻体会到了语言之间的差异. <script type="text/javascri ...

  7. 新手在sae部署程序容易忽略的一个细节

    从来没用过这类云空间服务,尝了下鲜试用一下sae,但是部署的时候发现问题了,各种404..各种无奈啊..虽然百度无数篇介绍,但是都千篇一律没什么启发.. 但是巧在我部署的应用有个欢迎页面,点击链接的时 ...

  8. android 获取wifi列表,如果你忽略了这个细节,可能你的软件会崩溃

    一:业务描述 最近公司有一个小需求,用户点击wifi扫描按钮(注意:是用户主动点击wifi扫描按钮),app去扫描附近的wifi,显示在listView中,仅此而已,app都不用去连接某个wifi,看 ...

  9. 纯小白创建第一个Node程序失败-容易忽略的一个细节

    一直觉得自己基础还很差,所以自觉不敢去碰node.js,但又对其心怀好奇.恰巧最近有一点空闲时间,忍不住去试了一下水   这不,在创建第一个node程序时就吃了闭门羹,总是提示我没有定义,如下图, 这 ...

随机推荐

  1. [译]谈谈SpringBoot 事件机制

    要"监听"事件,我们总是可以将"监听器"作为事件源中的另一个方法写入事件,但这将使事件源与监听器的逻辑紧密耦合. 对于实际事件,我们比直接方法调用更灵活.我们可 ...

  2. Xshell 中文提示乱码

    1.Alt+P 打开配置对话框,点击终端->编码,选择Unicode(utf-8)编码

  3. 教你如何入手用python实现简单爬虫微信公众号并下载视频

    主要功能 如何简单爬虫微信公众号 获取信息:标题.摘要.封面.文章地址 自动批量下载公众号内的视频 一.获取公众号信息:标题.摘要.封面.文章URL 操作步骤: 1.先自己申请一个公众号 2.登录自己 ...

  4. phpMyAdmin后台文件包含溯源

    先上大佬解释的漏洞原理链接 https://mp.weixin.qq.com/s?__biz=MzIzMTc1MjExOQ==&mid=2247485036&idx=1&sn= ...

  5. Laravel - 上手实现 - 邮件发送

    Laravel 自带 SwiftMailer 库,集成了多种邮件API,可以很方便的实现邮件的发送. 我们使用到的是SMTP(Simple Message Transfer Protocol)简单邮件 ...

  6. ADO.NET(一)

    最近在公司有用到了ADO.NET技术,由浅入深的复习一下. 如图所示,水源就像一个水库,进水龙头就像Connection,同理,抽水机:Command,输水管:DataAdapter 或 DataRe ...

  7. XSS语义分析的阶段性总结(二)

    本文首发于“合天智汇”微信公众号,作者:Kale 前言 上次分享了javascript语义分析,并且简单介绍了新型xss扫描器的一些想法,如何在不进行大量fuzz的情况下又能准确的检测出xss漏洞,这 ...

  8. Certified Scrum Master CSM 中文资料大全

    课程概览 本课程由中国唯一一位获CST认证培训师及LeSS-Friendly Scrum Trainer双重认证讲师,丰富一线实战经验的Scrum教练讲授:姜信宝 BoB Jiang. 敏捷变革中心是 ...

  9. tcp的重传与超时

    TCP协议是一种面向连接的可靠的传输层协议,它保证了数据的可靠传输,对于一些出错,超时丢包等问题TCP设计的超时与重传机制. 其基本原理:在发送一个数据之后,就开启一个定时器,若是在这个时间内没有收到 ...

  10. Inno Setup 升级时不再询问用户安装路径

    UsePreviousAppDir Description: When this directive is yes, the default, at startup Setup will look i ...