论文部分内容阅读
天文望远镜观测控制系统是一个大型的复杂软件系统,它负责将望远镜的各个设备有机的组织起来,有效的完成观测。观测控制系统随着大型望远镜项目的开展而逐渐发展起来,极大的提高了望远镜的观测效率,观测控制系统已成为大型天文望远镜必不可少的一部分。观测控制系统大都是专用的,不能在新建的望远镜上复用,必须重新开发,而且原有的观测控制系统的各个模块由不同的人员开发,他们没有统一的设计思想,给观测控制系统的维护工作带来了巨大的困难。针对这些问题,观测控制系统呈现了标准化,组件化、复用化的发展趋势,针对这一发展趋势,国外研究人员已经开发了一些的观测控制系统框架,国内的大型望远镜较少,在框架方面的研究还处于起步阶段。目前,我国正在建造多架大型望远镜,它们都需要观测控制系统,并且原有的望远镜的观测控制系统需要更新维护,软件成本会大幅提高,因此,对观测控制系统框架的研究非常必要。本文对望远镜观测控制领域进行了需求分析,提出了一个通用的望远镜软件控制体系结构,设计、完成了一个适用于大型望远镜的观测控制系统框架,并应用在国内大型天文望远镜上。本文以LAMOST国家大科学工程为依托,基于LAMOST观测控制系统应用框架技术,实现了观测控制系统软件开发的平台化、标准化。主要开展了以下研究工作:(1)针对大型望远镜观测控制领域,提出了一个基于原型的框架开发方法,为今后的框架开发提供了指导,并应用此方法对框架进行了领域分析和设计。(2)大型望远镜的观测目标不同,其结构和运行方式也存在差异,要将观测控制系统的所有共性和差异提炼出来是有难度的,本文在深入调研的基础上,建立了观测控制系统的领域模型。(3)框架要满足可扩展性、兼容性、可靠性、实时性、移植性、分布式等特性,具有很大的挑战。本文基于Linux平台,以CORBA作为框架开发的基础,使用分层体系结构对框架进行了设计,运用软件设计模式使框架的微结构更加灵活,并采用对信息赋予优先级,多线程,信息缓存等策略保障了实时性要求。(4)观测人员通过界面控制望远镜的运行,而大型望远镜的子系统信息繁多,选择合适的信息以及显示方法是至关重要的。本文采用基于场景的以用户为中心的方法设计了用户界面,克服了以往以应用为中心的设计的缺点,并采用Qt的OpenGL模块对一些信息进行了三维显示。本论文的创新之处有以下几点:(1)通过对框架设计方法的研究,提出了一个适用于观测控制领域的框架开发方法。此方法是基于原型的、迭代增量的。在整个开发周期中,对框架进行持续的扩展和精化,并以循环反馈、调整为核心,使框架成为适用性强的系统。(2)通过对各种典型望远镜的研究,包括射电望远镜GBT、光学望远镜SOAR、VLT等、阵列ALMA以及在建的太阳望远镜ATST、光学望远镜LSST,分析了它们的异同,分析了观测控制系统必须满足的核心功能需求和非功能需求,识别了观测控制领域的概念;建立了观测控制领域模型和望远镜控制软件体系模型。(3)基于分布式中间件、常用的软件框架和LAMOST观测控制系统建立了观测控制系统框架,实现了框架内的主要功能组件,定义了组件之间的关系;并运用设计模式,使框架的结构更加灵活;采用对信息赋予优先级,多线程,信息缓存等策略保障了实时性要求。