ADC-过零检测详解

news/2025/10/15 0:33:15/文章来源:https://www.cnblogs.com/FBsharl/p/19142403

转载自:https://mbb.eet-china.com/tech/t1/177081.html

 

1、反电动势波形的起源

下图展示了内转子磁极的磁感应强度B的分布情况。定义磁感应强度方向向外为正

 

在0°的时候,处于正反方向交界处,磁感应强度为零;

然后开始线性增加,在A点时达到最大

然后一直保持恒定值不变,直到B点开始下降,到180°的时候下降到零。

然后开始负向增长,在C点处达到负值最大,然后保持恒定负值不变

直到D点强度开始减弱,到0°时又回到零。

注:A点到底在几度的位置,不同的电机不一样。如果A非常接近0°的位置,上升和下降直线就会非常陡峭,“梯形波”就变成了“方波”。

根据右手定则E=BLV公式,在匀速转动下,各绕组切割磁场中的磁感线产生的反电动势波形(和B的波形一致L和V都是定值)呈梯形波/方波(和磁感应强度波形类似)。

对于直流无刷电机的无感控制策略中,主要可以分为两类:(1)无感方波控制(2)无感FOC控制

先以无感方波的控制为例:

在无感方波的控制中,反电动势过零点检测的目的:得到换相信号

能够得到换相信号的原理:过零点的信号与换相信号在相位上相差30°电角度,即过零点后延迟30°即可进行换相的操作。

采集反电动势过零的信号的两种方式:(1)硬件比较器法;(2)软件ADC采样法。

采集方式的原理:都是将检测得到的端电压的值与电机中心点电压进行比较来得到反电动势过零点的信号。

2、反电动势过零的基本原理

在AB相通电时,第三相C相会产生一个反电动势(可利用这个第三相的感应电动势来测算转子的位置);

在AB相通电期间,如果我们去测量线圈CC’上的电压,会发现CC’上的电压其间有一个从正到负的变化过程;

在AB相通电期间,不只是线圈CC’上产生感生电动势,其实AA’和BB’也在切割磁力线,也都会产生感生电动势,其电动势方向与外加的12V电源相反,所以叫“反向感生电动势”(BEMF)。其等效电路图见图1-25。

从图1-25可以看出,线圈绕组AA’和BB’上产生的反电动势是很大的,两个加起来几乎略小于12V。VAA’+VBB’≈12V。

因为线圈绕组本身的等效电阻很小(RAA’=RBB’≈0.1Ω),如果反电动势不大的话,端电压加载在线圈绕组等效电阻上,会产生巨大的电流,线圈非烧掉不可。

例:假设在额定转速下AA’和BB’各产生5.7V的反电动势,那么它们串联起来就产生11.4V的反电动势,结合图1-25看,那么加载在等效电阻上的电压就为12-11.4=0.6V,最终通过绕组AB的电流就是0.6/(2X0.1)=3A,看来这个假设还是比较合理的。

同理,由于各绕组的结构是相同的,切割磁力线的速度也是相同的,所以线圈CC’也应该会产生一个大小约为5.7V的感生电动势;不同的是:在AB相通电期间,CC’的感生电动势会整个换一个方向,也即所谓的“过零点”。

在图1-24的t0时刻(图1-26(a)的位置),为AB相通电刚开始时的情况,CC’产生的感生电动势的等效电路图如图1-26(a)所示;(CC’上无电流)

在图1-24的t1时刻(图1-26(b)的位置),为AB相通电快结束时的情况,CC’产生的感生电动势的等效电路图如图1-26(b)所示。(CC’感应电动势方向改变)

2-1 换相时机

由于中点电势值始终为6V,CC’的线圈产生的感生电动势只能在以中点6V电势为基准点的基础上叠加;

仍旧假设在额定转速下CC’上会产生5.7V的感生电动势

在t0时刻,如果我们去测量C点的电压,其值应为6+5.7=11.7V;

在t1时刻,C点的电压值应为6-5.7=0.3V

也就是说,在AB相通电期间,只要一直监测电机的C引线的电压,一旦发现它低于6V,就说明转子已转过30°到达了t0和t1中间的位置,只要再等30°就可以换相了。

2-2 ADC采集过零信号

如果电调的MCU足够快的话,可以采用连续AD采样的方式来测量C点电压,不过貌似有点浪费,因为大部分采到的AD值都是没用的,我们只关心它什么时候低于6V。

2-3 CMP采集过零信号

这时候模拟比较器的作用就来了。一旦C相输出电压低于6V,比较器马上可以感知并在输出端给出一个下降沿。同理,当电机处于AC相通电时,监测的是B相输出电压;当电机处于BC相通电时,监测的是A相输出电压。

继续往前,当电机开始进入BA相通电时,C相输出电压一开始会处于一个较低的状态(0.3V),过零事件发生时,C相输出电压会超过6V,也就是说,这时比较器会感知并输出一个上升沿。CA,CB相通电情况也类似。

这是15V的比较器,单片机自带的比较器一般只支持最高5V的比较。上面这个电路图只是为了方便说明问题,在真正的实用中,会对C相输出电压和6V中点电压再加个分压电路,而且中点电压也不总是等于6V

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/937186.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

今日小雨

喜欢泥土的香气 傍晚的微风 夹杂着清新与沉闷之感 不必要的话不说 有些话没必要说 所做的目的懒得过问 回避过问 大觉一场

内网穿透进阶:让 frpc 只代理「真正在线」的端口

一条脚本搞定「端口探活 + 配置热更新 + 服务保活」,彻底告别手动重启与爆炸日志。一、痛点:静态配置的尴尬本地服务没启动,frpc 仍疯狂重试,日志秒级刷屏;新增/下线服务要手动改 TOML → 重启,极易遗忘;服务异…

规则逻辑与人文逻辑的统一:AI元人文构想的演进之路

规则逻辑与人文逻辑的统一:AI元人文构想的演进之路 在人工智能发展的关键转折点,我们面临着深刻的认知跃迁:规则逻辑与人文逻辑并非对立的两极,而是智能进化道路上相互依存、彼此成就的必然维度。AI元人文构想以其…

2023 ICPC Jinan

2023 ICPC Jinan ICPC Jinan G 考虑找矛盾。首先对于同一行,翻转和不翻是一个矛盾,对于相异的行,若一行的翻转或不反转会使同一列产生多余的 1,则又是一个矛盾。将每一行拆成两个点,一个点代表不翻转该行,一个点…

二叉树中和为目标值的路径

LCR 153. 二叉树中和为目标值的路径 LCR 153. 二叉树中和为目标值的路径参考题解前言 该题考察二叉树中的回溯,使用先序遍历以及路径记录 先序遍历:根左右 路径记录:通过一个“中间人”(path)来记录当前的路径和,…

动态库的调用方式

在 Linux 中,动态库(.so文件)的调用方式主要有两种:编译时链接(隐式调用)和运行时加载(显式调用)。 一、编译时链接(隐式调用) 这种方式在编译阶段就指定动态库,程序启动时会自动加载依赖的动态库,适用于已…

动态库的调用方式

在 Linux 中,动态库(.so文件)的调用方式主要有两种:编译时链接(隐式调用)和运行时加载(显式调用)。 一、编译时链接(隐式调用) 这种方式在编译阶段就指定动态库,程序启动时会自动加载依赖的动态库,适用于已…

云原生技术概览

云原生技术概览书籍:https://jimmysong.io/kubernetes-handbook/从云计算到微服务再到云原生计算 下面将从云计算的发展历程引入云原生计算 云计算介绍 云计算演进历程云计算就是一种配置资源的方式,根据资源配置方式…

OAM角色定义

OAM角色定义https://github.com/oam-dev/spec/blob/master/introduction.md关注点分离 开放应用程序模型提出了开发人员负责的部分与平台工程师负责的部分之间明确的关注点分离。 Open Application Model proposed a c…

OCI

OCI【译者的话】本文介绍了OCI运行时和镜像规范,以及在过去的一段时间里大家对该规范的一些误解。OCI规范制订工作尚未落幕,未来也将对容器产生更加深远的影响。 【3 天烧脑式基于Docker的CI/CD实战训练营 | 北京站】…

消灭重复代码的最佳实践

消灭重复代码的最佳实践代码重复本身不可怕,可怕的是漏改或改错。消灭重复代码,降低改动可能引入的风险。学习笔记:https://time.geekbang.org/column/article/228964工厂模式 + 模板方法 消除 if else 和重复代码 …

Spring应用上下文的获取和保存Bean

Spring应用上下文的获取和保存BeanSpring 容器是 IOC 容器,但是,反过来却不成立不常用的容器实现 -- BeanFactory:最简单的容器,提供基本的 DI 功能 高级实现,继承 BeanFactory 派生的应用上下文 -- ApplicationC…

Redis的数据类型选择

Redis的数据类型选择String 几乎所有的数据都可以使用 String 来存储。浪费存储空间,key 也是需要存储空间的 管理、维护成为噩梦,Redis 中存在着大量的 KV 对象 key 冲突的几率变高(不同的业务系统共用一个 Redis …

pipeline解决Redis频繁命令往返导致的性能瓶颈

pipeline解决Redis频繁命令往返导致的性能瓶颈客户端和服务端交互模型Redis 的 pipeline 交互模型Redis pipeline 与原生批量mset等等命令对比原生批量命令是原子性,pipeline 是非原子性的 原生批量命令一次只能执行一…

SpringBean实例化之前做点事情

SpringBean实例化之前做点事情SpringBean 实例化 需求,实现一个视频解码器,可以实现各种视频格式的解码 第一种方法:先去实现各个解码器,然后 if.else 判断使用哪种解码器使用 BeanPostProcessor 优化 第二种方法:…

SpringBoot定时任务不定时执行了

SpringBoot定时任务不定时执行了两个注解 @EnableScheduling:使得@Scheduled生效 @Scheduled:标注在方法上 @Scheduled 注解 fixedDelay任务结束与开始之间的间隔 fixedRate两次任务的开始的间隔,不管任务是不是执行…

依赖冲突的发现和解决

依赖冲突的发现和解决依赖冲突的发现现象一:一个类的行为不按照预期,本来这个类应该是有这个方法的,但是引入一个新的依赖之后就开始报错找不到方法了,一般就是依赖冲突的时候 Maven 自己选择了一个不符合自己预期…

javaLong类型在前端json数据损失精度

javaLong类型在前端json数据损失精度方法一:重新生成pojo对象,将所有数据库类型为bigint都映射成String类 方法二:对于使用springboot,则增加配置代码: package com.gj.app.config;import com.fasterxml.jackson.…

校招面试官揭秘:我们到底在寻找什么样的技术人才?

🎯 校招面试官揭秘:我们到底在寻找什么样的技术人才?又是一年校招季!📚 作为技术团队的Leader,这段时间我面试了不少优秀的同学。有人拿到心仪offer,也有人遗憾错过机会...今天想从面试官的角度,和大家聊聊我…

时间格式不能正常转换?

时间格式不能正常转换?@DateTimeFormat 注解 前台到后台的时间格式转换,对于GET 请求参数可以正常工作。对于 POST 请求会报反序列化错误POST 请求会使用 JSON 反序列化,不会使用 @DateTimeFormat 注解。POST 表单(…