张淑芳,刘 江,吴健俊,张 涛,冯兆池
(1.天津大学 电子信息工程与自动化学院,天津 300072;2.中国科学院 大连化学物理研究所,催化基础国家重点实验室,辽宁 大连 116023)
随着计算机技术的进步,自动化控制的相关研究得到了空前发展。自动化技术推动了生产关系的变革,解放发展了生产力[1]。传统的拉曼光谱仪光路控制系统需要光栅进行分段式转动控制,操作复杂精度不好控制,且无法实现激光波长的连续在线可调[2],本文设计出一种光路自动化控制系统,该系统避免了由于实验人员人工调节引入的误差,具有应用广泛、稳定可靠、高精度、抗干扰能力强等特点。
步进电机凭借其成本较低、控制方法简单等优点,被广泛应用在自动化控制领域中[3]。通过给定不同频率的脉冲以及不同数量的脉冲数,可以改变电机运转速度和电机旋转角度。结合步进电机驱动器,也可以更改电机旋转角度。对于电机控制的研究中,由于其稳定又简易,大多数研究均采用开环系统[4-7]。但是,电机的开环设计对于控制升降台的移动是有局限性的。首先,升降台上升与下降是有固定量程的,如果升降台偏移位置超出量程范围,则会发生电机堵转现象;其次,当电机高速运转时,会发生“丢步”现象,导致脉冲数与电机旋转角度不符,长此以往下去,会造成控制系统的不稳定,形成累计误差。
针对上述问题,本文设计一种多光路自动控制系统,该系统能够解决传统的人工调节光路位置存在的精度低等问题,并设计了良好的人机交互功能,更加便捷地控制光路位置。本系统所包含功能如下:闭环自检、光路接入、升降台复原、堵转限位值预设、毫米级位移微调和堵转预警等。
本文设计的激光拉曼光谱仪光路自动化控制系统示意图如图1所示。它主要由脉冲生成模块、定时器模块、步进电机、步进电机驱动器、升降台、压力传感器以及MC9S12XEP100 主控板等部分组成。本设计采用MC9S12XEP100 作为核心控制器,负责整个系统调度。首先,主控器通过脉冲信号、方向信号、使能信号等控制步进电机驱动器从而驱动电机运转;此外,压力传感器信号作为一种闭环反馈信息提供给主控器用于闭环自检功能;最后,上位机部分通过SCI串口通信、蓝牙模块通信等实现顶层应用对底层硬件的控制,更加便捷地实现光路控制。
图1 多光路自动化控制系统示意图Fig.1 Block diagram of multi-optical automatic control system
光路控制系统的基本工作原理为:通过数学建模将步距角、脉冲数、细分系数与升降台位移之间建立联系,即通过改变电机旋转角度从而控制升降台的纵向位移。上述只是开环的电机控制系统,虽然已满足大多数电机控制系统,但是为了确保系统的稳定性与高精度,本文采用闭环和堵转预警的方式来保障系统工作的稳定性。闭环自检是通过压力传感器实现,每次接入光路之前,升降台都要进行一个闭环自检操作,从而避免实际操作过程中由于断电造成升降台无法复原的现象发生,确保每次接入光路前初始位置相同;堵转预警功能是通过计数单向移动的最大脉冲数,当该数量到达一定阈值之后,则停止滑动升降台,起到了堵转预警的作用。此外,为了实现对升降台更为精准的控制,增设微调位移1 mm 功能,该功能也是通过PWM(Pulse Width Modulation)与定时器实现。最后,通过CAN(Controller Area Network)总线串口通信模块、蓝牙模块可实现上位机与主控板的通信,从而更加便捷地进行光路控制。
多光路自动化控制系统原理图如图2所示,主要包括PWM 脉冲生成模块、ECT(Enhanced Capture Timer Module)定时器模块、压力传感器闭环检测模块、人机交互模块等。
图2 多光路自动化控制系统原理图Fig.2 Operation block diagram of multi-optical automatic control system
由图2可知,首先初始化PWM 模块和定时器模块,该模块负责提供特定频率的脉冲信号作为步进电机控制器的脉冲信号输入;设定主控制器的某个引脚作为输出端,通过向该引脚赋值来决定步进电机旋转方向;步进电器驱动器负责为步进电机输出稳定电流,并通过细分系数以及输入其内部的脉冲信号控制电机旋转方向和旋转速度;步进电机通过联轴器连接升降台,此部分可将旋转角度转换为纵向位移,即角度旋转带动升降台滑动。
步进电机是控制系统中常见的控制部件,由步进电机驱动器驱动。步进电机的转速由脉冲频率和驱动器细分系数共同决定;步进电机转角由脉冲数决定。步进电机的一个关键参数是步距角θs[8],用于表示给定一个脉冲信号,步进电机转角度数。本设计采用步距角θs为1.8°的42HBD40BJ4 步进电机,步进电机转速与脉冲频率、细分系数关系如公式(1)所示:
式中:w表示电机转速,r/min;f表示脉冲频率;θs表示步距角;x表示细分系数,由步进电机驱动器的拨码开关决定。由公式可知,电机转速由脉冲频率、步距角、细分系数共同决定。当电机选择完毕后,步距角就固定不变了,所以转速最终只与脉冲频率与细分系数有关。在本设计中,设定脉冲频率为50 Hz,细分系数为2。
电机通过联轴器与升降台直接相连,连接示意图如图3所示。当电机旋转一周之后。对应升降台会发生10 mm 的偏移量Δx10mm。所以转化的对应关系如公式(2)所示。
图3 电机、联轴器、升降台Fig.3 Motor, coupling, lifting table
式中:表明给定电机驱动器200 个脉冲,电机会旋转1 周,通过联轴器带动升降台发生10 mm 的位移偏移。
步进电机驱动器负责驱动电机运行,通过输入脉冲数量、频率、细分系数改变电机转速、转角;通过改变拨码开关改变驱动电流。根据步进电机工作电流设定拨码开关S4、S5、S6,本实验采用的电机驱动电流为1.5 A,故拨码开关分别设定为ON/ON/OFF,拨码开关S4、S5、S6 负责控制细分系数,本实验测试了细分系数与电机转速、升降台位移的对应关系,具体细节见实验结果部分。
步进电机驱动器与电机的连接电路如图4所示。本文采用共阳极接法,将公共端接入VCC,脉冲信号通过PWM 引脚输出来控制,DIR(DIRECTION)通过主控板对应引脚来控制。步进电机的驱动电流为1.5 A,细分系数为2,控制电机低速运转。
图4 电路接线方法Fig.4 Circuit wiring method
本实验通过压力传感器来实现闭环自检功能,压力传感器如图5所示。采用FSR(Forse Sensing Resistor)膜压力传感器,可以将施加在FSR 传感器薄膜区域的压力转换为电阻值的变化,从而获得压力信息。当升降台下降时会和底部发生撞击,压力传感器可以检测到底部撞击,通过改变运动方向向上滑动到预设好的位置,即可实现闭环自检功能。
图5 FSR 薄膜压力传感器Fig.5 FSR thin film pressure sensor
由于薄膜区域厚度很薄,且不会产生形变。故当升降台撞击薄膜片时,不会产生行程差,这样更加有利于高精度升降台的位置偏移。
该传感器会产生一个模拟信号输出VO,一个高低电平输出DO。当检测到压力时,该模块DO 引脚会输出高电平,发光二极管导通发亮。与XEP100 主控板结合起来时,可以通过检测引脚电平,来判断是否发生碰撞。当主控器检测到引脚出现高电平时,方向端信号就发生改变,从而使得升降台复位,实现闭环自检功能。
由于实际工程需求,需要设计多光路自动化控制系统。光路1、光路2、光路3 实现的功能一样,仅需要设计算法来实现多光路自动化控制。由于PWM 模块存在8 个独立的通道输出PWM 波,所以额外初始化两个PWM 波作为光路2、光路3 的脉冲信号源即可。采用同一定时器为不同脉冲波计数,PWM 波输出频率由内部相关寄存器控制。计算公式如下所示:
式中:OSCCLK 表示晶振频率,通过锁相环倍频后得到系统总线频率为32 MHz,通过一系列寄存器设定,如PWMSCLA、PWMPERx 等,最终PWM 波的输出频率控制在50 Hz。
采用ECT定时器对PWM 的输出进行计数,即可实现对电机转速和转角的精准控制。在ECT 定时器的设定中,首先设定定时器周期,TSCR2 寄存器设为0x07,表示对系统时钟进行128 分频,如式(7)所示:
此时,定时器计数一次会耗时4 μs,设定TC0 初始值为TCNT+62500,此时,当定时器溢出时,时钟计时0.25 s。当程序控制ECT 定时器循环4 次,即可计时1 s。
此时可有如下对应关系:定时器计时1 s,主控器产生50 个脉冲,电机旋转90°,升降台上升2.5 mm。多光路控制系统主体算法流程框图如图6所示。
图6 主体算法框图Fig.6 Main algorithm block diagram
本文创新性的采用压力传感器作为闭环自检的核心部件,通过压力传感器检测压力信号从而检测升降台是否触底。由于传感器薄膜仅仅存在可忽略不计的微小形变,所以不会造成行程误差。在自检模式下,主控板会实时监测压力传感器DO 端的电平变化,当检测到高电平时,主控板会控制升降台向相反方向移动,由于底部到平衡位置的行程固定不变,通过公式计算,即可求出需要的PWM 脉冲的数量。闭环自检功能的程序流程图如图7所示。
图7 闭环自检功能算法框图Fig.7 Closed-loop self-check function algorithm block diagram
算法实现步骤如下:
步骤1:选择光路,使能对应PWM 脉冲源,分频对应 PWM 脉冲源,通过设定对应的使能位PWMEx、分频系数位PWMCLK 寄存器实现。
步骤2:主控器实时检测压力传感器输出端引脚D0,当引脚电平为低电平时,执行步骤3,否则,执行步骤4。
步骤3:控制方向端DIRx=1,控制升降台向下移动,并执行步骤2,实时检测传感器输出端D0 状态。
步骤4:此时控制电机方向端DIRx=0,使电机向上运动。通过提前标定好平衡位置与压力传感器的距离,从而计算ECT 定时器需定时的脉冲个数,完成闭环自检功能,计算公式如下所示:
式中:dx表示平衡位置相对于压力传感器的纵向距离;dT表示电机运转一周期升降台的位移变化;Npulse表示电机运转一周所需的脉冲数;Tpulse表示电机运转一周所需要的时间;通过上述公式可以计算出升降台复位所需的定时器时间tx以及脉冲数Nx,通过设定定时器寄存器中TC0 初值,即可实现闭环自检功能。首先需要清除定时器标志位,并对定时器赋初值,判断定时器是否溢出,若溢出,则执行步骤5,否则循环计时。
步骤5:判断是否达到步骤4 中的预设值dx,达到预设值之后则闭环自检功能结束,否则执行步骤4。
此外,由于升降台的量程在±35 mm 范围内,所以需要设计堵转预警功能,以防电机发生堵转问题。通过设定全局变量count 来计数向上、向下运行时的脉冲数量,由于脉冲数量与升降台位移存在数学对应关系,通过设定全局变量count 与预设阈值的大小关系即可。
图8为电脑端人机交互控制界面,所设计的控制软件能满足自动化控制的基本需求,主要功能包括光路选择、设定转速、设定脉冲数(堵转限位值)、光路的上升与下降、光路自检等功能,图中右侧可实时反馈各光路实际测量值,通过CAN 总线实现上位机与下位机的通信,实现数据的接收与实时显示。本文实验均在此软件下开展的,良好的人机交互便于实验数据的记录与实验现象的观察。
图8 上位机人机交互界面Fig.8 Host computer man-machine interface
由于多光路控制系统涉及到三路光的自动化控制,所以引脚连线略显复杂,主要涉及到步进电机、步进电机驱动器、压力传感器、PWM 输出端与主控板引脚的连接。表1记录主控制器各引脚功能及连线。
表1 主控制器引脚功能Table 1 Main controller pin function
1)闭环自检
实验设定通过改变升降台初始位置,来观察闭环自检功能的稳定性,为了全面验证闭环自检功能的性能,实验设定了10 组不同的起始位置数据,其中5组数据位于平衡位置之上,5 组数据位于平衡位置之下,记录自检完成后升降台的最终位置。实验记录如表2所示。
表2 闭环自检测量结果Table 2 Closed-loop self-test results mm
2)方向端、细分系数和脉冲数与位移的对应关系
该实验验证方向端信号、细分系数、脉冲数与升降台的位移关系,从而验证本文中数学建模的准确性。实验记录结果如表3所示,其中+/-表示相对于平衡位置上升/下降的位移。
表3 实验测量结果Table 3 Experimental measurement results mm
本文设计了多光路自动化控制系统,解决了传统的激光拉曼光谱仪光路控制系统操作复杂精度不好控制,且无法实现激光位置的连续在线可调的问题;此外,本文提出了一种基于薄膜压力传感器的闭环自检方法,该方法能够解决系统突然断电时的升降台复原问题,从而确保每次接入光路时起始位置一致,保障系统稳定性;毫米级位移微调操作使得光路控制更加便利;堵转预警部分中,当升降台偏移超出量程位置时,升降台会自动停止,该部分可以有效避免电机堵转现象的发生,同时也对电机、升降台起到了一定的保护作用;堵转限位值预设功能,可精确控制升降台定位点。在应用端部分,该控制系统不仅可以通过功能按键控制,也可以通过CAN 总线与电脑终端通信,能够实现电脑端APP 实时监测实验数据,进一步拓宽了该光路控制系统的应用场景。