一种获取永磁同步电机位置信号的方法与流程

文档序号:33120087发布日期:2023-02-01 03:35阅读:36来源:国知局
一种获取永磁同步电机位置信号的方法与流程

1.本发明属于永磁同步电机控制技术领域,具体涉及一种获取永磁同步电机位置信号的方法。


背景技术:

2.永磁同步电机作为车辆的主要驱动力输出机构,其高效稳定的工作是车辆稳定性输出的必要环节。而作为永磁同步电机控制的关键,电机位置信号的准确获取至关重要,其直接影响到永磁同步电机的交直轴解耦控制的准确性,最终影响电驱系统输出的功率、效率、功率因数等关重特性。
3.为获取永磁同步电机的位置信号,设计人员往往采用spi通信的方式对旋变解码芯片进行通信控制,以获取较为准确的永磁同步电机位置信号,进而支撑永磁同步电机的精确控制,但旋变解码芯片数据输出时序复杂,涉及引脚较多,这使得目前主要是通过手写代码的方式现永磁同步电机位置信号的获取。但是,手写代码的方式不利于复杂工程的明确分工,而且在不同工程环境下手写代码需要进行较大的改变,不能实现快速迭代。


技术实现要素:

4.有鉴于此,本发明提供了一种获取永磁同步电机位置信号的方法,该方法通过利用包括永磁同步电机、旋转变压器、旋变解码芯片以及dsp芯片在内的硬件连接组成的硬件系统,基于matlab模型全代码生成的方式实现了永磁同步电机位置信号的快速获取。
5.本发明采用以下技术方案:
6.一种获取永磁同步电机位置信号的方法,其步骤包括:
7.步骤一:将永磁同步电机、旋转变压器、旋变解码芯片以及dsp芯片连接,组成获取所述永磁同步电机位置信号的硬件系统;
8.步骤二:在matlab中构建三个函数,分别为函数一、函数二以及函数三,所述函数一、所述函数二以及所述函数三通过所述dsp芯片的spi接口依次完成所述永磁同步电机位置信号读取准备就绪、位置信号读取以及位置信号读取完成。
9.进一步地,所述函数一包括spi master transfer模块,且将所述旋变解码芯片的采样接口的采样时刻与所述旋变解码芯片的数据输出时序匹配,数据位为所述旋变解码芯片的有效信息位,片选模式设置为来自spi外设,输入hex2dec('ff00')常量,输出连接terminator模块。
10.进一步地,所述函数二包括第一模块与第二模块;
11.所述第一模块包括spi master transfer模块,且将所述旋变解码芯片的采样接口的采样时刻与所述旋变解码芯片的数据输出时序匹配,数据位为所述旋变解码芯片的有效信息位,片选模式设置为来自spi外设,输入为hex2dec('0000')常量,输出与所述第二模块的输入连接;
12.所述第二模块通过对所述第一模块的输出进行运算获得所述永磁同步电机位置
信号。
13.进一步地,所述第二模块通过以下步骤获得所述永磁同步电机位置信号:
14.步骤a:通过下式获得所述永磁同步电机当前位置信号θe:
15.θe=angular_digit*2*π/4095
16.上式中θe为所述永磁同步电机当前位置信号,angular_digit为所述第一模块输出的数据位中对应所述旋变解码芯片分辨率的数字量;
17.步骤b:通过以下方式获得所述永磁同步电机当前位置信号取正后的位置信号θ
abs

18.如果满足:
19.θ
e-θ
init
》0,
20.那么,
21.θ
abs
=θ
e-θ
init

22.否则,
23.θ
abs
=θ
e-θ
init
+2π;
24.步骤c:通过以下方式获得所述永磁同步电机控制实际所需位置信号θ
dq

25.如果:
26.θ
abs
*pm/pr》2π
27.那么:
28.θ
dq
=θ
abs
*pm/p
r-2π
29.否则:
30.θ
dq
=θ
abs
*pm/pr31.其中,pr为所述旋转变压器的极对数,pm为所述永磁同步电机的极对数。
32.进一步地,所述函数二还包括第三模块;
33.所述第三模块的输入与所述第一模块的输出连接,通过对所述第一模块的输出进行运算获得所述永磁同步电机转速信号。
34.进一步地,所述第三模块通过以下步骤获得所述永磁同步电机电角速度:
35.步骤1:通过以下方式进行零点判断:
36.如果:
37.|4095-angular_digit|≤δ
38.或者:
39.|angular_digit|≤δ
40.那么所述永磁同步电机当前位置信号处于过零状态,否则所述永磁同步电机当前位置信号处于非过零状态;
41.其中,angular_digit为所述第三模块当前读取得到的0~fff中的某个数值,δ为根据工况设置的极小值。
42.步骤2:如果所述永磁同步电机当前位置信号处于非过零状态,按下式计算所述永磁同步电机电角速度:
[0043][0044]
d(k)为第k个时钟周期通过spi接口读取得到数字量的高十二位,d(k-1)为第(k-1)个周期通过spi接口读取得到数字量的高十二位,ts为所述永磁同步电机控制算法执行的中断周期,ωr为所述永磁同步电机旋转的电角速度;
[0045]
否则,保持上一个周期的所述永磁同步电机电角速度。
[0046]
进一步地,所述函数三包括spi master transfer模块,且将所述旋变解码芯片的采样接口的采样时刻与所述旋变解码芯片的数据输出时序匹配,数据位为十六位,片选模式设置为来自spi外设,输入hex2dec('ff00')常量,输出连接terminator模块。
[0047]
进一步地,在所述步骤一中将所述旋变解码芯片设置为串行通信模式。
[0048]
进一步地,在所述步骤二中,通过matlab模型的initialize function模块,将所述旋变解码芯片的输出信号设置为位置信号,并将所述spi接口工作模式设置为主机模式。
[0049]
进一步地,在所述步骤一中将所述旋变解码芯片的sample引脚与所述dsp芯片的spisimo引脚连接,将所述旋变解码芯片的so引脚与所述dsp芯片的spisomi引脚连接,将所述旋变解码芯片的cs引脚与所述dsp芯片的spisteb引脚连接,将所述旋变解码芯片的clk引脚与所述dsp芯片的spiclk引脚连接。
[0050]
有益效果:
[0051]
(1)本发明的一种获取永磁同步电机位置信号的方法,将永磁同步电机、旋转变压器、旋变解码芯片以及dsp芯片连接组成获取永磁同步电机位置信号的硬件系统,并在此基础上,基于matlab的全代码生成,在matlab中构建与旋变解码芯片工作时序配合的函数一、函数二以及函数三,函数一、函数二以及函数三通过spi接口依次完成对永磁同步电机位置信号读取准备就绪、位置信号读取以及位置信号读取完成的工作,能够准确获取永磁同步电机位置信号,能极大程度上提高永磁同步电机控制模型获取电机位置信号的效率;
[0052]
而且,在更换旋变解码芯片或电解控制系统的设计方案时,只需适应性地替换函数一、函数二、函数三中涉及到的与spi通信有关的部分即可,其余部分不需更改,如此,加快了迭代。
[0053]
(2)本发明的一种获取永磁同步电机位置信号的方法,对旋转变压器与永磁同步电机极对数相同或者不同的情形,通过函数二都能够快速获得永磁同步电机当前位置信号以及实现永磁同步电机控制实际所需位置信号,满足了永磁同步电机控制的需求。
[0054]
(3)本发明的一种获取永磁同步电机位置信号的方法,函数二通过设置第三模块,还能够快速获取永磁同步电机的电角速度,进而通过电角速度能够获得永磁同步电机机械旋转速度,满足了永磁同步电机实际控制所需参数的量。
[0055]
(4)本发明的一种获取永磁同步电机位置信号的方法,函数二中的第三模块在求解永磁同步电机电角速度时,充分考虑永磁同步电机当前位置信号过零状态与非过零状态,使结果更加准确可靠。
[0056]
(5)本发明的一种获取永磁同步电机位置信号的方法,旋变解码芯片设置为串行通信模式,数据传输速率较高。
[0057]
(6)本发明的一种获取永磁同步电机位置信号的方法,通过matlab模型的
initialize function模块,将旋变解码芯片的输出信号设定为位置信号,并将spi接口工作模式设置为主机模式,此时便可直接读取旋变解码芯片相应的so引脚上传出的数据值,进而解析获取永磁同步电机位置。
附图说明
[0058]
图1为本发明实施例的硬件设计图;
[0059]
图2为本发明实施例旋变解码芯片ad2s1200数据输出时序;
[0060]
图3为本发明实施例在matlab中构建的三个函数;
[0061]
图4为本发明实施例的流程图;
[0062]
图5为本发明实施例函数一中的模块示意图;
[0063]
图6为本发明实施例函数二的各模块连接示意图;
[0064]
图7为本发明实施例函数二中第二个模块的结构示意图;
[0065]
图8为本发明实施例函数二中第三个模块的结构示意图;
[0066]
图9为本发明实施例函数三中的模块示意图。
具体实施方式
[0067]
下面结合附图1-图9并举实施例,对本发明进行详细描述。
[0068]
本发明的获取永磁同步电机位置信号的方法按照下述步骤实现:
[0069]
步骤一:将永磁同步电机、旋转变压器、旋变解码芯片以及dsp芯片连接,组成获取永磁同步电机位置信号的硬件系统;
[0070]
步骤二:基于matlab的全代码生成,在matlab中的simulink中构建三个函数(或者说三个控制系统),分别为函数一、函数二以及函数三,函数一、函数二以及函数三通过dsp芯片的spi接口依次完成永磁同步电机位置信号读取准备就绪、位置信号读取以及位置信号读取完成三个功能。
[0071]
该获取永磁同步电机位置信号的方法将永磁同步电机、旋转变压器、旋变解码芯片以及dsp芯片连接组成获取永磁同步电机位置信号的硬件系统,并在此基础上,基于matlab的全代码生成,在matlab中构建函数一、函数二以及函数三通过spi接口依次对永磁同步电机位置信号进行读取准备就绪、位置信号读取以及位置信号读取完成,实现方法简单,而且模型简洁易于工程化,能够准确获取永磁同步电机位置信号,能极大程度上提高永磁同步电机控制模型获取电机位置信号的效率。
[0072]
该获取永磁同步电机位置信号的硬件系统中,旋变解码芯片可以为ad2s1200、ad2s1210等多款旋变解码芯片,本实施例选择ad2s1200,旋变解码芯片ad2s1200为5v供电,信息有效位数为12位,故在与dsp芯片等3.3v芯片进行通信时需通过电平转换芯片进行通信电平的转换。而旋变解码芯片ad2s1210的逻辑电平可灵活设置为5v或3.3v,故在逻辑电平设置为3.3v时,可舍去对电平转换芯片的设置,且其有效信息位为16位。因为旋变解码芯片ad2s1200可实现无转换滞后的持续电机位置数据输出,且在12位分辨率的情况下,其最大跟踪速度可达1000rps。此外,旋变解码芯片ad2s1200自带系统故障检测,其检测电路可实时监控旋变信号的丢失、输入超程量、输入不匹配或位置跟踪丢失。
[0073]
将永磁同步电机、旋转变压器、旋变解码芯片ad2s1200以及dsp芯片连接,组成获
取永磁同步电机位置信号的硬件系统如图1所示(图1中未出永磁同步电机),具体来说,在该硬件系统中将旋变解码芯片ad2s1200的cs引脚与rd引脚短接,soe引脚通过0ω电阻下拉至gnd,其余引脚按照芯片手册要求连接即可,即把旋变解码芯片ad2s1200的通信模式设置为串行通信模式。由于旋变解码芯片ad2s1200与dsp芯片之间的引脚连接由于电平不一致,需增设5v转3.3v的电平转换芯片,将spi串行通信引脚经由电平转换芯片转换,并将旋变解码芯片ad2s1200的sample引脚与dsp芯片的spisimo功能引脚相关联(或者说相连接,下同),旋变解码芯片ad2s1200的so引脚与dsp芯片的spisomi功能引脚相关联,旋变解码芯片ad2s1200的cs引脚与dsp芯片的spisteb引脚相关联,旋变解码芯片ad2s1200的clk引脚与dsp芯片的spiclk引脚相关联。至于旋转变压器与旋变解码芯片以及永磁同步电机之间的连接,按照通用连接方式进行连接即可,此处不再赘述。
[0074]
根据如图2所示的旋变解码芯片ad2s1200的数据输出时序图,需在访问控制的初始阶段,将旋变解码芯片ad2s1200的sample_n引脚拉低t1时间,之后将cs_n引脚拉低,直至整个访问控制周期结束后方可拉高,在此过程中需将rd_n引脚拉低保持为持续读取状态,同时通过设置rdvel_n引脚的高低状态,控制旋变解码芯片ad2s1200输出的信号为位置信号,此时便可直接读取相应的so引脚上传出的数据值,进而解析获取位置信号。另外,在结束整个访问过程时,需拉高sample_n持续至少t1时间,以结束整个访问过程。
[0075]
为满足上述的控制时序,需在matlab模型的initialize function模块中,通过gpio引脚对旋变解码芯片ad2s1200的rdvel_n引脚进行拉低处理,将旋变解码芯片ad2s1200的输出信号设定为位置信号输出,且在硬件实现界面中设置spi接口时钟周期为10mhz,工作模式为主机模式。
[0076]
如图3所示,分三个函数(即分别为函数一、函数二与函数三)对永磁同步电机位置信号进行获取,并通过matlab的function-call split以及function-call generator功能设定好位置信号读取过程中函数执行的前后顺序,即函数一先执行,然后函数二执行,最后是函数三执行。
[0077]
参照图4~图9,在函数一中,包括matlab自带的c28x中的spi master transfer模块,并使旋变解码芯片的采样接口的采样时刻与旋变解码芯片的数据输出时序匹配,将该模块设置为clk引脚上升沿延迟半个周期通过sample_n引脚读取,,数据位为16位,且片选模式选定为来自spi外设,向该模块输入hex2dec('ff00')常量,该spi master transfer模块的输出连接terminator模块,用于完成永磁同步电机位置信号读取准备就绪工作。
[0078]
具体地,如图6,函数二由三个模块构成,其中第一模块获取永磁同步电机当前位置信号对应的数字量,其输出与第二模块以及第三模块的输入连接。第二模块利用第一模块输出的数字量通过运算获取永磁同步电机的位置信号,第三模块利用第一模块输出的数字量通过运算获取永磁同步电机的机械转速。
[0079]
具体地,参照图6与图7,第一模块包括matlab自带的c28x中的spi master transfer模块,并使旋变解码芯片的采样接口的采样时刻与旋变解码芯片的数据输出时序匹配,将该模块设置为clk引脚上升沿延迟半个周期通过sample_n引脚读取,数据位为16位,且片选模式选定为来自spi外设。向该模块输入hex2dec('0000')常量,输出信号为16位数字量,该数字量中的高12位(与旋变解码芯片的分辨率对应)对应永磁同步电机当前旋转的位置信号。
[0080]
在第二模块中,通过如下转换关系获得永磁同步电机当前位置信号:
[0081]
θe=angular_digit*2*π/4095
[0082]
上式中θe为永磁同步电机当前位置信号,angular_digit为matlab自带的c28x中的spi master transfer模块所输出的高12位数字量。
[0083]
在此基础上,在第二模块中,假设永磁同步电机初始位置信号为θ
init
,θ
abs
为永磁同步电机当前位置信号取正后的位置信号,
[0084]
如果满足:
[0085]
θ
e-θ
init
》0
[0086]
那么,
[0087]
θ
abs
=θ
e-θ
init
[0088]
否则,
[0089]
θ
abs
=θ
e-θ
init
+2π
[0090]
在得到永磁同步电机当前位置信号取正后的位置信号θ
abs
的基础上,在第二模块中,假设永磁同步电机控制实际所需的位置信号为θ
dq
,为获得该实际所需的位置信号为θ
dq
,则对取正后的位置信号θ
abs
进行倍乘之后将位置信号的值域限制在[0,2*π]的范围,具体地:
[0091]
如果满足下式:
[0092]
θ
abs
*pm/pr》2π
[0093]
那么:
[0094]
θ
dq
=θ
abs
*pm/p
r-2π
[0095]
否则:
[0096]
θ
dq
=θ
abs
*pm/pr[0097]
pr为旋转变压器的极对数,pm为永磁同步电机的极对数。
[0098]
经过上述处理,可得到永磁同步电机控制实际所需的位置信号为θ
dq

[0099]
更进一步,利用第三个模块获取永磁同步电机的转速信号,其中包括了其电角速度和机械旋转速度。
[0100]
具体地,参照图6与图8,在获取第一个模块解析得到永磁同步电机当前位置信号对应的数字量后,为获得转速信号,第三模块需进行过零点判断,具体地,需判断第三模块当前读取得到的0~fff中的某个实际计数值(angular_digit)是否满足与计数上限4095的差值或者与计数下限0的差值小于某一个极小的设定值δ(根据工况设定,本实施例为235),如果满足,那么永磁同步电机当前位置信号处于过零状态(zero_cross_flag=1),否则永磁同步电机当前位置信号处于非过零状态(zero_cross_flag=0)。即:
[0101]
如果:
[0102]
|4095-angular_digit|≤δ
[0103]
或者:
[0104]
|angular_digit|≤δ
[0105]
那么所述永磁同步电机当前位置信号处于过零状态,否则所述永磁同步电机当前位置信号处于非过零状态。
[0106]
在位置信号非过零状态(zero_cross_flag=0)下对所读取的数字量求取微分,即
通过此时获得的位置信号减去上一时刻的位置信号并且取绝对值后再除以执行周期,进而获得永磁同步电机的电角速度,具体地,永磁同步电机旋转的电角速度ωr的计算公式如下:
[0107][0108]
上式中,d(k)表示第k个时钟周期通过spi接口读取得到数字量的高12位,d(k-1)表示第k-1个周期通过spi接口读取得到数字量的高12位,ts表示永磁同步电机控制算法执行的中断周期,ωr表示的即为永磁同步电机旋转的电角速度。
[0109]
在过零状态(zero_cross_flag=1)下,则保持上一个周期求解获取的电角速度。
[0110]
在此基础上,考虑到信号干扰等因素,可以采用传统的滤波方式对其转速信号进行滤波,然后结合永磁同步电机机械转速与电角速度的关系求得永磁同步电机的机械旋转速度。
[0111]
如图9所示,在函数三中,包括matlab自带的c28x中的spi master transfer模块,并使旋变解码芯片的采样接口的采样时刻与旋变解码芯片的数据输出时序匹配,将该模块设置为clk引脚上升沿延迟半个周期通过sample_n引脚读取,,数据位为16位,且片选模式选定为来自spi外设,该模块的输入为hex2dec('00ff')常量,输出连接terminator模块,通过函数三为永磁同步电机下一个周期的位置信号读取做好准备。
[0112]
综上所述,以上仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1