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

技术编号:11634558 阅读:71 留言:0更新日期:2015-06-24 07:40
一种快速反正切计算预处理和后处理的方法。一种计算反正切的方法包括将用于y值和x值的符号编码成3位索引。当x值的绝对值大于y值的绝对值时,x值和y值的绝对值交换,并且索引的交换位被编码以指示x值和y值被交换。反正切是从交换的x值除以交换的y值的商计算的。圆缺底角基于索引的编码的x位、y位和交换位从表中提取。被编码的符号从圆缺底角提取并应用到计算的反正切输出值,以定义校正的反正切值。圆缺底角被加到校正的反正切值上以定义所述点的反正切。

【技术实现步骤摘要】

本专利技术总地涉及一种计算反正切的方法,并更具体地说,涉及用于快速反正切计算的数据的预处理和后处理。
技术介绍
在各种车辆系统的控制过程中,车辆控制器经常需要计算反正切。例如,车辆控制器可能需要计算反正切,以便正确控制混合动力车辆的电马达。反正切仅可以在360°角度圆的45°圆缺上计算。于是,用于计算反正切值的任何X值输入和y值输入必须从初始八分圆(即,初始45°圆缺)调整到圆的与其中可以计算反正切的45°圆缺对应的圆缺上。在计算反正切的数字值之后,必须调整回到圆的初始八分圆上。
技术实现思路
提供了一种计算通过笛卡尔坐标系的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位和被编码的交换位,从角度调节表中查找圆缺底角。从被编码到提取的圆缺底角中的反向位提取数值符号。来自圆缺底角的反向位的数值符号被应用于计算的反正切输出值,以定义校正的反正切值,并且圆缺底角的反向位被清除,以定义净值的圆缺底角。校正的反正切值加到净值的圆缺底角上,以定义该点的反正切。于是,被编码到索引中的三个布尔运算位(即,y位、X位和交换位)被用于从查询表(即角度调节表)获取编码值,该编码值被用于颠倒和调节从反正切计算输出的计算数值。这使得与反正切计算相关的预处理和后处理的时间最小化,由此改善了处理速度。还提供了一种计算通过笛卡尔坐标系的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位和被编码的交换位,从角度调节表查询圆缺底角;从被编码在圆缺底角中的反向位提取数字符号;将来自反向位的提取的数字符号应用到计算的反正切输出值,以定义校正的反正切值;清除提取的圆缺底角的反向位,以定义净值的圆缺底角;以及将校正的反正切值加到净值的圆缺底角上以定义所述点的反正切。所述圆缺底角的反向位被编码到表示圆缺底角的32位浮点数的位12或位13中的一个中。所述角度调节表是被参考以计算所述点的反正切的唯一查询表。所述X位、y位和交换位被预先移位,用作用于包含32位数据的表的表查询索引。X位、y位和交换位被分别编码到索引的第二位、第三位和第四位中。 清除表示y值的二进制值的符号位被进一步定义为利用整数运算清除表示y值的二进制值的符号位,且其中,清除表示X值的二进制值的符号位以定义净值的X值被进一步定义为利用整数运算清除表示X值的二进制值的符号位。将净值的X值与净值的y值相比较被进一步定义为利用整数运算将净值的X值与净值的I值相比较。从反向位提取数字符号被进一步定义为利用整数运算从反向位提取数字符号。将从反向位提取的数字符号应用于计算的反正切输出值被进一步定义为利用整数运算将从反向位提取的数字符号应用于计算的反正切输出值。清除提取的圆缺底角的反向位被进一步定义为利用整数运算清除提取的圆缺底角的反向位。本专利技术的上述特征和优点以及其他特征和优点从下面结合附图给出的用于实施本专利技术的最佳模式的详细描述中轻易理解到。【附图说明】图1是示出笛卡尔坐标系上的圆的不同八分圆的图;图2是示出用于圆缺底角以及它们相应的32位浮点二进制存储格式的所有可能值的表;图3是表示用于将索引关联至图1所示圆的每个八分圆的角度调节表的图表。【具体实施方式】本领域技术人员将认识到诸如“之上”、“之下”、“向上”、“向下”、“顶”、“底”等的术语是描述性地用于附图,并不代表如所附权利要求书限定的本专利技术的范围的限制。此外,本文中,本专利技术可在功能和/或逻辑块组成和/或各种处理步骤的方面予以描述。应理解到这种块组成可以由被构造成执行特定功能的任何数量的硬件、软件和/或固件构成。参照附图,图中,相同的附图标记在几幅图中表示相同的部件,提供了一种计算针对一点的反正切的方法。该方法可以通过控制器,诸如但不局限于计算机或控制模块来执行。控制器可操作以执行根据下述方法计算反正切所需的各过程。控制器包括如下所述计算反正切所需的所有软件、硬件、存储器、处理器、算法、编码等。参照图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示出可以描述本文档来自技高网...

【技术保护点】
一种计算通过笛卡尔坐标系的y值和x值定位在平面上的点的反正切的方法,该方法包括:用控制器编码索引的y位,以指示所述y值的符号;用控制器编码所述索引的x位,以指示所述x值的符号;用控制器清除表示y值的二进制值的符号位,以定义净值的y值;用控制器清除表示x值的二进制值的符号位,以定义净值的x值;当净值的x值等于或小于净值的y值时,用控制器计算净值的x值除以净值的y值的商的反正切,以定义计算的反正切输出值;当净值的x值大于净值的y值时,用控制器将净值的x值与净值的y值交换,以定义交换的x值,并且用控制器将净值的y值与净值的x值交换,以定义交换的y值;用控制器编码索引的交换位,以指示净值的x值和净值的y值被交换,以分别定义交换的x值和交换的y值;当净值的x值大于净值的y值时,用控制器计算交换的x值除以交换的y值的商的反正切,以定义计算的反正切输出值;用控制器,基于索引的被编码的x位、被编码的y位和被编码的交换位,从角度调节表中查询圆缺底角;用控制器从被编码到提取的圆缺底角中的反向位提取数字符号;用控制器将来自圆缺底角的反向位的数字符号应用于计算的反正切输出值,以定义校正的反正切值;用控制器清除圆缺底角的反向位,以定义净值的圆缺底角;以及用控制器将校正的反正切值加到净值的圆缺底角上,以定义所述点的反正切。...

【技术特征摘要】
...

【专利技术属性】
技术研发人员:RM兰塞姆
申请(专利权)人:通用汽车环球科技运作有限责任公司
类型:发明
国别省市:美国;US

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1