CN115542807A - 一种基于fpga确定电角度的方法、装置及介质 - Google Patents
一种基于fpga确定电角度的方法、装置及介质 Download PDFInfo
- Publication number
- CN115542807A CN115542807A CN202211200097.1A CN202211200097A CN115542807A CN 115542807 A CN115542807 A CN 115542807A CN 202211200097 A CN202211200097 A CN 202211200097A CN 115542807 A CN115542807 A CN 115542807A
- Authority
- CN
- China
- Prior art keywords
- sine
- cosine
- value
- values
- determining
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B19/00—Programme-control systems
- G05B19/02—Programme-control systems electric
- G05B19/04—Programme control other than numerical control, i.e. in sequence controllers or logic controllers
- G05B19/042—Programme control other than numerical control, i.e. in sequence controllers or logic controllers using digital processors
- G05B19/0423—Input/output
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F15/00—Digital computers in general; Data processing equipment in general
- G06F15/76—Architectures of general purpose stored program computers
- G06F15/78—Architectures of general purpose stored program computers comprising a single central processing unit
- G06F15/7867—Architectures of general purpose stored program computers comprising a single central processing unit with reconfigurable architecture
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G05—CONTROLLING; REGULATING
- G05B—CONTROL OR REGULATING SYSTEMS IN GENERAL; FUNCTIONAL ELEMENTS OF SUCH SYSTEMS; MONITORING OR TESTING ARRANGEMENTS FOR SUCH SYSTEMS OR ELEMENTS
- G05B2219/00—Program-control systems
- G05B2219/20—Pc systems
- G05B2219/24—Pc safety
- G05B2219/24215—Scada supervisory control and data acquisition
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Automation & Control Theory (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Transmission And Conversion Of Sensor Element Output (AREA)
Abstract
本发明公开了一种基于FPGA确定电角度的方法、装置及介质,适用于电机智能化控制技术领域。该方法在原有查找表的基础上,根据RAM的查找表和编码器的分辨率得到对应的正余弦地址索引和地址索引补充值以扩充数据,进一步通过分时复用原理,将两值确定初始正余弦值,最后确定最终正余弦值以提高电角度处理得到的正余弦值准确性,提高电角度的精度。相对于现有的仅查表方式获得得到的正余弦值,本发明利用较少的FPGA资源,弥补表格的少数据量以扩充数据,得到具有较高精度的正余弦值。
Description
技术领域
本发明涉及电机智能化控制技术领域,特别是涉及一种基于FPGA确定电角度的方法、装置及介质。
背景技术
现场可编程门阵列(Field-Programmable Gate Array,FPGA)读取编码器实时位置后,为了计算编码器实时位置对应的电角度的正余弦值,其常用的方法可以传给ARM处理器(Advanced RISC Machines,ARM)或者微处理器(Digital Signal Processor,DSP)处理得到正余弦值,然后将正余弦值传送至FPGA;或者使用FPGA编写cordic子程序处理得到实时位置对应的电角度的正余弦值,或者可以通过FPGA内建的正余弦查找表得到。
上述的常用方法中前两种通过回传或者算法内部执行较为复杂,导致计算和执行时间较长。后一种虽解决了前两种方法的执行计算的时间长问题,但是直接内建正余弦查找表,受限于FPGA的逻辑资源,表格的数据量较少,其得到的正余弦值的精度较低,波动较大。
因此,如何提高通过FPGA得到的电角度正余弦值的精度是本领域技术人员亟需要解决的。
发明内容
本发明的目的是提供一种基于FPGA确定电角度的方法、装置及介质,利用较少的FPGA资源,弥补表格的少数据量以扩充数据,得到具有较高精度的正余弦值。
为了解决上述技术问题,本发明提供一种基于FPGA确定电角度的方法,包括:
获取编码器的编码器位置值,并对编码器位置值进行补偿处理得到各补偿位置值;
根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值;
通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值;
通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值。
优选地,RAM的查找表的建立过程包括:
获取固定点数的正弦值或余弦值;
根据各固定点数的正弦值或余弦值进行定点化处理得到对应的正弦值表或余弦值表;
将正弦值表或余弦值表存储至FPGA的RAM中以建立查找表。
优选地,对编码器位置值进行补偿处理得到各补偿位置值,包括:
将编码位置值进行park变换补偿角度和反park变换补偿角度得到对应的第一补偿位置值和第二补偿位置值。
优选地,根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值,包括:
根据查找表和编码器的分辨率确定各补偿位置值的数据转换字节表;
在数据转换字节表内根据各补偿位置值确定正余弦地址索引和地址索引补充值;
对应地,根据查找表和编码器的分辨率确定各补偿位置值的数据转换字节表,包括:
获取RAM的查找表内的正余弦值个数以确定对应的正余弦数值,其中查找表内的正余弦值为正弦值或余弦值,当查找表为正弦值时,余弦值的获取通过查找表内的正弦值偏置得到;
获取查找表内的电角度范围以及编码器的分辨率对应的位数,其中若编码器的分辨率不为2的指数时,放大编码器的数值以得到接近2的指数获取得到编码器的分辨率对应的位数;
根据正余弦数值、电角度范围以及位数确定当前补偿位置值的数据转换字节表,其中当前补偿位置值为第一补偿位置值或第二补偿位置值。
优选地,在数据转换字节表内根据各补偿位置值确定正余弦地址索引和地址索引补充值,包括:
根据电角度范围确定数据转换字节表中的查找表扇区索引位数;
根据正余弦值个数确定数据转换字节表中以查找表扇区索引位数后的查找表地址索引位数;
在数据转换字节表除查找表扇区索引位数和查找表地址索引位数的位数之外确定为查找表角度校正值;
获取当前补偿位置值进行二进制处理后得到的数据输入至数据转换字节表内以作为转换数据;
在转换数据中根据对应的查找表扇区索引位数和查找表角度校正值的位置确定当前补偿位置值的正余弦地址索引和地址索引补充值。
优选地,通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值,包括:
获取各补偿值对应的映射电角度值;
根据各映射电角度值和地址索引补充值对应的电角度分别进行查表处理得到对应的初始正余弦值和正余弦补充计算值;
根据正余弦补充计算值与初始正余弦值进行做差处理得到正余弦值校正偏差值,其中正余弦校正偏差值包括正弦校正偏差值和余弦校正偏差值;
将正余弦校正偏差值、校正系数以及数据移位位数的关系确定对应的正余弦校正值,其中数据移位位数根据查找表中存储的正余弦值个数、编码器的分辨率的位数和查找表扇区索引位数的关系确定得到。
优选地,通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值,包括:
将当前初始正余弦值和当前正余弦校正值相加得到对应的最终正余弦值。
为了解决上述技术问题,本发明还提供一种基于FPGA确定电角度的装置,包括:
补偿模块,用于获取编码器的编码器位置值,并对编码器位置值进行补偿处理得到各补偿位置值;
第一确定模块,用于根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值;
第二确定模块,用于通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值;
第三确定模块,用于通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值。
为了解决上述技术问题,本发明还提供一种基于FPGA确定电角度的装置,包括:
存储器,用于存储计算机程序;
处理器,用于执行计算机程序时实现如上述的基于FPGA确定电角度的方法的步骤。
为了解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述的基于FPGA确定电角度的方法的步骤。
本发明提供的一种基于FPGA确定电角度的方法,包括:获取编码器的编码器位置值,并对编码器位置值进行补偿处理得到各补偿位置值;根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值;通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值;通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值。该方法在原有查找表的基础上,根据RAM的查找表和编码器的分辨率得到对应的正余弦地址索引和地址索引补充值以扩充数据,进一步通过两值确定初始正余弦值,最后确定最终正余弦值以提高电角度处理得到的正余弦值准确性,提高电角度的精度。相对于现有的仅查表方式获得得到的正余弦值,本发明利用较少的FPGA资源,弥补表格的少数据量以扩充数据,得到具有较高精度的正余弦值,同时基于FPGA执行,缩短执行时间和提高资源利用率。
另外,本发明还提供了一种基于FPGA确定电角度的装置及介质,具有如上述基于FPGA确定电角度的相同的有益效果。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种基于FPGA确定电角度的方法的流程图;
图2为本发明实施例提供的一种基于FPGA确定电角度的装置的结构图;
图3为本发明实施例提供的另一种基于FPGA确定电角度的装置的结构图;
图4为本发明实施例提供的一种基于FPGA确定电角度的装置结构图;
图5为本发明实施例提供的一种基于FPGA确定电角度的装置处理时序图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下,所获得的所有其他实施例,都属于本发明保护范围。
本发明的核心是提供一种基于FPGA确定电角度的方法、装置及介质,利用较少的FPGA资源,弥补表格数据的少数据量以扩充数据,得到具有较高精度的正余弦值。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
需要说明的是,本发明提供的基于FPGA确定电角度的方法,可以应用于通用伺服驱动器、闭环矢量变频器中,通过编码器读取电角度进行的矢量闭环控制。电角度是实际的空间几何角度。电机每对极在定子内圆上所占的角度360°/p指的是实际的空间几何角度,这个角度被称为机械角度。在四极及以上极数的电机中常常把一对极所占的机械角度定义为360度电角度,这是因为绕组中感应电势变化一个周期为360°。对于两极电机,其定子内圆所占电角度和机械角度相等均为360°;而p对极电机,其定子内圆全部电角度为360°·p,但机械角度却仍为360°。所以二者存在着电角度=机械角度×极对数的关系。
图1为本发明实施例提供的一种基于FPGA确定电角度的方法的流程图,如图1所示,该方法包括:
S11:获取编码器的编码器位置值,并对编码器位置值进行补偿处理得到各补偿位置值;
可以理解的是,电机的控制周期可以为编码器的采样周期,在一个控制周期内对编码器采样得到编码器位置值。在本发明实施例中对于编码器的类型不做限定,可以为光电编码器,可以为通讯式绝对值编码器,也可以为其他编码器,根据不同的编码器对应的采样处理不同。例如光电编码器,通过对A、B脉冲进行4倍频处理后进行数据累加得到编码器位置值count;通讯式绝对值编码器通过通讯解析得到编码器位置值count。
对得到的编码器位置值进行补偿处理得到各补偿位置值。具体地,补偿处理可以是根据电机与电角度的补偿得到,也可以根据速度延时与时间的关系确定补偿值等,对应的补偿条件不同,其得到的补偿值不同,在此不做限定,可以根据实际情况设定。为了在闭环矢量控制时进行park和反park变换,作为一种优选实施例,对编码器位置值进行补偿处理得到各补偿位置值,包括:
将编码位置值进行park变换补偿角度和反park变换补偿角度得到对应的第一补偿位置值和第二补偿位置值。
具体地,根据控制环路延时和电机的实际运行情况需要对位置值count补偿,通过park变换补偿角度和反park变换补偿角度得到对应的第一补偿位置值和第二补偿位置值。时间常数的变化体现的是角度的延迟或者超前,可以通过角度补偿的方式对其补偿。
S12:根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值;
具体地,RAM的查找表的建立,其根据正余弦值设置,例如0-360°,其查找表对应0-360°设置的正弦值或者余弦值,需要说明的是,查找表内设置正弦值,再根据角度的不同,进行的偏置或者再次根据正弦值设置的余弦值,也就是说,当前的查找表为一个正弦处理后的正弦值或者余弦处理后的余弦值。作为一种实施例,RAM的查找表的建立过程包括:
获取固定点数的正弦值或余弦值;
根据各固定点数的正弦值或余弦值进行定点化处理得到对应的正弦值表或余弦值表;
将正弦值表或余弦值表存储至FPGA的RAM中以建立查找表。
固定点数的正弦值或者余弦值可以作为正弦值或者余弦值的数值个数使用。关于定点化处理,需要说明的是,其在算法处理中经常遇到浮点数定点化的问题,故针对定点化处理可以在为小数的基础上扩大整倍数以取得对应的整倍数,或者扩大整倍数(或者移位)截取位宽处理,以得到对应的正弦值表或余弦值表并存储值RAM中。
另外,通过查找表和编码器的分辨率对各补偿位置值分别查表处理得到对应的正余弦地址索引和地址索引补充值。结合补偿处理后的第一补偿位置值和第二补偿位置值,第一补偿位置值通过查表得到正弦地址索引和正弦角度校正值、余弦地址索引和余弦角度校正值;第二补偿值通过查表得到正弦地址索引和正弦角度校正值、余弦地址索引和余弦角度校正值。
S13:通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值;
具体地,分时复用(Time Division Multiplexing,TDM),是采用同一物理连接的不同时段来传输不同的信号,能达到多路传输的目的。在网络中应用于用一条线路传输多路数据。分时复用以时间作为信号分割传输的参量,故必须使各路信号在时间轴上互不重叠,从而使不同的信号在不同的时间内传送。
将整个传输时间分割为互不重叠的时间间隔,又称为时隙。分时复用技术将这些时隙分配给每一个信号源使用,每个时隙只能被一路信号占用。分时复用通过在时间上交叉发送每一路信号的一部分来实现一条电路传送多路信号。电路上的每一短暂时刻只有一路信号存在。分时复用适用于数字信号的传输。因数字信号是有限个离散值,所以分时复用技术广泛应用于包括计算机网络在内的数字通信系统。
通过分时复用,将第一补偿位置值对应的正弦地址索引和正弦角度校正值处理得到初始正弦值。将第一补偿位置对应的余弦地址索引和余弦角度校正值处理得到初始余弦值。将第二补偿位置值对应的正弦地址索引和正弦角度校正值处理得到初始正弦值。将第二补偿位置对应的余弦地址索引和余弦角度校正值处理得到初始余弦值。
第一补偿位置值对应的校正值为正弦校正值和余弦校正值,同理,第二补偿位置值对应的校正值为正弦校正值和余弦校正值。利用分时复用处理,一个时间段处理第一补偿位置值的正弦地址索引和正弦角度校正值的获取,一个时间段处理第一补偿位置值的余弦地址索引和余弦角度校正值的获取;同理,分为两个时间段处理第二补偿位置值。
S14:通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值。
在步骤S13中根据分时复用得到的初始正弦值、初始余弦值、正弦校正值和余弦校正值,再根据分时复用对正弦校正值对应的初始正弦值进行校正处理得到最终的正弦值,对余弦校正值对应的初始余弦值进行校正处理得到最终的余弦值。
本发明实施例提供的一种基于FPGA确定电角度的方法,包括:获取编码器的编码器位置值,并对编码器位置值进行补偿处理得到各补偿位置值;根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值;通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值;通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值。该方法在原有查找表的基础上,根据RAM的查找表和编码器的分辨率得到对应的正余弦地址索引和地址索引补充值以扩充数据,进一步通过两值确定初始正余弦值,最后确定最终正余弦值以提高电角度处理得到的正余弦值准确性,提高电角度的精度。相对于现有的仅查表方式获得得到的正余弦值,本发明利用较少的FPGA资源,弥补表格的少数据量以扩充数据,得到具有较高精度的正余弦值,同时基于FPGA执行,缩短执行时间和提高资源利用率。
在上述实施例的基础上,步骤S12中的根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值,包括:
根据查找表和编码器的分辨率确定各补偿位置值的数据转换字节表;
在数据转换字节表内根据各补偿位置值确定正余弦地址索引和地址索引补充值;
对应地,根据查找表和编码器的分辨率确定各补偿位置值的数据转换字节表,包括:
获取RAM的查找表内的正余弦值个数以确定对应的正余弦数值,其中查找表内的正余弦值为正弦值或余弦值,当查找表为正弦值时,余弦值的获取通过查找表内的正弦值偏置得到;
获取查找表内的电角度范围以及编码器的分辨率对应的位数,其中若编码器的分辨率不为2的指数时,放大编码器的数值以得到接近2的指数获取得到编码器的分辨率对应的位数;
根据正余弦数值、电角度范围以及位数确定当前补偿位置值的数据转换字节表,其中当前补偿位置值为第一补偿位置值或第二补偿位置值。
具体地,通过查找表与编码器的分辨率确定各补偿位置值的数据转换字节表,其中数据转换字节表代表当前补偿位置值对应的输入数据位数表,例如17bit位数的表格。根据查找表的表格参数例如查找表的正余弦值个数、电角度范围等确定。
作为一种实施例,根据正余弦值个数确定对应的正余弦数据,需要说明的是,查找表当前仅为一个,为正弦值或者余弦值,当查找表为正弦值时,则通过对正弦值进行偏置得到对应的余弦值。
获取查找表内的电角度范围以及编码器的分辨率对应的位数,电角度为0-K°,K为90*m,m为1,2或4,在一个查找表内对其不做限定。编码器的分辨率为2的Z次方,当编码器分辨率不是2的指数时,可以放大编码器数值至最近的2的指数倍以得到2的指数关系,其Z的数值由电流环定标决定,例如16、17、18。正余弦数值为2的n次方。
根据正余弦数值、电角度范围以及位数确定当前补偿位置值的数据转换字节表,位数决定当前补偿位置值的数据转换字节表的字节数,例如编码器的分辨率的位数为17,其当前补偿位置值转换的数据为17bit数据。由Z-1,Z-2…Z-S,Z-S-1…Z-S-n,Z-S-n-1…1,0是形式组成为转换的数据。
作为一种优选地实施例,根据正余弦数值、电角度范围以及位数确定当前补偿位置值的数据转换字节表,具体包括:
根据电角度范围的范围值确定高位数对应的扇区索引的个数;
根据正余弦数值确定查找表地址索引的个数;
根据位数确定数据转换字节表中的输出数据的字节数;
根据字节数、扇区索引的个数、查找表地址索引的个数组成数据转换字节表。
对应地,在数据转换字节表内根据各补偿位置值确定正余弦地址索引和地址索引补充值,包括:
根据电角度范围确定数据转换字节表中的查找表扇区索引位数;
根据正余弦值个数确定数据转换字节表中以查找表扇区索引位数后的查找表地址索引位数;
在数据转换字节表除查找表扇区索引位数和查找表地址索引位数的位数确定为查找表角度校正值;
获取当前补偿位置值进行二进制处理后得到的数据输入至数据转换字节表内以作为转换数据;
在转换数据中根据对应的查找表扇区索引位数和查找表角度校正值的位置确定当前补偿位置值的正余弦地址索引和地址索引补充值。
具体地,根据电角度范围确定查找表扇区索引位数,当K为90时,查找表扇区索引S为count1、count2的高2位,即bit(z-1)~bit(z-2);K为180时,查找表扇区索引S为1;K为360时,查找表扇区索引S为0。
根据正余弦值个数确定查找表地址索引位数,查找表扇区索引index为count1、count2的bit(Z-S-n)~bit(Z-S-1);在数据转换字节表内剩余的为查找表角度校正值,为ount1、count2的bit0~bit(Z-S-1-n),见表1:
表1数据转换字节表
获取当前补偿位置值进行二进制处理后得到的数据输入值数据转换字节表内以作为转换数据,例如位置值为8,其二进制为1000,转换为17bit数据转换字节表内其数据为00000000000001000;若电角度为90,则扇区索引S为00。
在转换数据中根据对应的查找表扇区索引位数和角度校正值的位置确定正余弦地址索引和地址索引补充值。其地址索引根据正余弦数值个数n确定,如n=9,则地址索引为9bit的数据,在上述的例子中为9个0,其角度校正值为001000。
作为一种实施方式,RAM表中存储2^9=512个数据,对应角度为0~90°电角度正弦值得2^17。编码器的分辨率为17位,也就是131072。对电机任意位置读到的数值count,经过park、反park补偿角度补偿后得到count1、count2,然后将count转换到0~131071范围内。
对count1、count2的值进行处理见表2:
表2 n=9、K=90、Z=17的数据转换字节表
RAM表中存储2^10=1024个数据,对应角度为0~180°电角度正弦值得2^17。编码器的分辨率为17位,也就是131072。对电机任意位置读到的数值count,经过park、反park补偿角度补偿后得到count1、count2,然后将count转换到0~131071范围内。
对count1、count2的值进行处理见表3:
表3 n=10、K=180、Z=17的数据转换字节表
当前的正余弦地址索引仅是包括一个正弦地址索引或余弦地址索引,若查找表为正弦值,其代表正弦地址索引,同样根据正弦值的偏置得到余弦值,再根据余弦值得到余弦地址索引。地址索引补充值同理。地址索引补充值为查找表角度校正值或者为地址索引补充值。针对count1、count2的正、余弦地址索引和地址索引补充值sin_address、cos_address、sin_address_max、cos_address_max。
本发明实施例提供的根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值,在原有查找表的基础上,根据RAM的查找表和编码器的分辨率得到对应的正余弦地址索引和地址索引补充值以扩充数据,进一步通过两值确定初始正余弦值,最后确定最终正余弦值以提高电角度处理得到的正余弦值准确性,提高电角度的精度。
在上述实施例的基础上,步骤S13中的通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值,包括:
获取各补偿位置值对应的映射电角度值;
根据各映射电角度值和地址索引补充值对应的电角度分别进行正余弦处理得到对应的初始正余弦值和正余弦补充计算值;
根据正余弦补充计算值与初始正余弦值进行做差处理得到正余弦值校正偏差值,其中正余弦校正偏差值包括正弦值校正偏差值和余弦值校正偏差值;
将正余弦校正偏差值、校正系数以及数据移位位数的关系确定对应的正余弦校正值,其中数据移位位数根据查找表中存储的正余弦值个数、编码器的分辨率的位数和查找表扇区索引位数的关系确定得到。
具体地,获取各补偿位置值对应的映射电角度值,根据各映射电角度值和地址索引补充值对应的电角度分别得到初始正余弦值和正余弦补充计算值。
结合上述的例子,补偿位置值为8,其对应的电角度值设定为1°,其初始正弦值为sin1°=0,初始余弦值为cos1°≈0。即依次得到对应的查找表值D1base(正弦基础计算值)、D2base(余弦基础计算值)、D1sup(正弦补充计算值)、D2sup(余弦补充计算值),整个计算过程在start_shift_buf移位控制器控制下计算。
再根据正余弦补充计算值与初始正余弦值进行做差处理得到正余弦值校正偏差值,计算公式如下:
Error1=D1sup-D1base
Error 2=D2sup-D2base
其中,Error 1、Error 2分别为正弦值校正偏差值和余弦校正偏差值。
作为一种优选实施例,将正余弦校正偏差值、校正系数以及数据移位位数的关系确定对应的正余弦校正值,具体包括:
根据正余弦值个数、编码器的分辨率的位数以及查找表扇区索引位数的关系确定数据移位位数;
将正余弦校正偏差值与校正系数相乘得到初始校正值;
将初始校正值与数据移位位数相乘得到正余弦校正值;
对应地,根据正余弦值个数、编码器的分辨率的位数以及查找表扇区索引位数的关系确定数据移位位数,包括:
根据正余弦值个数确定对应的2的幂数;
将编码器的分辨率的位数减去查找表扇区索引位数得到初始移位位数;
将初始移位位数减去幂数得到数据移位位数;
相应地,根据正余弦校正偏差值、校正系数以及数据移位位数的关系确定对应的正余弦校正值,公式如下:
Z1=Error 1*Kerr_calib>>>(Z-S-n)
Z2=Error 2*Kerr_calib>>>(Z-S-n)
其中,Z1、Z2为校正值,(Z-S-n)为数据移位位数,等于角度偏差校正系数的位数,Z表示编码器的分辨率的位数,S表示查找表扇区索引位数,n表示查找表中正余弦值个数的2的幂数。
步骤S14中的通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值,包括:
将当前初始正余弦值和当前正余弦校正值相加得到对应的最终正余弦值。
具体地,在正余弦基础计算值进行校正,得到修正后的基础正余弦计算值,计算公式如下:
R'sin=D1base+Z1
R'cos=D2base+Z2
其中,R'sin、R'cos分别为得到的添加符号前的正余弦值。
例如,电机的编码器的分辨率为17位,即电机旋转一圈,产生217=131072个计数值,若电机为一对极,其对应的电角度为0-360°。当前补偿位置值为16626,其对应的映射电角度为的电角度。电角度对应的sin、cos值根据表1的划分,查找表存储1024个点,对应sin(0-90°)Q17的数值。查找表的参数为n=10,Z=17,K=90°,其查找表扇区索引位数S=2,Z-S-n=5,即低5位代表查找角度校正值,中间10为代表查找表地址索引。
计算正余弦的数据16626(45.6647°),16626的二进制表示为100000011110010,扇区为00,即0;查找表地址索引=1000000111(二进制)=519(十进制);查找表角度校正值=10010(十进制)=18(二进制)。其sin_address=519,sin_address_max=520;也就是查找表中第519和第520对应的数值,即sin(90*519/1024)*2^17=93671,sin(90*520/1024)*2^17=93812;正弦基础计算值D1base=93671,正弦补充计算值D1sup=93812,正弦值校正偏差值Error1=D1sup-D1base=93671-93812=141,校正值Z1=Error 1*Kerr_calib>>>(Z-S-n)=141*18/25=79,添加符号前的正余弦值R's i=D1base+Z1=93671+79=93750。实际计算sin数值为sin(45.6647°)*217=93750。由此可见,本发明实施例中得到的查找表数值与直接计算的正余弦数值相同,精度较高。
本发明实施例提供的通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值,通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值,利用较少的FPGA资源,弥补表格的少数据量以扩充数据,得到具有较高精度的正余弦值,同时基于FPGA执行,分时复用处理,缩短执行时间和提高资源利用率。
上述详细描述了基于FPGA确定电角度的方法对应的各个实施例,在此基础上,本发明还公开与上述方法对应的基于FPGA确定电角度的装置,图2为本发明实施例提供的一种基于FPGA确定电角度的装置的结构图。如图2所示,基于FPGA确定电角度的装置包括:
补偿模块11,用于获取编码器的编码器位置值,并对编码器位置值进行补偿处理得到各补偿位置值;
第一确定模块12,用于根据RAM的查找表和编码器的分辨率对各补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值;
第二确定模块13,用于通过分时复用对各补偿位置值对应的正余弦地址索引和地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值;
第三确定模块14,用于通过分时复用,根据各正余弦校正值对对应的各初始正余弦值进行校正处理得到各补偿位置值对应的最终正余弦值。
由于装置部分的实施例与上述的实施例相互对应,因此装置部分的实施例请参照上述方法部分的实施例描述,在此不再赘述。
对于本发明提供的一种基于FPGA确定电角度的装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述基于FPGA确定电角度的方法相同的有益效果。
图3为本发明实施例提供的另一种基于FPGA确定电角度的装置的结构图,如图3所示,该装置包括:
存储器21,用于存储计算机程序;
处理器22,用于执行计算机程序时实现基于FPGA确定电角度的方法的步骤。
本实施例提供的基于FPGA确定电角度的装置可以包括但不限于平板电脑、笔记本电脑或者台式电脑等。
其中,处理器22可以包括一个或多个处理核心,比如4核心处理器、8核心处理器等。处理器22可以采用数字信号处理器(Digital Signal Processor,DSP)、FPGA、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器22也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称中央处理器(Central Processing Unit,CPU);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器22可以集成有图像处理器(GraphicsProcessing Unit,GPU),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器22还可以包括人工智能(Artificial Intelligence,AI)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器21可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器21还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。本实施例中,存储器21至少用于存储以下计算机程序211,其中,该计算机程序被处理器22加载并执行之后,能够实现前述任一实施例公开的基于FPGA确定电角度的方法的相关步骤。另外,存储器21所存储的资源还可以包括操作系统212和数据213等,存储方式可以是短暂存储或者永久存储。其中,操作系统212可以包括Windows、Unix、Linux等。数据213可以包括但不限于基于FPGA确定电角度的方法所涉及到的数据等等。
在一些实施例中,基于FPGA确定电角度的装置还可包括有显示屏23、输入输出接口24、通信接口25、电源26以及通信总线27。
领域技术人员可以理解,图3中示出的结构并不构成对基于FPGA确定电角度的装置的限定,可以包括比图示更多或更少的组件。
处理器22通过调用存储于存储器21中的指令以实现上述任一实施例所提供的基于FPGA确定电角度的方法。
对于本发明提供的一种基于FPGA确定电角度的装置的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述基于FPGA确定电角度的方法相同的有益效果。
进一步的,本发明还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器22执行时实现如上述基于FPGA确定电角度的方法的步骤。
可以理解的是,如果上述实施例中的方法以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
对于本发明提供的一种计算机可读存储介质的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述基于FPGA确定电角度的方法相同的有益效果。
作为一种优选实施例,本发明提供的基于FPGA确定电角度的装置处理时序图,图4为本发明实施例提供的一种基于FPGA确定电角度的装置结构图,图5为本发明实施例提供的一种基于FPGA确定电角度的装置处理时序图,如图4、5所示,结合上述的基于FPGA确定电角度的方法得到的时序图。
对于本发明提供的一种基于FPGA确定电角度的装置结构和处理时序图的介绍请参照上述方法实施例,本发明在此不再赘述,其具有上述基于FPGA确定电角度的方法相同的有益效果。
以上对本发明所提供的一种基于FPGA确定电角度的方法、基于FPGA确定电角度的装置及介质进行了详细介绍。说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (10)
1.一种基于FPGA确定电角度的方法,其特征在于,包括:
获取编码器的编码器位置值,并对所述编码器位置值进行补偿处理得到各补偿位置值;
根据RAM的查找表和所述编码器的分辨率对各所述补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值;
通过分时复用对各所述补偿位置值对应的所述正余弦地址索引和所述地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值;
通过分时复用,根据各所述正余弦校正值对对应的各所述初始正余弦值进行校正处理得到各所述补偿位置值对应的最终正余弦值。
2.根据权利要求1所述的基于FPGA确定电角度的方法,其特征在于,所述RAM的查找表的建立过程包括:
获取固定点数的正弦值或余弦值;
根据各所述固定点数的所述正弦值或所述余弦值进行定点化处理得到对应的正弦值表或余弦值表;
将所述正弦值表或所述余弦值表存储至所述FPGA的所述RAM中以建立所述查找表。
3.根据权利要求1所述的基于FPGA确定电角度的方法,其特征在于,所述对所述编码器位置值进行补偿处理得到各补偿位置值,包括:
将所述编码位置值进行park变换补偿角度和反park变换补偿角度得到对应的第一补偿位置值和第二补偿位置值。
4.根据权利要求3所述的基于FPGA确定电角度的方法,其特征在于,所述根据RAM的查找表和所述编码器的分辨率对各所述补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值,包括:
根据所述查找表和所述编码器的分辨率确定各所述补偿位置值的数据转换字节表;
在所述数据转换字节表内根据各所述补偿位置值确定所述正余弦地址索引和所述地址索引补充值;
对应地,所述根据所述查找表和所述编码器的分辨率确定各所述补偿位置值的数据转换字节表,包括:
获取所述RAM的所述查找表内的正余弦值个数以确定对应的正余弦数值,其中所述查找表内的所述正余弦值为正弦值或余弦值,当所述查找表为所述正弦值时,所述余弦值的获取通过所述查找表内的所述正弦值偏置得到;
获取所述查找表内的电角度范围以及所述编码器的分辨率对应的位数,其中若所述编码器的分辨率不为2的指数时,放大所述编码器的数值以得到接近2的指数获取得到所述编码器的分辨率对应的所述位数;
根据所述正余弦数值、所述电角度范围以及所述位数确定当前补偿位置值的数据转换字节表,其中所述当前补偿位置值为所述第一补偿位置值或所述第二补偿位置值。
5.根据权利要求4所述的基于FPGA确定电角度的方法,其特征在于,所述在所述数据转换字节表内根据各所述补偿位置值确定所述正余弦地址索引和所述地址索引补充值,包括:
根据所述电角度范围确定所述数据转换字节表中的查找表扇区索引位数;
根据所述正余弦值个数确定所述数据转换字节表中以所述查找表扇区索引位数后的查找表地址索引位数;
在所述数据转换字节表除所述查找表扇区索引位数和所述查找表地址索引位数的位数之外确定为所述查找表角度校正值;
获取所述当前补偿位置值进行二进制处理后得到的数据输入至所述数据转换字节表内以作为转换数据;
在所述转换数据中根据对应的所述查找表扇区索引位数和所述查找表角度校正值的位置确定所述当前补偿位置值的所述正余弦地址索引和所述地址索引补充值。
6.根据权利要求5所述的基于FPGA确定电角度的方法,其特征在于,所述通过分时复用对各所述补偿位置值对应的所述正余弦地址索引和所述地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值,包括:
获取各所述补偿值对应的映射电角度值;
根据各所述映射电角度值和所述地址索引补充值对应的电角度分别进行查表处理得到对应的所述初始正余弦值和正余弦补充计算值;
根据所述正余弦补充计算值与所述初始正余弦值进行做差处理得到正余弦值校正偏差值,其中所述正余弦校正偏差值包括正弦校正偏差值和余弦校正偏差值;
将所述正余弦校正偏差值、校正系数以及数据移位位数的关系确定对应的所述正余弦校正值,其中所述数据移位位数根据所述查找表中存储的所述正余弦值个数、所述编码器的分辨率的位数和所述查找表扇区索引位数的关系确定得到。
7.根据权利要求6所述的基于FPGA确定电角度的方法,其特征在于,所述通过分时复用,根据各所述正余弦校正值对对应的各所述初始正余弦值进行校正处理得到各所述补偿位置值对应的最终正余弦值,包括:
将当前初始正余弦值和当前正余弦校正值相加得到对应的所述最终正余弦值。
8.一种基于FPGA确定电角度的装置,其特征在于,包括:
补偿模块,用于获取编码器的编码器位置值,并对所述编码器位置值进行补偿处理得到各补偿位置值;
第一确定模块,用于根据RAM的查找表和所述编码器的分辨率对各所述补偿位置值分别进行转换处理得到对应的正余弦地址索引和地址索引补充值;
第二确定模块,用于通过分时复用对各所述补偿位置值对应的所述正余弦地址索引和所述地址索引补充值进行处理得到对应的初始正余弦值和正余弦校正值;
第三确定模块,用于通过分时复用,根据各所述正余弦校正值对对应的各所述初始正余弦值进行校正处理得到各所述补偿位置值对应的最终正余弦值。
9.一种基于FPGA确定电角度的装置,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至7任一项所述的基于FPGA确定电角度的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至7任一项所述的基于FPGA确定电角度的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211200097.1A CN115542807A (zh) | 2022-09-29 | 2022-09-29 | 一种基于fpga确定电角度的方法、装置及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211200097.1A CN115542807A (zh) | 2022-09-29 | 2022-09-29 | 一种基于fpga确定电角度的方法、装置及介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115542807A true CN115542807A (zh) | 2022-12-30 |
Family
ID=84731537
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211200097.1A Pending CN115542807A (zh) | 2022-09-29 | 2022-09-29 | 一种基于fpga确定电角度的方法、装置及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115542807A (zh) |
-
2022
- 2022-09-29 CN CN202211200097.1A patent/CN115542807A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2018228250A1 (zh) | 电机旋转角度测量设备及方法 | |
EP0787973B1 (en) | Method and apparatus for processing angular data from encoder | |
CN112033451A (zh) | 一种编码器的测量装置、方法和编码器 | |
TWI420807B (zh) | 通訊系統之任意移頻器 | |
CN111308339A (zh) | 一种伺服电机的测试方法、装置、设备及计算机存储介质 | |
KR920704234A (ko) | 프로그램 컴파일러를 사용하는 디지탈신호처리장치의 실현방법 | |
KR101114785B1 (ko) | 아크탄젠트 연산 장치 및 컴퓨터 판독 가능한 기록 매체 | |
CN115542807A (zh) | 一种基于fpga确定电角度的方法、装置及介质 | |
CN109308275B (zh) | 一种正交编码脉冲的转换系统及方法 | |
JP2020160704A (ja) | 整数除算装置およびモータ制御装置 | |
CN110160577A (zh) | 一种增量式旋转编码器的角位移测量方法、装置及设备 | |
KR101123605B1 (ko) | 원하는 출력 샘플들과 대응 입력 샘플들 사이의 상대 타이밍의 정수 표시 | |
CN112104292B (zh) | 电机控制方法、装置、终端设备及存储介质 | |
CN109361399A (zh) | 一种获取字节序列的方法、装置、设备及存储介质 | |
CN110618729A (zh) | 波特率发生器、通信设备及波特率时钟信号的生成方法 | |
CN111865156B (zh) | 一种伺服系统任意分频倍频方法、系统以及可编程器件 | |
CN107948573B (zh) | 一种数字信号线性内插值方法及装置 | |
CN108871385B (zh) | 编码器、电机、编码器数据处理方法及存储介质 | |
CN103901940B (zh) | 一种产生数字余弦信号的方法 | |
CN106357172A (zh) | 用于速度和位置反馈的正余弦信号处理电路 | |
CN115864914B (zh) | 一种任意正交脉冲分频输出方法、系统、装置与存储介质 | |
CN117792198B (zh) | 一种电机位置角度的软解码方法、装置、设备和介质 | |
CN116317780A (zh) | 一种正余弦编码器细分角度确定方法、装置及介质 | |
CN111006697B (zh) | 一种编码器的位置数据处理及传输控制系统、方法及应用 | |
CN113125940B (zh) | 一种电路板校正方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |