基于Unity3D的卫星姿态和轨道仿真系统及方法
文献发布时间:2023-06-19 11:39:06
技术领域
本发明属于虚拟仿真实验技术领域,具体涉及一种基于Unity3D的卫星姿态和轨道仿真系统及方法。
背景技术
随着计算机和网络技术的飞速发展,教育也在发生着深刻的变化。面向新工程体系的航天人才应该从全局的视角出发,系统掌握卫星的工作模式;从任务出发,深入理解关键技术,并融会贯通;以应用为牵引,解决实际工程问题和科学问题。但航天是高投入且高风险的高科技密集型工业,大多数学生很难接触到实际系统。即便是物理仿真系统,比如卫星姿态控制实验所用的气浮台,也是价格昂贵、操作复杂,国内只有少数几所高校能开展该类实验。由于设备数量少,受众更加有限。虚拟仿真实验能够让学生有机会认识复杂设备,甚至是复杂系统。并通过虚拟实验进行操作进一步理解实验原理,以及通过设计实验验证系统设计。
发明内容
本发明的目的是为了解决卫星姿态和轨道仿真的问题,提出了一种基于Unity3D的卫星姿态和轨道仿真系统及方法。
本发明的技术方案是:一种基于Unity3D的卫星姿态及轨道控制仿真系统,包括用户管理模块、实验教学模块、实验操作模块、课程管理模块、搜索模块和评论模块;
用户管理模块用于进行用户信息管理、角色信息管理、实验项目管理和评论管理;
实验教学模块用于提供实验教学视频、实验教学认知材料和实验步骤安排;
实验操作模块用于提供虚拟实验环境,采用Unity3D引擎开发的虚拟实验环境,并根据用户的虚拟操作和输入参数,进行卫星和轨道的生成及运行模拟;
课程管理模块用于为教工提供对教学课程的管理;
搜索模块用于供用户搜索实验和相应的课程开设信息;
评论模块用于收集并发布用户的反馈评论。
进一步地,实验教学认知材料包括实验简介、实验目的介绍、实验原理介绍和实验操作介绍。
进一步地,实验操作模块提供的虚拟实验场景包括太空环境态势分析场景、卫星轨道原理虚拟仿真场景、卫星对地观测任务规划模式和卫星对地观测过程展示模式的仿真场景。
进一步地,太空环境态势分析场景用于开展空间目标整体态势分析和卫星星座运行态势分析;
卫星轨道原理虚拟仿真场景用于开展轨道根数分析、卫星在太空环境下运行的点轨迹分析、卫星在轨加速原理分析和刹车原理分析;
卫星对地观察任务规划场景用于开展卫星对地观察空间的几何关系分析;
卫星对地观测过程展示模式时的仿真场景用于开展卫星的对地观测任务规划与仿真。
进一步地,搜索模块采用模糊搜索算法进行搜索。
进一步地,卫星姿态和轨道仿真系统的开发方法为:采用Vue框架构建仿真系统的前端页面,采用Spring Boot框架构建仿真系统的后端;
用户管理模块、实验教学模块、实验操作模块、课程管理模块、搜索模块和评论模块均基于前端页面显示,其中,实验教学模块中包括仿真系统的主页、仿真实验列表页和仿真实验介绍页;实验操作模块包括仿真实验操作页;用户管理模块包括用户信息页和用户登录注册页;课程管理模块包括课程安排页面、作业提交和处理页面;评论模块包括用户评论加载页面;
每一个模块页面中包含和处理的内容为:实验教学模块中提供仿真实验数据;实验操作模块中保存用户仿真实验结果数据;用户管理模块中实现用户注册、用户登录和进入实验操作的功能;评论模块提供仿真实验对应的评论列表以及保存用户实验评论,用于向用户提供相关消息。
进一步地,采用Mysql作为仿真系统的数据库,并利用8张表分类保存用户的实验数据和评论数据,分别为:收藏表、仿真实验项目类型表、仿真实验项目信息表、评论表、消息表、仿真项目文件表、用户信息表、角色表和用户权限表。
本发明的有益效果是:本发明的卫星姿态和轨道仿真系统可以通过简单的选择操作得到需要观察的卫星在轨信息,用户可了解实验的原理和整个操作流程。
基于以上系统,本发明还提出一种基于Unity3D的卫星姿态和轨道的仿真方法,包括以下步骤:
S1:打开卫星姿态和轨道仿真系统,在用户管理模块中进行用户注册并登陆系统,进入实验教学模块,用户通过查看课程管理模块中发布的实验仿真任务了解实验要求和实验步骤;
S2:根据实验仿真任务,进入实验操作模块,进行不同场景下卫星姿态和轨道的仿真。
本发明的有益效果是:本发明充分利用虚拟仿真的优势,虚拟仿真太空环境,模拟卫星的运行过程,使用简洁高效,模拟实验逼真效果明显,为学生的科研学习以及教师的办公提供了有效的虚拟仿真环境。
附图说明
图1为卫星姿态和轨道仿真系统的结构图;
图2为卫星姿态和轨道仿真方法的流程图。
具体实施方式
下面结合附图对本发明的实施例作进一步的说明。
如图1所示,本发明提供了一种基于Unity3D的卫星姿态和轨道仿真系统,包括用户管理模块、实验教学模块、实验操作模块、课程管理模块、搜索模块和评论模块;
用户管理模块用于进行用户信息管理、角色信息管理、实验项目管理和评论管理;
实验教学模块用于提供实验教学视频、实验教学认知材料和实验步骤安排;
实验操作模块用于提供虚拟实验环境,采用Unity3D引擎开发的虚拟实验环境,并根据用户的虚拟操作和输入参数,进行卫星和轨道的生成及运行模拟;实验操作模块采用Unity3D进行开发,实验项目开发后发布成网页形式,将其部署到系统中。
课程管理模块用于为教工提供对教学课程的管理;包括学期课程的动态添加与查看等;
搜索模块用于供用户搜索实验和相应的课程开设信息;搜索模块面向与所有的用户,主要功能为可以查找上课的课程信息;
评论模块用于收集并发布用户的反馈评论。
在本发明实施例中,实验教学认知材料包括实验简介、实验目的介绍、实验原理介绍和实验操作介绍。实验教学认知材料用以使用户对实验操作有充分了解。
在本发明实施例中,所示,实验操作模块提供的虚拟实验场景包括太空环境态势分析场景、卫星轨道原理虚拟仿真场景、卫星对地观察任务规划场景和卫星对地观察任务展示场景。
在本发明实施例中,太空环境态势分析场景用于开展空间目标整体态势分析和卫星星座运行态势分析;
卫星轨道原理虚拟仿真场景用于开展轨道根数分析、卫星星下点轨迹分析、卫星在轨加速原理分析和刹车原理分析;
卫星对地观察任务规划场景用于开展卫星对地观察空间的几何关系分析;
卫星对地观测过程展示模式时的仿真场景用于开展卫星的对地观测任务规划与仿真。
在太空环境态势分析场景中,学生通过实验案例选择可查看全球、美国、俄罗斯和中国等空间目标在轨分布及运行态势。学生通过实验案例选择可查看中国北斗导航卫星、美国全球导航卫星、中国通信卫星、美国铱星星座等在轨分布及运行态势,掌握典型卫星星座特征。此场景中定制了不同地卫星系统和星座系统,可以通过简单选择操作得到需要观察的卫星在轨信息显示。
在卫星轨道原理虚拟仿真场景中,学生通过更改轨道半长轴、轨道偏心率、轨道倾角、升交点赤经和近地点幅角等轨道根数,观察、分析卫星轨道形状和轨道位置的改变和特点,了解轨道进动等实验内容,同时在此场景中学生可以通过给予卫星一个瞬时的速度增量查看卫星在轨的轨道变化情况,以模仿现实中的卫星变轨过程即卫星在轨加速和刹车的过程。
在卫星对地观察任务规划场景中,用户可以通过改变卫星视角的视点大小分析视线及地面投影区域的变化,掌握卫星、相机和地面目标的空间几何关系。
卫星对地观察任务展示场景用于开展卫星的对地观测任务展示与仿真,包括但是不限于卫星为地面目标的推扫、立体成像和条带拼接成像。
虚拟实验环境包括虚拟太空环境、虚拟地球模型以及虚拟卫星模型控件,在实验操作模块中,用户进行实验操作时,用户按照教学模块中教师分配的实验材料和实验步骤在虚拟环境中使用不同的虚拟场景进行相应的模拟实验,要求学生掌握火箭发射流程、卫星动力学、典型轨道控制方法和卫星姿态。包括但不限于火箭发射过程、卫星对地观测轨道控制、姿态控制、载荷(天线)控制、地面站天线跟踪、通信链路建立过程、卫星工作模式控制过程。
在本发明实施例中,搜索模块采用模糊搜索算法进行搜索。
在本发明实施例中,卫星姿态和轨道仿真系统的开发方法为:采用Vue框架构建仿真系统的前端页面,采用Spring Boot框架构建仿真系统的后端;
用户管理模块、实验教学模块、实验操作模块、课程管理模块、搜索模块和评论模块均基于前端页面显示,其中,实验教学模块中包括仿真系统的主页、仿真实验列表页和仿真实验介绍页;实验操作模块包括仿真实验操作页;用户管理模块包括用户信息页和用户登录注册页;课程管理模块包括课程安排页面、作业提交和处理页面;评论模块包括用户评论加载页面;
每一个模块页面中包含和处理的内容为:实验教学模块中提供仿真实验数据;实验操作模块中保存用户仿真实验结果数据;用户管理模块中实现用户注册、用户登录和进入实验操作的功能;评论模块提供仿真实验对应的评论列表以及保存用户实验评论,用于向用户提供相关消息。
后端页面根据前端页面中用户输入的需求,反馈逻辑结果至前端页面,同时保存用户的实验数据和评论数据。Spring Boot封装屏蔽掉了复杂的配置和实现原理。后端功能包括:用于用户登录,注册,用户信息更改;提供仿真实验数据以及保存用户实验结果数据;提供仿真实验对应的评论列表以及保存用户评论;用于向用户提供相关消息等。后端使用Mybatis作为持久层框架,它支持定制化SQL、存储过程以及高级映射,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。使用简单的XML或注解来配置和映射原生信息,将接口和Java的POJOs(Plain Ordinary Java Object,普通的Java对象)映射成数据库中的记录。
在本发明实施例中,采用Mysql作为仿真系统的数据库,并利用8张表分类保存用户的实验数据和评论数据,分别为:收藏表、仿真实验项目类型表、仿真实验项目信息表、评论表、消息表、仿真项目文件表、用户信息表、角色表和用户权限表。
基于以上系统,本发明还提出一种基于Unity3D的卫星姿态和轨道的仿真方法,如图2所示,包括以下步骤:
S1:打开卫星姿态和轨道仿真系统,在用户管理模块中进行用户注册并登陆系统,进入实验教学模块,用户通过查看课程管理模块中发布的实验仿真任务了解实验要求和实验步骤;
S2:根据实验仿真任务,进入实验操作模块,进行不同场景下卫星姿态和轨道的仿真。UI界面设置了不同的场景之间的跳转按键,可以通过鼠标点击的方式进行场景切换;
场景一:太空环境态势分析场景中,为了使卫星的运行信息得到最大的准确性,采用的方式是将卫星的位置信息预存到格式文件中,通过C#脚本对文件进行解码加载的形式获得卫星和轨道的相关信息情况的。场景一可以对不同卫星星座实现专门定制显示,对星座中的所有卫星实现具体参数信息的实时显示,以使使用者可以对整个卫星星座的运行态势有清晰的分析和认识。
场景二:卫星轨道原理虚拟仿真场景中,为了保证轨道的规格显示,使用了多个刻画轨道的不同参数去绘画轨道,包括:轨道的长半轴、短半轴和倾斜程度等,并对每一个参数做了容错处理,即使在使用者输入的参数过大或者过小的时候也没保证其基本的正确性,所以不会产生超过极限而出现不符合显示的情况。这里是通过对卫星轨道数据做了多次尝试得到了最适合最逼真的数据范围控件,通过对输入框输入数据大小做了相应的判断实现的。此外为了方便用户的更清晰的观察到卫星的运行效果,在UI放置了可以调节卫星运行速度的滑动条,通过调节这一个滑动条可以加减速卫星转动的功能。
场景三:卫星对地观察任务场景中,为了更好的查看卫星观察视角,采用对卫星携带相机的动态投影,并用小窗口的方式动态的显示在屏幕上,对于卫星观察角度的成像在屏幕的成像效果,采用的Unity引擎自带的图层成像和覆盖功能,让它以小窗口的形式合理的显示在屏幕的角落,并且可以充分的考虑到显示在不同分辨率窗口下的情况,在窗口被放大的时候,投影会做适合的增缩。
为了让使用者有更好的观察效果,在卫星扫过地面的时候实现了灯光的照射,可以直观的提醒使用者卫星正在进行观察功能。其次在地面上为了让使用者了解卫星扫描的过程不是单一的一次扫过的过程,而是实现三次的地标扫描的效果,放置了三种不同颜色的扫描区域,每一种有十块子区域。每扫描一次,一个不同颜色的地标区域动态显示。这个功能是通过对卫星移动位置的侦测实现的,当卫星位于我们定义的位置上空的时候我们就用定时器的方式让子区域依次显示。
对于卫星观察角度和卫星速度的调整,是通过C#脚本动态获取UI滑块的值再对相机和卫星做实时调整实现的。
场景四:借助Unity引擎内嵌的重力及引力模拟模块仿真卫星与地球之间的引力,实现卫星在绕地球旋转过程的动量守衡,并可以通过在卫星正常在轨运行过程中给卫星一个正反向速度增量的过程来仿真模拟卫星的加速和减速过程,以及随后的卫星轨道变化情况的观察。
采用Token来进行身份认证,当前端使用用户名及密码向服务端请求认证时,若服务端认证成功,将返回Token给前端,前端在请求时带上服务端返回的Token证明自己的合法地位。例如在网页登录用户名和密码之后,所有的前端页面将输入的内容以表单的形式提交到系统的后端进行查找比较,查看数据库中是否存在这一用户信息,而token负责把账户和密码信息携带到后端,后端代码中定义的验证类可以完成身份认证。这个认证类的主要就是通过代码实现。
在本发明实施例中,还可通过点击鼠标切换如下场景。
场景一:可以定制不同的卫星星座的观察显示,包含了世界上现有的多个卫星星座的展示,并且可以对星座中的所有卫星进行筛选显示,可选择性的进行观察。操作简单,直接通过鼠标左键点击就观察到运行卫星的信息,每一颗卫星都对应了自身的轨道和相关运行信息,其中包括经纬度和高度等。观察视角直接通过鼠标中键长按移动鼠标做到改变,实现了3D的全景观察效果,可视性很好。
场景二:嵌入了地球模型与卫星模型,这一场景的主要目的是通过学生自己对卫星参数的修改,观察卫星轨道的变化和卫星的运行动态,使得学生能得到更深入的理解。操作过程为用户可以修改的其中的卫星参数,包括卫星轨道的半长轴、短长轴、轨道的倾斜程度、轨道质量和卫星运行速度,来观察卫星轨道的形态及位置变化,当调整卫星的运行速度滑动条的时候,卫星的速度会因此而加速或者减速。
场景三:此场景的主要目的是实现卫星对地观察,即观察地面的待观察地标。本场景采用了两个视角,通过在太空和卫星两个不同视角下放置的不同相机让使用者有更好的体验和理解。其中的功能主要有通过卫星的直接投影观察,可以用卫星的视角观察到地面的目标,并以投影的方式展现在屏幕上。进入此场景中,卫星会运行扫过预设的地面区域,并对地面的目标进行相应的扫描观察,观察的过程是一个动态的可视的过程,其中的动作包括:卫星对扫过地面的照射,卫星自身照射形态的锥体显示,地面待观察目标区域的三次扫描显示。本场景潜入了64K高清地球模型,实现逼真的地球自转效果,所有的贴图都是基于3DMax创建的,像素和质量极高,地球表面图层分成了不同亮暗半球的区别,充分的模拟了地球的真实光照环境,在UI界面放置了滑动条,可以轻松实现对卫星观察视角范围和卫星运行速度两点地调节。
场景四:借助Unity内嵌的物体引力与重力控件,模拟纯引力环境下的卫星在轨运行情况,让用户可以在卫星运行过程添加正反向速度冲量来模拟卫星的加速和减速过程,以及卫星轨道的变化情况。
在本发明实施例中,还可通过如下步骤切换场景。
步骤1:场景一主要开展的是仿真全球、美国、俄罗斯和中国等多个不同空间目标在轨分布及运行态势。学生通过实验案例选择可查看中国北斗导航卫星、美国全球导航卫星、中国通信卫星和美国铱星星座等在轨分布及运行态势,主要通过下拉框选定不同的卫星星座或者卫星系统,将此卫星的相关在轨信息加载,接着对此卫星系统中的部分卫星进行选定,可以实现选择性在场景中显示和观察,查看选定卫星系统中主要卫星的在轨信息。
步骤2:通过鼠标点击场景转换按钮可以实现场景的切换场景二,此场景主要是开展卫星轨道参数于轨道形态影响,学生通过更改轨道半长轴、轨道偏心率、轨道倾角、升交点赤经、近地点幅角等,观察、分析卫星轨道形状、轨道位置的改变和特点。主要的使用方式是对UI界面上的参数进行不断的尝试和切换,而设计不同类型的地球卫星。
步骤3:同以上步骤也是在通过鼠标点击切换到场景三中,这一个场景的主要目的是通过真实的引力和重力场景来模拟卫星的加速和减速对应的轨道变化,用户可以通过点击UI的加速和减速,来模拟卫星的点火来改变卫星动量,实现原理是给予卫星一个瞬时的速度增量查看卫星在轨的轨道变化情况,以模仿现实中的卫星变轨过程即卫星在轨加速和刹车的过程。点击切换场景按钮可以切换到场景四。
步骤4:本场景主要开展卫星的对地观察任务和仿真,主要是包括卫星对地面目标的推扫、立体成像和条带拼接成像。主要的操作包括但是不限于用户调整卫星相机的视角和合适的运行速度,记录合适的地面目标。观察卫星扫过地面的过程、立体成像的过程、和成像的过程,并记录卫星对地观察各个阶段的时间。
以上的各个阶段都是基于不同的场景做不同的操作,并没有严格的顺序,场景默认安排的顺序是主要的卫星仿真的大体顺序,用户可以调整场景的使用顺序,合理的跳转和使用不同的仿真场景。
本发明的工作原理及过程为:整个仿真系统基于B/S架构,包括用户管理模块、实验教学模块、实验操作模块、课程管理模块、搜索模块以及评论模块;本实验模块中主要搭建了四个不同的仿真实验场景,并可以通过不同场景右上角的场景转换按钮跳转到其他的场景中进行继续的虚拟实验。
本发明的有益效果为:本发明充分利用虚拟仿真的优势,虚拟仿真太空环境,模拟卫星的运行过程,使用简洁高效,模拟实验逼真效果明显,为学生的科研学习以及教师的办公提供了有效的虚拟仿真环境。
本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
- 基于Unity3D的卫星姿态和轨道仿真系统及方法
- 基于Unity3D的重介质选煤虚拟仿真系统及方法