角度传感器的采集信号大体上分两种,第一种是采集差分信号,然后通过作差来得到正余弦值,比如英飞凌TLE5501,第二种是直接输出的正余弦值,比如TAS2240。这两种的主要区别是后者需要减去参考电压,参考电压可以通过测量多个周期值的平均值得到,而差分信号的可以天然去除掉参考电压。

1.理想情况的角度采集数据

理想情况采集到的数据满足下列关系:
sin⁡ideal=Asin⁡(θ)cos⁡ideal=Acos⁡(θ) \sin_{ideal} = A\sin(\theta) \newline \cos_{ideal} = A\cos(\theta) sinideal​=Asin(θ)cosideal​=Acos(θ)
其中 sin⁡ideal\sin_{ideal}sinideal​ 和 cos⁡ideal\cos_{ideal}cosideal​是理想情况下采集到的角度正余弦值,θ\thetaθ为采集的角度,AAA为采集到的正余弦幅值。
显然有 sin⁡ideal2+cos⁡ideal2=1\sin^2_{ideal} + \cos^2_{ideal} = 1sinideal2​+cosideal2​=1, 当θ从0到360°变化时,(sin⁡,cos⁡)(\sin,\cos)(sin,cos)的轨迹是​半径为1的完美圆形,也就是单位圆。

2.实际情况的角度采集数据

现在假设角度传感器测到的原始值是cosrawcos_{raw}cosraw​和sinrawsin_{raw}sinraw​,由于芯片的制造工艺以及客观世界的物理现象等原因,采集到的数据会有误差,具体表现在幅值产生误差(正余弦增益不一致,采集到的正余弦幅值不相等),以及零偏误差(正余弦曲线不再关于x轴对称),实际情况采集的角度满足如下关系:
sin⁡raw=Assin⁡(θ)+Bscos⁡raw=Accos⁡(θ)+Bc \begin{align} \sin_{raw} = A_s\sin(\theta) + B_s \newline \cos_{raw} = A_c\cos(\theta) + B_c \end{align} sinraw​=As​sin(θ)+Bs​cosraw​=Ac​cos(θ)+Bc​​​
其中 sin⁡raw\sin_{raw}sinraw​ 和 cos⁡raw\cos_{raw}cosraw​是实际采集到的角度正余弦值,θ\thetaθ为采集的角度,AsA_sAs​和AcA_cAc​为采集到的正弦和余弦幅值,这两个值不相等是多物理场耦合作用的结果,BsB_sBs​和BcB_cBc​是零偏误差,也是各种因素综合作用的结果。

3.数据校准

3.1 零偏误差

以正弦角度采集为例,sin⁡raw=Assin⁡(θ)+Bs\sin_{raw} = A_s\sin(\theta) + B_ssinraw​=As​sin(θ)+Bs​实际采集到的最大值和最小值分别是sin⁡rawmax=As+Bs\sin_{rawmax} = A_s + B_ssinrawmax​=As​+Bs​和sin⁡rawmin=Bs−As\sin_{rawmin} = B_s-A_ssinrawmin​=Bs​−As​,二者相加消去AsA_sAs​可以得到:
Bs=12(sin⁡rawmax+sin⁡rawmin) \begin{align} B_s = \frac12(\sin_{rawmax}+\sin_{rawmin}) \end{align} Bs​=21​(sinrawmax​+sinrawmin​)​​
对于余弦的角度采集也是同样的道理
Bc=12(cos⁡rawmax+cos⁡rawmin) \begin{align} B_c = \frac12(\cos_{rawmax}+\cos_{rawmin}) \end{align} Bc​=21​(cosrawmax​+cosrawmin​)​​

3.2 幅值差异

还是以正弦角度采集为例,sin⁡raw=Assin⁡(θ)+Bs\sin_{raw} = A_s\sin(\theta) + B_ssinraw​=As​sin(θ)+Bs​实际采集到的最大值和最小值分别是sin⁡rawmax=As+Bs\sin_{rawmax} = A_s + B_ssinrawmax​=As​+Bs​和sin⁡rawmin=Bs−As\sin_{rawmin} = B_s-A_ssinrawmin​=Bs​−As​,二者相减消去BsB_sBs​可以得到:
As=12(sin⁡rawmax−sin⁡rawmin) \begin{align} A_s = \frac12(\sin_{rawmax}-\sin_{rawmin}) \end{align} As​=21​(sinrawmax​−sinrawmin​)​​
对于余弦的角度采集也是同样的道理
Ac=12(cos⁡rawmax−cos⁡rawmin) \begin{align} A_c = \frac12(\cos_{rawmax}-\cos_{rawmin}) \end{align} Ac​=21​(cosrawmax​−cosrawmin​)​​

3.3 角度采集值校准

将(1)(1)(1)和(2)(2)(2)式子中零偏校准BsB_sBs​和BcB_cBc​移到等号左边以后可以得到:
(sin⁡raw−BsAs)2+(cos⁡raw−BcAc)2=1 \begin{align} (\frac{\sin_{raw}-B_s}{A_s})^2+(\frac{\cos_{raw}-B_c}{A_c})^2 = 1 \end{align} (As​sinraw​−Bs​​)2+(Ac​cosraw​−Bc​​)2=1​​
这样的话实际采集到的值就可以用下面的式子来计算了:
sin⁡cal=sin⁡raw−BsAscos⁡cal=cos⁡raw−BcAc \begin{align} \sin_{cal} = \frac{\sin_{raw}-B_s}{A_s} \newline \cos_{cal} = \frac{\cos_{raw}-B_c}{A_c} \end{align} sincal​=As​sinraw​−Bs​​coscal​=Ac​cosraw​−Bc​​​​
此时我们对于正余弦两个通道的数据都需要按照其幅值进行缩小,在实际中只希望对一个通道进行操作,可以考虑对(7)(7)(7)式两端同时乘以As2A_s^2As2​,于是(7)(7)(7)式就变成了这样:
(sin⁡raw−Bs)2+(AsAc)2(cos⁡raw−Bc)2=As2 \begin{align} (\sin_{raw}-B_s)^2+(\frac{A_s}{A_c})^2({\cos_{raw}-B_c})^2 = A_s^2 \end{align} (sinraw​−Bs​)2+(Ac​As​​)2(cosraw​−Bc​)2=As2​​​
进一步,实际采集到的值就变成了这样
sin⁡cal=sin⁡raw−Bscos⁡cal=AsAc(cos⁡raw−Bc) \begin{align} &\sin_{cal} =\sin_{raw}-B_s \newline &\cos_{cal} = \frac{A_s}{A_c}(\cos_{raw}-B_c) \end{align} ​sincal​=sinraw​−Bs​coscal​=Ac​As​​(cosraw​−Bc​)​​
这个就是工程中常用的角度传感器的校准式。

更多推荐