Multi-Channel Laser Automatic Control System Based on Closed-Loop Control
-
摘要: 为了实现激光拉曼光谱仪光路的自动化控制,本文建立了基于MC9S12XEP100核心控制器的光路自动化控制系统。针对开环电机控制出现的精度低、易“丢步”、“堵转”等问题,本文设计了一种基于压力传感器的闭环控制算法,极大地提升了控制精度和系统稳定性,有效避免了电机堵转问题。实验结果表明:该控制系统可以实现多路光的任意调节、光路的接入与复位、闭环自检和上位机通信等功能。该系统所控制的位移误差精度在0.1 mm范围内,基本满足光路控制系统稳定可靠、高精度、抗干扰能力强等要求。Abstract: An automation control system for the optical path is proposed in this paper, based on the MC9S12XEP100 core controller, to realize automatic control of the optical path of the laser Raman spectrometer. A closed-loop control algorithm based on the pressure sensor is proposed to address problems such as low precision, easy "lost step, " and "blocked rotor" in open-loop motor control. This algorithm greatly improves the control accuracy and system stability and effectively avoids the problem of motor blocking. Experimental results show that the control system can realize the functions of arbitrary adjustment of multi-path light, access and reset of light path, closed-loop self-check, and host computer communication. The displacement error accuracy controlled by this system is within 0.1mm, which meets the basic requirements of stability, reliability, high precision, and strong anti-interference ability in the optical path control system.
-
0. 引言
随着计算机技术的进步,自动化控制的相关研究得到了空前发展。自动化技术推动了生产关系的变革,解放发展了生产力[1]。传统的拉曼光谱仪光路控制系统需要光栅进行分段式转动控制,操作复杂精度不好控制,且无法实现激光波长的连续在线可调[2],本文设计出一种光路自动化控制系统,该系统避免了由于实验人员人工调节引入的误差,具有应用广泛、稳定可靠、高精度、抗干扰能力强等特点。
步进电机凭借其成本较低、控制方法简单等优点,被广泛应用在自动化控制领域中[3]。通过给定不同频率的脉冲以及不同数量的脉冲数,可以改变电机运转速度和电机旋转角度。结合步进电机驱动器,也可以更改电机旋转角度。对于电机控制的研究中,由于其稳定又简易,大多数研究均采用开环系统[4-7]。但是,电机的开环设计对于控制升降台的移动是有局限性的。首先,升降台上升与下降是有固定量程的,如果升降台偏移位置超出量程范围,则会发生电机堵转现象;其次,当电机高速运转时,会发生“丢步”现象,导致脉冲数与电机旋转角度不符,长此以往下去,会造成控制系统的不稳定,形成累计误差。
针对上述问题,本文设计一种多光路自动控制系统,该系统能够解决传统的人工调节光路位置存在的精度低等问题,并设计了良好的人机交互功能,更加便捷地控制光路位置。本系统所包含功能如下:闭环自检、光路接入、升降台复原、堵转限位值预设、毫米级位移微调和堵转预警等。
1. 多光路自动化控制系统整体功能设计
1.1 多光路控制系统的主体构成
本文设计的激光拉曼光谱仪光路自动化控制系统示意图如图 1所示。它主要由脉冲生成模块、定时器模块、步进电机、步进电机驱动器、升降台、压力传感器以及MC9S12XEP100主控板等部分组成。本设计采用MC9S12XEP100作为核心控制器,负责整个系统调度。首先,主控器通过脉冲信号、方向信号、使能信号等控制步进电机驱动器从而驱动电机运转;此外,压力传感器信号作为一种闭环反馈信息提供给主控器用于闭环自检功能;最后,上位机部分通过SCI串口通信、蓝牙模块通信等实现顶层应用对底层硬件的控制,更加便捷地实现光路控制。
光路控制系统的基本工作原理为:通过数学建模将步距角、脉冲数、细分系数与升降台位移之间建立联系,即通过改变电机旋转角度从而控制升降台的纵向位移。上述只是开环的电机控制系统,虽然已满足大多数电机控制系统,但是为了确保系统的稳定性与高精度,本文采用闭环和堵转预警的方式来保障系统工作的稳定性。闭环自检是通过压力传感器实现,每次接入光路之前,升降台都要进行一个闭环自检操作,从而避免实际操作过程中由于断电造成升降台无法复原的现象发生,确保每次接入光路前初始位置相同;堵转预警功能是通过计数单向移动的最大脉冲数,当该数量到达一定阈值之后,则停止滑动升降台,起到了堵转预警的作用。此外,为了实现对升降台更为精准的控制,增设微调位移1 mm功能,该功能也是通过PWM(Pulse Width Modulation)与定时器实现。最后,通过CAN(Controller Area Network)总线串口通信模块、蓝牙模块可实现上位机与主控板的通信,从而更加便捷地进行光路控制。
多光路自动化控制系统原理图如图 2所示,主要包括PWM脉冲生成模块、ECT(Enhanced Capture Timer Module)定时器模块、压力传感器闭环检测模块、人机交互模块等。
由图 2可知,首先初始化PWM模块和定时器模块,该模块负责提供特定频率的脉冲信号作为步进电机控制器的脉冲信号输入;设定主控制器的某个引脚作为输出端,通过向该引脚赋值来决定步进电机旋转方向;步进电器驱动器负责为步进电机输出稳定电流,并通过细分系数以及输入其内部的脉冲信号控制电机旋转方向和旋转速度;步进电机通过联轴器连接升降台,此部分可将旋转角度转换为纵向位移,即角度旋转带动升降台滑动。
1.2 步进电机与升降台的控制
步进电机是控制系统中常见的控制部件,由步进电机驱动器驱动。步进电机的转速由脉冲频率和驱动器细分系数共同决定;步进电机转角由脉冲数决定。步进电机的一个关键参数是步距角θs[8],用于表示给定一个脉冲信号,步进电机转角度数。本设计采用步距角θs为1.8°的42HBD40BJ4步进电机,步进电机转速与脉冲频率、细分系数关系如公式(1)所示:
$$ w = f \times 60/\left( {\frac{{360^\circ }}{{{\theta _{\rm{s}}}}} \times x} \right) $$ (1) 式中:w表示电机转速,r/min;f表示脉冲频率;θs表示步距角;x表示细分系数,由步进电机驱动器的拨码开关决定。由公式可知,电机转速由脉冲频率、步距角、细分系数共同决定。当电机选择完毕后,步距角就固定不变了,所以转速最终只与脉冲频率与细分系数有关。在本设计中,设定脉冲频率为50 Hz,细分系数为2。
电机通过联轴器与升降台直接相连,连接示意图如图 3所示。当电机旋转一周之后。对应升降台会发生10 mm的偏移量∆x10mm。所以转化的对应关系如公式(2)所示。
$$ 200{\rm{pulse}} \to 360^\circ \to \Delta {x_{10{\rm{mm}}}} $$ (2) 式中:表明给定电机驱动器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,控制电机低速运转。
2. 闭环控制算法
2.1 压力传感器模块
本实验通过压力传感器来实现闭环自检功能,压力传感器如图 5所示。采用FSR(Forse Sensing Resistor)膜压力传感器,可以将施加在FSR传感器薄膜区域的压力转换为电阻值的变化,从而获得压力信息。当升降台下降时会和底部发生撞击,压力传感器可以检测到底部撞击,通过改变运动方向向上滑动到预设好的位置,即可实现闭环自检功能。
由于薄膜区域厚度很薄,且不会产生形变。故当升降台撞击薄膜片时,不会产生行程差,这样更加有利于高精度升降台的位置偏移。
该传感器会产生一个模拟信号输出VO,一个高低电平输出DO。当检测到压力时,该模块DO引脚会输出高电平,发光二极管导通发亮。与XEP100主控板结合起来时,可以通过检测引脚电平,来判断是否发生碰撞。当主控器检测到引脚出现高电平时,方向端信号就发生改变,从而使得升降台复位,实现闭环自检功能。
2.2 控制系统算法设计
由于实际工程需求,需要设计多光路自动化控制系统。光路1、光路2、光路3实现的功能一样,仅需要设计算法来实现多光路自动化控制。由于PWM模块存在8个独立的通道输出PWM波,所以额外初始化两个PWM波作为光路2、光路3的脉冲信号源即可。采用同一定时器为不同脉冲波计数,PWM波输出频率由内部相关寄存器控制。计算公式如下所示:
$$ {{\rm{PLCLK}} = 2 \times {\rm{OSCCLK}} \times ({\rm{SYNR}} + 1)/({\rm{REFDV}} + 1)} $$ (3) $$ {{\rm{FBUS}} = {\rm{PCCLK}}/2} $$ (4) $$ {f_{{\rm{SA}}}} = \frac{{{f_{\rm{A}}}}}{{2 \times ({\rm{PWMSCLA}})}} $$ (5) $$ {f_{{\rm{PWM}}}} = \frac{{{f_{{\rm{SA}}}}}}{{{\rm{PWMPERx}}}} $$ (6) 式中:OSCCLK表示晶振频率,通过锁相环倍频后得到系统总线频率为32 MHz,通过一系列寄存器设定,如PWMSCLA、PWMPERx等,最终PWM波的输出频率控制在50 Hz。
采用ECT定时器对PWM的输出进行计数,即可实现对电机转速和转角的精准控制。在ECT定时器的设定中,首先设定定时器周期,TSCR2寄存器设为0x07,表示对系统时钟进行128分频,如式(7)所示:
$$ T = \frac{1}{f} = \frac{1}{{{f_{{\rm{bus}}}}/128}} = \frac{1}{{32{\rm{MHz}}/128}} = 4\;{\rm{ \mathsf{ μ} s}} $$ (7) 此时,定时器计数一次会耗时4 μs,设定TC0初始值为TCNT+62500,此时,当定时器溢出时,时钟计时0.25 s。当程序控制ECT定时器循环4次,即可计时1 s。
此时可有如下对应关系:定时器计时1 s,主控器产生50个脉冲,电机旋转90°,升降台上升2.5 mm。多光路控制系统主体算法流程框图如图 6所示。
2.3 闭环控制算法设计
本文创新性的采用压力传感器作为闭环自检的核心部件,通过压力传感器检测压力信号从而检测升降台是否触底。由于传感器薄膜仅仅存在可忽略不计的微小形变,所以不会造成行程误差。在自检模式下,主控板会实时监测压力传感器DO端的电平变化,当检测到高电平时,主控板会控制升降台向相反方向移动,由于底部到平衡位置的行程固定不变,通过公式计算,即可求出需要的PWM脉冲的数量。闭环自检功能的程序流程图如图 7所示。
算法实现步骤如下:
步骤1:选择光路,使能对应PWM脉冲源,分频对应PWM脉冲源,通过设定对应的使能位PWMEx、分频系数位PWMCLK寄存器实现。
步骤2:主控器实时检测压力传感器输出端引脚D0,当引脚电平为低电平时,执行步骤3,否则,执行步骤4。
步骤3:控制方向端DIRx=1,控制升降台向下移动,并执行步骤2,实时检测传感器输出端D0状态。
步骤4:此时控制电机方向端DIRx=0,使电机向上运动。通过提前标定好平衡位置与压力传感器的距离,从而计算ECT定时器需定时的脉冲个数,完成闭环自检功能,计算公式如下所示:
$$ {N_x} = \frac{{{d_x}}}{{{d_T}}} \times {N_{{\rm{pulse}}}} $$ (8) $$ {t_x} = \frac{{{d_x}}}{{{d_T}}} \times {T_{{\rm{pulse}}}} $$ (9) 式中:dx表示平衡位置相对于压力传感器的纵向距离;dT表示电机运转一周期升降台的位移变化;Npulse表示电机运转一周所需的脉冲数;Tpulse表示电机运转一周所需要的时间;通过上述公式可以计算出升降台复位所需的定时器时间tx以及脉冲数Nx,通过设定定时器寄存器中TC0初值,即可实现闭环自检功能。首先需要清除定时器标志位,并对定时器赋初值,判断定时器是否溢出,若溢出,则执行步骤5,否则循环计时。
步骤5:判断是否达到步骤4中的预设值dx,达到预设值之后则闭环自检功能结束,否则执行步骤4。
此外,由于升降台的量程在±35 mm范围内,所以需要设计堵转预警功能,以防电机发生堵转问题。通过设定全局变量count来计数向上、向下运行时的脉冲数量,由于脉冲数量与升降台位移存在数学对应关系,通过设定全局变量count与预设阈值的大小关系即可。
3. 测量实验与结果
3.1 人机交互软件的设计
图 8为电脑端人机交互控制界面,所设计的控制软件能满足自动化控制的基本需求,主要功能包括光路选择、设定转速、设定脉冲数(堵转限位值)、光路的上升与下降、光路自检等功能,图中右侧可实时反馈各光路实际测量值,通过CAN总线实现上位机与下位机的通信,实现数据的接收与实时显示。本文实验均在此软件下开展的,良好的人机交互便于实验数据的记录与实验现象的观察。
3.2 主控板及外设引脚功能设定
由于多光路控制系统涉及到三路光的自动化控制,所以引脚连线略显复杂,主要涉及到步进电机、步进电机驱动器、压力传感器、PWM输出端与主控板引脚的连接。表 1记录主控制器各引脚功能及连线。
表 1 主控制器引脚功能Table 1. Main controller pin functionPIN Function Connection PB1 Serial Indicator1 - PB2 Serial Indicator2 - PB3 Serial Indicator3 - PK4 Control the direction of motor1 Direction end of stepper motor driver 1 PB7 Main control board monitors the pressure
signal 1D0 end of pressure sensor 1 PA0 Stepper motor driver 2 common anode PULSE+ of driver2 PA2 Stepper motor driver 2 common anode DIR+ of driver2 PA4 Stepper motor driver 2 common anode ENA+ of driver2 PA6 Direction control of stepping motor 2 DIR- of driver2 PE2 Main control board monitors the pressure
signal 2D0 of pressure sensor 2 PA1 Stepper motor driver 3 common anode PULSE+ of driver23 PA3 Stepper motor driver 3 common anode DIR+ of driver23 PA5 Stepper motor driver 3 common anode ENA+ of driver23 PA7 Direction control of stepping motor 3 D0 of pressure sensor 3 PE4 Main control board monitors the pressure
signal 3D0 of pressure sensor 3 P1 PWM output pin 1 PULSE- of driver1 P3 PWM output pin 3 PULSE- of driver2 P5 PWM output pin 5 PULSE- of driver3 TX0 Serial communication receiver Connect with the receiving end of
communication interfaceRX0 Serial communication receiver Connect with the receiving end of
communication interface3.3 多光路自动化控制系统功能验证
1)闭环自检
实验设定通过改变升降台初始位置,来观察闭环自检功能的稳定性,为了全面验证闭环自检功能的性能,实验设定了10组不同的起始位置数据,其中5组数据位于平衡位置之上,5组数据位于平衡位置之下,记录自检完成后升降台的最终位置。实验记录如表 2所示。
表 2 闭环自检测量结果Table 2. Closed-loop self-test resultsmm Numbers Start Theory Test 1 70.0 35.0 35.0 2 58.0 35.0 3 51.0 35.0 4 43.0 35.0 5 38.0 35.0 6 31.0 35.0 7 25.0 35.0 8 21.0 35.0 9 18.0 35.0 10 9.0 35.0 Average 36.4 35.0 2)方向端、细分系数和脉冲数与位移的对应关系
该实验验证方向端信号、细分系数、脉冲数与升降台的位移关系,从而验证本文中数学建模的准确性。实验记录结果如表 3所示,其中+/-表示相对于平衡位置上升/下降的位移。
表 3 实验测量结果Table 3. Experimental measurement resultsmm Direction Coef Numbers Distance 1 1 200 +10.0 1 2 200 +5.0 1 4 200 +2.5 1 8 200 +1.2 1 32 200 +0.6 0 1 50 -2.5 0 1 100 -5.0 0 1 200 -10.0 0 1 300 -15.0 0 1 400 -20.0 4. 结论
本文设计了多光路自动化控制系统,解决了传统的激光拉曼光谱仪光路控制系统操作复杂精度不好控制,且无法实现激光位置的连续在线可调的问题;此外,本文提出了一种基于薄膜压力传感器的闭环自检方法,该方法能够解决系统突然断电时的升降台复原问题,从而确保每次接入光路时起始位置一致,保障系统稳定性;毫米级位移微调操作使得光路控制更加便利;堵转预警部分中,当升降台偏移超出量程位置时,升降台会自动停止,该部分可以有效避免电机堵转现象的发生,同时也对电机、升降台起到了一定的保护作用;堵转限位值预设功能,可精确控制升降台定位点。在应用端部分,该控制系统不仅可以通过功能按键控制,也可以通过CAN总线与电脑终端通信,能够实现电脑端APP实时监测实验数据,进一步拓宽了该光路控制系统的应用场景。
-
表 1 主控制器引脚功能
Table 1 Main controller pin function
PIN Function Connection PB1 Serial Indicator1 - PB2 Serial Indicator2 - PB3 Serial Indicator3 - PK4 Control the direction of motor1 Direction end of stepper motor driver 1 PB7 Main control board monitors the pressure
signal 1D0 end of pressure sensor 1 PA0 Stepper motor driver 2 common anode PULSE+ of driver2 PA2 Stepper motor driver 2 common anode DIR+ of driver2 PA4 Stepper motor driver 2 common anode ENA+ of driver2 PA6 Direction control of stepping motor 2 DIR- of driver2 PE2 Main control board monitors the pressure
signal 2D0 of pressure sensor 2 PA1 Stepper motor driver 3 common anode PULSE+ of driver23 PA3 Stepper motor driver 3 common anode DIR+ of driver23 PA5 Stepper motor driver 3 common anode ENA+ of driver23 PA7 Direction control of stepping motor 3 D0 of pressure sensor 3 PE4 Main control board monitors the pressure
signal 3D0 of pressure sensor 3 P1 PWM output pin 1 PULSE- of driver1 P3 PWM output pin 3 PULSE- of driver2 P5 PWM output pin 5 PULSE- of driver3 TX0 Serial communication receiver Connect with the receiving end of
communication interfaceRX0 Serial communication receiver Connect with the receiving end of
communication interface表 2 闭环自检测量结果
Table 2 Closed-loop self-test results
mm Numbers Start Theory Test 1 70.0 35.0 35.0 2 58.0 35.0 3 51.0 35.0 4 43.0 35.0 5 38.0 35.0 6 31.0 35.0 7 25.0 35.0 8 21.0 35.0 9 18.0 35.0 10 9.0 35.0 Average 36.4 35.0 表 3 实验测量结果
Table 3 Experimental measurement results
mm Direction Coef Numbers Distance 1 1 200 +10.0 1 2 200 +5.0 1 4 200 +2.5 1 8 200 +1.2 1 32 200 +0.6 0 1 50 -2.5 0 1 100 -5.0 0 1 200 -10.0 0 1 300 -15.0 0 1 400 -20.0 -
[1] 王宗培. 步进电动机的发展及建议[J]. 微电机: 伺服技术, 2004(4): 47-49, 40. DOI: 10.3969/j.issn.1001-6848.2004.04.015 WANG Zongpei. Development and suggestion of stepping motor[J]. Micromotor: Servo Technology, 2004(4): 47-49, 40. DOI: 10.3969/j.issn.1001-6848.2004.04.015
[2] 朱彬华. 激光拉曼光谱仪连续可调激光自动控制方法研究[D]. 天津: 天津大学, 2018. ZHU Binhua. Research on automatic control method of continuously adjustable laser for laser Raman spectrometer[D]. Tianjin: Tianjin University, 2018.
[3] 王晓峰. 步进电机的精准控制[D]. 包头: 内蒙古科技大学, 2020. WANG Xiaofeng. Precise control of stepping motor[D]. Baotou: Inner Mongolia University of Science and Technology, 2020.
[4] 茹珂, 郭希铮, 游小杰, 等. 两相混合步进电机开环高速控制策略研究[J]. 微电机, 2018, 51(10): 36-41. DOI: 10.3969/j.issn.1001-6848.2018.10.008 RU Ke, GUO Xizheng, YOU Xiaojie, et al. Research on open loop high speed control strategy of two phase hybrid stepping motor[J]. Micromotor, 2018, 51(10): 36-41. DOI: 10.3969/j.issn.1001-6848.2018.10.008
[5] 路欣宇, 苏俊波, 许红, 等. 基于模糊控制的步进电机开环调焦系统设计[J]. 红外技术, 2018, 40(3): 227-232. https://www.cnki.com.cn/Article/CJFDTOTAL-HWJS201803005.htm LU Xinyu, SU Junbo, Xu Hong, et al. Design of stepper motor open loop focusing system based on fuzzy control[J]. Infrared Technology, 2018, 40(3): 227-232. https://www.cnki.com.cn/Article/CJFDTOTAL-HWJS201803005.htm
[6] 程源, 王雪帆, 熊飞, 等. 绕线转子无刷双馈电机开环控制下的稳定性研究[J]. 中国电机工程学报, 2013, 33(S1): 203-210. https://www.cnki.com.cn/Article/CJFDTOTAL-ZGDC2013S1032.htm CHENG Yuan, WANG Xuefan, XIONG Fei et al. Research on stability of brushless doubly fed machine with wound rotor under open loop control[J]. Chinese Journal of Electrical Engineering, 2013, 33(S1): 203-210. https://www.cnki.com.cn/Article/CJFDTOTAL-ZGDC2013S1032.htm
[7] 高辉, 张玉, 唐波, 等. 基于dsPIC30F3010的无刷直流电机开环控制系统设计[J]. 电机与控制应用, 2012(S1): 25-28. https://www.cnki.com.cn/Article/CJFDTOTAL-ZXXD2012S1007.htm GAO Hui, ZHANG Yu, TANG Bo, et al. Design of Brushless DC motor open loop control system based on dspic30f3010[J]. Motor and Control Application, 2012(S1): 25-28. https://www.cnki.com.cn/Article/CJFDTOTAL-ZXXD2012S1007.htm
[8] 吴晓苏, 丁学恭, 裘旭东, 等. 幅电流矢量思想的微步距控制技术及其应用[J]. 工程设计学报, 2005(4): 240-242, 251. DOI: 10.3785/j.issn.1006-754X.2005.04.011 WU Xiaosu, DING Xuegong, QIU Xudong, et al. Micro step control technology based on amplitude current vector and its application[J]. Journal of Engineering Design, 2005(4): 240-242, 251. DOI: 10.3785/j.issn.1006-754X.2005.04.011