发明名称 一种基于角速度和FPGA的欧拉角直接输出方法
摘要 本发明涉及一种基于角速度和FPGA的欧拉角直接输出方法,用于解决现有的欧拉角直接输出方法计算精度差的技术问题。该方法通过改进现有方法的复杂度,同时保证计算精度,然后基于FPGA并行计算理念优化计算表达式,以此完成算法并行性设计。在此基础上,通过设计嵌套状态机和流水计算结构,实现算法的实时有效计算;通过ROM表简化非线性函数计算,通过余弦倒数表,约简了除法运算,使得计算结构更为精简,以此完成算法硬件化设计。角速度陀螺输出的角速度通过串口接收,将其编码为整数,再通过查表和多次乘法更新欧拉角,最后将欧拉角解码并用串口输出到上位机,监视性能。只需当前角速度和上一时刻的欧拉角,便可直接输出当前的欧拉角,提高了计算精度。<pb pnum="1" />
申请公布号 CN106508019B 申请公布日期 2014.02.05
申请号 CN201010049133.X 申请日期 2010.07.08
申请人 西北工业大学 发明人 史忠科;辛琪
分类号 G06F17/00(2006.01)I 主分类号 G06F17/00(2006.01)I
代理机构 西北工业大学专利中心 61204 代理人 王鲜凯
主权项 一种基于角速度和FPGA的欧拉角直接输出方法,其特征在于包括以下步骤:(a)首先计算滚转角增量:<img file="FWW0000000056000000011.GIF" wi="1211" he="145" />(b)查表计算B阵:<img file="FWW0000000056000000012.GIF" wi="1057" he="137" />(c)并行计算欧拉角:<img file="FWW0000000056000000013.GIF" wi="1364" he="409" />(d)在FPGA中设计嵌套状态机实现欧拉角的并行和流水计算:设计姿态计算IP完成嵌套状态机对计算流程的控制,直接输出当前时刻的欧拉角;具体步骤如下;1)设置初始化欧拉角:计算流程通过设计嵌套状态机来实现,嵌套状态机按顺序流程进行,并行过程在顺序流程的参考下进行;状态机初始状态和复位后的状态为作业分割和作业同步,使得开始可输入欧拉角;然后进入欧拉角输入状态,欧拉角在握手信号的监视下输入,即测试模块先输出欧拉角和欧拉角有效信号,欧拉角计算IP在接收到欧拉角有效信号后,将欧拉角读入、将向测试模块请求数据的信号置低,然后进入等待状态,直到欧拉角有效信号为低时,再向测试模块请求数据,并进入下一个欧拉角的输入状态,直到三个欧拉角均输入完毕,进入角速度的输入过程;2)可靠输入(k+1)T时刻的角速度:欧拉角只在初始时刻输入,或需校正时输入,而角速度要求按角速度陀螺的频率周期性的输入;角速度的输入过程同初始欧拉角的输入过程;输入完毕之后进入查表状态,并再次进行作业分割与同步,使得满足查表得输入输出要求;3)基于正弦和余弦倒数ROM表计算<img file="FWW0000000056000000014.GIF" wi="624" he="119" />查表过程细分为数据域调整、弧度到角度的调整、数据输出、查表等待和读入数据五个状态;数据域调整过程,使得查表欧拉角的范围处于2<sup>N</sup>[‑π,π],2<sup>N</sup>为数据精度描述放大倍数;弧度到角度的调整先将数据乘以57近似地表达为角度,再进行移位定标,使得数据处于[‑180,180],再由三角函数关系,计算查表输出欧拉角和查表结果符号;数据输出过程,再次分割作业与同步,输出查表输出欧拉角和查表结果符号;查表等待过程,读写ROM需要两个时钟,数据才可稳定;读入数据过程,读入查表结果,并进行符号调整;4)基于硬件乘法器的欧拉角计算。<pb pnum="1" />
地址 710072 陕西省西安市友谊西路127号