可重构星载计算机的正余弦函数ip核及其控制方法

文档序号:6423206阅读:232来源:国知局
专利名称:可重构星载计算机的正余弦函数ip核及其控制方法
技术领域
本发明涉及航天航空的电子技术领域。
背景技术
随着可重构技术在航天领域的应用不断开拓,基于FPGA(Field Programmable (iateArray,现场可编程门阵列)的星载计算机已成为卫星电子系统的研究热点。使用以 FPGA为核心的卫星电子系统可以降低微小卫星的体积、重量、功耗和成本,提高系统的功能
也/又。姿态确定与姿态控制处理是星载计算机的重要功能之一,在传统的星载计算机中,多依靠调用C语言数学函数库中的标准sincos函数进行姿态控制算法的计算,其计算正余弦函数的时间高达2. 5 μ s/次(精确到小数点后7位),可见软件计算正余弦函数的耗时很长。一般采用IP核计算正余弦函数的算法有查表法、多项式展开法、CORDIC算法及迭代法。其中查表法虽然也可以快速实现,但受限于存储设备的大小和速度;多项式展开法不受存储空间的限制,但是需要归一化后才能保证收敛,并且精度不高;CORDIC算法可以达到任意的精度,但其计算速度与计算精度有关,计算精度要求越高,结果收敛的速度就越慢;迭代法最快,但是迭代次数与计算角度有关,计算角度越大,所需的迭代次数就越多。迭代算法的原理是对于任一输入角度θ,将其除以2ν,当N足够大时,都会得到一个很小的角度α Θ/2ν。根据近似准则,可近似得到sinci ^ α、cos α ^ 1。利用二倍角公式sin2a = 2Xsina Xcosacos2 a = (cos a +sin a ) X (cos a -sin a )迭代N次即可得到输入角度的正余弦值。从原理可知当角度不大时,较小的N便能满足近似赋值要求,迭代的次数较少, 计算的速度很快。在迭代的过程中,可以使用两个寄存器存储计算结果,作为下次迭代的输入,而不需要额外的存储空间,并且可以同时计算出正余弦函数值。但迭代算法的初始赋值存在舍入误差,其对结果影响很大;迭代过程中保留位数有限,存在截断误差,随着迭代次数的增多,积累的误差增大;对于不同角度,需要的迭代次数不同,角度越大,需要的迭代次数越多,因此需要进一步优化。

发明内容
本发明解决为了现有迭代算法的初始赋值存在舍入误差,其对结果影响很大的问题;以及对于不同角度,需要的迭代次数不同,角度越大,需要的迭代次数越多的缺陷,而提出一种可重构星载计算机的正余弦函数IP核及其控制方法。可重构星载计算机的正余弦函数IP核包括初始化模块1、右移N位模块2、1模块 3、减法器4、加法器5、第一乘法器6、第二乘法器7、左移1位模块8、正弦值存储器9、余弦值存储器10和控制器11 ;初始化模块1的输入端为可重构星载计算机的正余弦函数IP核的角度η输入端,初始化模块1的两个输出端分别连接右移N位模块2的输入端和1模块3的输入端,1模块3的输出端连接余弦值存储器10的第一输入端,右移N位模块2的输出端连接正弦值存储器9的第一输入端,余弦值存储器10的输出端分别连接减法器4的第一输入端、加法器5的第一输入端和第一乘法器6的第一输入端,正弦值存储器9的输出端分别连接减法器4的第二输入端、加法器5的第二输入端和第一乘法器6的第二输入端,减法器4的输出端连接第二乘法器7的第一输入端,加法器5的输出端连接第二乘法器7的第二输入端,第二乘法器7的输出端连接余弦值存储器10的第二输入端,第一乘法器6的输出端连接左移1位模块8的输入端,左移1位模块8的输出端连接正弦值存储器9的第二输入端,正弦值存储器9的第四输出端为可重构星载计算机的正余弦函数IP核的正弦输出端,余弦值存储器10的第四输入端为可重构星载计算机的正余弦函数IP核的余弦输出端, 控制器11的两个信号控制端分别连接正弦值存储器9的控制信号接收端和余弦值存储器 10的控制信号接收端。可重构星载计算机的正余弦函数IP核的控制方法的步骤如下步骤一根据三角函数的周期性将角度η映射到W,^/2]内成为输入角度θ, 并设置符号位;步骤二 进行预判断,判断输入的输入角度θ是否小于等于给定的临界角度β, 是,即当β彡θ时,则直接利用sine = θ >Cos0 = 1进行赋值进入步骤四,否,即当β < θ彡π/2时,则进入步骤三;步骤三迭代运算步骤1 对输入的输入角度θ进行迭代运算,将输入角度θ除以2Ν,根据近似准则得到初始赋值sina = θ /2Νcos a = 1n = 0其中,N表示总的迭代次数,n表示第n次迭代;步骤2 利用二倍角公式进行计算cos2n+1 a = (cos2n a +sin2n a ) X (cos2n a -sin2n a )sin2n+1a = 2Xsin2na Xcos2nan = n+1步骤3 判断n < N,是,则返回步骤2再次计算,否,则进入步骤4 ;步骤4 完成迭代运算得到输入角度θ的正余弦值sin θ = sin2Na , cos θ =
cos2Na ;步骤四根据符号位判断所得到的结果的正负,赋予正余弦函数值,得到最终正余弦值。本发明的目的是设计一种利用FPGA硬件计算sincos函数的IP核,作为可重构星载计算机的协处理器,进行姿态控制,提高可重构星载计算机的性能。卫星姿态控制中对计算的实时性要求很高,迭代法的计算速度最快且占用资源也较少,所以本发明根据实际需要对迭代法进行优化,迭代算法中的舍入误差和截断误差是不可避免的,但可以通过增加寄存器位数的方法使误差减小。为精确到小数点后7位,本发明中将保留15位有效数字进行迭代运算,并且计算机保存双精度浮点数的误差在10_15 10_16之间,故本发明中保留15位有效数字进行迭代运算。当计算角度较大时,迭代次数很大才能满足精度要求,适当缩小计算角度的范围可以提高计算的效率。此外,对于小角度直接赋值便可以满足精度要求,进行迭代运算反而会增加不必要的计算量,并且有可能使精度降低,根据分析在设计中对迭代算法进行优化计算角度η正余弦函数的定义域为(-⑴,+⑴),根据三角函数的周期性,将输入角度θ映射到
内,并设置符号位,再输入角度θ正余弦函数的计算。计算角度的范围缩小,使得迭代次数减少,积累误差小,提高了计算的速度和精度。当输入角度θ小于等于给定的临界角度β时,直接赋值,不需要进行迭代也可以达到精度的要求,提高计算的速度。


图1是可重构星载计算机的正余弦函数IP核的控制方法的流程图; 图2是可重构星载计算机的正余弦函数IP核的结构示意图。
具体实施例方式具体实施方式
一结合图1说明本实施方式,本实施方式步骤如下步骤一根据三角函数的周期性将角度η映射到W,^/2]内成为输入角度θ, 并设置符号位;步骤二 进行预判断,判断输入的输入角度θ是否小于等于给定的临界角度β, 是,即当θ彡β时,则直接利用sine = θ >Cos0 = 1进行赋值进入步骤四,否,即当β < θ彡π/2时,则进入步骤三;步骤三迭代运算步骤1 对输入的输入角度θ进行迭代运算,将输入角度θ除以2Ν,根据近似准则得到初始赋值sina = θ /2Νcos a = 1n = 0其中,N表示总的迭代次数,n表示第n次迭代;步骤2 利用二倍角公式进行计算cos2n+1 a = (cos2n a +sin2n a ) X (cos2n a -sin2n a )sin2n+1a = 2Xsin2na Xcos2nan = n+1步骤3 判断n < N,是,则返回步骤2再次计算,否,则进入步骤4 ;步骤4 完成迭代运算得到输入角度θ的正余弦值sin θ = sin2Na , cos θ =
cos2Na ;步骤四根据符号位判断所得到的结果的正负,赋予正余弦函数值,得到最终正余弦值。
具体实施方式
二 本实施方式与具体实施方式
一不同点在于步骤二中的临界角度 β的求取预期达到的设计精度为10Λ根据初始赋值的原理,临界角度β应满足
权利要求
1.可重构星载计算机的正余弦函数IP核,其特征在于它包括初始化模块(1)、右移N 位模块( 、1模块C3)、减法器(4)、加法器( 、第一乘法器(6)、第二乘法器(7)、左移1位模块(8)、正弦值存储器(9)、余弦值存储器(10)和控制器(11);初始化模块(1)的输入端为可重构星载计算机的正余弦函数IP核的角度η输入端,初始化模块(1)的两个输出端分别连接右移N位模块( 的输入端和1模块C3)的输入端,1模块C3)的输出端连接余弦值存储器(10)的第一输入端,右移N位模块⑵的输出端连接正弦值存储器(9)的第一输入端,余弦值存储器(10)的输出端分别连接减法器的第一输入端、加法器(5)的第一输入端和第一乘法器(6)的第一输入端,正弦值存储器(9)的输出端分别连接减法器(4) 的第二输入端、加法器(5)的第二输入端和第一乘法器(6)的第二输入端,减法器(4)的输出端连接第二乘法器(7)的第一输入端,加法器(5)的输出端连接第二乘法器(7)的第二输入端,第二乘法器(7)的输出端连接余弦值存储器(10)的第二输入端,第一乘法器(6) 的输出端连接左移1位模块(8)的输入端,左移1位模块(8)的输出端连接正弦值存储器 (9)的第二输入端,正弦值存储器(9)的第四输出端为可重构星载计算机的正余弦函数IP 核的正弦输出端,余弦值存储器(10)的第四输入端为可重构星载计算机的正余弦函数IP 核的余弦输出端,控制器(11)的两个信号控制端分别连接正弦值存储器(9)的控制信号接收端和余弦值存储器(10)的控制信号接收端。
2.根据权利要求1所述的可重构星载计算机的正余弦函数IP核,其特征在于它初始化模块(1),用于将输入的角度η映射到
内成为输入角度Θ,还用于进行预判断,判断输入角度θ是否小于等于给定的临界角度β,是,则直接赋值,否,则将输入角度θ转换为等效整数同时发送给右移N位模块( 和1模块(3);右移N位模块(2),用于根据接收的等效整数来输出正弦函数迭代的初始值sin = θ/2N,并将正弦函数迭代的初始值发送给正弦值存储器(9);1模块(3),用于根据接收的等效整数来输出余弦函数迭代的初始值cos = 1,并将余弦函数迭代的初始值发送给余弦值存储器(10);正弦值存储器(9),用于存储接收到的正弦值,并将该正弦值作为下一次迭代的正弦输入值或最终的正弦输出值,当接收到控制器(11)的控制输入信号时,则将该存储的正弦值作为下一次迭代的正弦输入值分别发送减法器G)、加法器( 和第一乘法器(6),当接收到控制器(11)的控制输出信号时,则将该存储的正弦值作为最终的正弦输出值转换为双精度浮点数向外输出;余弦值存储器(10),用于存储接收到的余弦值,并将该余弦值作为下一次迭代的余弦输入值或最终的余弦输出值,当接收到控制器(11)的控制输入信号时,则将该存储的余弦值作为下一次迭代的余弦输入值分别发送减法器G)、加法器( 和第一乘法器(6),当接收到控制器(11)的控制输出信号时,则将该存储的余弦值作为最终的余弦输出值转换为双精度浮点数向外输出;减法器G),用于将输入的正弦函数值与余弦函数值做差cos-sin,并将获得的差发送给第二乘法器(7),加法器(5),用于将输入的正弦函数值与余弦函数值做和cos+sin,并将获得的和发送给第二乘法器(7),第一乘法器(6),用于输入的正弦函数值与余弦函数值相乘cosXsin,并将获得的乘积发送给左移1位模块(8),第二乘法器(7),用于将加法器的输出值与减法器的输出值相乘 (cos+sin) X (cos-sin),并将获得的乘积发送给为余弦值存储器(10);左移1位模块(8),将第一乘法器(6)的输出值左移1位,完成乘2的操作 2 X cos X sin,并将其输出值发送给为正弦值存储器(9);控制器(11),用于给正弦值存储器(9)和余弦值存储器(10)发送控制信号,当控制模块4计数到N时,则停止迭代运算分别向正弦值存储器(9)和余弦值存储器(10)发送控制输出信号,当控制模块4计数未到N时,则继续迭代运算分别向正弦值存储器(9)和余弦值存储器(10)发送控制输入信号。
3.可重构星载计算机的正余弦函数IP核的控制方法,其特征在于它的步骤如下 步骤一根据三角函数的周期性将角度η映射到W,^/2]内成为输入角度Θ,并设置符号位;步骤二 进行预判断,判断输入的输入角度θ是否小于等于给定的临界角度β,是, 即当β彡θ时,则直接利用sin θ = θ、cos θ = 1进行赋值进入步骤四,否,即当β < θ彡π/2时,则进入步骤三; 步骤三迭代运算步骤1:对输入的输入角度θ进行迭代运算,将输入角度θ除以2Ν,根据近似准则得到初始赋值sina = Θ/2ν cos a = 1 n = 0其中,N表示总的迭代次数,n表示第n次迭代; 步骤2 利用二倍角公式进行计算cos2n+1 a = (cos2na +sin2na ) X (cos2n a -sin2n a ) sin2n+1 a = 2Xsin2na Xcos2na n = n+1步骤3 判断n < N,是,则返回步骤2再次计算,否,则进入步骤4 ;步骤4:完成迭代运算得到输入角度θ的正余弦值sine = sin2Na , cos θ =
4.根据权利要求3所述的可重构星载计算机的正余弦函数IP核及其控制方法,其特征在于临界角度β的求取预期达到的设计精度为10_m,根据初始赋值的原理,临界角度β应满足
5.根据权利要求3或4所述的可重构星载计算机的正余弦函数IP核及其控制方法,其特征在于步骤3中的总的迭代次数N为21次。
全文摘要
可重构星载计算机的正余弦函数IP核及其控制方法。它涉及航天航空的电子技术领域。它解决了初始赋值存在舍入误差对结果影响很大问题;角度越大需要迭代次数越多的缺陷。初始化模块连右移N位模块和1模块,1模块连余弦值存储器,右移N位模块连正弦值存储器,余正弦值存储器连减加法器和第一乘法器,减加法器连第二乘法器再连余弦值存储器,第一乘法器连左移1位模块再连正弦值存储器,控制器连正余弦值存储器。将η映射到
内成为θ;判断θ≤β,是直接赋值到最后一步,否迭代运算,近似准则得到初始赋值,利用二倍角公式计算,判断n<N,是再次计算,否完成运算;最终根据符号位判断所得到的结果的正负,赋予正余弦函数值。本发明应用于进行姿态控制。
文档编号G06F7/548GK102156626SQ20111010733
公开日2011年8月17日 申请日期2011年4月27日 优先权日2011年4月27日
发明者丁玉叶, 于文进, 兰盛昌, 徐卓异, 徐国栋, 林晓辉, 潘瑞, 马玉海 申请人:哈尔滨工业大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1