角度传感器采集数据校准流程
角度传感器的采集信号大体上分两种,第一种是采集差分信号,然后通过作差来得到正余弦值,比如英飞凌TLE5501,第二种是直接输出的正余弦值,比如TAS2240。这两种的主要区别是后者需要减去参考电压,参考电压可以通过测量多个周期值的平均值得到,而差分信号的可以天然去除掉参考电压。
角度传感器的采集信号大体上分两种,第一种是采集差分信号,然后通过作差来得到正余弦值,比如英飞凌TLE5501,第二种是直接输出的正余弦值,比如TAS2240。这两种的主要区别是后者需要减去参考电压,参考电压可以通过测量多个周期值的平均值得到,而差分信号的可以天然去除掉参考电压。
1.理想情况的角度采集数据
理想情况采集到的数据满足下列关系:
sinideal=Asin(θ)cosideal=Acos(θ) \sin_{ideal} = A\sin(\theta) \newline \cos_{ideal} = A\cos(\theta) sinideal=Asin(θ)cosideal=Acos(θ)
其中 sinideal\sin_{ideal}sinideal 和 cosideal\cos_{ideal}cosideal是理想情况下采集到的角度正余弦值,θ\thetaθ为采集的角度,AAA为采集到的正余弦幅值。
显然有 sinideal2+cosideal2=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轴对称),实际情况采集的角度满足如下关系:
sinraw=Assin(θ)+Bscosraw=Accos(θ)+Bc \begin{align} \sin_{raw} = A_s\sin(\theta) + B_s \newline \cos_{raw} = A_c\cos(\theta) + B_c \end{align} sinraw=Assin(θ)+Bscosraw=Accos(θ)+Bc
其中 sinraw\sin_{raw}sinraw 和 cosraw\cos_{raw}cosraw是实际采集到的角度正余弦值,θ\thetaθ为采集的角度,AsA_sAs和AcA_cAc为采集到的正弦和余弦幅值,这两个值不相等是多物理场耦合作用的结果,BsB_sBs和BcB_cBc是零偏误差,也是各种因素综合作用的结果。
3.数据校准
3.1 零偏误差
以正弦角度采集为例,sinraw=Assin(θ)+Bs\sin_{raw} = A_s\sin(\theta) + B_ssinraw=Assin(θ)+Bs实际采集到的最大值和最小值分别是sinrawmax=As+Bs\sin_{rawmax} = A_s + B_ssinrawmax=As+Bs和sinrawmin=Bs−As\sin_{rawmin} = B_s-A_ssinrawmin=Bs−As,二者相加消去AsA_sAs可以得到:
Bs=12(sinrawmax+sinrawmin) \begin{align} B_s = \frac12(\sin_{rawmax}+\sin_{rawmin}) \end{align} Bs=21(sinrawmax+sinrawmin)
对于余弦的角度采集也是同样的道理
Bc=12(cosrawmax+cosrawmin) \begin{align} B_c = \frac12(\cos_{rawmax}+\cos_{rawmin}) \end{align} Bc=21(cosrawmax+cosrawmin)
3.2 幅值差异
还是以正弦角度采集为例,sinraw=Assin(θ)+Bs\sin_{raw} = A_s\sin(\theta) + B_ssinraw=Assin(θ)+Bs实际采集到的最大值和最小值分别是sinrawmax=As+Bs\sin_{rawmax} = A_s + B_ssinrawmax=As+Bs和sinrawmin=Bs−As\sin_{rawmin} = B_s-A_ssinrawmin=Bs−As,二者相减消去BsB_sBs可以得到:
As=12(sinrawmax−sinrawmin) \begin{align} A_s = \frac12(\sin_{rawmax}-\sin_{rawmin}) \end{align} As=21(sinrawmax−sinrawmin)
对于余弦的角度采集也是同样的道理
Ac=12(cosrawmax−cosrawmin) \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移到等号左边以后可以得到:
(sinraw−BsAs)2+(cosraw−BcAc)2=1 \begin{align} (\frac{\sin_{raw}-B_s}{A_s})^2+(\frac{\cos_{raw}-B_c}{A_c})^2 = 1 \end{align} (Assinraw−Bs)2+(Accosraw−Bc)2=1
这样的话实际采集到的值就可以用下面的式子来计算了:
sincal=sinraw−BsAscoscal=cosraw−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=Assinraw−Bscoscal=Accosraw−Bc
此时我们对于正余弦两个通道的数据都需要按照其幅值进行缩小,在实际中只希望对一个通道进行操作,可以考虑对(7)(7)(7)式两端同时乘以As2A_s^2As2,于是(7)(7)(7)式就变成了这样:
(sinraw−Bs)2+(AsAc)2(cosraw−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+(AcAs)2(cosraw−Bc)2=As2
进一步,实际采集到的值就变成了这样
sincal=sinraw−Bscoscal=AsAc(cosraw−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−Bscoscal=AcAs(cosraw−Bc)
这个就是工程中常用的角度传感器的校准式。
更多推荐



所有评论(0)