基于R5F100LEA的风力摆控制系统设计
2016-10-13西华师范大学电子信息工程学院陆晓燕
西华师范大学电子信息工程学院 陆晓燕
基于R5F100LEA的风力摆控制系统设计
西华师范大学电子信息工程学院 陆晓燕
本风力摆控制系统由RL78/G13MCU板(R5F100LEA)单片机主控模块、风力摆模块、角度传感器模块、液晶显示模块、按键模块等组成。系统通过角度传感器采集角度信息,用RL78/G13MCU板(R5F100LEA)处理姿态角数据后通过PID精确算法调节直流风机,并通过按键实现风力摆工作模式的切换,LCD1602实时显示当前风力摆的角度和距离,当风力摆运动达到要求时,LED灯点亮,用于提示功能完成。本系统实现了风力摆在仅受直流风机为动力控制下快速起摆、恢复静止、距离和幅度可控等功能。
RL78/G13MCU板(R5F100LEA);角度传感器;直流风机;PID算法
1.引言
风力摆采用4只直流风机作为动力系统,用木板构成十字架,从中间插入碳素纤维管,结构稳定。它是一种利用直流风机产生动力,快速起摆、恢复静止以及实现摆的距离和幅度可控的控制器。风力摆可以做直线运动、圆周运动。
2.系统方案
2.1系统组成
该风力摆控制系统由R5F100LEA主控模块、风力摆模块、角度传感器模块、液晶显示模块、按键模块、声光提示模块等组成;系统通过角度传感器采集角度信息,用R5F100LEA处理姿态角数据后通过PID精确算法调节控制风力摆。通过按键实现风力摆工作模式的切换,LCD1602实时显示当前风力摆的角度和距离,当风力摆运动达到要求时,LED灯点亮,用于提示功能完成(见图1)。
图1 系统总体结构框图
主控制器:采用单片机R5F100LEA是瑞萨公司的32位处理器产品,工作频率32Mhz,96KB的程序存储空间,瑞萨集成开发环境有一个 “代码生成器 code Generator”能够生成MCU的底层驱动代码,减少了底层代码的编写。
风力摆模块:采用4只直流风机作为动力系统。用木板构成十字架,从中间插入碳素纤维管,此方案风力摆负载较重,但结构稳定,配合前后左右的风机可以较为精确地控制风力摆的运动和姿态。
角度传感器模块:采用三维角速度传感器MPU6050,该传感器可准确追踪快速与慢速动作,通过计算得到三维角度值,方便对风力摆进行控制。
液晶显示模块:LCD1602液晶显示,可以显示丰富的符号指示信息以及文字指示信息。
2.2风力摆运动控制方案
2.2.1风力摆的状态测量
采用高精度的陀螺加速度计MPU6050采集三维角度信息,在单片机中通过一定的算法,计算出风力摆的角度,然后根据动作要求控制风机的转速,控制四个风机转动完成相应的功能。
2.2.2风力摆的运动控制
本系统采用PID算法来控制风机转动的速度。风机开始工作后,姿态采集模块不断采集当前风力摆姿态角状态,并与之前的状态比较,使得风力摆的运动状态逐渐趋向平稳。通过PID算法去控制各个风机是否转动以及转动速度的大小。
2.2.3风力摆的幅度控制
当风力摆静止时,摆杆竖直向下,通过单片机程序控制风机的转动,使风力摆起摆。由图2可知,风力摆通过激光笔在地面画的直线段与摆杆顶端到地面的竖直距离始终成一个直角。设激光笔在地面画的直线段为x,摆杆的转动顶端到地面的竖直距离为y,摆杆摆动的角度为θ。x是我们需要在地面上画的线性长度,y值可以通过直尺量出。则摆杆摆动的角度θ=arctan(x/y),通过程序设定角度,从而达到幅度摆动的控制。
图2 风力摆结构
2.2.4风力摆的圆周运动控制
如图3、图4,四个轴流风机A、B、C、D,A和C用来使风力摆的摆杆与重力方向呈现设置夹角,B和D用来推动摆杆沿切线方向运动,由于摆杆为刚体,同时摆杆顶部为万向节,事实上,只要我们调节好控制A和C电机的PID参数使摆杆稳定到设定的角度,然后通过B和D推动摆杆,摆杆就会沿切线运动,绘制出圆形轨迹。
图3 画圆示意图
图4 圆底示意图
3.系统设计
3.1硬件设计
主控制模块:
图5 主控制模块
本设计的主控芯片选择RL78/G13MCU板(R5F100LEA),通过RL78/ G13MCU板(R5F100LEA)控制驱动部分,进而控制轴流风机的摆动。
3.2软件设计
3.2.1编程控制
实现风力摆做自由摆运动,通过单片机一个直流风机的延时,运用荡秋千的原理,实现摆动。实现摆幅可控,在风机换向的时候进行PWM脉宽调节控制,进行风力的调节。圆周运动的实现主要是使用两个方向的风机进行动力合成,从而实现摆动方向的改变,换向的时候两组电机同时换向。方向可以通过矢量合成,通过查询sin表格,进行每个风力计算,在路径规划好的基础上可以用陀螺仪进行路径修正。
3.2.2程序设计流程图
主控模块主要完成系统硬件的初始化、按键的扫描、读取传感器值、PID精确算法等功能。
图6 主流程图
4.系统测试
4.1硬件测试
数值万用表主要用来测试分立元件的电阻、压降、漏电流、截止、导通等参数。可编程线性直流电源用于检测稳压电源模块的输出电压和为其他模块提供电源。函数发生器在测试时提供PWM波,通过改变频率和占空比,来调控电机的转速。直尺用来测量摆杆的长度,即摆动的距离,秒表用于验证摆动的时间。
4.2误差分析
本系统通过程序控制摆动角度,再通过反馈控制PWM波进而控制风机的转速,实现在限定时间里摆动一定长度。角度的偏差,是由于空气阻力和角度测量误差的影响.题目限定的线性误差不大于±2.5cm,通过计算可知角度的偏差在1°左右。
5.总结
本系统的主要功能实现了使用直流风机产生动力的前提下,使风摆快速起摆、恢复静止以及实现摆的距离和幅度可控等功能。由于手动制作外部结构,风摆外形不够规则、外力因素,程序等成为误差的主要来源。所以风力摆摆动角度控制不好,具体的控制算法有待优化。
[1]张有志.全国大学生电子设计竞赛培训教程[M].北京:清华大学出版社,2013.
[2]陈永真,陈之勃.全国大学生电子设计竞赛硬件电路设计精解[M].北京:电子工业出版社,2011.
[3]杨莘,刘海涛.基于STM32的两轮自平衡遥控小车[J].数字技术与应用,2014.
[4]常国权,戴国强.基于STM32的四轴飞行器飞控系统设计[J].单片机与嵌入式系统应用,2015.
[5]谢维成,杨加国.单片机原理与应用及C51程序设计[M].北京:清华大学出版社,2006.
[6]沈德金,陈粤初.MCS-51系列单片机接口电路与应用程序实例[M].北京:北京航空航天大学出版社,1990.
[7]李建忠.单片机原理及应用[M].西安:西安电子科技大学出版社,2002.
[8]童诗白,华成英.模拟电子技术基础[M].北京:高等教育出版社,2006.