1. 一句话总览
**正弦控制 = 给 A/B 两相绕组通以相位差 90° 的正弦电流,合成一个"恒幅平滑旋转"的磁场矢量,转子平滑跟随**——而不是像整步驱动那样磁场"跳着走"。
2. 为什么正弦驱动(对比方波/整步)
| 驱动方式 | A/B 相电流 | 磁场矢量 | 效果 |
|---------------------------|------------------------------------------------------------|--------------------|---------------|
| **方波(整步)** | 只有 4 种状态(A+、A+B+、B+、A-…) | **90° 跳变** | 力矩脉动、振动、噪声、低速抖动 |
| **半步** | 8 种状态 | 45° 跳变 | 改善有限 |
| **正弦(细分)** | 连续 sin/cos 变化 | **平滑旋转** | 力矩恒定、安静、高分辨率 |
本质:步进电机的力矩来自磁场矢量与转子的角度差(矩角特性)。方波驱动时磁场矢量跳变 90°,力矩在"最大↔最小"间脉动;正弦驱动让磁场矢量匀速旋转,力矩恒定。
3. 正弦细分的物理本质(微步)
整步: 磁场矢量状态: A+ → A+B+ → B+ → A-B+ ... (4态, 90°跳变)
转子每步跳 1.8° 机械角, 有冲击
细分32: A相电流 = I×sin(θe), θe 每次只转 90°/32 ≈ 2.8°
B相电流 = I×cos(θe)
磁场矢量平滑旋转 2.8°/步 → 转子平滑走 1.8°/32
细分就是"把整步的 90° 电角度切成 N 小份,每份用一组精确的 sin/cos 电流对"——磁场矢量不再跳变,而是连续旋转,转子平滑跟随,同时分辨率提高 N 倍。
4. 圆形旋转磁场的数学
两相绕组空间差 90°,通以 90° 相移的正弦电流:
iA = I × sin(θe) ← A 相电流
iB = I × cos(θe) ← B 相电流 (sin(θe+90°))
合成磁势: F = k×I × [ sin(θe)·â + cos(θe)·b̂ ]
└──────────┬──────────┘
↓
幅值恒为 k×I, 方向角 = θe 的旋转矢量
θe 从 0 走到 360°,磁场矢量转一圈——这就是"圆形旋转磁场",转子被它带着转。
5. 与代码的对应(Output 函数)
| 代码 | 对应正弦控制概念 |
|----------------------------------------------|-----------------------------------------------------------|
| `sin_1[4096]` | sin(θe) 的离散查表(4096 点=1 电周期) |
| `angle_1 = Mod(4×theta, 4096)` | 由机械位置 theta 换算当前电角度 θe |
| `angle_2 = angle_1 + 1024` | B 相 cos(θe)(90° 相移,1024=4096/4) |
| `v_coil = effort × sin / 1024` | 电流幅值 I = effort(决定力矩) |
| 每微步 theta 变化 | θe 变化 → 磁场矢量转一个微步角 → 转子走一步 |
6. 正弦控制的优缺点
| 优点 | 缺点 |
|---------------------------------------------|-----------------------------------------------|
| 力矩平滑恒定、无脉动 | 需要正弦表 + 乘法(计算开销) |
| 振动/噪声大幅降低 | 细分过高时高频步进(TIM6 中断压力) |
| 分辨率高(细分×200 微步/圈) | 对电流精度要求高(正弦失真会引入脉动) |
| 低速平稳、定位精准 | — |
7. 一句话总结
正弦控制 = 用两相 sin/cos 电流制造一个平滑旋转的磁场矢量,让步进电机从"跳着走"变成"滑着走"——这就是细分驱动(micro_step 寄存器 0x16 控制的本质),也是 `Output()` 里正弦表、90° 相移、effort 调幅存在的全部意义。