角度自动控制系统的设计

2020-07-15 05:01谢国坤
计算机技术与发展 2020年7期
关键词:帆板按键电机

谢国坤

(西安交通工程学院 电气工程学院,陕西 西安 710300)

0 引 言

进入21世纪以来,曾支撑了整个20世纪人类文明高速发展的石化能源在千禧年之后出现了日趋严重的危机,其储藏量被疯狂开采后不断锐减,同时也带来了严重的环境问题。而太阳能是目前自然界已知存储量最大的清洁能源,但由于开采利用技术的不成熟,导致能源的严重浪费。随着近年来,新型数字化技术和自动化控制技术在生产领域的广泛应用,以及数字信号处理技术的不断成熟,自动控制技术越来越多地被应用到生产生活领域。

文献[1]中,选用单片机STC89C52作为角度控制系统的主控制器,该系统采用按键模式设置帆板角度,采用PID控制器调节电机快速响应。文献[2]中,以51单片机为核心,通过霍尔式角度传感器检测帆板倾斜的角度,利用PWM脉冲调制电机转动。文献[3]中,采用STC芯片作为处理器,结合PID算法和PWM脉冲控制电机转速。文中主要以STC89C52单片机作为核心器件,利用MPU6050检测电机旋转角度,应用增量式PID算法,实现电机根据光照角度的变化,使电机快速响应,且设置了显示模块和按键模块,可实时监测电机旋转角速度,采用按键实现了手动和自动两种操作模式的切换。

1 硬件设计

1.1 系统硬件的组成

该设计采用STC89C52作为角度自动控制系统的主控制器件,另外,包括MPU6050角度检测、电机驱动、光强检测、LCD液晶显示和按键等功能模块,根据这些模块可实现帆板的实时控制。该系统的结构框图如图1所示。

图1 系统总框图

由图1可知,根据光照检测模块实时检测光照角度值,同时,MPU6050角度传感器将实时检测到的角度信号通过A/D转换获得帆板角度信息,并实时显示在LCD1602液晶显示屏上。在软件设计中,结合PID算法,通过单片机控制PWM波的输出,快速准确地控制电机驱动帆板转动,若调节角度大于180°时,则触发报警;另外,需要利用按键模块在手动模式和自动模式之间切换,从而可调节帆板角度。

1.2 硬件电路设计

根据系统框图设计系统电路原理图。系统主要采用STC89C52单片机作为主控制器,其中角度测量电路主要采用GY-521MPU6050模块三维角度传感器,MPU-6050还有第二个I2C端口以方便连接51单片机的其他模块。工作电压一般为3V~5V的直流电,此外,MPU-6050的角速度全格感测范围为+250~-250°/sec和+500~-500°/sec,最大可达到+1 000~-1 000°/sec,具有极大的转动广角,可快速追踪转动动作进行实时的测量调控。采集到的θ角度可通过卡尔曼滤波器处理,卡尔曼滤波器在许多领域具有广泛的应用,包括机器人导航与控制、雷达跟踪系统等,近年来还被应用于计算机图像处理,如视频图像跟踪等。

MPU6050角度传感器SCL时钟线、SDA数据线分别与单片机的P3.2、P1.4连接进行IIC通信。SCL为高电平时,当SDA由高电平向低电平跳变时,开始传送数据。SCL为高电平时,当SDA由低电平向高电平跳变时,结束数据传送[4-6]。

电机驱动电路主要采用ULN2803步进电机驱动,因为STC89C52输出的电压一般为5 V,不足以带动步进电机驱动,所以需要采用ULN2803加以驱动[6]。驱动模块ULN2803的8位输入分别与STC89C52的D口8位输出相连;而8位输出分为两组,目的是可同时连接两个步进电机。其接法比较简单,按照要求输入、输出、电源和地线分别相连即可,电源选用+5 V。使用ULN2803驱动电机时,当输入信号为高电平时,输出导通为低电平;输入为低电平时,则不导通。

光强检测模块采用简单的光敏电阻排列[7-9],将光强转换为数字信号,通过I2C总线接口与主控芯片通信,通过程序性的比较,选择最大平均光强,单片机主控模块对其他模块进行控制。通过积分式A/D转换器将流经光敏二极管的电流积分转换为数字量,该数字输出表示测量每一个方向上的光强[7]。输出的数字信号作为STC89C52微处理器的一个输入信号,从而满足该系统的光采集和转换任务。

在实物设计中,选用PCF8591获取数据,其是一个单片集成的低功耗器件,主要完成数据转换[8]。在本系统中,PCF8591与单片机相连时,需接四个10 k的上拉电阻,用于保护光敏检测模块[10-12]。PCF8591中的A/D转换将测得的平均光强等模拟信号,转变为数字信号送入单片机,进行对比确定光源方向[13]。I2C总线接口分别接主控芯片的P1.0和P1.1接口用以与单片机进行通信。

显示电路采用常用的LCD1602液晶屏进行实时显示,以串行的方式与单片机进行通信,串行数据端口RS与单片机的P1.4相连,用于给显示器传输指令和数据。读写引脚RW和单片机的P1.3口相连,控制液晶的读写数据[14]。数据的传输通过单片机P1口实时传输给显示器。

在实际连接LCD1602液晶显示时,LCD1602分为有背光和无背光。存在背光情况时,需连接V0引脚调整背景光对比度,单片机的P16引脚可实现对显示屏背景光的亮度调整。

按键电路外围五个按键,可以实现帆板在上下左右对方向上的调节。其中,S5按键实现对系统工作模式的切换,两个发光二级管绿色表示在自动模式下工作,红色表示在手动模式下工作;在手动模式下,上下左右四个方向的按键分别与STC89C52的P3.5、P3.3、P3.4、P3.6引脚连接,可实现帆板的转动[15]。

在设计功能指示灯时,为了保护发光二极管电流过大,连接了1 kΩ的分压电阻。在软件设计中,按键选用软件消抖,即增加一个循环延迟,增加按键的接触反应时间,使得按键的效果更加稳定。

为了能够精确地控制电机的转速,选取PID控制算法的反馈调节机制控制电机,使角度误差最快减为零的PWM占空比,单片机采用定时器中断产生的PWM波实现对电机转速的控制,使得电机快速响应[16]。

2 PID算法设计

为了使电机能够跟随条件实时改变转速,且响应速度稳定,可选用PID控制算法对电机进行转速调制。PID控制算法不需要对控制对象建立相应的具体模型,只需要根据经验对调节器的误差及误差变化率等参数在线调整,从而使控制对象的适应性和灵活性增强[13]。

在自动角度控制系统中,采用PID算法调节电机转动角度,使得电机根据设定条件快速响应,使得帆板光照接触面达到最大,且响应过程稳定性能较好,可以实现自动角度检测系统的设计[17]。根据采集光照信息转换的角度值,结合PID控制器中的积分器控制,使得响应与激励的积分存在正比例的关系,从而实现消除稳态误差的功能。根据本系统功能和设计要求,采用数字增量式PID控制器设计,该控制器的计算公式如下:

Δu=Kp[e(k)-e(k-1)]+Kie(k)+Kd[e(k)-2e(k-1)+e(k-2)]

其中,Kp、Ki和Kd表示PID控制器的比例、积分和微分系数,e为转速误差[3]。本系统根据设定转速,比例项Kp的调节可以快速提取转速误差,积分项Ki可以使电机的转速与设定阈值一致,保证静差为零,微分项Kd可以对电机在下个周期的输出信号进行预测,从而快速提高系统的响应速率。利用simulink软件搭建的PID控制仿真模型如图2所示。

图2 PID控制仿真

在图2中,PID控制模型主要包括PID控制器模块、直流电机模块、可控电源模块以及对各节点输出信号检测的示波器。在该模型中,利用可控电压源输出信号的大小模拟PWM波形来实现对电机转速的调节,其输出引脚分别与电机的电枢绕组引脚A+、A-和磁力绕组引脚F+和F-连接;为了模拟负载的大小,在电机的TL端加入了一阶跃信号,信号的仿真时间表示加入负载时长;通过电机输出端引脚m可以输出电机旋转角速度、转矩、电枢和励磁电流信号等状态量,电机转速阈值设定为500 rad/s,通过电机的m引脚传输电机相关的状态变量,其中包括电机的旋转角速度,图2中利用示波器2可实时监测电机的转速。

PID控制器参数的设定可根据不同的算法计算得到,或者根据实际应用测试结果选取最优值[14]。但是,实际应用中,需根据经验需求,利用多次尝试选取合适的参数,本系统选取的仿真参数为Kp=0.14、Ki=1.5和Kd=0.14。图3为step的阶跃信号仿真波形,阶跃信号在0.7 s时发生跳变,表示电机在此刻加入负载。

图3 负载转矩仿真

图4 电机转速的变化曲线

根据各项参数的设定,查看示波器2中信号波形,如图4所示。从图中可知电机转速在10 s内的变化情况,电机在0.05 s基本趋于稳定,当在0.7 s加入负载时,电机转速轻微发生波动,但在0.11 s内趋于平稳,表明在PID控制器中选用的Kp、Ki和Kd各项参数使得电机快速响应,根据转速波形可知,该系统具有一定的抗干扰能力,稳定性较好。

3 软件设计

3.1 系统主流程

开机进入初始化,初始化程序包括定时器初始化、标志位初始化及液晶初始化等;液晶屏初始化完成后,液晶屏将清屏,显示初始角度,其他模块开始工作,光采集模块采集光强信息,通过A/D转化将模拟信号转为数字信号,传送到STC89C52主控芯片,利用PID算法控制单片机占空比的输出来控制电机电机转速,并且在一定周期内实时反馈调整。若调整角度大于180°,则触发声光报警,提醒复位,如果没有达到所需调整角度,则利用PID算法的反馈调节机制,再次反馈调节,直至满足角度调整需求为止。本系统的主流程如图5所示。

图5 主程序流程

其中,角度检测程序开机后进行初始化,初始化完成之后,由角度传感器检测到当前角度,通过A/D转换,转换为系统可识别的数字信号,读入数字信号,调整数字信号值,在允许的误差内将处理过的数字信息送入主控芯片,完成角度检测模块的任务。PCF8591的A/D转换程序,开机完成初始化之后,开始向控制芯片送入控制字,由内部控制命令完成模数转换,等待转换。若转换完毕,则直接将数字信号送入单片机,若转换未完成,则返回继续进行转换,直至转换完成为止。

在自动角度采集系统中,由于电机旋转过程中存在抖动现象,以及容易受到外界环境的变化等影响电机角度的准确控制,从而使得采集到的信号不稳定。文中在ADC转换过程中,采集的模拟信号波形抖动较大,严重影响了θ角度的稳定性控制;为了能够更好地提高角度稳定性的控制,可在系统软件设计中滤除采集信号的干扰量。该设计主要采用卡尔曼滤波器滤除ADC转化后的模拟量中的干扰信号,使得输出信号电流为4 mA~20 mA,随后结合去极值取平均值算法使得输出的θ角度稳定性得到提高。

在算法测试过程中,系统干扰噪声为高斯白噪声,使用参数Q表示,过程白噪声采用参数R表示,实时测量电压值为x_mid,设前一次测量的电压值为x_last,实时最优偏差量为p_mid,前一次最优偏差值为p_last,增益为K1,估计最优值为x_now。将首次测量的电压值作为当前电压值,最优偏差p_mid与系统白噪声Q相加,作为当前最优偏差;利用实时最优偏差与白噪声之比,求出实时误差增益,结合误差增益和实施估计电压值求出实施最优值,采用实时最优偏差和误差增益求出实时协方差,将求得的协方差作为下次测量的最优偏差,以及将实时最优电压值作为下次测量的估计值,不断重复此过程,直到获得最优值。

在测试过程中,可适当调整Q和R的值,数据不断更新过程中使得数据偏差减小,结合平均值滤波算法保证采集的ADC输出信号偏差较小,从而提高系统的稳定性。但是,当Q和R值选取不合适时,将会产生数据偏差较大的情况,从而很难获得稳定数值。

3.2 仿真与测试结果分析

利用Proteus软件绘制电路原理图,在Keil软件下编写程序,运行并生成Hex文件,利用stc_isp软件将Hex文件烧录入单片机。根据电原理图设计实物,实物测试如图6所示。

图6 实物测试

通过调节四个方向的光敏电阻的阻值,模拟不同方向上的光源,此时步进电机的步距角为5.6°,从占空比可以看出一个周期内两个电机的PWM占空比是一样的,所以达到了上左方向的光源模拟要求。根据仿真结果可知,采用PID算法可使电机快速响应,根据采集的光照信息,快速旋转到光照相对较强区域,稳定性较好。

在实物测试过程中,液晶显示第一行为X、Y、Z轴的角速度,第二行为其加速度,角速度分别为-189、13、187(单位:rad/s),可以根据弧度与角度之间的关系转化为角度值,根据角度信息可以实时监测采集光照帆板的旋转角度。在测试过程中,该设计可以根据光照旋转帆板,电机转速稳定,响应灵敏度高,基本实现了预期的设计目标。

4 结束语

设计了一款基于STC89C52的角度自动控制系统,选用STC89C52单片机作为核心控制芯片,通过排列式光敏电阻阵确定最大采光点,再由MPU6050角度传感器确定角度信息,随后,通过PCF8591将模拟角度信号转换为数字角度信号,输送到主控芯片,同时根据PID算法的反馈调节,调节PWM占空比的输出来控制ULN8023驱动电机的转速,使得电机响应灵敏。同时该系统具有声光报警、液晶显示和按键控制等功能,可实时监测角度及在手动和自动模式之间切换,具有较高的稳定性和可靠性。结合光强检测的实时性和角度检测的可靠性,能够在一定时间内对角度进行实时的控制,根据仿真和测试结果可知,该系统在PID算法控制下,实现了角度自动控制系统的快速响应,仿真结果与测试结果一致,电机响应稳定性较好,且灵敏度较高,为以后太阳能系统高效性的研究提供了更好的基础条件。

猜你喜欢
帆板按键电机
青岛高烽电机有限公司
帆板,水上飞行的野马
《防爆电机》期刊
低压电机铸铝转子的改善及验证方案
基于有限状态机的按键检测程序设计
水上飞行 帆板踏浪
非触勿动 秒治键盘误触
电机Ⅱ个股表现
其实真的很简单教你轻松关闭WP8.1手机按键灯
计算器