航海罗经模拟器的组成结构原理是:船舶舵轮的转动引起了船舶航向的改变,同时也就引起了船舶罗经读数的变化。当罗经模拟器要求转动的角度偏大时,设计应用变频转动的方法来克服转动时间过长的缺点,也就是给出一个具体需要转动的航向值,该模拟器能够迅速有效地按照要求转到该值。
步进电机的选用与设计
步进电机具有转矩大、惯性小、响应频率高等优点,具有瞬间起动与急速停止的优越特性。与其他驱动元件相比,有明显优点:通常不需要反馈就能对位移或速度进行精确控制;输出的转角或位移精度高,误差不会积累;控制系统结构简单,与数字设备兼容,价格便宜。它每转一周有固定步数,能够精确控制步进和接收数字量。为了便于数据的处理和驱动,设计了由步进电机带动减速齿轮,再由齿轮带动罗经数据转盘,为了提高数据精度和提高电机的负载能力,将减速比设计为:1:90(比值越小,精度越高,但是比值太小对控制和响应频率要求就太高了)。步进电机的通电方式可采用三相双六拍通电方式,即按照a、ab、b、bc、c、ca顺序循环通电,这样步进电机中每个脉冲能驱动1.5度。三相双六拍通电的控制模型如表1。
步进电机的驱动采用软件设置和功率放大电路来实现,其中功率放大器也称为驱动电路,其作用是将脉冲发生器的输出脉冲进行功率放大,给步进电机相绕组提供足够的电流,驱动步进电机正常工作。对功率放大器的要求包括:能提供足够的幅值;前后沿较陡的励磁电流;功耗小,效率高;运行稳定可靠,便于维修而且成本低。
软件设计中脉冲波的要求
这里利用mcs-51系列单片机中的p1口来进行控制,因为p1是8位准双向i/o口,每一位可以独立地定义为输入或输出,所以,既可以对p1口进行字节操作也可以进行位的操作。mcs-51系列单片机中有两个16位的可编程定时器/计数器,定时器/计数器ct0由计数器th0和tl0组成,ct1由th1和tl1组成,th、tl分别为8位计数器,若拼接在一起就可组成16位计数器。
计算tl、th初值
应用cto产生1ms的定时,并使p1产生2ms的方波,设系统晶振频率为12mhz。设12m晶振的周期:t=12/fosc=12/(12×10-6)=1×10-6(us)设定时初值为x,则有:(216-x)×1×10-6=10-3解算得x=65036=fe0c(h);所以tl0初值设为0ch;th0初值设为feh,这样每秒能产生1000个方波。当改变初值x时,就能改变延时时间,x值越小,延时时间就越长,脉冲宽度也越宽。
计算并设置转动数据
因为模拟航海罗经的精度为一格(即0.1度),同时减速装置是1:90,所以电机每步应转动9度,又因为每个脉冲使电机转动1.5度,所以每步要求有6个脉冲,因此步长要设置为6。按照上表得知若以a、ab、b、bc、c、ca、a循环,则控制脉冲为:01h,03h,02h,06h,04h,05h;编程时采用查表法来实现,首先将步进电机通电方式运行逻辑数据列成表格,存入计算机指定内存,并设置数据指针,指针自动向下移动或向上移动一组数据,使步进电机按规定的通电励磁方式运行。这样正转模型按照地址顺序的分配分别为:01h、03h、02h、06h、04h、05h、00h;同样,反转模型地址中的分配分别为:05h、04h、06h、02h、03h、01h、00h。
在快速转动不同角度时的变频设计思路
因为该模拟罗经需要在任意时刻都能够设置,所以当在设置状态和转动数据大,使步进电机在短时间内以比较快的速度运转而不出现失步,就要求采用小于或等于步进电机的响应频率,在该频率之下,步进电机可以随意地启动、停止或反转而不发生失步现象。而步进电机的响应频率通常比较低,当步进电机要求走转动的度数比较多时,就对该电机提出了要求:低速启动,高速运转,然后降低速度,最后停止。这样才能解决“快速而不失步”的要求。依照该思路,采用改变输出脉冲宽度的方法,也就是改变控制定时器的延时,如图1。
其中f为步进电机当前运行的频率l1为升频运行阶段;l2为高速运行阶段;l3为降频运行阶段。利用定时器的延时,在升频时,定时器的初值由小变大,在降频时刚好相反,高速运行段初值不变。因为步进电机从静止加速到工作转速(一般为每分钟几百转)需要200~400ms。所以经上式计算得如附表中的相应定时初值。
按照附表得出高速运行阶段:频率为1000hz,2s能产生2000个脉冲,能使电机运转最大度数为:2000×1.5=3000°,所以在高速阶段2s内电机能驱动罗经转动3000/90=34°,该数值已经完全满足模拟器转动要求了。
程序设计
该模拟器的步进电机进行控制的一个重要条件是,计算当前需要步进电机转动的角度是多少,然后按照需要转动的角度进行设置不同的电机所需要的三个阶段的频率即:升频运行阶段(启动)、高速运行阶段、降频运行阶段(减速)。程序的设计流程图如图2所示:其中针对需要正向或逆向转动不同的角度,就需要选择合适的脉冲值,也就是tl0和th0的初值就能够轻松实现。
结语
利用步进电机和单片机来设计航海罗经模拟器的方案是充分利用单片机的特点以及采用变频的控制原理。此设计采用的硬件比较少,软件采用模块化结构,利于修改,并为将来程序功能的扩展留下了很好的余地。本设计对该模拟罗经驱动效果为:连续工作20小时,误差仅在2°以内,完全符合模拟器的要求。