西华师范大学电子信息工程学院 彭子洳
基于RL78/G13MCU板(R5F100LEA)的风力摆控制系统
西华师范大学电子信息工程学院彭子洳
本风力摆控制系统由RL78/G13MCU板(R5F100LEA)单片机主控模块、风力摆模块、角度传感器模块、液晶显示模块、按键模块等组成。系统通过角度传感器采集角度信息,用RL78/G13MCU板(R5F100LEA)处理姿态角数据后通过PID精确算法调节直流风机,并通过按键实现风力摆工作模式的切换,LCD1602实时显示当前风力摆的角度和距离,当风力摆运动达到要求时,LED灯点亮,用于提示功能完成。本系统实现了风力摆在仅受直流风机为动力控制下快速起摆、恢复静止、距离和幅度可控等功能,达到了题目要求。
RL78/G13MCU板(R5F100LEA);角度传感器;直流风机;PID算法
测量控制系统是当今社会的一个主流,具有相当大的优势。在如今社会信息化和移动计算机应用的飞速发展的道路上,测量控制系统广泛应用于电子、电力、机械、冶金、化工、航海航天等各个学科领域。风力摆控制系统就是基于风力来控制物体运动的自动控制系统。
1.1任务
一长约 60cm~70cm 的细管上端用万向节固定在支架上,下方悬挂一组(2~4 只)直流风机,构成一风力摆,如图1所示。风力摆上安装一向下的激光笔,静止时,激光笔的下端距地面不超过20cm。设计一测控系统,控制驱动各风机使风力摆按照一定规律运动,激光笔在地面画出要求的轨迹。
1.2要求
(1)从静止开始,15s 内控制风力摆做类似自由摆运动,使激光笔稳定地在地面画出一条长度不短于 50cm 的直线段,其线性度偏差不大于±2.5cm,并且具有较好的重复性;
(2)从静止开始,15s 内完成幅度可控的摆动,画出长度在30—60cm 间可设置,长度偏差不大于±2.5cm 的直线段,并且具有较好的重复性;
(3)可设定摆动方向,风力摆从静止开始,15s 内按照设置的方向(角度)摆动,画出不短于 20cm 的直线段;
(4)将风力摆拉起一定角度(30°—45°)放开,5s 内使风力摆制动达到静止状态。
2.1系统结构
根据题目要求设计的系统总体框图如图1所示,本系统有主控制器(RL78/G13MCU板(R5F100LEA))、轴流风机、角度传感器、液晶显示LCD1602、按键、激光头、蜂鸣器等模块构成。
图1 系统总体结构框图
2.2风力摆运动控制方案论证
2.2.1主控模块的选择
方案一:STC89C51单片机作主控芯片,该芯片价格低廉,结构简单,但其运算能力有限,无法达到较高的精度,需要外接大量外围电路。
方案二:采用STM32单片机作主控芯片,该单片机可以采用模块化程序设计,编程相对较简单,系统资源丰富,但是价格相对较高。
方案三:采用RL78/G13 MCU板(R5F100LEA)单片机作主控芯片,该单片机系统配置高,程序运行快,使用方便,且模块比STM32小,方便作品封装。
通过比较,本系统要求及时迅速对运动过程中风力摆的姿态进行获取和运算,所以采用方案三。
2.2.2风力摆的选择
方案一:采用2只直流风机作为动力系统。采用2只直流风机并排反向而立,分别位于摆杆两侧,此方案难实现角度控制和画圆功能。
方案二:采用3只直流风机作为动力系统。三只风机为等边三角形。对于控制风力摆转动过程中状态微调方面有提升,但由于相邻风机夹角为120度,比较大,不利于精确控制风力摆的状态。
方案三:采用4只直流风机作为动力系统。用木板构成十字架,从中间插入碳素纤维管,此方案风力摆负载最重,但结构稳定,对于控制风力摆状态最为准确,且动力十足。
综合上述比较,考虑到风力摆在做往返运动中的实时性和精确性,本系统采用方案三。
2.2.3控制算法的选择
方案一:采用模糊控制算法,模糊控制有许多良好的特性,它不需要事先知道对象的数学模型,系统响应快、超调小、过渡过程短等优点,但编程复杂,数据处理量大,且难以用已有规律描述复杂系统。
方案二:采用PID算法,按照比例、积分、微分的函数关系,进行运算。控制精度高,且是应用最为广泛的一种自动控制器。它具有原理简单,易于实现,适用面广,控制参数相互独立,参数的选定比较简单等优点。
通过比较,PID算法能够对运动过程中风力摆的姿态进行调整,所以本系统采用方案二。
2.2.4显示模块选择
方案一:使用LED数码管显示,显示亮度高,但显示内容较单一,一般只能显示数字和简单的字符。
方案二:LCD1602液晶显示,可以显示丰富的符号指示信息以及文字指示信息。
通过比较,设计选用方案二LCD1602液晶显示模块。
2.2.5角度传感器的选择
方案一:SCA60C单独倾角传感器,测量范围+90度到-90度,单片机5V供电,比例电压输出,模拟0.5V到4.5V输出,耗能低。
方案二:采用三维角速度传感器MPU6050,MPU6050为整合性6轴运动处理组件(三轴陀螺仪 + 三轴加速度),该传感器可准确追踪快速与慢速动作,数据读取快,通过计算得到三维角度值,方便对风力摆进行控制。
根据题目要求,鉴于三维角度和稳定性的要求,选择方案二来采集角度信息。
2.2.6电源模块的论证与选择
方案一:使用单电源接自制线性直流稳压源模块。单电源同时给控制系统和风机供电,方案简单易操作。但风机转动过程中不仅会给电源带来纹波,产生的反电压容易烧毁单片机,而且单电源工作负载大,耗电快。
方案二:采用双电源供电。风机驱动电源和控制电源分开,控制电机部分通过光耦隔离。电机使用12V锂电池供电,单片机控制系统用另一块电池接线性直流稳压源模块供电。此方案可确保系统的稳定性,且满足了系统对供电的需求。
综合上述比较,考虑系统的安全性、稳定性以及可靠性,本系统采用方案二。
3.1风力摆的状态测量
采用高精度的陀螺加速度计MPU6050采集三维角度信息,MPU6050实时检测风摆姿态,获得其最大推力,幅度可控部分通过构建数学模型,方程式为F=a(pith-mpith)2+mF,其中F为电机推力,pith为风摆俯仰,mpith为目标俯仰,mF为最大电机推力,通过函数模型,获得到达指定目标时的电机推力实现。在本系统单片机中通过一定的算法,计算出风力摆的角度,然后根据动作要求控制风机的转速,控制四个风机转动完成相应的功能。
3.2风力摆的运动控制
本系统采用PID算法来控制风机转动的速度。风机开始工作后,姿态采集模块不断采集当前风力摆姿态角状态,并与之前的状态比较,使得风力摆的运动状态逐渐趋向平稳。通过PID算法去控制各个风机是否转动以及转动速度的大小。
3.2.1风力摆的幅度控制
图2 风力摆结构
当风力摆静止时,摆杆竖直向下,通过单片机程序控制风机的转动,使风力摆起摆。由图2可知,风力摆通过激光笔在地面画的直线段与摆杆顶端到地面的竖直距离始终成一个直角。设激光笔在地面画的直线段为x ,摆杆的转动顶端到地面的竖直距离为y, 摆杆摆动的角度为θ。x是我们需要在地面上画的线性长度,y值可以通过直尺量出。则摆杆摆动的角度θ=arctan(x/y),通过程序设定角度,从而达到幅度摆动的控制。
图3 画圆示意图
图4 圆底示意图
3.2.2风力摆的圆周运动控制
如图3、图4,四个轴流风机A、B、C、D,A和C用来使风力摆的摆杆与重力方向呈现设置夹角,B和D用来推动摆杆沿切线方向运动,由于摆杆为刚体,同时摆杆顶部为万向节,事实上,只要我们调节好控制A和C电机的PID参数使摆杆稳定到设定的角度,然后通过B和D推动摆杆,摆杆就会沿切线运动,绘制出圆形轨迹。
3.2.3控制算法的理论分析
本系统幅度可控部分采用构建函数模型实现,角度可控、画圆及快速恢复原状态部分采用PID算法来控制各个风机转速。风机开始工作后,姿态采集模块不断采集当前风力摆姿态角状态,并与之前的状态比较,使得风力摆的运动状态逐渐趋向于平稳。PID算法控制器由风力摆转动角度比例P、角度误差积分I和角度微分D组成。 其输入e(t)与输出U(t)的关系为:
风力摆转动角度比例P:对风力摆角速度进行比例调整,即对风力摆转动速度调整。比例越大,调节速度越快。但不能过大,过大可能造成四风机因工作状态突变使摆杆不稳定。 角度误差积分I:使系统消除稳态误差,提高无差度。加入积分调节可使系统稳定性下降,动态响应变慢。本系统追求更快更稳完成对风力摆的控制,因此,本系统对积分调节的需要就非常弱。即保证在不需要时系统不会受到影响。 角度微分D:微分作用反映风力摆角度的变化率,即角速度。具有预见性,能预见偏差变化的趋势因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,减少调节时间。
4.1硬件设计
4.1.1主控制模块
本设计的主控芯片选择RL78/G13MCU板(R5F100LEA),通过RL78/G13MCU板(R5F100LEA)控制驱动部分,进而控制轴流风机的摆动,结构图如图5所示。
图5 主控制模块
图6 按键控制
4.1.2 按键模块
本系统通过按键按下选择风力摆的工作模式,以实现设计的基本要求,当风力摆到达基本要求,蜂鸣器发出刺耳的声音,LED灯亮给予提示。原理图如图6所示。
按键1到5控制模式1到模式5,即基本要求中的四项要求和发挥部分的第一的要求。按键6为确认键,按键7加角度,按键8减角度。
4.2软件设计
4.2.1编程控制
基本要求一:要实现风力摆做自由摆运动,通过单片机一个直流风机的延时,运用荡秋千的原理,实现摆动。
基本要求二:摆幅可控,可设计。每次在基本要求一的基础上,在风机换向的时候进行PWM脉宽调节控制,进行风力的调节。
基本要求三:这一步主要是开始使用两个方向的风机进行动力合成,从而实现摆动方向的改变,换向的时候两组电机同时换向。方向可以通过矢量合成,通过查询sin表格,进行每个风力计算。(在路劲规划好的基础上可以用陀螺仪进行路径修正)。
基本要求四:该要求的思路和基本要求一的思路正好反过来,需要有陀螺仪的辅助,给定陀螺仪反馈回来的角加速度,实现制动,在摆动角度比较小的时候再关闭电机即可。
4.2.2程序设计流程图
图7 主流程图
5.1硬件测试
5.1.1测试仪器
测试使用的仪器设备如表1所示。
表1 测试使用仪器与设备
5.1.2测试方法
数值万用表主要用来测试分立元件的电阻、压降、漏电流、截止、导通等参数。
可编程线性直流电源用于检测稳压电源模块的输出电压和为其他模块提供电源。
函数发生器在测试时提供PWM波,通过改变频率和占空比,来调控电机的转速。
直尺用来测量摆杆的长度,即摆动的距离,秒表用于验证摆动的时间。
5.1.3测试数据
(1)驱动风力摆工作,使激光笔稳定地在地面画出一条长度不短于 50cm的直线段,来回五次,记录其由静止至开始自由摆时间及最大偏差距离。测试数据如表2所示。
表2 要求1测量数据
(2)从静止开始,15s 内完成幅度可控的摆动,画出长度在30-60cm 间可设置,长度偏差不大于±2.5cm 的直线段,并且具有较好的重复性。测试数据如图表3所示。
表3 要求2测量数据
(3)可设定摆动方向,风力摆从静止开始,15s 内按照设置的方向(角度)摆动,画出不短于 20cm 的直线段。测试数据如图表4所示。
表4 要求3测量数据
(4) 将风力摆拉起一定角度(30°—45°)放开,5s 内使风力摆制动达到静
止状态。测试数据如图表5所示。
表5 要求4测量数据
5.2误差分析
本系统通过程序控制摆动角度,再通过反馈控制PWM波进而控制风机的转速,实现在限定时间里摆动一定长度。角度的偏差,是由于空气阻力和角度测量误差的影响.题目限定的线性误差不大于±2.5cm ,通过计算可知角度的偏差在1°左右。
本风力摆控制系统由RL78/G13MCU板(R5F100LEA)单片机为控制核心,利用4个直流风机组成风力摆,用RL78/G13MCU板(R5F100LEA)处理姿态角数据后通过PID精确算法和PWM调速功能来调节直流风机,并通过按键实现风力摆工作模式的切换,LCD1602实时显示当前风力摆的角度和距离,当风力摆运动达到要求时,LED灯点亮,用于提示功能完成。本系统实现了风力摆在仅受直流风机为动力控制下快速起摆、恢复静止、距离和幅度可控等功能,达到了题目要求。在测试时存在一定偏差,是由于手动制作外部结构,风摆外形不够规则、外力因素,程序等成为误差的主要来源。所以风力摆摆动角度控制不好,具体的控制算法有待进一步优化。
[1]张有志.全国大学生电子设计竞赛培训教程[M].北京:清华大学出版社,2013.
[2]陈永真,陈之勃.全国大学生电子设计竞赛硬件电路设计精解[M].北京:电子工业出版社,2011.
[3]杨莘,刘海涛.基于STM32的两轮自平衡遥控小车[J].数字技术与应用,天津:2014.
[4]常国权,戴国强.基于STM32的四轴飞行器飞控系统设计[J].单片机与嵌入式系统应用,北京:2015.
[5]汪玉成.流电机PWM调速系统设计[J].场现代化,2007.
[6]陈伯时.电力拖动自动控制系统[M].北京:机械工业出版社,1996.