APP下载

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

2017-04-10张超洋程翔文良华程晓洪

电脑知识与技术 2017年4期
关键词:PID算法

张超洋++程翔++文良华++程晓洪++邓青++李勇

摘要:该文设计了一种基于瑞萨单片机控制的微型风力摆系统。系统采用基于微机电MEMS的重力加速度陀螺仪MPU6050采集风力摆姿态数据,通过IIC总线将数据实时传输到系统控制器瑞萨R5F100LGA单片机;经相应的控制算法处理后产生多路PWM信号驱动风力摆执行机构的轴流风机,完成风力摆运动的闭环控制。系统控制器实现了运动矢量分解和合成算法,采用PID控制器完成对风力摆运动轨迹的精确控制和姿态调整。此外系统采用了LCD液晶屏和矩阵键盘作为人机接口,实现风力摆系统控制参数的人机交互。此风力摆实现摆杆的快速起摆、直线摆动,并在此基础上具有摆幅可设、摆向可控、摆速制动、摆杆画圆和系统抗外界干扰等功能。

关键词:瑞萨单片机;风力摆;PID算法;MPU6050;矢量分解与合成

中图分类号:TP29 文献标识码:A 文章编号:1009-3044(2017)04-0253-05

The System Design of Wind Pendulum Based on Renesas MCU

ZHANG Chao-yang,CHENG Xiang ,WEN Liang-hua, CHENG Xiao-hong, DENG Qing,LI Yong

(School of Physics and Electronic Engineering, Yibin University, Yibin 644007, China)

Abstract: In this paper, we design a micro wind pendulum based on MCU control system. The system uses MPU6050 based on micro electro mechanical MEMS to collect the attitude data of the wind pendulum,and through the IIC bus make real-time data transmission to the system controller Rui R5F100LGA MCU. After the corresponding control algorithm is processed, the multi channel PWM signal is used to drive the axial fan of the wind pendulum actuator to complete the closed-loop control of the wind pendulum motion. The system controller realizes the motion vector decomposition and synthesis algorithm, and uses the PID controller to achieve the precise control and attitude adjustment. In addition, the system uses the LCD screen and the matrix keyboard as the man-machine interface to realize the man-machine interaction. The wind swing realize the rapid and the pendulum swinging rod ,linear oscillation, and On this basis, there are a lot of expanding function.

Key words: Renesas MCU;Wind pendulum; PID algorithm; MPU6050;Vector decomposition and synthesis

1 概述

自然界的风力作为能源利用可以追溯到远古的灌溉的风车,而作为现代能源的风力发电更被视为清洁和可再生绿色能源;因此风力的测量和运动控制为风力的利用获得工程数据尤为重要,本文设计了一种基于单片机的风力摆控制系统。风力摆控制系统是基于风力来控制物体运动的测控系统,它在原有的基础控制类型中加入新型控制力量风,利用几个流风机组合成风力摆,利用流风机转动带动扇叶形成风,利用空气的流动性和作用力与反作用力定律实现运动[1]。风能将应用很多领域内,未来一段时间发展前景较好,研究风力摆运动控制系统对风力在自动控制中有一定的参考价值。

2 系统设计

风力摆系统主要包括R5F100LGA单片机控制模块、电源模块、姿态采集模块、轴流风机驱动模块、液晶显示模块、矩阵键盘模块组成和风力摆机械结构;由万向节连接铝杆,铝杆再连接直流风机从而组成风力摆主要结构。系统由陀螺仪MPU6050采集风力摆的三维姿态,然后由单片机读出三维姿态参数,通过PID控制算法产生PWM控制信号驱动风机产生相应的转速,从而实现风力摆姿态调节的功能。最终通过运动合成得出指定的运动规律。设置参数由LCD12864显示,由矩阵按键的设定来调节参数以及进行功能的切换。系统的硬件结构总体设计框图如图1所示:

3 系统原理

3.1 风力摆状态测量的分析

采用高精度的六轴姿态仪MPU6050實时采集风力摆姿态数据,采用400kHz的I2C接口传输数据或采用最高频率为20MHz的SPI,来实现高速通信。风力摆采用4只轴流直流风机加自带风叶构成的直流风机作为动力驱动系统。数据采集模块采集风力摆的当前姿态送给单片机,通过单片机处理姿态数据后输出PWM波,并控制其占空比,从而控制电机的转速来实现对风力摆的控制。

3.2 控制算法与调试方法

该系统采用PID算法来控制电机转动的速度。风机开始工作后,姿态采集模块不断采集当前风力摆的姿态,并于上一个姿态进行比较,使得风力摆的运动状态逐渐趋于平稳。PID算法中P为风力摆转动角度比例,I为角度误差积分,D为角度微分。

常规PID的数据输入e(t)与输出u(t)之间的关系为:

由于单片机的MUC只能处理数字信号,所以公式(1)中的积分和微分项不能直接使用,必须进行离散化处理。离散化处理的方法为:以T 作为采样周期,k 作为采样序号,则离散采样时间kT 对应着连续时间t,用求和的形式代替积分,用增量的形式代替微分,可作如下近似变换[2-4]:

上式中,为了表示方便,将类似于e(kT)简化成ek形式就可以得到离散的PID 表达式:

式中:KP,KI,KD分别为比例,积分,微分系统;[kI=kPTI],[kD=kPTD],k为采样序号,k=1,2,…;e(j)为第j次采样的输入差值;u(k)为第k次采样时刻的输出值,e(k-1)和e(k)分别为第k-1时刻和第k时刻所得的偏差信号。

P(比例调节):调节P的值可提高响应速度,减小系统静态误差,但是P值太大会增大超调量和系统的稳定时间。

I(积分调节):在系统中与P的作用相仿,但要将静态误差减小为0,必须调节I的值。

D(微分调节):在系统中与比例、积分的作用恰恰相反,D的调节主要是为了减小超调,减小系统的稳定时间。

3.3功能实现及方法

风力摆画直线是风力摆只沿一个方向摆动,而在与这个方向垂直的方向上抑制摆动,这样风力摆便能按一个方向上摆出直线。设计中通过姿态来控制风力摆,摆动可以看作姿态出现横滚,俯仰的角度变换。如果只沿X轴方向摆动,意味着姿态出现俯仰变化,而在另一方面抑制横滚的变化。

(1)控制直线的长度,意味着控制摆的幅度,而幅度取决于摆当中的能量。摆的能量包含动能和势能,而摆的动能更易控制。所以建立一个控制动能的程序,能向摆中增加和减少动能。当摆达到摆幅要求时停止向摆中增加动能,摆会做减幅振动,减幅过多是再向摆中增加动能。这样摆幅就会控制在一定的幅度范围内。如图2所示,当要求风力摆线性起摆时,只需要设置X面两台风机的启停规律便可以实现,并且通过速度PID调节Y面两台风机,保持风力摆的线性度。当系统要求激光头画线距离时,通过Tan X计算出摆杆最大摆角,当X面角度超过最大摆角时,迅速抑制摆杆运动,在此过程中,Y平面保持速度PID的调节,稳定画线的线性度。

(2)任意角度线性起摆方法分析

风力摆摆动方向的控制可以在摆上建立一个机体坐标系,然后在这个坐标系关于参考水平面取一个方向向量,沿这个向量控制摆动,然后取这个向量的90度,用来抑制摆画线的非线性。当向量取得后,向量在机体坐标系上表达,它在x轴和y轴上对应的分量决定了施加在对应轴上风机的电压。再用x,y轴上的电机合成这个向量。这样就可以产生0~360度的角度的向量,用它控制风力摆摆动的方向。要保持设定的方向起摆,就需要用到矢量的合成原理,如下图3所示,X平面和Y平面的运动最终合成得到底面的限长画线轨迹;单片机通过预先设置的角度和MPU6050实时测控角度进行PID运算得到PWM调节量,可以控制PWMx与PWMy的关系(按比例合成),得到正确的运动姿态。

(3)风力摆画圆方法分析

风力摆画圆可以在地面上建立一个点,用半径和角度来表示。使用两个PID,分别控制半径和角度。首先,半径是一个定值,但是当摆处于这个半径的圆的不同位置时,风机需要合成的方向是不同的,具体是从圆心指向当前摆位置的向量。控制半径是PID的输出需要乘以这个向量,以使风机正确的合成所需的力。为了控制摆沿圆运动,在圆上设一个点,它所构成的向量与摆当前位置所构成的向量的夹角利用PID来控制。最终摆将指向这个点。然后让这个点沿圆移动,这样摆也跟沿圆移动,实现画圆。

如图4所示,要想在平面内画出圆形,必须算出X平面运动和Y平面运动的相互关系,由圆弧公式可以推导出PWMx与PWMy的关系呈圆弧关系,通过对PWMx求PWMy,就可以解出平面圆弧当前点的切向量。

(4)调节风力摆静止

要在风力摆被拉起一定角度后迅速回归静止状态,需要在摆的势能转换中施加方向作用力;即在风力摆主动运动过程中,通过陀螺仪进行姿态解读,在X平面和Y平面上施加对应的反作用力,便可以使得风力摆快速回到静止的状态。

4 系统硬件设计

4.1硬件系統模块之一

单片机最小系统采用瑞萨R5F100LGA单片机作为控制器,其内部产生4路PWM方波调节驱动输出电压,从而控制轴流风机转速,并能采集陀螺仪的数据,完成对风力摆三维角度的PID控制[5-7]。单片机最小系统如图5所示:

4.2硬件系统模块之二

直流风机驱动电路图如图6所示,由于本系统轴流风机功率较大,普通三极管电路难以驱动风机调速,所以采用大功率MOS管半桥驱动,其驱动功率能很好地满足风机大范围调速需求,电路采用IR21094芯片作为MOS管的驱动源。

5 软件设计(software design )

系统采用C语言编程实现各项功能,系统程序初始化后进入初始化菜单,然后开始扫描按键,不同的按键对应的不同的功能,通过按键后进入相应的界面,进入对应的界面后设置参数并发送设置的数据到风力摆姿态数据采集与处理系统中,发送完数据后由MCU不断更新参数,同时采集和处理姿态数据。主程序流程图如图7所示:

6 测试方案与结果

6.1功能测试(一)

(1)测试前保持静止状态,风摆在15s内必须自由直线摆动起来且使激光笔稳定的在地面画出一条长度不短于50cm,画的直线的线性度偏差不大于±2.5cm,画直线要可重复进行。测试结果如下表1所示:

[测试次数\&长度是否大于50cm\&时间(s)\&1\&是\&5.04\&2\&是\&5.16\&3\&是\&5.31\&]

(2) 测试前保持静止状态,风摆在15s内必须自由直线摆动起来且使激光笔稳定的在地面画出一条长度30-60cm间可控的直线,画的直线的线性度偏差不大于±2.5cm,画直线要可重复进行,测试结果如下表2所示:

[测试次数\&设置长(cm)\&偏差\&时间(s)\&3\&30\&±0.5\&5.82\&3\&40\&±0.8\&7.84\&3\&50\&±0.7\&9.15\&3\&60\&±0.9\&9.87\&]

(3) 风摆画线的摆动方向可由按键设定,设置前风摆保持静止状态,15s 内按照设置的方向(角度)摆动,画出不短于20cm 的直线段。测试结果如表3所示:

表3 任意角度起摆

[测试次数\&设置角度\&线性偏差(cm)\&时间(s)\&3\&0\&±0.4\&5.24\&3\&45\&±0.5\&5.33\&3\&135\&±0.5\&5.45\&]

(4)手动将风摆拉起(30°~45°)放开,系统在5s 内使风力摆制动达到静止状态。测试结果如下表4所示:

[测试次数\&拉动角度\&时间(s)\&1\&30\&4.5\&2\&35\&4.7\&3\&45\&4.0\&]

6.2功能测试二

(1)风摆静止时激光笔的所指定的位置光点为圆心,用程序驱动风力摆用激光笔在地面画圆,系统在30S内要重复实验3次,且所画圆的半径可在15~35cm内可设置,激光笔画出的圆的轨迹的偏差应落在指定半径±2.5cm 的圆环内。测试结果如表5所示:

[测试次数\&画圆半径(cm)\&半径误差(cm)\&时间(s)\&3\&15\&±0.7\&10.27\&3\&25\&±0.8\&9.46\&3\&35\&±1.0\&9.53\&]

(2)在上述实验完成后继续作圆周运动,在离风摆1~2m 距离内用一台50~60W 的电风扇在水平方向向在画圆的风摆送风,电风扇吹5s 后停止,风力摆能够在5s 内恢复(1)规定的圆周运动,激光笔画出符合要求的轨迹。测试结果如表6所示:

[测试次数\&风扇距离(m)\&干扰风速度m/s\&恢复运动时间(s)\&1\&1.0\&2.5\& 2.12\&2\&1.5\&1.5\& 2.54\&3\&2.0\&1.2\& 1.01\&]

7 结论

系统实现了准确的可设置长度,可设置角度的画直线功能,且具有较小的线性偏差,可以设置摆动方向,可以迅速制动静止状态。系统能按要求准确的完成可设置半径的画圆功能。具有响应迅速,圆的偏差小,抗干扰能力强,此外系统还能完成制动等功能。

参考文献:

[1] 贺小龙,孙慧宇. 基于STC12C5A60S2芯片的风力摆控制系统设计[J]. ELECTRONICS WORLD·探索与观察,2015.76-79.

[2] 李书舟,容慧.离散PID控制在Buck变换器中的应用研究[J]. 現代电子技术.2014.37(15):133-135

[3] WenHui.PID控制算式的数字化[EB/OL]. (2012-03-07) [2017-01-03].http://blog.csdn.net/wenhui_/article/details/7327891

[4] 张树团,普玉强,林嘉新,等.一种改进算法 PID 控制算法的Boost变换[J].现代电子技术,2012,35(24):118?120.

[5] Brooks D. PCB 电流与信号完整性设计[M].丁扣宝,韩雁,译. 北京:机械工业出版社,2015.

[6]黄智伟.全国大学生电子设计竞赛系统设计[M].北京:北京航空航天大学出版社,2011.

[7] 黄智伟.全国大学生电子设计竞赛电路设计[M].北京:北京航空航天大学出版社,2006.

猜你喜欢

PID算法
多轴电机同步运动控制器设计
基于STM32单片机的微型无人机制作
基于AVR单片机的旋转倒立摆设计