(江苏科技大学电子信息学院 镇江 212003)
立方星虽然体积小,但是集成度高,其星载计算机系统同样具备传统卫星的所有功能,该系统作为立方星的核心部件,主要完成在轨数据处理、卫星测控以及星上控制等[1]。星载计算机以嵌入式处理器为基础,以软件为主体,是一类以分布式、多进程、可扩展为特点,并拥有自主导航、自我修复和集中管控等功能的综合电子系统。相比于传统大卫星中各大子系统之间的分立架构,立方星的星载计算机体现了“集中管控”的思想,即计算机板提供计算控制单元、星上存储单元、对外接口单元和必要外部电路,各个子系统通过星上总线或直连的方式接入星载计算机[2]。这种做法弱化了星上各子系统之间的界限,各子系统的采集、处理、监视、控制等操作统一交由星载计算机进行调度处理,子系统提供星务软件控制所需的各种应用程序接口函数,它们的资源绝大多数甚至全部由星载计算机进行分配,实现了整星资源、状态、遥测和控制的统一管理和调度[3]。本文以STM32微控制器作为星载计算机进行3U立方星的星务和姿态控制设计。第一部分分析并实现星务及姿态控制所需硬件模块,主要有中心计算机模块、磁强计模块、磁力矩器模块、动量轮模块、GPS模块、天线模块、测控收发机模块,电源及配电模块。第二部分完成3U立方星星务和姿态控制软件设计,基于STM32F4微控制器进行软件设计,主要包括星务和姿控两大部分,姿控部分采用封装函数方式与星务部分共同构成星务软件,完成各个卫星的各项任务和姿态稳定控制。
总体方案的目的是对各分系统需完成的功能及实现方式进行总体规划,完成总体方案设计后,再以此为根据对各功能模块进行详细设计。本文中3U立方星星务及姿态控制系统硬件部分采用模块化解决方案,总体方案如图1所示。
图1 总体方案图
主要组成部分功能:
1)星载计算机模块:基于STM32F4微控制器,主要进行卫星任务处理及卫星姿态控制。
2)GPS接收机模块:GPS接收机,提供星上时间,位置及速度,作为姿控输入量。
3)三轴磁强计模块:敏感在轨的地磁强度,根据磁场信息计算出卫星姿态。
4)三轴磁力矩器模块:作为姿控执行器件进行姿态调整。
5)偏执动量轮模块:通过在俯仰轴负方向加装偏置动量轮,利用其陀螺定轴性稳姿。
6)太阳敏感器及陀螺模块:分别提供对日角度和角速度,作为辅助定姿器件。
7)测控收发机模块:为星地测控服务。
8)天线模块:与测控收发机共同构成测控模块,为星务计算机和地面站提供测控支持。
9)电源及配电模块:为各个模块提供电能支持。
对于星务管理软件的设计,可以将整个星务任务分解为一些小的任务,选择基于FreeRTOS嵌入式实时操作系统,作为一个轻量级的操作系统,功能包括:任务管理、时间管理、信号量、消息队列、内存管理、记录功能、软件定时器等,内核支持优先级调度算法[4]。
立方星星务计算机不仅要满足卫星体积小、质量轻的特点,还需要满足在低功耗的情况下提供高性能的处理能力、长寿命与高可靠性的指标,保证卫星能够顺利的完成空间任务[5]。星载计算机选择STM32F4作为微控制器,STM32F4是由ST(意法半导体)开发的一种32位高性能微控制器,具有低功耗,超多外设,实时性能优异等优点。星务及姿控的实现依靠星载计算机与一系列外围模块组成,因此应首先设计此星载计算机模块。
星载计算机模块通过UART,IIC和SPI接口实现对其他模块的通信和控制,同时,板载的STM32的IO口部分用于直接进行ADC采集,采集星上各部分电压电流温度等信息,另一部分用于控制各个模块的供电继电器开合。STM32F4采用外部8M晶振作为主时钟晶振,内部倍频到60MHz。部分引脚原理图如图2所示。
图2 STM32F4原理图
部分ADC采集电路如图3所示。星载计算机与其他模块通过PC104接口相连,部分接口如图4所示。
图3 ADC采集电路
图4 模块间接口
鉴于立方星尺寸小,空间有限的特点,因此在硬件设计时采用模块化思维,主要的模块包括星载计算机模块、GPS模块、三轴磁强计模块、太敏及陀螺模块、偏执动量轮模块、三轴磁力矩器模块、天线模块、测控收发机模块和电源配电模块[6]。姿态执行部件基于磁力矩器+俯仰偏置动量轮的控制方式;姿态测量部件采用磁强计+模拟太阳敏感器+陀螺方案;星上自主轨道确定采用星载GPS接收机数据推算两行根数;同时,星上轨道数据可依靠地面站的周期注入[7]。由于篇幅有限,文章不再对姿控相关模块硬件设计做详细叙述。
本文提出了星载计算机的软件系统设计方案,介绍了软件的运行模式和任务调度过程。星务软件既包含卫星各项任务的处理,同时也包含姿态控制的实现[8]。整个流程的简易流程如图5所示。
卫星执行各个不同的任务需要星务计算机的调度,星务计算机软件基于FreeRTOS操作系统,利用该系统的多任务调度处理能力进行星务任务管理,星务计算机软件的调度周期定为2ms,通过每滴答定时器的时钟片中断调度,对于同等实时性要求的任务,按照任务的重要性依次进行调度,并按任务优先级执行任务[9]。
各个硬件模块均由星载计算机的STM32微控制器进行控制,由于模块较多,下面只进行个别主要模块的驱动层面软件实现介绍。
1)GPS模块与星载计算机模块采用UART串口通信。GPS数据内容解析部分代码如下所示。
图5 星务系统流程图
2)三轴磁强计模块与星务计算机采用SPI通信,磁强计故障检测及切换部分代码如下。
3)三轴磁力矩器模块驱动实现
4)偏执动量轮与星务计算机采用UART通信,转速设置部分代码如下。
星箭分离后,星载计算机完成加电,然后控制完成各项任务。
1)星务常态运行流程如表1所示。
表1 星务运行流程
其中的部分任务调度代码如下。
2)遥控遥测任务
遥控任务是星载计算机处理地面站指令,根据指令进行控制,部分实现代码如下。
遥测任务主要包含卫星状态、运行参数、轨道数据及各个传感器等信息,部分实现代码如下。
姿控的实现是通过星务计算机采集各个姿控采集模块的数据,根据采集数据进行姿态计算,最后输出控制量,转化为PWM后控制磁力矩器调节卫星姿态[10]。
姿态确定与控制各个阶段控制模式如下。
1)角速率阻尼
星箭分离后,默认进入该模式,结合磁强计信息,采用三轴磁力矩器实现角速率阻尼,动量轮维持中心角动量矩(1000rpm)状态。阻尼过程中接受地面站测控,并进行轨道参数上注和校时工作,并择机启动俯仰滤波器。此时磁强计、磁力矩器、动量轮加电状态维持不变,陀螺根据地面指令进行遥控开关机。
2)姿态捕获
卫星角速率阻尼结束后,利用磁力距器、动量轮和磁强计,实现地球捕获,初步建立对地指向。此时磁强计、磁力矩器、动量轮加电状态维持不变。动量轮保持处于中心转速状态,俯仰滤波器估计俯仰角与俯仰角速度,当俯仰滤波器指示角度进入俯仰主动控制律门限后,磁力距器进行俯仰方向的主动控制,机动到对地状态后保持姿态,此时完成了地球捕获[11]。
3)三轴稳定控制
姿态捕获阶段结束后进入。利用动量轮的角动量矩实现卫星的惯性定向,磁力矩器作为主动控制部件,实现卫星的章进动控制和俯仰姿态控制。此时磁强计、磁力矩器、动量轮加电状态维持不变,GPS接收机保持常开状态。
4)强制进入阻尼模式
当动量轮发生故障后,可关闭动量轮并且让卫星进入永久阻尼模式,接收到地面指令后,此时控制软件利用保存的轨道六根数计算轨道参数。
部分姿控采集任务如下。
部分姿控计算如下。
对姿控部分进行仿真,得到滚动角,俯仰角,偏航角及三个角速率的仿真数据。
滚动角速率和偏航角速率仿真如图6所示。
图6 滚动角速率和偏航角速率仿真图
因立方星电源容量有限,为减少电源损耗,设计动量轮在星箭分离后起旋[12],动量轮起旋加速会导致俯仰方向产生较大角速率,因此俯仰角速率调节较慢,仿真如图7所示。
滚动角,俯仰角,偏航角的仿真如图8所示。
图7 俯仰角速率仿真图
图8 姿态角仿真图
仿真结果显示,姿控能够完成卫星姿态的调整,另外姿控的PD参数也可以由地面站上注,实现在轨姿控参数的调整。
本文基于STM32微控制器对3U立方星进行星务和姿控设计,为立方星的星务及姿态控制提供了一种新的实现方式。文章先是对星务及姿控相关硬件模块进行了阐述,然后对星务软件进行设计描述,最后对姿态控制部分进行仿真。经过测试,星务软件能够长期稳定运行,各任务之间调度安全可靠;姿态控制部分的仿真也表明姿态控制也能满足任务需求。