DIY编程器网
标题:
单片机和CPLD的望远镜伺服控制器设计
[打印本页]
作者:
liyf
时间:
2012-1-16 16:49
标题:
单片机和CPLD的望远镜伺服控制器设计
???? 摘要:设计基于高速单片机C8051F120和CPLD的高精度大型望远镜的伺服控制器,由单片机实现闭环控制算法、上位机通信和LCD显示控制,CPLD实现增量式编码器计数、电机驱动波形发生以及I/O接口。该控制器可独立进行电机控制,也可配合上位机进行控制,具有实时性和抗干扰能力强、成本低、调试方便等特点。
引言
微电子技术和计算机的发展推动着伺服控制技术的进步,控制系统的硬件系统越来越高速化、小型化、模块化,功能也日趋强大完善;而且,伺服控制技术是朝着更开放、更加模块化的控制结构的方向发展的,要求控制器算法实现简单、控制接口灵活,针对不同的伺服控制对象时硬件系统不变,软件系统也可以完成参数的自动调整。
在高精度大型望远镜伺服控制应用场所,采用高精度光电编码器作为主要反馈手段,主要有绝对式和增量式编码器。驱动电机的信号有模拟电压输出或PWM脉冲输出,通过调整电压的大小或PWM的占空比来调整电机的速度。系统具有和上位机的通信接口以及一些逻辑输入/输出接口等。大型望远镜是用于跟踪测量空中飞行目标或观测天体目标的精密光学设备。伺服系统是望远镜的重要组成部分,它对于跟踪目标、精确测量目标的位置以及其他参数都起着重要作用。伺服系统的性能会直接影响望远镜的观测能力,对望远镜的高精度伺服控制需要高精度的位置反馈装置,以及高分辨率的PWM驱动脉冲。
本文采用高速单片机C8051F120作为主控制器,与光电编码器接口多为AB正交码和零位信号输入;驱动电机多采用带死区PWM信号驱动有刷直流电机;采用CPLD实现高速光电编码器的AB码计数、计数位数的设定以及32位的可逆计数,同时可以输出高分辨率的带死区的PWM电机驱动信号。本文结合高速单片机和CPLD的优点进行望远镜伺服系统的控制器设计。
1 系统硬件设计
设计采用高速单片机作为主控制器来构成低成本的伺服控制方案。CPLD具有编程灵活、集成度高、开发周期短、成本低的特点,可实现较大规模的数字电路设计。因此,选择一款合适的CPLD可满足伺服控制系统的AB正交码计数和PWM波形产生等电路接口要求,同时大大减小PCB面积,增强可靠性。整个控制器系统原理框图如图1所示。
如图3所示,光电增量式编码器接口电路具有终端匹配电阻和滤波网络电路,可增强抗干扰能力。其中,接口芯片SP489将RS422信号转换为TTL电平。
2.4 其他电路
转台上的限位信号、功率级的故障信号、外部逻辑数字信号等输入到CPLD,进行相应的逻辑处理(如输出使能和停止),从而达到对电机的有效控制和保护。
3 控制算法实现
在控制算法的实现上采用内模控制。其设计思路是将对象模型与实际对象相并联,控制器逼近模型的动态逆。对单变量系统而言,内模控制器取为模型最小相位部分的逆,并通过附加低通滤波器增强系统的鲁棒性。模型和被控对象模型精确匹配时,控制系统的输入等于输出。内模控制能够清楚地表明调节参数和闭环响应及鲁棒性的关系,内模控制器的动态特性取决于内部模型与被控对象的匹配情况。
内模控制原理框图如图5所示。其中,GP(s)为控制对象*****为内部模型,GIMC(s)为内模控制器,Gd(s)为外界干扰模型;x、u、y分别为给定输入、控制量、对象输出,d为外界干扰。在工业过程中,与经典PID控制相比,内模控制仅有一个整定参数,参数调整与系统动态品质和鲁棒性的关系比较明确,故采用内模控制原理可以提高PID控制器的设计水平。由于参数调节简单,此算法利于单片机程序实现。
式中,Tm是机械时间常数,K是增益。因此可以选择内模控制器为:
当模型匹配时,存在内模控制系统闭环为一惯性环节。它的时间可以依据需要进行调节,λ值小有利于动态性能,λ值大则有利于增强鲁棒性。对于内模控制器输出不饱和而言,其等效于反馈控制器PI,因而,系统对阶跃输入和阶跃扰动的稳态误差为零,其抗干扰能力与常规PI完全一致。采用增量式PID控制算法,控制变量为:
利用板上的通信口发送实际的速度值(波特率115200bps,1ms发送1次),由上位计算机记录数据,测得的速度响应曲线如图6所示。起始阶段电机以20"/s的低速度运行,中间升至1800"/s,最后达到3600"/s,可见每个阶段的速度都非常平稳。在实际数据处理时,需要对零位信号时刻的圆光栅数据进行处理,因该光栅有零位信号输出,计算速度时要进行合理的辨别方向和大小分析处理。
结语
本文采用高速单片机和CPLD组成望远镜伺服控制器,实现了圆光栅四倍频细分电路、计数模块以及电机PWM驱动控制信号产生,并用单片机实现了内模控制算法、LCD显示和数据通信等功能。最终通过实验验证了该系统的可行性。
欢迎光临 DIY编程器网 (http://diybcq.com/)
Powered by Discuz! X3.2