直流有刷电机
点击启动、改变方向和速度。橙色线表示转子绕组,黑色块表示碳刷。
电刷接触会产生磨损、噪声和电磁干扰。
点击启动、换向、单步和目标角,观察电磁执行器如何把控制量变成机械运动。
有刷电机用碳刷/换向器切换电流;BLDC 用逆变器按照转子位置切换三相绕组。
点击启动、改变方向和速度。橙色线表示转子绕组,黑色块表示碳刷。
电子换向不需要碳刷;霍尔/编码器提供转子位置,逆变器决定下一相通电。
步距角决定整步分辨率,细分让运动更平滑,但不能保证绝对位置且仍可能失步。
拖动目标角,观察编码器反馈和位置误差。电流限幅会让大误差下的响应变慢,保护电机和机械结构。
不要只比较额定功率;先明确负载转矩、速度、反馈、热和故障安全。
| 指标 | 有刷 DC | BLDC | 步进 | 伺服 |
|---|---|---|---|---|
| 反馈 | 可选 | 霍尔/编码器 | 通常无 | 必备编码器 |
| 最适合 | 低成本底盘 | 高速关节 | 轻载点位 | 人形/机械臂关节 |
| 主要风险 | 刷火花、寿命 | 相序、低速启动 | 失步、共振 | 调参、热、碰撞 |
每个小节都把原理、编号结构、控制量和伪代码放在同一处。代码是动画背后的最小数学模型,不是可直接驱动真机的安全控制器。
定子提供固定磁场,转子线圈受力,碳刷/换向器每半圈反转电流。
HBridge(direction, duty) → 电枢;τ = Kt · I;反电动势 = Ke · ω定子三相绕组按相序通电,永磁转子跟随旋转磁场,霍尔/编码器给出转子位置。
phase = hall_or_encoder.read(); inverter.commutate(phase); theta_e = pole_pairs · theta_m定子 1~8按顺序励磁;转子齿槽朝向当前磁场。点任意编号,观察该线圈通电、转子转过 45° 的电角位置。
coils[phase].on(); rotor_angle = phase · 45.000°; pulse_count += 1目标角与编码器反馈角相减得到误差,位置控制器生成电流,电机转矩再改变反馈角。
error = target − encoder; current = clamp(Kp · error, ±Imax); torque = Kt · current下面四张小图把“电源线/动力线/反馈线”分开。红色 `+` 和黑色 `−` 只表示直流母线;U/V/W、A+/A−、B+/B− 是驱动器定义的绕组端子,不能当作普通电源正负极。