快速反正切计算预处理和后处理的方法

文档序号:8412714阅读:608来源:国知局
快速反正切计算预处理和后处理的方法
【技术领域】
[0001]本发明总地涉及一种计算反正切的方法,并更具体地说,涉及用于快速反正切计算的数据的预处理和后处理。
【背景技术】
[0002]在各种车辆系统的控制过程中,车辆控制器经常需要计算反正切。例如,车辆控制器可能需要计算反正切,以便正确控制混合动力车辆的电马达。
[0003]反正切仅可以在360°角度圆的45°圆缺上计算。于是,用于计算反正切值的任何X值输入和y值输入必须从初始八分圆(即,初始45°圆缺)调整到圆的与其中可以计算反正切的45°圆缺对应的圆缺上。在计算反正切的数字值之后,必须调整回到圆的初始八分圆上。

【发明内容】

[0004]提供了一种计算通过笛卡尔坐标系的y值和X值定位在平面上的点的反正切的方法。该方法包括编码索引的I位以指示I值的符号,并编码索引的X位以指示X值的符号。表示I值的二进制值的符号位被去除以定义净值的(cleared) y值,且表示x值的二进制值的符号位被去除以定义净值的X值。当净值的X值等于或小于净值的I值时,通过将净值的X值除以净值的y值来计算反正切计算输入自变量。然后计算输入自变量的反正切以定义计算的反正切输出值。当净值的X值大于净值的y值时,净值的X值与净值的y值交换,以定义交换的X值,并且净值的y值与净值的X值交换,以定义交换的y值。索引的交换位被编码以指示净值的X值和净值的I值被交换以分别定义交换的X值和交换的I值。当净值的X值大于净值的I值时,反正切计算输入自变量通过将交换的X值除以交换的I值而计算。输入自变量的反正切然后被计算以定义计算的反正切输出值。基于索引的被编码的X位、被编码的I位和被编码的交换位,从角度调节表中查找圆缺底角。从被编码到提取的圆缺底角中的反向位提取数值符号。来自圆缺底角的反向位的数值符号被应用于计算的反正切输出值,以定义校正的反正切值,并且圆缺底角的反向位被清除,以定义净值的圆缺底角。校正的反正切值加到净值的圆缺底角上,以定义该点的反正切。
[0005]于是,被编码到索引中的三个布尔运算位(即,y位、X位和交换位)被用于从查询表(即角度调节表)获取编码值,该编码值被用于颠倒和调节从反正切计算输出的计算数值。这使得与反正切计算相关的预处理和后处理的时间最小化,由此改善了处理速度。
[0006]还提供了一种计算通过笛卡尔坐标系的X值和y值定位在平面上的点的反正切的方法,所述方法包括:在控制器的存储器内建立索引,其中,所述索引包括3位二进制值;编码所述索引的y位,以指示所述y值的符号;编码所述索引的X位,以指示所述X值的符号;清除表示所述I值的二进制值的符号位以定义净值的I值;清除表示所述X值的二进制值的符号位以定义净值的X值;将净值的X值与净值的I值相比较,以确定净值的X值是否大于净值的I值,或者净值的X值是否等于或小于净值的I值;当净值的I值等于零时返回等于零的计算的反正切输出值;当净值的X值等于或小于净值的y值时,计算所述净值的X值除以净值的I值的商的反正切以定义计算的反正切输出值;当净值的X值大于净值的I值时,交换所述净值的X值与净值的I值,以定义交换的X值,并且交换净值的I值与净值的X值,以定义交换的y值;编码索引的交换位,以指示净值的X值和净值的y值被交换以分别定义交换的X值和交换的I值;当净值的X值大于净值的I值时计算交换的X值除以交换的y值的商的反正切以定义计算的反正切输出值;基于索引的被编码的X位、被编码的y位和被编码的交换位,从角度调节表查询圆缺底角;从被编码在圆缺底角中的反向位提取数字符号;将来自反向位的提取的数字符号应用到计算的反正切输出值,以定义校正的反正切值;清除提取的圆缺底角的反向位,以定义净值的圆缺底角;以及将校正的反正切值加到净值的圆缺底角上以定义所述点的反正切。
[0007]所述圆缺底角的反向位被编码到表示圆缺底角的32位浮点数的位12或位13中的一个中。
[0008]所述角度调节表是被参考以计算所述点的反正切的唯一查询表。
[0009]所述X位、y位和交换位被预先移位,用作用于包含32位数据的表的表查询索引。
[0010]X位、y位和交换位被分别编码到索引的第二位、第三位和第四位中。
[0011 ] 清除表示y值的二进制值的符号位被进一步定义为利用整数运算清除表示y值的二进制值的符号位,且其中,清除表示X值的二进制值的符号位以定义净值的X值被进一步定义为利用整数运算清除表示X值的二进制值的符号位。
[0012]将净值的X值与净值的y值相比较被进一步定义为利用整数运算将净值的X值与净值的I值相比较。
[0013]从反向位提取数字符号被进一步定义为利用整数运算从反向位提取数字符号。
[0014]将从反向位提取的数字符号应用于计算的反正切输出值被进一步定义为利用整数运算将从反向位提取的数字符号应用于计算的反正切输出值。
[0015]清除提取的圆缺底角的反向位被进一步定义为利用整数运算清除提取的圆缺底角的反向位。
[0016]本发明的上述特征和优点以及其他特征和优点从下面结合附图给出的用于实施本发明的最佳模式的详细描述中轻易理解到。
【附图说明】
[0017]图1是示出笛卡尔坐标系上的圆的不同八分圆的图;
[0018]图2是示出用于圆缺底角以及它们相应的32位浮点二进制存储格式的所有可能值的表;
[0019]图3是表示用于将索引关联至图1所示圆的每个八分圆的角度调节表的图表。
【具体实施方式】
[0020]本领域技术人员将认识到诸如“之上”、“之下”、“向上”、“向下”、“顶”、“底”等的术语是描述性地用于附图,并不代表如所附权利要求书限定的本发明的范围的限制。此外,本文中,本发明可在功能和/或逻辑块组成和/或各种处理步骤的方面予以描述。应理解到这种块组成可以由被构造成执行特定功能的任何数量的硬件、软件和/或固件构成。
[0021]参照附图,图中,相同的附图标记在几幅图中表示相同的部件,提供了一种计算针对一点的反正切的方法。该方法可以通过控制器,诸如但不局限于计算机或控制模块来执行。控制器可操作以执行根据下述方法计算反正切所需的各过程。控制器包括如下所述计算反正切所需的所有软件、硬件、存储器、处理器、算法、编码等。
[0022]参照图1,计算反正切所针对的点位于笛卡尔坐标系的y值和X值的平面上。在图1内,笛卡尔坐标系的X轴在20处示出,而y轴在22处示出。笛卡尔坐标系分成八个不同的八分圆。每个八分圆跨过45°圆缺。第一八分圆大致在24处示出,第二八分圆大致在26处示出,第三八分圆大致在28处示出,第四八分圆大致在30处示出,第五八分圆大致在32处示出,第六八分圆大致在34处示出,第七八分圆大致在36处示出,而第八八分圆大致在38处示出。坐标系的角度被示出以顺时针方式增加,O度角定义为如在页面上所见的位于X轴上方的y轴的部分。第一八分圆跨过0°和45°之间。第二八分圆跨过45°和90°之间。第三八分圆跨过90°和135°之间。第四八分圆跨过135°和180° (也可以表示为-180° )之间。第五八分圆跨过180°和225° (也可以表示为-135° )之间。第六八分圆跨过225°和270° (也可以表示为-90° )之间。第七八分圆跨过270°和315° (也可以表示为-45° )之间。第八八分圆跨过315°和0° (也可以表示为360° )之间。虽然以度数描述了不同的八分圆,但是应该理解不同的八分圆可以替代地以弧度描述。此外,八分圆也可以描述为带符号的或不带符号的。于是,不同的八分圆可以以四种不同方式描述,即:带符号的度数、不带符号的度数、带符号的弧度或者不带符号的弧度。图1示出可以描述八分圆的角位置的不同方式。
[0023]第一点40被示出在第一八分圆内。第一点40的反正切在下面的示例I中计算。第二点42被示出在第六八分圆内,第二点42的反正切在下面的示例2中计算。
[0024]该方法包括在控制器的存储器内建立索引。该索引是三位二进制值,其用于存储三个不同输入参数(y值、X值和交换位)的布尔运算信息。该索引在后面用于从查询表检索值,该值用于颠倒(reverse)和/或调节计算的反正切输出值。虽然索引仅使用3位来存储输入参数的布尔运算信息,该索引编码成控制器所使用的位的数量,诸如但不限于32位、IEEE-754标准浮点数格式,如在此示出和描述的。索引的这三个位包括I位、x位和交换位。例如,索引可以表示为syxOO,其中,s表示交换位,y表示y位,而X表示X位。X位、y位和交换位预先移位,用作包含32位数据的表的表查询索引。优选地是,并如上所表示的,X位、y位和交换位可以分别编码成索引的第二位、第三位和第四位。
[0025]如已知的,单精度浮点数在尺寸上是32位的。在大部分处理器中,存储器的基础单位是8位(I字节)。在使用32位系统的大多数处理器中,32位数值占据存储器的4个字节,因此为了标明32位数的一个毗邻组,地
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1