4、解码原理:从模拟信号到角度/速度数字量的基本解码流程
旋变传感器输出的是一组包含位置信息的模拟电压信号,通常为正余弦形式的调制波。要将这些模拟信号转换为数字化的角度与速度信息,必须经过一系列信号调理与数学运算。本章围绕同步解调、锁相环(PLL)和反正切(Arctangent)三种主流解码路径展开,剖析从原始信号到最终角度/速度数字量的完整链路,并讨论工程实现中的关键参数与误差来源。
4.1 核心原理:旋变信号的数学本质与解码目标
旋变传感器在转子励磁绕组施加高频正弦载波 \( V_e = A \sin(\omega_c t) \) 后,定子两相输出绕组感应出与转子位置 θ 相关的调幅信号:
- 正弦绕组输出:\( V_{sin} = K \cdot A \sin(\omega_c t) \cdot \sin\theta \)
- 余弦绕组输出:\( V_{cos} = K \cdot A \sin(\omega_c t) \cdot \cos\theta \)
其中 K 为变比系数,ω_c 为载波角频率(典型值 10kHz~20kHz),θ 为转子机械角度(若为多极旋变,则为电气角度)。解码的核心目标就是从这两路调幅信号中提取 θ 的实时值,并进一步通过微分或观测器计算转速 ω = dθ/dt。由于载波频率远高于转子旋转频率,解码算法必须有效抑制载波分量,同时保留位置信息。
4.2 同步解调:经典模拟/混合域解码方法
同步解调是最早应用于旋变解码的技术,其核心思想是利用与载波同频同相的参考信号,对两路调幅信号分别进行乘法运算,再通过低通滤波提取低频位置分量。具体流程如下:
- 参考信号生成:从励磁源获取载波信号,经比较器整形为方波或直接使用正弦波作为参考。
- 乘法混频:将 \( V_{sin} \) 与参考信号 \( \sin(\omega_c t) \) 相乘,利用积化和差公式得到:
\( V_{sin} \cdot \sin(\omega_c t) = \frac{K A}{2} [\sin\theta - \sin(2\omega_c t - \theta)] \) - 低通滤波:滤除 2ω_c 高频分量,保留直流项 \( \frac{K A}{2} \sin\theta \)。同理处理余弦绕组得到 \( \frac{K A}{2} \cos\theta \)。
- 角度计算:对解调后的正余弦值求反正切,得到 θ。
同步解调的优势在于电路实现简单,可使用模拟乘法器(如AD633)或开关型解调器(如AD2S90内部结构)。但其精度受限于参考信号相位误差、乘法器非线性以及低通滤波器的群延迟。现代集成解码芯片(如ADI的AD2S1210)已用数字同步解调替代模拟方案,在FPGA或DSP内部完成乘法与滤波,显著提高了温度稳定性和抗干扰能力。
| 对比维度 | 模拟同步解调 | 数字同步解调 |
|---|---|---|
| 乘法器实现 | 模拟乘法器芯片 | DSP/FPGA乘法器 |
| 低通滤波 | RC有源滤波器 | FIR/IIR数字滤波器 |
| 温度漂移 | 较大(模拟器件) | 极小(数字逻辑) |
| 典型精度 | 10~12bit | 14~16bit |
| 适用场景 | 低成本、低速工业 | 高性能伺服、车载 |
4.3 锁相环(PLL)解码:闭环跟踪与速度提取
锁相环解码是一种闭环方法,通过构造一个虚拟的“跟踪振荡器”来持续逼近真实角度。其基本结构包含鉴相器(PD)、环路滤波器(LF)和压控振荡器(VCO,数字域中为相位累加器)。在旋变解码应用中,PLL并非直接锁定载波,而是锁定位置角 θ 本身,因此常被称为“角度跟踪环”。
典型实现中,将解调后的 \( \sin\theta \) 和 \( \cos\theta \) 与内部估计角度 \( \hat{\theta} \) 的正余弦值相乘并相减,得到误差信号:
误差 = sinθ·cosφ - cosθ·sinφ = sin(θ - φ)
当误差趋近于零时,φ ≈ θ。环路滤波器(通常为PI控制器)对误差进行积分,输出角速度估计值,再经积分器得到角度估计值。这种结构的优势在于:
- 速度直接可得:环路滤波器的输出即为角速度估计,无需额外微分。
- 噪声抑制能力强:闭环带宽可调,对高频噪声有天然衰减。
- 无360°跳变:由于是连续跟踪,角度输出是连续变化的,不存在反正切法的象限跳变问题。
PLL解码的关键参数是环路带宽。带宽越高,动态响应越快,但对噪声越敏感;带宽越低,输出越平滑,但滞后增大。工程上通常根据电机最高转速和所需带宽来整定PI参数。例如,一个转速为6000rpm(100Hz电气频率)的伺服系统,PLL带宽通常设置在200~500Hz,以保证相位裕度。
4.4 反正切(Arctangent)解码:直接计算与CORDIC算法
反正切解码是最直观的方法:对同步解调后的正余弦分量直接求 \( \theta = \arctan(\sin\theta / \cos\theta) \)。在数字域中,实现方式主要有三种:
- 查表法:将正余弦值量化为地址,预存角度表。优点是速度快,但精度受表大小限制,且需要插值。
- CORDIC算法:通过迭代旋转向量,仅用移位和加法即可计算反正切。适合FPGA/ASIC实现,精度可达16bit以上。
- CPU数学库:在MCU/DSP中直接调用 atan2() 函数,精度高但耗时较长(微秒级)。
反正切法的最大优点是延迟极低——只需一次计算即可得到角度,不存在PLL的收敛过程。但其缺点也很明显:
- 对正余弦信号的幅值一致性敏感,若两路增益不匹配,会产生周期性角度误差。
- 速度信息需要额外对角度差分获得,差分运算会放大高频噪声。
- 在 θ 接近 ±90° 时,反正切函数斜率变化剧烈,量化误差增大。
为克服上述问题,工程中常采用“增强型反正切”方案:先对正余弦信号做归一化处理(除以幅值包络),再进行CORDIC计算。归一化可通过计算 \( \sqrt{\sin^2\theta + \cos^2\theta} \) 实现,该值理论上恒为1,实际中偏离1的程度反映了幅值误差,可同时用于在线校正。
4.5 案例拆解:基于FPGA的混合解码策略
某新能源汽车电驱动系统要求旋变解码精度达到 ±0.1° 电气角,转速范围 0~12000rpm,且需要在 10μs 内输出角度更新。单一解码方案难以同时满足精度与延迟要求,最终采用“反正切+CORDIC”为主、“PLL辅助滤波”的混合架构。
系统约束与初始指标:
- 旋变极对数:4对极(电气频率最高800Hz)
- 载波频率:20kHz,ADC采样率:2Msps(每载波周期采样100点)
- FPGA资源:约30K LUT,DSP Slice 12个
实现方案:
- ADC采样后,先进行数字同步解调(乘法器+FIR低通,截止频率5kHz),得到 sinθ 和 cosθ 的基带分量。
- 计算幅值包络 \( R = \sqrt{\sin^2\theta + \cos^2\theta} \),并做归一化。
- 使用CORDIC(16次迭代)计算反正切,得到原始角度 θ_raw,延迟约 0.5μs。
- 将 θ_raw 送入一个二阶PLL(带宽300Hz),用于平滑输出并估计转速。PLL输出作为最终角度,同时提供速度值。
结果对比:
| 指标 | 纯反正切 | 纯PLL | 混合方案 |
|---|---|---|---|
| 角度延迟 | 0.5μs | ~50μs | 0.5μs(原始)+滤波延迟 |
| 速度纹波 | 较大(差分噪声) | 平滑 | 平滑 |
| 精度(±1σ) | 0.08° | 0.12° | 0.09° |
| FPGA资源 | 低 | 中 | 中高 |
复盘经验:混合方案的关键在于PLL带宽的整定——带宽过高会引入CORDIC的量化噪声,过低则无法有效滤除机械振动引起的角度抖动。最终通过扫频测试确定300Hz为最优折中。此外,归一化步骤对消除旋变幅值随温度漂移的影响至关重要,实测在-40°C~+125°C范围内,角度误差变化小于0.03°。
4.6 常见误区与总结复盘
在旋变解码工程实践中,以下误区值得特别注意:
- 误区一:忽略载波相位延迟。励磁信号从驱动端到旋变输出端存在相移(主要由绕组电感和分布电容引起),若同步解调的参考信号未补偿该相移,会导致解调后的正余弦幅值不等,产生2θ频率的误差。
- 误区二:PLL带宽设计“一刀切”。低速时希望带宽低以滤除噪声,高速时希望带宽高以减小滞后。固定带宽无法兼顾,应采用带宽随转速变化的自适应PLL。
- 误区三:反正切法忽略象限判断。直接使用 atan(y/x) 会丢失象限信息,必须使用 atan2(y,x) 或自行判断正负号。
- 误区四:速度计算过度依赖差分。对角度直接差分求速度,在低速时量化噪声会淹没真实信号。建议使用跟踪微分器或状态观测器(如龙伯格观测器)提取速度。
总结而言,三种解码路径各有适用场景:同步解调适合模拟前端与低成本系统;PLL适合需要平滑速度和连续角度的伺服控制;反正切适合对延迟敏感的高速数字控制。现代高端系统普遍采用“反正切+CORDIC+PLL滤波”的混合架构,兼顾精度、延迟与噪声抑制。设计者应根据系统带宽、分辨率、延迟和成本约束,选择或组合合适的解码策略,并始终关注信号链路的幅值一致性、相位匹配和噪声底限。