基于单片机的风力摆系统设计

2017-05-12 09:10林思翔
时代农机 2017年1期
关键词:轴流陀螺仪卡尔曼滤波

林思翔

(福建农林大学 电气工程系,福建 福州 350002)

基于单片机的风力摆系统设计

林思翔

(福建农林大学 电气工程系,福建 福州 350002)

介绍一种以单片机为核心的风力摆姿势控制系统。该系统由瑞萨R5F100LEA 16位MCU为控制核心,采用Kalman滤波融合GY-85九轴自由度IMU传感器实时采集风力摆的位姿,通过单片机接收数据,经PID校正,调整PWM的占空比来控制风机的转速及转向,从而实现对风力摆的控制。测试结果表明,基于单片机的风力摆系统的设计,可以较好的实现风力摆的快速起摆、走直线、走圆形轨迹、制动静止、走数字8形等功能。

R5F100LEA;传感器;PID;Kalman滤波

随着现代测控技术的迅猛发展,以微处理器为基础,在交通、医学、化工、机器人、国防等领域广泛应用。文章提出一种基于单片机的风力摆控制系统,通过GY-85九轴自由度IMU,对摆杆的运行状态数据进行实时采集并反馈回单片机,形成闭环控制系统。单片机对返回的数据结合基于卡尔曼滤波的PID控制算法进行处理,产生的控制量作用于驱动电路,从而实现对四个轴流风机转速及转向的控制。四个轴流风机产生空气推动各风机使风力摆按照一定规律运动。

1 系统构建

本系统的机械结构是将万向节与自由摆杆镶嵌后,固定于木架上。风力摆竖直向下,在摆杆的末端固定主控板、激光头和轴流风机。其中,轴流风机采用四旋翼飞行器所用的空心杯电机及其螺旋桨,布局采用十字形布局,朝向分别为上下左右。整个系统由MCU核心模块、陀螺仪测量反馈、电机驱动模块、按键和LED显示模块及电池组成,系统总体框图如图1所示。

图1 系统总体框图

2 系统硬件电路

系统采用瑞萨R5F100LEA作主控芯片,基于16位CISC架构,内置高速片上振荡器时钟及按键中断,具有超强的模拟量处理功能,支持On-chip调试功能。采用核心板和底板两级接插方式,方便进行调节与功能转换。底板包括JTAG电路与相应的滤波稳压电路,如图2所示。

图2 微控制系统核心电路图

GY-85作为九轴自由度IMU传感器,集成三轴陀螺仪ITG3205、三轴加速度传感器ADXL345、三轴磁场强度传感器HMC5883L,可选择的测量范围有±2g,±4g,±8 g或±16 g,具有自动调节功耗的功能。本系统通过SPI接口以中断方式快速读取数据。为提高测量精度,在电源处采用多个电容进行去耦,从而实时反应目标多方位的运行状态,并进行数据的还原和校正,如图3所示。

图3 GY-85芯片部分电路图

电机驱动采用MOS管SI2300输出方式提高带载能力,反接的二极管IN41478和0.1uf电容起到保护作用,电阻R3用于防止过电压击穿MOS管。电机的转速通过PWM调节占空比来调节,如图4所示。

图4 电机驱动模块

TPS62203DBVR作为高效率同步降压转换器,响应速度快,静态功耗小,如图5所示。

图5 加速度计——陀螺仪模块供电电路

如图6所示为功能按键和LED显示的简易电路,按键和显示模块使风力摆各个功能稳定有序的实现和提示。

图6 LED显示电路

3 系统软件设计

系统软件设计主要由两部分组成。主程序主要负责总体程序管理功能,实现人机交互设定。在单片机开机延时初始化后,启动主程序,通过按键扫描选择相应功能,并显示指示灯,具体流程图如图7所示。

图7 主程序流程图

中断服务子程序流程图如图8所示,初始化子程序的主要工作是设置定时器的工作模式,初值设定,开中断等。本程序工作于16位定时模式,定时器初始值装入后,则经陀螺仪采集数据反馈数据,运用PID控制算法融合卡尔曼滤波,利用前一时刻的估计值和当前时刻的观测值来更新对状态变量的估计,修正输出PWM后退出中断子程序。

图8 中断服务子程序流程图

风力摆的控制采用PID闭环控制方式结构,可写为等式:

本系统采用手动整定的方法设置各参数。其中,Kp是比例增益,TI为积分时间参数,TD为微分时间参数,先通过调整基本项积分分量,加快系统对偏差的响应,阻碍输出效果值偏离目标值,再逐步加大比例系数,压制摆动消除偏差,阻碍效果值曲线倾斜,若出现抖动,减小比例系数或引入微分部分阻碍效果值曲线弯曲,进而改善了系统的稳定性能。由于上述等式仅可用在模拟系统中,为了满足数字设备的使用需求,各分量应先被离散化形成增量式PID公式:

其中,KI=Kp·T/TI为积分系数,KD=Kp·TD/T为微分系数。使用PID控制器,控制执行机构实时跟踪系统输出,使风力摆满足各项要求,如图9所示。

图9 PID调节

由于加速度计不能区分重力加速度和运动加速度,需用陀螺仪测量角速率,并利用最小二乘法对其进行补偿以减少漂移,进而实现较为精确的测量。将陀螺仪的坐标进行换算以投影到加速度计的坐标平面上去。

Gyro[0]=Symbol_x/14.375;

Gyro[1]=Symbol_y/14.375;

Gyro[2]=Symbol_z/14.375;

RwAcc[0]=A_Symbol_x/256;

RwAcc[1]=A_Symbol_y/256;

RwAcc[2]=A_Symbol_z/256;

RwEst[0]=(RwAcc[0]+wGyro+RwGyro[0])/(1+wGyro);

RwEst[1]=(RwAcc[1]+wGyro+RwGyro[1])/(1+wGyro);

RwEst[2]=(RwAcc[2]+wGyro+RwGyro[2])/(1+wGyro);

将陀螺仪数值除以14.375转换成为以°/秒为单位的数值,再将加速度传感器的数值除以256转换算成以重力加速度为单位后,二者加权平均,得出初略位姿角度。为了得到更精确的数据,通过蓝牙将三轴位姿初略值传出发现,在静止情况下,三轴位姿围绕均线上下波动,为此需要使用滤波技术增强抗干扰能力。采用Kalman滤波方法来改善,如图10所示。

图10 三轴位姿波动值

图11 风力摆受力图

为使风力摆可任角度起摆并画出不短于20cm的直线段则需四台轴流风机相互配合,以形成合力方可实现。因四台风机分别位于X、Y轴线上,所以只需要两个轴线上的风机各自产生的空气推力呈比例,即tanθ=Fy/Fx,如图11所示;再通过MCU控制电机的PWM,反复调节,即可使摆动角度达到要求。

要实现激光笔绘制的轨迹能在30~60cm间可设置走直线,令摆杆沿X轴向摆动。为排除可能出现的扰动,将Y轴向平衡角度设置为0;设任意直线段长度30~60cm为△R,则对应摆杆的角度阈值为Δθ=arctan(ΔR/L1+L2):。由此可得,X轴向的两个阈值平衡点。

Δθ1=arctan(ΔR/L1+L2))

Δθ2=-arctan(ΔR/L1+L2))

其中,R为横向摆动半长,L1为摆杆长,L2为激光头长;当传感器X轴返回的倾角数据大于等于设定的Δθ1,切换PID算法,向X轴反方向运动,当X轴返回的倾角数据小于等于设定的Δθ2,切换PID算法,往X轴正方向运动,如此往复运行。

将风力摆拉起一定角度(30°:45°)放开,令其5s内使风力摆制动静止,则需对现场采集的数据进行实时的更新和处理,并采用类似于自平衡的PID控制算法即可。以风力摆静止时激光笔的光点为圆心,驱动风力摆用激光笔在地面画圆,30s内重复3次;圆半径在15~35cm范围内设置,使激光笔画出的轨迹落在指定半径±2.5cm的圆环内。四个轴流风机A、B、C、D,径向风机控制采用PID控制算法,使摆杆稳定在某一设定角度,切线方向控制B、D电机产生推力,推动摆杆圆周运动,如图12所示。

图12 风力摆圆周运动示意图

驱动风力摆实现走数字8的功能,只需令风力摆以某角度快速起摆后,快速改变电机、转速、转向,驱动风力摆摆过一定圆弧;再反向直线摆动并走过圆弧,如此反复运行。

4 结语

系统采用PID数字控制算法,由卡尔曼滤波对控制信号进行滤波处理,修正GY-85九轴自由度IMU传感器输出量的随机分量,从而减小参数变化和非线性因素对系统性能的影响,表现出良好的运动轨迹,达到抑制超调,减小系统稳态误差,加快系统的瞬态响应,改善系统的稳定性能的效果。本系统实现风力摆任角度快速起摆、走直线、制动静止、走圆形轨迹及走数字8的功能。

[1]谭浩强.C语言程序设计[M].北京:清华大学出版社,2012.

[2]赵晓安.MCS-51单片机原理及应用[M].天津:天津大学出版社,2001.

[3]张毅刚.MCS-51单片应用设计(第3版)[M].北京:哈尔滨工业大学出版社,2008.

[4]魏惠军,朱烔明.大角度单摆的周期[J].上海师范大学学报,2004,(33):103-105.

[5]邵伟,凌丹.基于智能积分的改进增量式PID算法[J].机电工程技术,2010,(11).

[6]敬喜.卡尔曼滤波器及其应用基础[M].北京:国防工业出版社,1973.

[7]蒋志凯.数字滤波与卡尔曼滤波[M].北京:中国科学技术出版社,1993.

Design of Wind Pendulum System based on Single Chip

LIN Si-xiang

(Department of Electrical engineering,Fujian Agriculture and Forestry University,Fuzhou,Fujian 350002,China)

The paper introduces a kind of wind pose with the single chip processor as the core control system.The system consists of renesas R5F100LEA 16 bits MCU as the control core,using Kalman filtering fusion GY-85 nine shaft freedom of IMU sensor real-time acquisition of wind pendulum pose,through the MCU receives the data,the PID correction,adjusts the PWM duty ratio control fan speed and steering,so as to realize control of the wind swing.Test results show that the design of the wind pendulum system based on single chip microcomputer,can better realize the wind swing of the pendulum,a straight line,circular trajectory,brake static,walk the number 8 shape,and other functions.

R5F100LEA;the sensor;PID;the Kalman filter

TP273

A

2095-980X(2017)01-0054-03

2017-12-14

林思翔(1996-),男,福建莆田人,主要研究方向:电气工程及其自动化专业。

猜你喜欢
轴流陀螺仪卡尔曼滤波
轴流压气机效率评定方法
基于EMD的MEMS陀螺仪随机漂移分析方法
我国著名陀螺仪专家——林士谔
基于递推更新卡尔曼滤波的磁偶极子目标跟踪
微机械陀螺仪概述和发展
MEMS三轴陀螺仪中不匹配干扰抑制方法
超大型轴流风机在十天高速西秦岭隧道中的应用
基于模糊卡尔曼滤波算法的动力电池SOC估计
基于扩展卡尔曼滤波的PMSM无位置传感器控制
微型轴流风机低温失效分析