汽车电子笔记之-012:旋变工作原理及软解码硬解码

目录

1、旋变

1.1、激励的产生

1.2、旋变的标定

2、旋变解码

2.1、旋变硬解码

2.2、软解码


1、旋变

旋转变压器(旋变),是电机控制中常用的一种位置传感器,用来反应电机的转子位置,提供给软件做电机控制等相关算法。

如上图所示,旋变也可以理解为是一个小电机,也分定子与转子,通常旋变的转子安装在电机的转轴上,与电机同步旋转,并在定子线圈中感应出位置信息,由定子线圈传递出来,得到最终的位置。

旋变的结构示意图如上图所示,中间的R1R2线圈为转子线圈,S1S2、S3S4分别为互相垂直的定子线圈,当R1R2中通入的是高频正弦信号,我们通常称该信号为激励信号;此时会在次级线圈中感应出高频的感应信号,这个信号就包含了具有位置信息的包络信号;我们将返回的感应信号提取包络,就可以获取对应的正余弦信息;通过硬解码/软解码等方式解码后,可以得到定子的绝对位置信息(这里注意强调一下是绝对位置)。下面我们来推导一下这个过程:

假设激励信号为:

如上图中的位置所示,旋变的激励线圈与水平的夹角为θ

那么结合激励线圈中的信号,可以分别得到两个感应线圈中的信号分别为:

所以,我们能分别得到激励、正弦及余弦的波形如下:

其中正余弦的波形是幅值不断变化的正弦曲线,结合上面的方程不难理解,正弦曲线其实是激励源产生的,而之所以幅值会不断变化是因为旋转过程中,激励线圈与次级线圈的夹角 θ不断变化,所以产生了这种波形。而这个波形的外包络(即图中的黑线部分)就是我们所需要的正余弦信号。

所以,我们在解码过程中,只需要能够提取正余弦信号的外包络,就可以获取转子的绝对位置信息了。

那么,基于以上分析,了解了旋变的主要结构和工作原理以后,旋变的应用很重要的两个功能就是激励信号的产生和回采正余弦信号的外包络提取及角度计算(这一部分通常称为旋变解码)。

1.1、激励的产生

注意激励信号sin+与sin-是差分信号。

通过前面的介绍,我们知道旋变的工作需要一个高频的正弦信号输入,我们通常称为激励信号。而在实际的应用过程中,正弦曲线是无法通过MCU某个模块直接得到的。所以,我们很自然的能想到PWM调制技术,与电机控制一样,都是通过高频PWM的脉宽调制,最终达到近似输出正余弦电压的效果。

另一方面,除了MCU输出的高频PWM信号外,控制器硬件上也需要相关电路的匹配设计,硬件需要完成的功能有调整比例、调整偏置、增加驱动能力等,软硬件结合后才能够最终得到我们所需要的激励信号波形。关于旋变的硬件电路这部分,网上有很多可用的资源作为参考,这里不过多的介绍。

单片机产生的是输入信号,产生

产生的激励正负结果:

仿真得到的激励波形在峰值点有点削波的情况,这是由于在PWM生成的地方有两个relay模块,在PWM小脉宽的时候,可能不满足relay中buffer的设定,所以在峰值点的时候波形存在缺失。

1.2、旋变的标定

旋变的标定在日常工作中有很多通俗的说法,比如说零位角标定、电机角标等等。虽然说法不同,但是内容及功能是一致的,就是要知道旋变的零位与电机的零位之间的角度偏差。

旋变是一种绝对位置传感器,获取的是电机转子位置的绝对位置。但是我们电机控制的本质是定子磁场与转子磁场的相互作用,而定子磁场是通过输出电流得到的,所以我们需要的并不是转子的绝对位置,而是转子与定子之间的相对位置,有了相对位置,定子磁场才可以准确的输出。

旋变的标定需要寻找的是旋变的零位和电机零位的偏差,又由于旋变可以获取的是绝对位置,所以,实际应用过程中我们只要找到电机零位对应的旋变位置,其实就是旋变零位与电机零位的偏差了。

旋变其实也可以理解为一个小电机,因为旋变也有极对数的概念,为了方便我们通常会与大电机极对数相同的旋变来作为传感器,这样旋变解码出来的角度就是电机的电角度。如果二者之间的极对数不相等,那还存在换算的关系。

2、旋变解码

既然有了正确的激励,就有正确的返回值,当然也会经过一段sin/cos的电路,这部分不做分析了。然后就会到我们的MCU或者解码芯片了,由于回采的信号是带有sin/cos的外包络的高频信号,所以如何解码就成为获取电机转子位置很重要的一环了。既然有了正确的激励,就有正确的返回值,当然也会经过一段sin/cos的电路,这部分不做分析了。然后就会到我们的MCU或者解码芯片了,由于回采的信号是带有sin/cos的外包络的高频信号,所以如何解码就成为获取电机转子位置很重要的一环了。

注意上图波形sin的顶点与激励的(正负)顶点是对齐的。

这里按照解码的途径来分类有两种,分别是软解码和硬解码;如果按照解码的思路来分类也分为两种,可以分为反正切和锁相环。无论是什么样的处理思路,都需要先提取正余弦返回信号的外包络,这里也分为两种方式,分别是取极值点和积分法。

2.1、旋变硬解码

所谓旋变硬解码就是利用硬件来对旋变信号进行处理,当然也包括激励信号的生成。只不过是一颗独立的解码芯片来完成而已。同样的,对于反馈正余弦信号的处理也是由解码芯片完成,最终将解码的结果通过SPI/并口/ABZ等通信的方式传输给MCU。MCU获取的就是最终我们所需要的位置信息或者转速信息。

接下来以AD2S1200为例,简单的介绍一下硬解码的解码方式和解码原理:

关于具体功能,大家可以参看datasheet中的说明,这里强调一点,就是激励信号为什么要搭配外围的电路。因为无论是MCU产生的高频PWM还是解码芯片产生的激励信号,输出能力都是不够的,所以外围要增加缓冲放大电路来保证性能。

AD2S1200中采用的是Type II型闭环跟踪原理,这部分在芯片的datasheet中有描述。我们软解码中其实应用的也是这个原理,只不过是用软件实现了。下面简单介绍一下II型闭环跟踪原理:

转换器产生输出角ϕ(追踪的这个角来自于芯片内部的计算,将前一次输出的转速经过积分得到的角度,再次给到下一个周期的输入),反馈后与输入角θ进行比较,借此来达到跟踪轴角θ的目的;两个角度之差即为误差,如果转换器正确跟踪输入角,误差趋于0。为了测量误差,将S3-S1乘以cosϕ,并将S2-S4与sinϕ相乘。得到手册中的公式:

上面两式作差

括号外面的部分是激励信号的表达式,而括号中的角度是我们需要的追踪结果,所以,我们只需要看括号内的表达式,利用和差化积可以将括号中的表达式进行转化:

Type-II跟踪环路消除了误差信号,完成该操作后,ϕ等于旋转角θ。由于计算的相邻周期间的角的误差,所以得到的结果是加速度,积分后得到速度,再积分后得到位置信息。

而手册中在CIRCUIT DYNAMICS中,又详细介绍了Type-II跟踪环路系统:

首先是当前的sin/cos输入,并与上一个周期的结果作差,然后经过和差化积运算,可以得到角度差,即为加速度。经过第一个积分器,可以得到速度。中间经过一个补偿滤波器(compensation filter),用于提供相位裕量并减小高频噪音的增益。速度结果再经过第二个积分器,得到最终的位置输出。然后该位置结果经过正余弦的查表,得到正余弦结果再跟下一个周期采集到的正余弦信息计算下一个周期的结果。

在硬解码中,很重要的一点理解就是高频返回信号的解码,这里有一个模块叫做检波器,配合激励的波形,这个检波器最重要的功能就是将包络提取出来,具体的电路形式可以搜索获取,比如包络检波器、极值检波器等等,匹配好电路中低通滤波器及检波器的参数,就可以实现基本的功能。实现了外包络提取后,再进行积分运算。

2.2、软解码

与硬解码的原理相同,完成位置信号获取最重要的是激励信号的产生、外包络的提取及角度的计算。激励的产生原理与硬解码相同,下面主要介绍一下外包络的提取方式及角度的解码方式。

外包络的提取方式主要可以分为两种:峰值提取和积分提取。

峰值提取法顾名思义就是要提取每个高频正余弦波的峰值,如下图所示

在前一篇文章中我们提到过,返回的正余弦高频信号的方程分别为:

用Vb/Va=tan(θ),可以用这个结果直接利用查表(acrtan表格)就可以得到转角θ。

积分方式提取,我们比较常用的是直接借助英飞凌的DSADC模块完成软解码的功能。与硬解码原理相似,主要的差异体现在正余弦外包络提取的方法上,采用的是DSADC中的积分器完成。

首先介绍一下整个的解调原理:

主要过程分为以下几个步骤:

·滤波;

·展开:将一个载波周期内的波形展开,并提取其中的滤波结果(图中为14个点)

·符号:在载波信号生成的同时会生成一个符号,当在载波信号生成的正半周期时,符号为+1;当在载波周期的负半周期时,符号为-1;

·整形:结合前一步的符号信息,将一个载波周期内的波形进行翻转,正半周期的波形向正半轴翻转;负半周期向负半轴翻转;

·聚拢:同样的方法对每一个载波周期的波形进行处理,可以得到上图中第五步的波形,正半周期的波形全部为正;负半周期的波形全部为负;

·积分:分别对两个波形进行积分:

由上式可以看出,经过积分后的波形只与激励的幅值和当前的角度θ相关,与激励是无关的。所以,通过积分提取外包络得到实现。

在这个过程中,其实最重要的就是整形这一步,因为其他部分的原理与硬解码基本类似,而且整形这个过程牵扯到如何准确的实现波形的翻转,是得到正确积分结果的基础。

在前面的载波生成中我们提到过,在生成载波的同时也会同步生成一个符号,用来区分载波的正半周期和负半周期。

首先需要介绍几个概念,第一个是捕捉的延时CAP值,这个是指实际的正余弦翻转与载波生成的翻转信号之间的延时;第二个是抽取率M,这个指标确定了在一个周期内,我们的数据个数,或者说在一个完整的载波周期内的PWM个数。其实不难理解,这个PWM的个数与总线频率和正弦频率有关,假设一个周期内的PWM周期有32个,那么很容易得到半个周期就是16个,再加上延时的CAP值,那么我们就得到了正负翻转的计数点为16+CAP。这个模块中的CAP每捕捉一次就会触发一个中断,在中断里会刷新这个延时。当载波符号改变后,表示生成的载波已经改变了方向,此时开始计数;直到滤波后第一个符合符号的结果出现,这个计数的结果就是CAP的延时。

关于时序的问题,以TC277为例,它的总线频率为200MHz,按照配置的方式,我们可以产生的PWM频率为312.5kHz;而一个包络的周期包含32个PWM周期,所以正余弦的周期为9.76kHz。而我们通常的控制频率(电流环)都不是9.76kHz,意味着如果在电流环中处理角度的话,电流环与软解码之间是不同步的,存在时间差,在实际应用过程当中,一定要注意两个不同频率之间的角度差。再一个需要补偿采样、计算等方面的延时,否则角度也会存在偏差。

关于角度计算,我们提出了两种计算方式,分别是反正切查表和观测器的方式实现,两种方式的优缺点为:

·反正切:

抗噪性较差,

静态波动较大,

无额外延迟

计算时间长

·观测器:

抗噪性好

静态数据稳定

加减速时有静态误差

同时产生速度值

最后补充一句,在软解码的实现过程中,旋变的反馈波形并不一定很完美,这里可能需要对幅值、相位、中性点等进行校正。校正的算法目前比较成熟且统一,不做介绍了。

相关推荐
初心不忘产学研1 个月前
如何对物理系统进行数学建模?
算法·数学建模·电机控制·双惯量旋转系统·简化数学模型·数学建模方法·负载工艺建模
别问,问就是全会1 个月前
FOC矢量控制
电机控制·svpwm·foc·bldc
剑从东方起2 个月前
汽车电子笔记之-013:旋变硬解码ADI芯片AD2S1210使用记录(从零开始到软件实现)
电机控制·ad2s1210
LabVIEW开发2 个月前
LabVIEW回转马达试验系统
labview·电机控制
烦恼归林4 个月前
电机控制杂谈——以袁雷老师滑模控制模型为例子,如何搭建准确的电机仿真模型
matlab·电机·电力电子·电机控制·永磁同步电机
朴人4 个月前
【从零开始实现stm32无刷电机FOC】【理论】【3/6 位置、速度、电流控制】
stm32·单片机·嵌入式硬件·电机控制·foc
shadow3D5 个月前
嵌入式PID算法总结
嵌入式·pid·电机控制·cmsis-dsp·温度控制
初心不忘产学研5 个月前
软件方案评审与模块优化:从FOC模块出发的电控平台建设
产品运营·团队开发·电机控制·控制算法·软件方案·模块优化·软件平台
爱出名的狗腿子6 个月前
细说SVPWM原理及软件实现原理,关联PWM实现
mcu·嵌入式·电机控制·svpwm·foc·无刷电机·矢量控制