多处理器实时仿真平台的制作方法

文档序号:2536362阅读:356来源:国知局
专利名称:多处理器实时仿真平台的制作方法
技术领域
本发明一种用于卫星动态的仿真平台,特别是一种多处理器实时仿真平台。

背景技术
卫星动态仿真技术就是用做试验来进行科学研究的方法。卫星仿真分为数学仿真、半物理仿真、全物理仿真三种,其中卫星控制系统的仿真尤为重要。数学仿真就是在计算机上对系统的数学模型进行试验,卫星控制系统数学仿真通常与控制系统计算机辅助分析相结合,完成卫星轨道动力学和卫星姿态动力学的时域仿真及控制系统频域分析。
卫星数学仿真主要包括下列内容(1)空间环境模型仿真包括地球引力场、磁场、空气动力、太阳辐射压力、日-月-地摄动等仿真;(2)卫星的轨道动力学及制导与导航系统仿真;(3)卫星的姿态动力学与控制系统仿真,包括三轴稳定卫星姿态确定与控制系统仿真;自旋卫星姿态确定与控制系统仿真;多刚体系统动力学分析及控制仿真;带晃动液体贮箱及大型挠性附件卫星的姿态确定与控制系统仿真。
数学仿真最关键的问题是建立能精确地反映系统性能的数学模型。建立系统数学模型有两种途径,即理论建模和试验建模。一个复杂的动力学系统建模常常需要两种方法并用。采用理论建立的数学模型不仅需要通过试验来取得有关参数,也有待于通过试验来验证和修正。复杂卫星的结构一般由一个主刚体、挠性附件(大型天线和太阳帆板)和带有晃动液体的燃料贮箱组成,系统高度复杂,很难得到精确的理论模型并求解,总是在一定的假设条件下简化,这就使得验证模型工作显得十分重要。通过测量卫星在轨运行参数来验证和修改卫星的数学模型是最为有效的方法,但难度颇大。
目前,对于卫星数字仿真通常采用的是PC机作核心处理机,同时采用windows操作系统。由于系统本身存在某些不确定因素及实时性不够,因此会造成整个仿真不确定.如果采用VxWorks实时操作系统,同样仿真成本会增加。有时为了仿真相应的空间环境,都要动用几十台电脑同时工作十几天,这样一个方面造成资源浪费,另一方面花费时间太多;同时采用PC机实现卫星系统仿真,大多数是基于PCI总线卡,这样在数据传输上PCI总线的带宽及传输速率是整个控制系统的瓶颈,因此在这个基础上,提出多处理器实时仿真平台,对于卫星动态仿真,是一个非常必要的,而且是今后卫星发展的一个趋势,是必须的,同时集成ARM技术、DSP技术及FPGA技术的各种优势的嵌入式系统,是卫星动态仿真中唯一能够突破PC机仿真瓶颈的技术途径,不仅可以大大提高卫星仿真精度,同时也为今后卫星在处理器选型上提供可靠的依据和支持。


发明内容
本发明的技术解决问题克服现有技术的不足,提供一种基于嵌入式高速共享存储器的多处理器实时仿真平台,它避免了在卫星设计前期的数字化仿真利用众多的计算机进行仿真,解决了模型库小型化,简化了系统的复杂性,降低了仿真难度,提高了仿真的实时性。
本发明的技术解决方案多处理器卫星实时仿真平台,由三个或更多的ARM处理器和两个或更多的DSP处理器通过FPGA作为中间存储器组成,其中ARM1作为仿真卫星控制中心计算机,运行姿态轨道控制算法;ARM2用于仿真卫星所处的空间环境;ARM3用于卫星的动力学计算,完成对卫星姿态轨道参数计算;DSP1主要是完成敏感器模型的计算;DSP2主要是完成执行机构模型的计算;首先ARM1向DSP1发出数据获取指令,即ARM1要读取当前卫星敏感器数据,然后DSP1向ARM2、ARM3发出获取数据指令,即敏感器要知道当前卫星所处的空间环境和动力学状态,从FPGA中读取到相关数据后即向ARM1传送数据,ARM1根据所读取的数据进行计算获得相应的姿态轨道参数,如果参数满足要求,卫星即进入正常模式,如果不满足要求,ARM1向DSP2发送控制指令,完成对执行机构的控制,同时DSP2完成计算后通过FPGA向ARM2、ARM3输出相应数据,直到姿态轨道满足相应要求。
所述仿真平台还包括扩展接口,主要是便于所述的各处理器作功能扩展用,实现相应功能后通过扩展接口实现数据对外通信。
本发明与现有技术相比的优点在于 (1)本发明采用ARM芯片主要是来替换当今卫星仿真所使用的计算机,由于ARM芯片主要完成姿态/轨道控制、动力学计算、空间环境计算,这个计算会使用相应的操作系统,因此采用ARM芯片可以更好地移植相应的程序,而不需要对已有的程序有太大的变动,同时目前ARM内核其主频已超过1GHZ,对于星上的程序计算已经足够;采用DSP作为模型计算主要考虑其精度,在进行各个模型仿真时,建立的模型尽可能与真实卫星相应的部件一致,包括建立各部件的基本模型、误差模型、其他干扰模型以及故障模型等,因此主要着重于算法及计算,DSP芯片其最主要的优点就是具有强大的计算能力,因此可以胜任对各模型的计算仿真;FPGA技术主要是完成对各种逻辑的处理,整个卫星要实现数据共享,都要通过FPGA内部存储空间实现,通过在FPGA内部采用FIFO模块,可以方便地实现各个处理器之间的数据共享。
(2)整个处理模块之间采用中断机制进行相互协调,可方便地实现仿真的数据通信,避免了在采用计算机仿真时出现的非常难解决同步机制问题。
(3)整个处理模块,各处理器之间采用三总线,即数据/地址/控制总线连接方式实现数据传输,避免了采用计算机仿真时通过PCI总线卡实现对下端设备的控制,采用计算机会出现PCI总线速率及带宽的限制,同时通过PCI总线传输其总线传输时延非常大,是提高系统响应时间的一个瓶颈,并且PCI总线不具备实时传输机制,本发明处理模块采用三总线直连方式提高数据传输效率及通信时间,同时还极大地提高了系统响应时间及实时性,提高了卫星的控制精度。
(4)整个处理模块,主要逻辑控制由FPGA来实现,因此解决了采用计算机繁杂的握手信号的处理,同时还会消耗大量计算机资源的问题,采用FPGA完成逻辑处理方便地实现了各处理器之间的协调。
(5)整个处理模块,所有数据都通过FPGA实现数据共享,采用FIFO技术实现数据融合,提高了数据的互访效率,避免了采用计算机仿真时使用昂贵的反射内存网实现数据共享。
(6)整个处理模块采用通用化、小型化及模块化设计,不仅适用于单颗卫星控制系统仿真,还可通过扩展接口实现多星仿真。避免了采用计算机进行多星仿真时要使用大量的计算机和浪费大量的空间资源,同时整个处理模块的扩充极大地提高了组建卫星星座仿真的效率。
(7)整个处理模块不仅可以作为一个仿真平台来实现单颗卫星控制系统的仿真,同时也可以将其作为其中一个部件,如将其中的ARM处理器作为空间环境单个模型的处理,同时通过FPGA实现数据共享,可以方便地实现更为复杂模型的计算,可以通过计算对其他工作提供数据支持,如重新配置整个处理模块的部分程序可以用来进行空间碎片建模计算。
(8)整个处理模块可以进一步扩展,如增加更多的ARM处理器,其内部运行实时操作系统用于替换当前仿真中所使用的计算机,如增加更多的DSP处理器可以实现更为复杂的模型计算,提高整个卫星控制精度;增加更多的处理器只要按照与之前的处理器连线方式相同即可,同时再按相应的程序配置FPGA的管脚就可实现处理器模块的增加。
(9)整个处理模块实现过程容易,对于之前已有的程序不需要作太大的改变,如采用操作系统,只需适当移植相应的程序即可实现与原来采用计算机仿真同样的功能,同时根据不同卫星配置不同程序,极大地提高了卫星前期仿真的效率及降低了前期仿真的运行成本。



图1为本发明的动态仿真的原理示意图; 图2为本发明的多处理器实时仿真平台组成框图; 图3为本发明的仿真平台的实现流程图; 图4为图2中的FPGA内部功能图; 图5为图2中的ARM1的实现流程图; 图6为图5中姿轨控软件的耦合性分析; 图7为图2中的ARM2的实现流程图; 图8为图2中的ARM3的实现流程图; 图9为图7中由中心刚体和多个挠性附件构成的卫星坐标系; 图10为图2中的DSP1的实现流程图; 图11为图2中的DSP2的实现流程图; 图12为图11中磁力矩器控制模型程序流程图; 图13为图2中的扩展接口的实现框图; 图14为图2中扩展系统的分布式解决方案; 图15为本发明的具体实现框图; 图16为本发明的通过网络UDP方式向地面计算机模拟器发送的归档数据图,其中图16a为卫星姿态控制示意图,16b为敏感器数据显示图,16c为三维STK显示示意图。

具体实施例方式 如图1所示,本发明整个卫星动态仿真原理。卫星处在不同工作模式下进行不同的姿态/轨道控制,在进行姿态控制时,卫星控制中心处理器首先从敏感器读取相应敏感器的数据,获得当前卫星所处状态即当前卫星星历、太阳位置、月球位置、地球位置等一系列参数,获得参数后,中心控制器计算当前卫星所需姿态角,同时发出相应控制命令控制执行机构动作;此时卫星本体在卫星自身的执行机构动作后,加上空间摄动的影响,卫星姿态会发生相应的改变,同时敏感器会获得相关参数提供给控制中心处理器进行下一步姿态控制,直至敏感器获得的参数符合卫星所需的数据时为止。
如图2所示,本发明由三个或者更多的ARM处理器和两个或更多的DSP处理器通过FPGA作为中间存储器组成,整个处理模块架构简单,全部由单芯片组成,不涉及复杂的外扩芯片及接口或者复杂的总线技术;其中ARM1用于仿真卫星控制中心计算机,运行姿态轨道控制算法,按卫星从星箭分离开始进行模式分解,具体模式可根据不同卫星会有不同的区别,但基本上包含速率阻尼模式、太阳捕获模式、地球搜索模式、正常模式、应急模式等。对于不同的模式采用不同的控制方法,一般典型的算法都是基于PID控制律设计;ARM2用于仿真卫星所处的空间环境,主要是各种摄动力对卫星本身的影响,比较典型的如低轨道卫星考虑较多的为地球非球形摄动、地球引力摄动、大气阻力影响等,对于中高轨道卫星来说,较多考虑太阳光压摄动、月球引力摄动等;根据不同轨道卫星运行轨道不同考虑空间环境仿真会不一样;ARM3用于卫星的动力学计算,完成对卫星姿态轨道计算,其主要根据当前获得的卫星测量部件信息和控制部件信息,同时根据卫星本身的一些信息如卫星重量、惯量等计算出卫星当前的姿态和轨道数据给控制中心计算机和敏感器及执行机构;两个DSP主要用来计算各种不同的模型,可以根据不同的卫星配置不同敏感器和执行机构来配置不同的部件模型,由于地面仿真要尽可能做到与真实部件一致,因此需要芯片支持浮点运算能力和强大的计算能力,DSP正好可以胜任这一要求。DSP1主要是敏感器模型的计算,主要计算敏感器相关信息,目前敏感器基本包括太阳敏感器、地球敏感器、星敏感器、陀螺和磁强计等。根据不同轨道卫星可选择不同的敏感部件,如低轨道小卫星一般选择太阳敏感器、陀螺、磁强计等,因此仿真时只需添加相应的模型即可。整个模型在进行计算时,需要从外部获得相应的信息,因此DSP1首先得从外部读取当前卫星姿态轨道信息,这些数据需要从动力学计算机获取,动力学计算机给出信息后,敏感器根据卫星目前的状态,以及敏感器安装的位置,同时根据敏感器本身的工作原理计算出敏感器当前应该输出的数据,DSP2主要是执行机构模型的计算,目前执行机构主要包括磁力矩器、推力器、动量轮和控制力矩陀螺。与DSP1一样,不同轨道的卫星会选择不同的执行机构部件。其具体情况与DSP1相同。
如图3所示,本发明的实现过程如下首先上电启动后,各芯片首先自己运行初始化程序,初始化各种变量、堆栈空间等,完成初始化后,芯片开始等待程序运行指令,星载计算机运行姿态/轨道控制算法,启动程序运行指令,即各处理器接收到一个信号变化后,程序启动运行;ARM1首先向DSP1发出数据获取指令,即控制中心处理器AMR1读取当前卫星敏感器数据,DSP1向ARM2、ARM3发出获取数据指令,即敏感器要知道当前卫星所处的空间状态,从FPGA中读取到相关数据后即向ARM1传送数据;ARM1根据所读取的数据进行计算获得相应的姿态轨道参数,如果参数满足要求,卫星即进入正常模式,如果不满足要求,ARM1向DSP2发送控制指令,完成对执行机构的控制,同时DSP2完成计算后通过FPGA向ARM2、ARM3输出相应数据,直到姿态轨道满足相应要求。
如图4所示,本发明中的FPGA作为整个系统仿真中间存储器,主要采用FIFO技术实现数据共享,其中一个ARM处理器将计算完成的数据通过地址/数据总线写入FIFO,同时触发其他几个设备,如果此时其他几个设备需要相关数据则发出相关指令读取这些数据,因为每一个设备都对应一个FIFO,而每个FIFO又跟其他几个处理器相连,由于采用的是地址/数据直接连接,整个读写过程的时间几乎可以忽略不记,同时也避免了同一时刻向同一FIFO写入很多数据。FPGA同时还完成对整个系统仿真的同步控制,避免仿真出现混乱,因为卫星动态仿真过程对同步要求极高,本发明采用FPGA完成协调控制,及匹配各处理器的时序逻辑。
如图5所示,本发明的ARM1由单一芯片构成,其是整个卫星仿真平台的控制核心,其首先通过FPGA读取DSP1存放在FIFO中的数据,进行姿态轨道控制算法计算后,向FPGA输出相应的控制命令,同时通知DSP2读取相应数据,DSP2读取相应命令后完成对执行机构的控制模拟。由上可知ARM1对外直接与FPGA连接,所有数据采用FPGA内部FIFO模块共享。
ARM1内部涉及姿态轨道控制算法,其具体实现方法如下 (1)首先根据系统论原理,对姿态控制算法进行耦合性分析,主要从系统功能分解、硬件组成结构分解、算法分解、参数分解几个层面上进行。一般情况下,由于需实现的功能不同,完成任务所需要的敏感器和执行机构也不同;在硬件组成结构相同的情况下,不同的工况,姿态估计和姿态控制算法也可能不同;在算法相同的情况下,不同的工况,控制参数也不同。所以越接近底层,可分解出来的不同模块越多,呈金字塔形,如图6所示。以下说明每个分解层次的具体含义。
功能层分解是根据特定时间或特定工况姿轨控系统完成的任务不同进行分解,分解后得出的功能模式是描述姿轨控系统能力的规范用语。
硬件组成结构层分解是根据姿轨控系统采用的敏感器与执行机构不同进行分解,分解后得出的组成结构模式是描述姿轨控系统工作状况的规范用语。星上电子系统的一些设计工况与此相关。
算法层分解是根据姿轨控系统姿态确定与姿态控制算法的不同进行分解。算法分解不仅是区分不同处,也可以归纳出相同处。分解出的规范算法可以在不同的卫星间共享,增强星载软件系统的可靠性,降低研制风险。
参数层分解是根据设定的修正、反馈和其它工作参数不同进一步对算法进行分解。分解出的核心参数是遥测遥控信号设计的依据之一。
(2)按以上分解完成后,根据不同的模式要求,确定不同的姿态确定算法和控制算法。大体上姿态确定算法有星光与太阳光双矢量定姿、太阳与地磁双矢量定姿、日地双矢量定姿、姿态与陀螺漂移修正等等,控制算法大体上八分区相平面喷气脉宽计算、继电器型角速度喷气控制、推力器分配算法等等,可根据具体实现方式采用不同算法,同时也确定好各算法的输入输出参数。
(3)轨道计算只有两种方法,一种是利用地面站注入的数据进行推算,另一种是采用GPS数据,并对注入数据进行修正。
(4)轨道控制主要采用轨控发动机进行轨道修正及变轨。
完成上述步骤后,即可编程统一各种算法,实现不同模式下的调度需求,也就是整个姿态轨道控制算法。
如图7所示,ARM2由单一芯片构成,其主要完成空间环境计算,在接收到ARM1发出的运行指令后,ARM2开始运行,同时将空间环境计算完成的数据存储在FPGA中相应的FIFO空间处;DSP1在接到ARM1获取数据指令后,立即向ARM2发出数据获取指令,同时读取ARM2在FPGA内部存储好的数据;DSP1同时也在FPGA中存储相关数据供ARM3读取。
以天体位置计算为例说明ARM2空间环境计算方法 太阳位置确定实现原理已知数据注入时确定的历元时刻τ及一组太阳轨道根数,可以根据这组根数推算出任意时刻太阳的直角坐标。根据地球自转速率求格林维治赤经,具体实现步骤如下 (1)确定输入参数即计算历元时刻t (2)确定输出参数即太阳在惯性坐标系中的空间位置矢量r,格林维治赤经λG (3)注入存贮数据(太阳轨道根数)e,i,t0,ω0,M0,ωm,n,λG0 常数地球自转角速度ωE=7.292115×10-5rad/s 这几个数据有具体计算方法如下 根据天文年历,可以查得相对于当天平春分点的太阳平轨道根数,不考虑当天平春分点与J2000.0平春分点的偏差,则太阳在地心惯性坐标系内的平轨道根数描述为 e=0.01670862-0.00004204T-0.00000124T2 i=23°26′21″.448-46″.815T-0″.00059T2+0″.00181T3 ω0=282°56′14″.45+6190″.32T+1″.655t2+0″.012T3 M0=357°31′44.76″+129596581″T-0″.562T2-0″.012T3 n=1.990968752798×10-7 ωm=-9.510076261979×10-12 t0时的格林威治角
其中T为J2000.0起算的时间间隔儒略世纪数,其计算公式为 其中JD(t)是计算时刻t对应的儒略日,JD(J2000.0)是历元J2000.0对应的儒略日。
(4)星上具体计算太阳位置在惯性坐标系中的位置方法如下 t时刻轨道根数 M=M0+n(t-t0) ω=ω0+ωm(t-t0) f=M+2esinM+1.25e2sin(2M)+ω 太阳在惯性坐标系中的位置为 格林维治赤经 λG=λG0+ωE(t-t0) 根据以上4步,就可以得出当前时刻t,太阳在惯性坐标系下的具体位置。
如图8所示,本发明的动力学计算处理器AMR3主要完成卫星当前姿态轨道计算,动力学处理器等待DSP1通知其读取数据,即ARM3得到DSP1发出的读取指令后,从FPGA中所对应的FIFO处读取当前卫星敏感器的状态数据,同时进行卫星当前姿态及轨道参数计算,并将数据存储至FPGA中;DSP2得到ARM1发出控制指令后,也进行模型计算,将结果存储至FPGA相应的FIFO中,同时通知ARM3读取当前数据,ARM3接收到最新数据后计算,同时将结果存储至FPGA的FIFO中。
卫星当前姿态及轨道参数计算中涉及的控制参数包括轨道、姿态及质量、惯量等参数,各种敏感器参数,执行机构参数,气动外形参数,太阳帆板参数,传输参数以及动力学模型。
轨道和姿态参数包括目标姿态参数;敏感器参数包括星敏感器、太阳敏感器、地球敏感器、陀螺和磁强计的安装角和视场角等参数;执行机构参数包括动量轮的惯量、最大角速度、噪声初始转速,推力器的平均推力、力矩矢量、安装点、噪声,磁力矩器的最大力矩、时延噪声等;外形参数包括气动系数,本体面积,几何中心等;太阳帆板参数包括几何中心,模态参数等。
卫星当前姿态及轨道参数计算方法如下 (1)完成对卫星本体建模,得出卫星运动的线动量方程。建立带挠性附件的三轴稳定卫星动力学模型。假设卫星由一个中心刚体B和m个一端与其相连的挠性附件Bi(i=1,2,…,m)构成,如图9(由中心刚体和多个挠性附件构成的卫星坐标系)所示,并建立惯性坐标系Si、本体坐标系Sb与挠性附件坐标系。
假设用有限元法求得第i个挠性附件Bi相对挠性附件坐标系的悬臂振型和频率为
其中rik为第i个挠性附件的第k个节点相对挠性附件坐标系的原点Oi的矢径,ni为第i个挠性附件节点总数。设N为振型截断数,且假定每一附件的N均相等,

为3×N矩阵。其中带有双划线的变量均表示矢矩阵。
而在第i个挠性附件坐标系中第k个节点rik的位移uik可表示为
其中,qi(t)=[qi1(t),qi2(t),…qiN(t)]T为第i个挠性附件的模态坐标。
则卫星运动的线动量方程可写为 其中
式中

为3×N矩阵,是第i个挠性附件相对于本体坐标系Sb的平动耦合系数;

是第i个挠性附件在挠性坐标系中相对于Oi的平动耦合系数mT。
(2)确立卫星的角动量方程设H和TSAT为系统相对于O点的绝对角动量和力矩,偏置动量轮的角动量为h,ω并假设变形后质心运动速度很小,根据角动量定律和有限元分析结果可得卫星的角动量方程为 其中
式中

是第i个挠性附件相对于本体坐标系Sb的转动耦合系数;

是第i个挠性附件在挠性坐标系中相对于Oi的转动耦合系数。
(3)确定卫星运动方程,对于挠性附件的运动方程,应用变分原理进行推导。考虑挠性附件的结构阻尼ζ,最后可得其运动方程为 其中 (4)将上述三个方程归纳在一起,即得到经过线性化处理的卫星动力学方程。
如图10所示,本发明的DSP1是仿真敏感器模型,DSP1首先得到ARM1发出读取指令,其从FPGA中读取由ARM3计算出的结果,DSP1获得数据后进行相关计算,然后将计算结果存储到FPGA供ARM1读取。
如图11所示,本发明的DSP2是仿真执行机构模型,DSP2首先得到ARM1发出读取指令,其从FPGA中读取由ARM3计算出的结果,DSP2获得数据后进行相关计算,然后将计算结果存储到FPGA供ARM1、ARM3读取。
以下以磁力矩器模型为例说明DSP1和DSP2内部模型软件构成。
(1)假设条件设定磁矩噪声Mnoise,其中常值噪声为Mn.cons tan t,随机噪声为Mn.random。
(2)定义磁力矩器不同时间段的含义磁力矩从开始响应到规定结束响应时刻的时段称为Tduration,其中磁力矩器从产生磁矩到达到期望磁矩值的时段成为Tprepare;结束响应时刻到磁力矩器的磁矩撤销为零的时段称为Tlag,其中磁力矩器迅速衰减的时段称为Textent,Textent末时刻磁矩占MT的百分比为p。计算磁矩值的某一时刻为tcommand,当前时刻为tnow。
(3)确定磁力矩器控制模型中需要设置的参数,即某一时刻的磁矩M;期望产生的磁矩MT;磁力矩器能产生的最大磁矩Mmax,最终剩磁Mremain。磁力矩器的位置矢量r=[x y z]T。
(4)具体计算过程 ΔT=tcommand-tnow 若ΔT≥Tduration,ΔT1=ΔT-Tduration,则 当ΔT1≤Textent且Textent>0.0时,M=(1-ΔT1/Textent)·MT·(1-p)+Mnoise 当Textent<ΔT1<Tlag时,M=((ΔT1-textent)/(Tlag-Textent))·MT·p+Mnoise 当ΔT1≥Tlag时,M=Mremain; 若ΔT<Tprepare且Tprepare>0.0,M=(1-ΔT/Tprepare)·MT+Mnoise; 若Tprepare≤ΔT<Tduration,M=MT+Mnoise。
将上述的磁力矩器控制模型算法用程序流程图的形式表示如图12所示。
如图13所示,本发明的扩展接口主要是从ARM1扩出,因为ARM1主要是作控制计算机,在整个卫星大系统仿真时,主要由控制中心计算机与其他系统相连,因此整个处理模块在外扩接口时也主要选择作控制中心处理器的ARM芯片,同时ARM芯片自带相应的接口控制器,只需加载相应的接口处理芯片即可。图14所表示的是整个平台的整体扩展解决方案,其中在进行单星仿真时,可采用上述所示采用一个处理平台对不同部件功能分配从而实现仿真,如果要进行多星仿真,要求采用的部件众多,而且各星参数不一样,因此需要采用图14所示采用多个平台组合成所需要的敏感器平及执行机构平台,星载计算机平台。其中动力学计算和空间环境采用采用一个平台即可,通过CAN总线组成分布式实时仿真系统。这样大大缩短了卫星仿真平台组建的时间,提高了仿真效率。同时整个平台硬件完全统一,只是软件参数不一样,这样的模块化平台可以节约成本,降低风险。整个分布系统进行多星仿真可为今后卫星编队飞行及星座分布提供数据支持。
如图15所示,图15是整个模块具体实现图,ARM1发出仿真开始指令,各处理器完成初化后报告ARM1初始化完成;ARM1向DSP1发出读取当前敏感器数据指令,DSP1采用外中断响应,DSP1进入中断服务程序,同时通知ARM3,ARM3响应中断,并向ARM2发出更新数据指令,ARM2将当前空间信息存储在FPGA中,ARM3读取当前空间信息按相应控制算法计算当前敏感器数据,并将计算结果存储在FPGA中,DSP2发现FPGA中数据更新后读取最新数据,并通过模型计算出相应参数,并将参数存储至FPGA,ARM1立即将最新数据读取,通过相应控制算法完成对当前卫星姿态解算,如果符合要求,则进入正常模式,如果卫星当前姿态不符合目前需求,则计算出相应执行机构该如何控制,将计算结果存储至FPGA,同时向DSP2发出控制指令,DSP2中断响应后,立即从FPGA读取相应控制命令,DSP2对命令进行解析后,按模型进行计算,将计算结果存储至FPGA,同时通知ARM1和ARM3读取最新数据,ARM1和ARM3获得指令后,读取DSP2存储的最新数据,并进行计算,ARM3根据姿态/轨道算法,进行当前卫星姿态/轨道解算,同时将结果存储至FPGA,ARM1获得相关数据后进行相应简单计算,将计算结果存储至FPGA,同时ARM1再次读取DSP1存储在FPGA中的数据,整个过程周而复始,直到卫星当前姿态/轨道符合要求为止。由于每一个处理器在FPGA中都有对应的FIFO,只要其向相应的FIFO写入当前最新信息即可,FPGA根据相应的控制逻辑来判定由谁读取当前哪一个FIFO的数据,同时在FIFO 数据更新时通知相应的处理器做好数据接收的准备。
如图16所示,本发明通过网络UDP方式向地面计算机模拟器发送的归档数据。从图16可以监测当前卫星各个敏感器及执行机构的各种状态,从图16a上可以监测其各种姿态数据。图16b是用来监视整个系统敏感器的各种参数,同时接入三维显示可从STK显示卫星当前轨道和姿态信息,如图16c。
图16整个属于地面监测系统,本发明在完成数据处理时,将相应的归档数据经以太网UDP方式发送至地面监测系统,图上显示是具体实现过程中地面监测系统所显示的界面。原本卫星系统仿真是采用计算机完成,由控制系统和地面监测系统组成,本发明主要是为了替代当前由计算机组成的卫星控制仿真系统,由于其与地面监测系统采用以太网连接,因此本发明在对个扩展接口时也有以太网接口,同时为了更好地实现程序移植,在计算机仿真时,动力学计算机、环境计算机、星载计算机模拟器均采用VxWorks操作系统,因此在移植到ARM处理器还同样采用实时操作系统实现,对于模型库也采用之前的编写的模型程序,因此大大加快了整个开发进度,提高了仿真效率,达到了应有的效果。将发明接入相应的地面监测系统,就可以非常直观地观测整个仿真系统的运行过程。
权利要求
1、多处理器卫星实时仿真平台,其特征在于由三个或更多的ARM处理器和两个或更多的DSP处理器通过FPGA作为中间存储器组成,其中ARM1作为仿真卫星控制中心计算机,运行姿态轨道控制算法;ARM2用于仿真卫星所处的空间环境;ARM3用于卫星的动力学计算,完成对卫星姿态轨道参数计算;DSP1主要是完成敏感器模型的计算;DSP2主要是完成执行机构模型的计算;首先ARM1向DSP1发出数据获取指令,即ARM1要读取当前卫星敏感器数据,然后DSP1向ARM2、ARM3发出获取数据指令,即敏感器要知道当前卫星所处的空间环境和动力学状态,从FPGA中读取到相关数据后即向ARM1传送数据,ARM1根据所读取的数据进行计算获得相应的姿态轨道参数,如果参数满足要求,卫星即进入正常模式,如果不满足要求,ARM1向DSP2发送控制指令,完成对执行机构的控制,同时DSP2完成计算后通过FPGA向ARM2、ARM3输出相应数据,直到姿态轨道满足相应要求。
2、根据权利要求1所述的多处理器实时仿真平台,其特征在于所述仿真平台还包括扩展接口,主要是便于所述的各处理器作功能扩展用,实现相应功能后通过扩展接口实现数据对外通信。
3、根据权利要求1或2所述的多处理器实时仿真平台,其特征在于所述所有ARM处理器和所有的DSP处理器与FPGA的连接方式均采用硬件设计最简单的直连方式,即数据/地址/控制三总线形式。
4、根据权利要求1或2所述的多处理器实时仿真平台,其特征在于所述的FPGA主要采用FIFO技术实现数据共享,其中一个ARM处理器将计算完成的数据通过地址/数据总线写入FIFO,同时触发其他几个处理器,如果此时其他几个处理器需要相关数据则发出相关指令读取这些数据,每一个处理器均对应一个FIFO,而每个FIFO又与其他几个处理器相连。
5、根据权利要求1或2所述的多处理器卫星实时仿真平台,其特征在于所述的ARM1由单一芯片构成,其是整个卫星仿真平台的控制核心,其首先通过FPGA读取DSP1存放在FIFO中的数据,进行计算后,向FPGA输出相应的控制命令,同时通知DSP2读取相应数据,DSP2读取相应命令后完成对执行机构的控制模拟。
6、根据权利要求1或2所述的多处理器卫星实时仿真平台,其特征在于所述的ARM2由单一芯片构成,其主要完成空间环境计算,在接收到ARM1发出的运行指令后,ARM2程序开始运行,同时将计算完成的数据存储在FPGA中相应的FIFO空间处;DSP1在接到ARM1获取数据指令后,立即向ARM2发出数据获取指令,同时读取ARM2在FPGA内部存储好的数据;DSP1同时也在FPGA中存储相关数据供ARM3读取。
7、根据权利要求1或2所述的多处理器卫星实时仿真平台,其特征在于所述的AMR3主要完成卫星当前姿态轨道计算,动力学处理器等待DSP1通知其读取数据,即ARM3得到DSP1发出的读取指令后,从FPGA中所对应的FIFO处读取当前卫星敏感器的状态数据,同时进行计算卫星当前姿态及轨道,并将数据存储至FPGA中;DSP2得到ARM1发出控制指令后,也进行模型计算,将结果存储至FPGA相应的FIFO中,同时通知ARM3读取当前数据,ARM3接收到最新数据后计算,同时将结果存储至FPGA的FIFO中。
8、根据权利要求1或2所述的多处理器卫星实时仿真平台,其特征在于所述的DSP1是仿真敏感器模型,DSP1首先得到ARM1发出读取指令,其从FPGA中读取由ARM3计算出的结果,DSP1获得数据后进行相关计算,然后将计算结果存储到FPGA供ARM1读取。
9、根据权利要求1或2所述的多处理器卫星实时仿真平台,其特征在于所述的DSP2是仿真执行机构模型,DSP2首先得到ARM1发出读取指令,其从FPGA中读取由ARM3计算出的结果,DSP2获得数据后进行相关计算,然后将计算结果存储到FPGA供ARM1、ARM3读取。
全文摘要
多处理器卫星实时仿真平台由三个或更多的ARM处理器和两个或更多的DSP处理器通过FPGA作为中间存储器组成,其中ARM1作为仿真卫星控制中心计算机;ARM2用于仿真卫星所处的空间环境;ARM3用于卫星的动力学计算;DSP1完成敏感器模型的计算;DSP2完成执行机构模型的计算;ARM1向DSP1发出数据获取指令,DSP1向ARM2、ARM3发出获取数据指令,从FPGA中读取到相关数据后即向ARM1传送数据,ARM1根据所读取的数据进行计算获得相应的姿态轨道参数,如果参数满足要求,卫星即进入正常模式,如果不满足要求,ARM1向DSP2发送控制指令,完成对执行机构的控制,DSP2完成计算后通过FPGA向ARM2、ARM3输出相应数据,直到姿态轨道满足相应要求。本发明简化了系统的复杂性,降低了仿真难度,提高了仿真的实时性。
文档编号G09B9/08GK101320524SQ20081010468
公开日2008年12月10日 申请日期2008年4月22日 优先权日2008年4月22日
发明者迪 胡, 董云峰, 高小波, 巍 郭, 皓 王, 刘小林 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1