用比较器检测过零点的基本电路接法,电机的相线 (A/B/C) 接比较器的同相输入端,比较器的负端接相线 A/B/C 的虚拟地电位。虚拟地电位由 A/B/C 相经过电阻隔离形成,详细原理可参考相关资料。相线上产生的反电动势电压以虚拟地为参考点,做正负周期性的变化。在每次比较器输出状态翻转时,说明检测到了过零点,接下来需要做换相动作了。A/B/C三相分别需要一个过零点检测电路,也可用电子开关电路进行实时切换,A/B/C 相共用一个过零检测电路,这通常在集成了模拟外设的 MCU 内实现。
好的,我们严格按图上的元件连接,拆解出这个电路里的所有完整回路。
1.虚拟地生成回路(以 A 相为例)
- 电流路径:A 相输入 → R1 → 滤波节点 → 分成两支:
- 一支 → C1 → 地
- 另一支 → R7 → 地
- 这是一个完整的RC 滤波 + 分压偏置回路,B 相、C 相的回路结构完全相同,只是元件标号不同。
2.虚拟地到比较器反相端的回路
- 电流路径:A 相滤波节点 → R4 → 比较器反相输入端(-)
- 同时,B 相滤波节点 → R5 → 比较器反相输入端(-)
- C 相滤波节点 → R6 → 比较器反相输入端(-)
- 这三个电阻将三相的滤波节点电压汇集到比较器反相端,形成一个共地回路,产生虚拟地电位。
3.比较器输出上拉回路
- 电流路径:+5V → 右侧的 R4 → 比较器输出端(OUT)→ 比较器内部输出管 → 地
- 这是一个完整的上拉驱动回路,确保比较器输出高电平时能稳定在 + 5V。
4.模拟开关切换的信号回路(以选中 A 相为例)
- 电流路径:A 相滤波节点 → 模拟开关 SW → 比较器同相输入端(+)
- 这是一个信号传输回路,将选中相的电压送到比较器的同相输入端。
5.公共参考地回路
- 所有电阻(R1-R9)、电容(C1-C3)的下端,以及比较器的负电源端,都直接连接到地。
- 地作为整个电路的公共参考点,将所有子回路连接在一起,形成一个完整的电气系统。
你观察得非常敏锐!我们来严谨地分析一下,为什么看起来同相端(+)和反相端(-)的电压来源相似,但实际上存在关键区别。
1.反相端(-)的电压:虚拟地电位
- 反相端连接的是R4、R5、R6的公共节点。
- 这三个电阻分别接在 A、B、C 三相的滤波节点上,所以反相端的电压是A、B、C 三相电压的平均值,公式为:V−=3VA+VB+VC
- 因为三相电压在电机运转时对称变化,所以这个平均值非常稳定,是一个 “虚拟的地电位”。
2.同相端(+)的电压:单相电压
- 同相端通过模拟开关SW连接到某一相(比如 A 相)的滤波节点,所以同相端的电压就是当前选中相的电压,公式为:V+=VA(当SW选中A相时)
- 这个电压会随着电机转子位置周期性变化,是我们要检测的信号。
3.为什么不是一样的电压?
在无刷电机运转时,三相电压是对称的交流信号,它们的平均值(虚拟地)非常稳定,但任意一相的瞬时电压都会围绕这个平均值上下波动。
- 当选中相的电压 VA>V− 时,比较器输出高电平。
- 当选中相的电压 VA<V− 时,比较器输出低电平。
这个电压差的存在,正是比较器能够检测过零点的基础。
4.关于 “— 多了个电阻” 的疑问
你看到的 “多出来的电阻”(R4-R6),其实是为了将三相电压平均,生成稳定的虚拟地电位。它不是一个简单的负载,而是整个电路的比较基准生成网络。
这个比较器输出的高低电平,是给 ** 无刷电机的控制 MCU(微控制器)** 传递关键的转子位置信息,从而实现电机的精准换相和稳定运转。
具体来说,它的作用分为这几步:
- 定位转子位置比较器输出的跳变点(高低电平切换),直接对应电机反电动势的过零点。MCU 检测到这个跳变,就能精确计算出转子的实时位置。
- 触发换相逻辑MCU 根据转子位置,会按照固定的顺序(如 A→B→C)切换驱动桥的功率管,让电机的定子磁场持续 “牵引” 转子旋转。如果没有这个高低电平信号,MCU 就无法知道转子在哪,电机就会堵转或乱转。
- 实现闭环控制这个信号也是电机速度、转速闭环控制的基础。MCU 可以通过统计高低电平的切换频率,计算出电机的实际转速,再据此调整驱动信号,让电机稳定在目标转速。
简单来说,这个高低电平就是电机的 “导航信号”,没有它,无刷电机就像没了方向盘的车,无法正常运行。
核心规律:电平跳变对应反电动势过零点 → 过零点关联转子机械位置 → 位置序列决定电机运转状态
这个电路的高低电平不是孤立的,三相依次检测的电平跳变顺序、跳变间隔、电平持续时长,共同构成了 MCU 识别电机「转子位置、转向、转速、堵转」的核心规律,完全基于无刷电机三相反电动势对称交变的物理特性(三相电压相位互差 120°,围绕虚拟地上下波动)。
以下是 MCU 能识别的所有电机状态对应的电平规律,纯按电路检测逻辑推导,无额外假设:
一、基础规律:「过零点跳变 + 相序」判断转子位置 + 转向
这是最核心的规律,无刷电机换相的根本依据,三相检测的电平跳变严格遵循固定顺序:
转子位置的判断:电机运转时,某一相检测到「低→高」或「高→低」跳变,就是该相的反电动势过零点,MCU 根据这个跳变,能精准推算出转子的机械角度位置(过零点后延迟 30° 电角度,就是该相的最佳换相点)。例:检测 A 相时,电平从低变高→A 相反电动势过零点→转子处于 A 相换相前置位置。
电机转向的判断:三相反电动势的相位差是 120°,电平跳变会按固定相序依次出现,跳变序的正 / 反直接对应电机正 / 反转:
- 正转:检测到的过零点跳变序为A→B→C→A(按模拟开关切换顺序,依次在 A、B、C 相检测到电平跳变);
- 反转:检测到的过零点跳变序为A→C→B→A(跳变序反向)。本质:转向不同,转子切割定子绕组的顺序相反,三相反电动势的交变顺序也反向,最终体现为电平跳变序反向。
二、进阶规律:「跳变间隔」判断电机转速
电平跳变不是单次的,而是周期性重复的,跳变的时间间隔直接和转速挂钩,这是 MCU 测速的核心逻辑:
- 同一相两次相邻跳变的时间间隔越短→ 反电动势交变越快 → 电机转速越高;
- 时间间隔越长→ 转速越低;
- 公式化理解:转速 n 与跳变间隔 t 成反比(MCU 通过内部定时器统计跳变间隔,直接换算转速)。例:A 相第一次跳变和第二次跳变间隔 10ms,转速为 1000r/min;间隔缩短为 5ms,转速提升至 2000r/min。
三、异常规律:「无跳变 / 乱跳变」判断堵转 / 故障
电机正常运转时,电平跳变是 ** 规律、连续、等间隔(匀速时)** 的,一旦跳变规律被打破,就是电机异常,MCU 直接判定故障状态:
堵转(最常见):电机通电后,MCU 切换检测 A/B/C 相,但始终检测不到任何电平跳变(一直高电平或一直低电平)→ 判定转子被卡住。原因:转子不转,就不会切割定子绕组产生反电动势,相线电压始终等于虚拟地电位(或固定值),比较器无跳变。
电机抖动 / 失步:电平跳变无固定相序(如 A→C→A→B)、跳变间隔忽长忽短→ 判定转子失步 / 抖动。原因:定子磁场和转子磁场失去同步,反电动势交变规律被打乱,电平跳变无规律。
单相故障:检测某一相时始终无跳变(如 B 相一直低电平),但 A、C 相跳变规律正常 → 判定 B 相绕组 / 检测回路故障。原因:故障相无法产生正常反电动势,相线电压无交变,比较器无跳变。
四、补充:「电平高低持续时间」辅助判断电机加减速状态
匀速时,同一相高 / 低电平的持续时间相等(反电动势是对称的正弦 / 梯形波),而加减速时会出现差值:
- 加速:电平跳变间隔逐渐缩短,高 / 低电平持续时间也逐渐变短;
- 减速:电平跳变间隔逐渐变长,高 / 低电平持续时间也逐渐变长。
总结:MCU 识别电机状态的核心逻辑链
检测三相电平信号→ 提取「跳变相序、跳变间隔、跳变有无」→ 匹配上述规律 → 判定「转子位置 / 转向 / 转速 / 堵转 / 故障」。
这个规律的底层支撑是无刷电机的三相对称性,所有电平变化都是反电动势的直观体现,MCU 无需复杂计算,只需统计跳变、识别序列、计时间隔,就能精准掌握电机所有运转状态。
你的这个问题问到了 6 步换相的核心物理本质,其实答案就藏在无刷电机三相绕组的对称结构和转子旋转的电磁规律里,咱们抛开复杂公式,用「最通俗的电流 / 电压变化逻辑」讲透,保证一听就懂:
先搞懂:三相电压「平均成稳定虚拟地」的底层原因
无刷电机的 A/B/C 三相绕组,在定子上是均匀分布的(彼此差 120°),转子旋转时,三相绕组切割磁场产生的反电动势,是相位差 120° 的对称交变电压(可以理解为三个 “你高我低、你低我高” 的电压,始终互补)。
举个最直观的数值例子(电机运转中某一时刻的三相瞬时电压,以真实地为参考):
- A 相:+1V
- B 相:-0.5V
- C 相:-0.5V平均值:(+1 -0.5 -0.5)÷3 = 0V
再换一个时刻,转子转了一点,三相电压变了,但依然对称:
- A 相:-0.6V
- B 相:+0.8V
- C 相:-0.2V平均值:(-0.6 +0.8 -0.2)÷3 = 0V
核心结论:只要电机正常旋转,三相反电动势的瞬时值永远对称互补,平均值始终稳定在一个固定值(接近 0V,也就是和真实地电位几乎一致)。所以 R4/R5/R6 把三相电压连在一起取平均,得到的就是一个不随转子旋转变化的稳定电位—— 这就是 “虚拟地”,用来当比较基准再合适不过。
再解答:为什么「单独一相的电压」会比这个平均虚拟地「大或小」?
因为单独一相的反电动势,是随转子旋转「周期性交变」的(像波浪一样,一会高、一会低),而三相平均的虚拟地是 “静止的基准线”,单相电压就围绕这条基准线上下波动。
还是用上面的对称规律讲,三相电压的 “互补性” 决定了:某一相电压升高时,另外两相的电压一定会降低,来保证整体平均值不变。比如转子旋转到某一位置:
- A 相绕组切割磁场的角度最大→反电动势最高→A 相电压 =+1.2V(高于虚拟地 0V)
- 为了保持三相平均为 0,B、C 相的电压必然降低→B 相 =-0.6V,C 相 =-0.6V(都低于虚拟地 0V)
转子再转 60°,角度变了:
- A 相绕组切割磁场的角度变小→反电动势降低→A 相电压 =-0.7V(低于虚拟地 0V)
- B 相切割角度变大→反电动势升高→B 相 =+1.1V(高于虚拟地 0V)
- C 相保持平衡→C 相 =-0.4V(低于虚拟地 0V)
通俗类比:把三相电压比作三个人抬水,虚拟地是 “水面的基准线”,三个人的力气始终均等(对称),但每个人的发力方向会变(单相电压交变):
- 甲使劲往上抬(A 相电压高于虚拟地),乙和丙就必须往下压(B、C 相低于虚拟地),水面始终平的(平均值稳定);
- 乙使劲往上抬(B 相电压高于虚拟地),甲和丙就往下压,水面还是平的。
最后补一个关键:为什么「不用真实地」当参考,非要做「虚拟地」?
因为无刷电机的三相绕组并非直接接真实地,电机驱动时功率管的通断会让相线带有轻微的 “直流偏置”,真实地电位会有微小波动;而三相平均的虚拟地,是从电机相线本身取的电位,和电机的实际电压环境完全匹配,用它当参考,能避免真实地的干扰,让过零点检测更精准。
一句话总结核心逻辑
三相对称→平均值稳定(虚拟地基准),单相交变→围绕基准上下波动(高 / 低于虚拟地),这就是比较器能通过 “单相电压和虚拟地的比较”,检测出过零点的根本原因。
理想的反电动势波形和霍尔传感器输出波形对比图,从图中可看出,反电动势的过零点和霍尔传感器的波形翻转同步,如果用此反电动势过零信号进行程序换相会获得和有感无刷电机一样的运转性能。
无位置传感器的无刷电机,通过检测反电动势过零点来换相,在理想情况下可以达到和有霍尔(有感)电机几乎一样的运转性能。
我们可以把它拆解成几个关键点来理解:
1. 理想反电动势与霍尔信号的 “同步性”
- 霍尔传感器输出波形的翻转点(电平跳变),和反电动势的过零点在时间上是完全对齐的。
- 这意味着,两种方案获取的转子位置信息是完全一致的,只是获取方式不同:
- 有感方案:靠霍尔传感器直接 “读” 转子位置
- 无感方案:靠比较器检测反电动势过零点 “算” 转子位置
2. 换相性能一致的本质
- 6 步换相的核心是 “精准定位换相点”,只要能在正确的 60° 电角度触发换相,电机的运转性能就由换相时机决定,和位置信号的来源无关。
- 在理想波形下,反电动势过零点和霍尔信号跳变点完全同步,所以无感方案的换相时机和有感方案完全一致,最终表现出的转速稳定性、转矩平滑性也基本相同。
3. 工程上的意义
- 这为 “无感替代有感” 提供了理论依据:在电机运转平稳、反电动势波形理想的场景下,我们可以去掉成本较高的霍尔传感器,用更便宜的比较器电路实现相同的控制效果。
- 但在低速或启动阶段,反电动势信号很弱,过零点检测会失效,这时候还是需要霍尔传感器或其他辅助启动方案。
实际的反电动势波形和霍尔波形对比图如上所示,红线为霍尔的输出波形,黑色虚线是反电动势,紫色竖线为反电动势的过零点,时间轴的方向为从左往右,可以得知反电动势的过零点比霍尔传感器的输出波形提前了半个电节拍,即30度电角度。为了能够在正确的时刻才换相,需要在检测到反电动势过零点后延迟30度电角度之后,才进行换相。究竟延迟多长时间才够30度时间呢?需要对相邻两个过零点之间的时间进行计时,因为无刷电机的转速是会变化的,相应的电周期也会变化。用定时器得到计时值后除以2就是当前电机转速下的30度电角度延迟时间值,把此时间值装入一个定时器,并打开该定时器中断,等延时完毕进中断即可完成电机换相。
这张图和对应的文字,其实把无感 6 步换相里最关键的 “延迟 30° 换相” 逻辑讲透了,我帮你拆解成更易懂的逻辑:
1. 核心发现:过零点和霍尔跳变点的错位
在实际波形中,反电动势的过零点(紫色竖线)比霍尔信号的跳变点提前了 30° 电角度。
- 霍尔信号跳变点是理想换相点,直接对应转子的最佳位置。
- 过零点只是换相的前置触发信号,不能直接用来换相,否则时机就会提前,导致转矩下降、电机抖动。
2. 为什么要延迟 30°?
6 步换相的换相间隔是 60° 电角度,而 30° 正好是半个间隔。
- 过零点比理想换相点早了 30°,所以必须等 30° 电角度的时间,才能让转子转到最佳换相位置。
- 这个延迟不是固定时间,而是随转速动态变化的:转速越快,30° 对应的时间越短;转速越慢,对应的时间越长。
3. 动态延迟的计算方法
这是工程上实现精准延迟的核心技巧:
- 计时:用定时器测量相邻两个过零点之间的时间(也就是 60° 电角度的时间)。
- 换算:将测得的时间除以 2,就得到当前转速下 30° 电角度对应的延迟时间。
- 触发换相:把这个延迟时间装入另一个定时器,等定时器中断触发时,再执行换相动作。