赤道天文望远镜模拟控制系统毕业设计论文.docx
《赤道天文望远镜模拟控制系统毕业设计论文.docx》由会员分享,可在线阅读,更多相关《赤道天文望远镜模拟控制系统毕业设计论文.docx(20页珍藏版)》请在冰豆网上搜索。
赤道天文望远镜模拟控制系统毕业设计论文
毕业设计说明书(论文)中文摘要
本模拟控制器设计部分主要是运用delphi。
取PC机自身时钟为基准,根据当地的精确地理经度和地理纬度,对当地时间进行适当处理,得到当地的恒星时,作为系统的自动寻星的基准。
根据望远镜所处的位置和目标星所处的位置确定寻星的轨迹路线,同时驱动赤经、赤纬轴电机工作,实现自动找星,找星完成后望远镜自动处于恒速跟踪状态。
所有记录结果均可输出打印成报表,方便存档和交流。
最后介绍了如何使用delphi串行通信与下位机连接起来。
关键词模拟控制,恒星时,串行通信
毕业设计说明书(论文)外文摘要
TitleDesignForTheEquatorialAstronomicalTelescope
ControlSystem——PCPart
Abstract
ThesimulationcontrollerisdesignedmainlyusingtheDELPHIlanguage.TakingthePersonalComputermachineownclockasadatum,wecanobtainsthesiderealtime,byprocessingthelocaltimeappropriately,accordingtothelocalprecisegeographiclongitudeandthegeographiclatitude,whichwillbeentakenasprimarystandardforthesystemwhenseekingstar.Accordingtothetelescopelocatesthecelestialregionandthegoalstarlocatestheposition,wecandetermineabestroutetoseekthestar.Atthesametime,drivingtherightascensionandmakingthedeclinationaxiselectricmotorwork,realizingautomaticguiding,Thetelescopewillbeattheconstantspeedtrackingmodeautomaticallyafterfindingthestar,Allrecordingresultsmayexportprintingthereportform,facilitateskeepinginafileandexchanging.Finallyitintroduceshowtouseserialcommunicationindelphiconnectingscm.
KeywordsSimulationcontrol,Siderealtime,Communication
目录
1绪论…………………………………………………………………………1
1.1课题背景知识介绍………………………………………………………1
1.2课题目的和要求…………………………………………………………2
1.3本课题所用工具……………………………………………………………3
1.4本课题所做工作……………………………………………………………3
2系统模块式开发设计………………………………………………………4
2.1系统开发总体思想和开发目的……………………………………………4
2.2恒星时钟软件设计…………………………………………………………4
2.3系统自动找星子程序设计…………………………………………………4
2.4轨迹校正方法………………………………………………………………5
2.5串口通信关键技术设计……………………………………………………6
2.6上下位机通信数据格式设计………………………………………………7
3系统的设计实现……………………………………………………………9
3.1登录界面设计………………………………………………………………9
3.2系统主控制界面设计………………………………………………………11
3.3自动找寻目标星体…………………………………………………………12
3.4Spcomm控件实现串口通信……………………………………………13
结论……………………………………………………………………………18
致谢……………………………………………………………………………19
参考文献………………………………………………………………………20
1绪论
1.1课题背景
在国内,天文望远镜大多是一些专业部门在使用。
在国外,除一些专业部门外,使用天文望远镜的个人也较多,天文望远镜的市场很大,然而,据机械望远镜生产厂家提供的信息,国际市场中的大部分机械望远镜是来自我国生产。
他们大部分是从我国进口机械部分,再自己组装上自动控制部分,以满足市场的需要,降低成本。
如果我国的望远镜自动控制技术能加强和完善,无疑会以成本低的优势占领更大的国际市场。
1.1.1天文学坐标
我们对各式各样星位置的描述,通常用的是天文学。
坐标天文学中的时角坐标系用来衡量天体目标的位置及望远镜的移动坐标。
参看(图la)把整个宇宙看成一个球体PQP’Q’,称为天球。
这是一个任意长半径的假象球面,太阳、月亮和恒星看起来都分布在这个硕大的球面上,无论我们走到那里,好象总在球面的中心。
利用它可以确定任意天体对应的视角,研究天体的视运动。
在对准目标天体的前提下,只要保证望远镜移动的方向和角度与天体目标运动的方向和角度相同,就能达到跟踪的目的。
PP’是地球自转的转轴无限延伸与天球相交,称为天轴,N表示地球,NP、NF方向分别代表北和正南方向。
地球赤道面的延伸与天球相交的大圆QQ、称为天赤道。
M为天体目标,M和天轴PP“组成的平面与天球相交所得的大圆称为赤经圈[3]。
天体M的时角坐标tx,都是以弧长对应转角来度量。
圆弧Q'K为天体M的第一坐标,称为时角,记为tx,按顺时针方向自0~360°计量,反方向为负。
圆弧KM为天体M的第二坐标,称为赤纬。
记为ty,由天赤道分别向南、北记量,向北0~90°,向南0~90°。
所以,任何一个天体目标,都有一组tx,ty与之对应。
用望远镜观测天体M时,先使望远镜上赤道仪的极轴与天轴重合,重合之后望远镜的X、Y方向就是该坐标系的tx,ty方向,调整望远镜在两个方向上的转动,也就是改变tx.ty坐标,即可观测到不同位置的天体。
在望远镜对准目标天体的前提下,前者转动△X、△Y角度与后者运动的△tx、my角度相同,就能保证准确跟踪目标。
1.1.2恒星的自动跟踪
假设M为恒星时,它让观察者感觉到的运动实际上是由地球的自转而引起的相对运动。
运动轨迹面与天轴垂直。
这一轨迹BMB’上任一点的ty坐标都相同,只是它坐标不同,它的移动速度应等于地球的自转速度。
要使望远镜自动跟踪恒星,就需要先对准目标,的步进电机使反方向转速与地球自转速度相等,就能实现自动跟踪恒星。
图la时角坐标图图lb速适量度合成图
1.1.3行星的自动跟踪
将行星的移动视为匀速运动,行星的运动是由tx,ty两个方向上运动的合成参看(图1b),不同的行星有不同的运动规律,所以对行星的运动轨迹难以预先推测。
在此,使用了自动捕获轨迹方法。
分为两步,首先,手动按键,使望远镜随行星一起移动,推算出tx,ty方向上的移动速率,再换算出此速率下对应的控制脉冲频率,分别控制两个方向转动电机,从而实现对行星的自动跟踪。
若跟随移动的时间为t,tx方向上的移动步距为Sx,ty方向上的移动步距为Sy,则两个方向上的移动速率分别为Vx=Sx/t,Vy=Sy/t,单位计为单位时间内移动的脉冲步距。
以此控制Tx,Ty方向上的步进电机,就能使望远镜的转动与行星的移动相吻合。
1.2课题目的和要求
赤道式天文望远镜模拟控制器设计是针对天文望远镜控制系统的自动寻星系统而设计的,它能够模拟赤道式天文望远镜赤经、赤纬轴电机的一切动作,本系统中模拟的望远镜的机架采用德国式机架,系统主要是实现望远镜自动定位目标星以及自动跟踪目标星的功能,同时加入了串行通信部分,本课题能够让本人独立完成整个控制系统的计算机软件部分设计,包括和星图的简单接口部分。
提取自PC机自身的时钟做为基准时钟,并根据当地的精确地理位置(地理经度和地理纬度),对时间数据进行特殊的处理,得到当地的恒星时数据,作为系统的自动寻星的基准,根据当地的恒星时,把第一坐标系(赤道坐标系)转化为第二坐标系(时角坐标系),根据望远镜所处的天区位置和目标星所处的位置确定寻星的轨迹路线,同时驱动赤经、赤纬轴电机工作,实现自动找星,找星完成后望远镜自动处于恒速跟踪状态,并实时地用曲线表示出来,所有记录结果均可输出打印成报表,另外还,对行星和恒星的不同跟踪模式的进行提出有效补偿办法。
使用SPCOMM串行通讯控件对下位机进行了实时的监控。
同时系统的人性化界面设计也是本系统设计的重要部分。
1.3本课题所用工具
由于DELPHI语言使用方便,功能性强,运用广泛,模拟控制器设计部分选用DELPHI语言对系统对象进行编程。
另外从网上下载SPCOMM串行通讯控件,对下位机进行了实时的监控。
同时系统的人性化界面设计也是本系统设计的重要部分。
另外,对行星和恒星的不同跟踪模式的进行提出了有效补偿办法。
用delphi制作望远镜系统的控制界面,在此界面上我们可以选择手动控制控制望远镜动作,例如点击赤经选择框中的“快动+”按钮可以通过串口发送命令驱动望远镜的赤经轴正向快动。
界面上还可以实时显示当前的时间信息,望远镜的实时位置以及高度、方位等,输人目标星数据后还可以实现自动找星功能,迅速定位目标星。
因为课题设计的需要,其上还增加了一些测试功能。
1.4本课题所做工作
本课题的工作就是介绍如何做一个赤道式天文望远镜模拟控制系统,第2部分给出相关方案的研究为后面程序设计打下基础,第3部分给出了系统的总体设计,对程序的模块分析、设计思想还有数据库的设计第4部分给出详细的实现过程和重要的技术实现。
最后给出了我对这个设计一个看法,这个系统有些什么特色,还有展望之类的。
2系统模块式开发设计
2.1系统开发总体思想和开发目的
本设计的主要目的在于通过输入天体在天空中的天文坐标,能够快速准确地把望远镜定位于天空中的未知星体。
输入天文坐标的方式一般说来有两种,一是直接手动输入,方便快捷,但是要求用户各式各样的星体非常熟悉,使用要求高;另一种方式就是利用非常优秀的SKYMAP8.0简体中文版软件产生我们所想要的天文坐标。
本系统中选用兼容了这俩种输入法作为星体的天文赤道坐标数据源。
其次我们得确定望远镜的绝对零点,然后根据当地的恒星时,由公式s=a+t确定此时此地该星体的时角t,其中a是天体的视赤经值[3],根据未知星的时角、赤纬坐标,确定望远镜的镜筒指向,系统自动进人恒速跟踪状态,在找星的过程中,实时检测望远镜的时角、赤纬以及高度角,如果有限位条件发生(限位的条件由用户根据需要自行确定),立即封锁望远镜动作,由把手手动转动,离开限位区,当望远镜自动找星赤经在跟踪态过天顶时,望远镜自行回指到赤经(时角)90度,赤纬90度,并提示用户重新找星。
2.2恒星时钟软件设计
恒星时是由春分点的周日视运动来定义的。
对于某一地方的子午圈,当春分点刚好通过子午线(上中天)的时刻,定义为当地的恒星时O。
对任意时刻,将春分点的时角用时、分、秒单位来度量,定义为当地的M,通过天极和M的大圆与子午圈的时角,a是该恒星的赤经[3]。
2.3系统自动找星子程序设计
首先根据输人的目标星的赤经值,取出当地的地方恒星时S,通过计算,换算成目标星的时角值to,然后读取望远镜此时的实时位置值tt,根据他们赤经时角所处的天区差异来选择不同的找星路径,具体情况可以分为以下2种:
1)、如果望远镜与目标星的时角处于同一天区(以望远镜的中柱为轴线,分为东西两大天区,人为设定),则先驱动赤纬轴,再驱动赤经轴,直到找到目标星,进人跟踪。
2)、如果望远镜与目标星的时角处于不同天区,即跨天区找星,则先驱动赤纬轴,让赤纬指向北极,再驱动赤经轴,然后再驱动赤纬轴,直到找到目标星,进人跟踪。
另外,由于我们的位置反馈信息是来自增量式圆光栅编码器,而赤纬的度数始终在(-90,90)区间,因此还需要进行一下特殊处理。
剩下的就是典型的追击问题,在此不再多述。
2.4轨迹校正方法
在望远镜系统自动跟踪过程中,总是存在理论设计与实际运转之间的误差,这是机械设备难以避免的。
经过分析,主要由以下三方面的原因所引起:
一、由于机械部件之间的缝隙,在切换转动方向时,会产生极小的滞后误差,长时间累加后将造成跟踪滞后现象。
二、单片机的八位运算,必须对部分小数数据进行取舍,经过长时间累加后将反应到跟踪误差上。
三、自动跟踪过程必须记录移动步距及其所对应的时间,记时过程中对转中断、中断设置等控制转移指令的执行时间难以记录在内,这部分时间虽然是微秒级,但在一定时间的累加后,也将反映到跟踪误差方面。
以上三方面的原因都是难以避免的,所以,必须设计出有效的方法和措施,对累积误差进行补偿校正。
进入自动跟踪的短时间内,累积误差极小,人眼很难看出。
大约1一2小时后,望远镜对天体的跟踪出现误差,误差大到一定程度,将丢失目标,此时,可以捕获误差参数,捕获参数分为以下两部分:
(1)时间参数Tr:
Tr是指从启动自动跟踪到捕获参数完毕的这段时间,即累积误差:
所对应的时间,在Tr时间段内,累积误差由小逐渐增大。
(2)移动参数:
移动参数是指望远镜由偏移位置移动到目标点对正位置所移动的距离。
根据上述自动跟踪原理,移动的距离以移动步距来衡量,分为X方向,Y方向移动步距,在Tr时间段总移动步距分别记为△Xr、△Yr所对应的速度为△Vxr,△Vyr,应有:
△Vxr=△Xr/Tr,△Vyr=△Yr/Tr,△Vxr、△Vyr为需要调整的速度值,设Vx1,Vy1,为校正前的速度,则校正后的速度为Vx=Vx1+△Vxr,Vy=Vy1+△Vyr。
通过速度矢量合成,得到跟踪天体校正后的矢量速度。
通过这一原理和方法,可对天体目标的跟踪轨迹作二次、三次或多次校正,其核心思想是通过实际观测,采集误差参数,无论误差是来自什原因,都可将误差参数补赏到Vx,Vy中,补赏后的速度矢量将涵盖某种运动轨迹可能出现的各种误差因素。
软件设计中,还应考虑在程序运行过程中对无效按键的屏蔽。
2.5串口通信关键技术设计
目前,随着现代信息技术的发展,计算机串口通信技术已日趋成熟。
由于微机性能价格比高、分析处理能力强、处理速度快以及单片机抗干扰能力强、使用灵活等特点,利用PC机作为上位机,单片机作为下位机的主从工作方式在工业控制领域中被广泛采用。
PC机与下位机的通信可以采用高级语言编程实现,如Delphi、VC等。
Delphi是新一代面向对象的可视化开发工具,它具有功能强大、简便易用和代码执行速度快等特点,越来越在构架企业信息系统方面发挥着重要作用[1]。
由于Delphi这些显著特点,利用Delphi开发工业控制系统软件成为越来越多的开发人员的选择,而实现系统监测控制和信息处理的关键是解决PC机与单片机之间的串口通信问题。
用Delphi实现串口通信,常用的方法有:
使用控件,如Mscomm和Spcomm控件等;使用API函数;在Delphi中调用其它串口通信程序。
使用API方法的优点是比较适合于编写较为复杂的低层次通信程序,但缺点是编写串口通信程序较为复杂,需要掌握大量通信知识[5]。
Spcomm是Small-PigTeam开发的一个第三方Delphi串口控件,该控件具有丰富的与串口通信密切相关的属性及事件,提供了对串口的各种操作,且编程简单、通用性强、可移植性好。
在Delphi软件开发中已经成为一个被广泛应用的串口通信开发控件。
Spcomm共实现了三个类:
串口类Tcomm、读线程类TreadThread以及写线程类TwziteThread[1]。
Tcomm的某个实例在方法StartComm中打开串口,并实例化了一个读线程ReadThread和一个写线程WriteThread,它们和主线程之间进行消息的传递,实现串口通信。
在Delphi7.0中安装Spcomm串口通信控件的方法为:
选择Delphi7.0的“Component”菜单,点击“InstallComponent...”菜单项,然后在弹出的Intoexistingpackage属性页中Unitfilename输人框中选择SPCOMM.pas文件,单击两次“OK”按钮后,就可以将Spcomm控件安装到Delphi7.0的System组件页上。
Spcomm应用的核心在于主线程、读线程和写线程之间的消息传递机制,而通信数据相关信息的传递也是以消息传递的方式进行的。
在使用Spcomm进行串口通信编程,除按照说明使用外,还需要特别注意以下两个问题。
首先,Spcomm是通过ReadIntervalTimeout属性的设置,来确定所接收到的数据是否属子同一帧数据,其默认值是100ms,也就是说,只要任何两个字节到达的时间间隔小于1OOms,都被认为是属于同一帧数据,在与单片机协同工作时,要特别注意这个问题[2]。
另外,Spcomm的默认属性设置是支持软件流控制的,用于流控制的字符是13H(XoffChar)和11H(XonChar),当单片机以二进制方式发送数据时,必须要禁用Spcomm对于软件流控制的支持,否则,在数据帧中出现的13H,11H会被Spcomm作为控制字符而加以忽略。
2.6上下位机通信数据格式设计
为了保证上下位机通信正确高效,必须对数据格式合理化的设计和约定。
所用串行通讯设置为:
波特率:
2400;起始位:
1;数据位:
8;停止位:
1;校验位:
无
PC的发送端口可选:
com1(优先),com2,com3
数据格式:
帧头f0+三个相同的8位命令或数据+帧尾f0(每帧包含两个相同的8位数据,以做为校对,相同时才执行操作)
功能控制命令字如下:
对电机的转动命令字:
单轴转动:
000?
?
?
?
?
b
d3:
1纬0经
d4:
1正0负(由东向西、由南向北为正)
双轴转动:
001?
?
?
?
?
b
d3:
赤纬的转向选择1正0负
d4:
赤经的转向选择1正0负(由东向西、由南向北为正)
d2~d0数值取法如下:
快动值:
110
慢动值:
101
微动值:
011
恒动命令:
0x55
纯显示命令:
0x7a
望远镜参数设置:
角度的发送顺序:
度值百位,度值十个位,分值,秒值
连续四次发送完毕才可设置好,数据格式如下:
(?
用实际的数值取代)
赤经10?
?
?
?
?
?
b
赤纬11?
?
?
?
?
?
b
3系统的设计实现
3.1登录界面设计
界面的风格至关重要,它要符合界面的内容所要表达的主题。
界面不要做得太花俏,因为在天文望远镜控制系统的主题定位于为操作者实时提供星体的各种动态信息,因此应以方便操作、朴实大方为主,这样就可使界面庄重大方,各界面的背景和图片都应保持朴实简洁。
登录面管理系统为天文望远合法镜操作者提供操作入口,操作者通过登陆本控制系统才能对此进行权限操作。
双击本控制系统应用程序图标,进入“欢迎使用本系统”启动画面,几秒种后,自动进入安全登录窗体。
如果用户是初次使用本应用软件,系统将会提示要求用户输入SKYMAP8.0简体中文版星图软件的安装路径及标题,如图2所示:
图2初次运行本控制系统时的登录界面
如果用户机器当前还未安装该软件,可随便输入几个字符,跳过此步骤。
当然这一次就不能在系统主控制界面正常使用星图输入目标星的坐标,以完成目标星的自动查找。
但是可以在下次登录时选中“选取标题和路径”就可换成图2所示的初次运行本控制系统时的登录界面。
首次使用之后的登录界面采取了较为简洁的形式(如图3所示),只提示用户输入系统登录密钥(6位阿拉伯数字)。
图3首次使用之后的登录界面
3.2系统主控制界面
图4系统主控制界面
系统主界面功能描述如下:
1、系统实时显示当前北京时,世界时,儒略日,观测日期,当地的地方恒星时,恒星时的精度等于系统时间的精度。
2、系统能够实时显示望远镜的工作状态以及位置信息,显示望远镜所指向天体的位置信息(时角,赤经,赤纬,高度,方位)。
3、系统提供手动控制区,可以通过按纽控制望远镜赤经、赤纬电机正/反向快、慢、微动。
考虑到人体工程学和操作者心理,把所作用频繁的按键都集中分布这一区域或周边,鼠标来回移动量就做到了最少。
4、为了方便用户,在“关于”一栏中,可以提供程序所运行的操作系统的一些使用内存等方面信息的资料。
5、为了加强系统的安全性能,在“安全设置”一栏中,用户可以随意选定一个6位数字作为本控制系统的密码,方便安全。
6、在“参数设置”菜单中,用户可以在线设置观测点位置以及通信端口、波特率等参数,一经设置后系统永久保存,不须二次设置,操作简捷方便;其次用户还可以实时在线记录系统的工作数据以及状态信息,并且可以在线显示于文本框中。
7、系统处于跟踪状态时点击“开始记录跟踪数据”可以保留跟踪数据,在“参数设置”菜单中可以设置观测点位置、串行口等信息。
8、系统还设置了一些快捷键,在菜单中都有显示,按“ESC”按纽系统自动退出运行状态。
9、为了望远镜自身的安全,系统在程序中设置了水平保护、赤经轴限位,当望远镜高度小于30度时发生水平保护,赤经示数在小于180度或者高于360度时发生赤经轴限位,此时应该关闭上位机程序,用手把手动转动望远镜使其脱离保护、限位状态。
10、系统中有个望远镜自动寻星在线模拟曲线图,它可以模拟天文望远镜找星过程。
当按下“自动找星”按纽开始找星,图上就会出现一个红点,一条蓝线,蓝线慢慢接近红点。
红点代表你要找的那个星,蓝线代表望远镜。
11、为了方便、快捷,上位机找星实行双轴联动,大大地节省了系统找星的时间,提高了系统的性能。
12、建议系统使用显示分辨率1024×768
3.3自动找寻目标星体
如果选择从星图输入目标星体坐标,则需先点击“打开星图”按钮,调出星图软件,用右键点击待寻的目标星体,选择About(关于)…选项之后弹出一个显示该星体资料的子窗体,点击其view(视图)菜单下的“copy(复制)”按钮,系统将会自动关闭该星图软件,并将其切换到主控制界面上来,然后点击“从星图取数”按钮,数据会自动被取到“目标星位置栏”中,并显示。
如果选择手动输入目标星体坐标,直接点击“手动输入”按钮,或者按“F12”键(快捷键),光标会自动落入“目标星位置栏”中,等候用户输入目标星的天文坐标。
输入完毕后,点击“自动找星”按钮即可,如果输入的目标星的当前的高度太低,
系统会弹出提示框提示用户重新选择目标星。
在整个自动找星的过程当中,上位机实时通过串口管控着下位机和望远镜的一切动作和状态。
3.4Spcomm控件实现串口通信
3.4.1Spcomm控件的基本属性、方法和事件
Spcomm串口通信控件的基本属性、方法和事件说明如下:
CommName属性:
计算机串口端口号的名字,COM1、COM2……等,在打开串口前,