2. 中国科学院大学, 北京 100049
2. University of Chinese Academy of Sciences, Beijing 100049, China
 国家天文台兴隆基地1.26 m红外望远镜建设于1985年[1],为我国实测红外天文学的发展提供了宝贵的观测资料。但是,由于技术条件所限,以及国际上对中国红外探测器的禁运限制,1.26 m红外望远镜一直采用光电倍增管探测,科学产出较低。同时,由于设备老化,该望远镜运行维护难度不断加大。因此,国家天文台于2008年停止运行该望远镜。2011年,由于实测红外天文学的发展需求,同时,高效率的面阵红外探测器采购渠道进一步开放,因此,由吴宏研究员组织,国家天文台对1.26 m红外望远镜进行了全面的升级改造。改造主要内容包括:
(1)在原有机械结构基础上开发全新的望远镜电控系统,实现自动化控制;
(2)设计新的副镜,将原焦比F30缩短为F8,以适应面阵探测器视场;
(3)定制透光学反红外滤镜,增配三通道光学相机和红外相机,实现红外单波段和光学多波段的同时观测。
望远镜升级改造于2013年完成,目前已经投入观测使用。本文主要介绍望远镜电控系统的设计与实现,第1节简单介绍硬件系统设计,第2节详细介绍系统的软件设计,最后是小结和工作展望。
1 硬件系统简介1.26 m红外望远镜机械结构为摇篮式赤道仪,采用齿轮涡轮传动方式。本次升级改造在原有机械结构上设计全新的电控系统,使望远镜具备高度自动化功能。其硬件系统主要由以下部分组成:
(1)赤经/赤纬轴系控制子系统;
(2)圆顶天窗控制子系统。
望远镜的基本运动方式为快动方式、导星方式和跟踪方式[2],赤经/赤纬轴系控制是望远镜电控系统的核心功能,主要完成望远镜的指向、跟踪功能。其核心硬件控制单元为伺服控制卡,对下实现电机的驱动和码盘的读取,对上通过PCI接口实现与控制软件的通信接口。本文伺服控制卡采用美国Delta Tau多轴运动控制卡(PMAC),轴系控制系统采用多闭环系统设计(图 1),各控制环节的主要功能为:
|   | 
| 图 1 赤经/赤纬轴系控制系统框图 Fig. 1 A block diagram of the RA/DEC axis control system | 
(1)电流环:以电流信号作为反馈信号的控制环节,是系统的最内环,调节放大器电流以保证电机转速,本系统电流环在放大器内部集成实现。
(2)速度环:以速度信号作为反馈信号的控制环节,用于控制电机转速,使得轴系按照指定速度旋转,如果不考虑传动误差(例如齿隙),可作为系统的外环;
(3)位置环:以位置信号作为反馈信号的控制环节,是系统的外环,用于轴系位置精确控制,可消除传动误差的影响。
1.26 m红外望远镜原有圆顶天窗控制为继电器和交流异步电机组合的控制方式,本次改造将其改为可编程控制器(PLC)、变频器和交流异步电机的控制方式[3]。核心控制单元为可编程控制器,通过串口实现与计算机软件的通信接口,其控制框图如图 2。
|   | 
| 图 2 圆顶天窗控制系统框图 Fig. 2 A block diagram of the dome/slit control system | 
1.26 m红外望远镜的控制软件(TCS)为系统改造后重新开发,为了便于将望远镜纳入兴隆基地望远镜集中控制系统,实现远程观测,控制软件将采用通用框架结构设计。包含驱动层、服务层和应用层,各层主要功能为:
(1)应用层:提供GUI界面,实现与本地用户的人机交互,包括观测计划输入,望远镜找零、复位,天窗开关等;
(2)服务层:完成和设备驱动层、应用层的信息交互,实现设备控制,同时提供与上层观测控制软件通信的接口,执行其指令并反馈状态;
(3)驱动层:实现与底层硬件的接口,底层硬件包括多轴运动控制卡、可编程控制器等,接口信息包括码盘读数、电机转速等。其中与多轴运动控制卡通信为PCI接口,与可编程控制器通信接口为串口。
同时为了提高系统的可靠性和稳定性,控制软件将基于有限状态机(Finite State Machine,FSM)设计。有限状态机是表示有限状态以及在这些状态之间的转移和动作等行为的数学模型[4]。其基本思想为:
(1)所有设备具备一个有限的状态集,并且任何时候设备均处在状态集中;
(2)所有设备有关的动作均出在动作集中,未出现在动作集中的动作设备不做任何响应;
(3)在指定状态下的指定动作响应是唯一的,且动作响应仅与当前设备参数有关,与历史参数和未来参数皆无关。
定义望远镜的状态集、动作集和状态转换图,使得对于任何动作,望远镜响应逻辑一致,从而保证所有状态可控。当然,设备故障是望远镜系统运行中不可避免的问题,其形式多种多样,无法完全定义。本软件系统引进了一个异常状态,该异常状态可能由于编码器、驱动器等错误组成。因此本节首先介绍异常状态和处理方式。
2.1 望远镜异常和处理方式望远镜常见异常和处理方式如表 1。
| 异常类型 | 描述 | 处理方式 | ||
| 伺服通信失败 | 与底层伺服系统通信中断 | 伺服系统底层实现自动停止功能,界面上告警、进入离线状态 | ||
| 上位机通信中断 | 与远程控制计算机通信中断 | 界面上告警,停止望远镜运动,进入异常状态 | ||
| 找零超限 | 找零过程超时或者超过一定角度范围 | 停止望远镜运动,界面告警,进入停止中状态 | ||
| 运动速度错误 | 速度/加速度方向错误或速度/加速度数值与设置值相差过大、运动跟随误差过大、振荡运动 | 发送望远镜停止命令,界面上告警,进入异常状态 | ||
| 到位误差过大 | 轴系停止运动后与指定位置相差过大 | 界面上告警,进入停止状态 | ||
| 停止超时 | 望远镜发出停止指令后,望远镜停止时间超时1 s,停止时间由当前速度决定 | 发送急停命令,界面上告警,进入急停中状态 | ||
| 编码器告警 | 出现跳变奇点(单个点) | 忽略跳点,界面上告警,保持原状态 | ||
| 编码器异常 | 编码器变化超过最大速度和加速度限制(连续点) | 发送望远镜停止命令,清除找零成功标志,界面上告警,进入异常状态 | ||
| 打滑 | 电机编码器变化数值与钢带变化数值相差过大,如为直驱则不存在 | 发送望远镜停止命令,界面上告警,进入异常状态 | ||
| 接近限位 | 离一级限位角度值相差小于一定数值 | 界面上告警 | ||
| 一级限位 | 触碰一级限位(硬件或软件)且运动方向和限位方向一致 | 发送望远镜停止命令,界面上告警,进入停止状态 | ||
| 二级限位 | 触碰硬件限位开关 | 界面上告警,进入急停状态 | ||
| 底层伺服报警 | 电机的电流过大、温度过高、风扇停转等 | 发送望远镜停止命令,界面上告警,进入异常状态 | 
望远镜是一个相当复杂的光机电一体的设备,所以上述异常状态不足以包含所有可能出现的异常,本软件采用模块化设计,可方便增加新的异常状态和处理方式。
当望远镜处于异常状态时,目前采用人工方式处理。随着经验的积累和完善,下一步将进行故障自动处理。例如在望远镜调试过程中,发现在望远镜运动时,软件非正常退出后,望远镜未收到停止指令,将继续运动带来撞击限位的风险。本文利用 “看门狗” 的硬件设计思想,增加了计时器监测望远镜和底层硬件间通信的时间间隔。一旦时间间隔超过一定门限,底层硬件将自动停止望远镜运动,提高了望远镜的安全性。
2.2 有限状态机设计有限状态机的设计由3步组成,包括状态集、动作集和状态转换图的设计。
望远镜的状态集可分为3类,分别为过程类状态(P)、完成类状态(F)和异常状态(E)。望远镜状态集定义如表 2。
| 名称 | 定义 | 类型 | |
| 离线 | 伺服系统与控制系统未连接 | F | |
| 连接中 | 控制系统与望远镜进行连接的过程中 | P | |
| 断开中 | 控制系统与望远镜断开连接的过程中 | P | |
| 未找零 | 望远镜静止不动,且未找零 | F | |
| 找零中 | 望远镜在找零的过程中 | P | |
| 停止中 | 望远镜速度降为0的过程,在其中监测速度和找零标识,确定下一状态 | P | |
| 停止 | 望远镜静止不动,各轴找零成功,且未出现异常 | F | |
| 急停中 | 望远镜接受驱动掉电指令后停止的过程中 | P | |
| 急停 | 望远镜驱动掉电,静止的状态 | F | |
| 复位中 | 望远镜复位的过程中(特殊的指向过程) | P | |
| 复位 | 望远镜停在复位位置的状态 | F | |
| 等待恒速跟踪 | 望远镜等待恒速跟踪的过程,一般来说是等待跟踪稳定和圆顶随动到位, 特殊情况下也会等待时间来观测特定天区 | P | |
| 恒速跟踪 | 望远镜稳定跟踪恒星中 | F | |
| 速度修正中 | 望远镜跟踪恒星后,向某一方向运动的过程中,修正停止,速度稳定后 的赤经赤纬作为修正后的目标赤经赤纬 | P | |
| 指向中 | 望远镜指向某固定位置的过程中 | P | |
| 指向到位 | 望远镜到达指定位置 | F | |
| 等待恒速 | 望远镜接收恒速运动指令后,等待速度稳定的过程 | P | |
| 恒速运动 | 望远镜恒速运动中 | F | |
| 异常 | 状态定义见上节 | E | 
根据望远镜的运动需求,定义了望远镜动作集如表 3。
| 名称 | 定义 | 参数 | 
| 连接 | 建立轴系与软件间的通信 | IP地址、 设备ID、 串口号等 | 
| 断开 | 断开轴系与软件间的通信 | 无 | 
| 找零 | 轴系找零 | 找零速度、 方向、 找零运动范围等 | 
| 恒速运动 | 轴系按指定速度运动 | 方向、 数值大小 | 
| 指向 | 轴系运动到指定位置 | 指向位置,指向速度 | 
| 停止 | 轴系停止运动,记录异常值 | |
| 急停 | 轴系掉电 | |
| 恒速跟踪 | 控制望远镜指向指定恒速运动目标(也括恒星、 太阳、 月亮等) | 赤经、 赤纬、 历元和跟踪速度 | 
| 速度修正 | 望远镜跟踪恒速运动目标到位后进行速度修正,主要用于指 向调整、导星、指向模型制作 | 速度方向和数值 | 
| 位置修正 | 在望远镜跟踪恒速或变速运动目标到位后进行位置修正,主 要用于指向调整、导星、指向模型制作 | 修正方向和数值 | 
| 异常清除 | 清除异常的动作,目前为手动实现,以后逐步实现自动清除 | 
本文对每一个状态下接收的动作、监测的异常和状态转换图进行了详细定义,由于篇幅所限,本文仅以望远镜最关键的状态——恒速跟踪为例介绍状态图。恒速跟踪状态指的是望远镜跟踪恒速运动天体(恒星、 月亮)时的状态。在该状态下望远镜可执行切换天区跟踪、导星修正(速度、 位置)、停止观测等动作,随后进入下一工作状态。同时该状态下还需监测驱动系统、编码器等异常,其状态转换图如图 3。
|   | 
| 图 3 恒速跟踪状态下状态转换图 Fig. 3 Illustration of telescope state transitions during constant-speed tracking | 
控制软件的上层接口主要包含两类,一类为GUI界面,用于和用户进行人机交互;另一类为远程控制接口,以便加入兴隆基地望远镜集中控制系统和实现远程观测。
为了方便望远镜操作,采用和兴隆基地2.16 m望远镜相同的GUI界面(如图 4)。
|   | 
| 图 4 望远镜控制系统GUI界面 Fig. 4 A screenshot of the GUI interface of the TCS | 
远程控制接口采用TCP/IP协议实现,可以实现指令和参数的稳定传输,其中望远镜反馈参数主要包括望远镜当前状态,UTC时间,望远镜当前位置、速度,目标位置、速度以及跟随误差。指令内容和参数完全参照望远镜本身的动作集和参数(见2.2),例如恒速跟踪指令需输入赤经、赤纬、历元和跟踪类型。本系统还具备环境监测信息接口,使得望远镜在恶劣天气条件下可以自动停止观测,保障设备的安全。
3 结论与工作展望本文基于有限状态机设计了望远镜控制系统,使得系统稳定可靠运行。软件系统采用2.16 m望远镜GUI界面设计,方便望远镜操作;同时提供了远程控制接口,便于纳入集中控制系统,提高观测效率。目前该软件系统已经在1.26 m红外望远镜上稳定运行。
随着兴隆基地望远镜集中控制计划的推进,1.26 m红外望远镜的控制软件也将做适应性修改,例如环境监测信息的读取和利用,使望远镜尽快加入集中控制系统。同时可将该软件系统推广应用到其它望远镜平台上。
致谢:对吴宏研究员作为项目负责人对本文的支持,兴隆基地技术组对红外望远镜改造工作的支持与帮助,以及望远镜观测助手柳森和马良的辛勤工作,在此表示由衷感谢。
| [1] | 姚正秋, 周必方, 汪达兴. 1.2 m红外望远镜[J]. 天文学报, 1990, 31(3): 284-290. Rao Zhengqiu, Zhou Bifang, Wang Daxing. 1.2m infrared telescope[J]. Acta Astronomica Sinica, 1990, 31(3): 284-290. | 
| [2] | 程景全. 天文望远镜原理和设计[M]. 北京: 中国科学技术出版社, 2003. | 
| [3] | 陆栋宁, 黄垒, 陈颖为, 等. 85 cm天文望远镜圆顶和天窗自动化系统研制[J]. 天文研究与技术——国家天文台台刊, 2008, 5(4): 386-391. Lu Dongning, Huang Lei, Chen Yingwei, et al. Research and development of the dome/slit control system for the 85cm reflector of NOAC-BNU[J]. Astronomical Research & Technology——Publications of National Astronomical Observatories of China, 2008, 5(4): 386-391. | 
| [4] | Wright D R. Finite state machines[EB/OL]. 2005[2014-9-20]. http://www4.ncsu.edu/-drwrigh3/docs/courses/csc216/fsm-notes.pdf. | 


