风力摆控制系统

2016-06-17 20:30蔺鹏
电脑知识与技术 2016年11期
关键词:PID算法单片机

摘要:系统以AT89S52单片机为控制器,L298N芯片构成电机驱动电路,利用四个直流风机完成对摆运动的控制。通过传感器MPU6050采集摆的姿态数据,同时将采集数据传送给单片机,单片机利用PID算法计算得到相应控制量,输出PWM脉冲控制驱动电路驱动风机使摆完成规定运动。实验结果表明,系统性能较好,能满足设计指标要求。

关键词:风力摆;单片机;L298N;PID算法

中图分类号:TP302.1 文献标识码:A 文章编号:1009-3044(2016)11-0216-02

Abstract: Control system is composed of MCU AT89S52, driver circuit L298N etc., and using four DC motors controlling the swing activity. Six axis angle sensor MPU6050 collects information about swing position, at the same time it sends data to MCU. MCU computes control variable by PID algorithm, then drive circuit drives the swing completing requested motion. Experiment demonstrating the system can achieve design requirements.

Key words: wind power swing; MCU; L298N; PID algorithm

1 风力摆控制系统组成

系统由五部分构成,分别是控制器AT89S52,驱动电路L298N,风力摆运动部件,摆角度检测电路、人机交互键盘和LCD显示器。

1.1 AT89S52控制器

AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K在线可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业80C51产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器,时钟频率、存储空间和基本接口完全可以满足系统控制要求。

1.2 L298N直流风机驱动

L298N是一款高输入电压,具有双H桥大电流输出驱动的集成电路,输入信号兼容TTL电平,输入电压最大46V,输出直流电流最大4A,可以驱动直流电机、步进电机或继电器等执行机构。它具有两个使能控制端,在不受输入信号影响的情况下允许器件控制两路输入信号,所以使用一片L298N芯片可以驱动两台直流电机。通过输入PWM脉冲,控制加在直流电机上的平均电压,从而达到控制风机转速[1]。

1.3 MPU6050三维角度传感器[2]

MPU是一款6轴运动检测传感器,包括三轴陀螺仪角速度检测,利用内部16位A/D转换器可以实现检测X、Y、Z轴在±250°、±500°、±1000°与±2000°/s数字量可控输出,三轴加速度检测可以实现±2g,±4g,±8g和±16g范围测量,利用16位A/D转换器输出相应数字量。另外芯片内部集成一个数字运动处理器DMP完成三维运动数据处理或运动姿态识别。

将MPU6050固定在风力摆上,通过它监测摆的角度,同时将采集的数据送给控制器进行处理。MPU6050构成的角度监测电路如图2。

1.4 LCD液晶显示电路

系统采用12864LCD,用于显示角度、幅度等参数,为了节省单片机I/O口资源,LCD选择串行通信方式完成信息传递。

1.5 按键电路

为了能够对风力摆运动的模式、距离和偏转角度等参数进行设定,同时考虑电路简洁,选择独立式结构的五个键组成按键电路,分别接到单片机的I/O口上。

2 风力摆控制算法

由于风力摆是在运动状态下控制器不断地采集姿态数据并进行判断,然后控制风机对摆的运动轨迹做出修正。这是一种典型的随动系统,由于控制对象的准确数学模型建立较为困难所以采用数字PID控制算法。

2.1 PID算法

PID算法就是对偏差的比例(P)、积分(I)和微分(D)进行控制的调节算法[3]。数字化的PID算法如(1)。

[uk=Kpek+TTIj=0kej+TDTek-ek-1] (1)

其中uk是控制量,e(k)是控制偏差,Kp是比例系数,T是系统采样周期,TI是积分时间,TD是微分时间。

由于风力摆的实时性要求较高,要能够迅速对摆的运动做出响应,所以除了比例调节外,必须要有微分调节,由于积分调节过程会增加调节时间,所以算法利用PD调节器进行偏差计算得到控制量。

[e=set_angle-cur_angle]

其中e是摆的偏差,set_angle是摆的设定角度,cur_angle是采集到当前摆的角度。

[u=Kpek+TDTek-ek-1=Kpek+Kd?ek] (2)

其中Kd是微分系数。通过上述算法式计算出控制量u(最后将控制量转变为PWM),利用计算出的PWM控制量控制风机速度,同时反复调整Kp和Kd值使控制系统运动性能符合要求。

2.2 系统软件流程

3 结论

实验结果表明,通过反复测试和调整PD调节器参数,风机可控制摆做指定长度直线运动、指定角度直线运动和指定半径的圆周运动,在稳定性、准确性和快速性上能够达到设计要求。

参考文献:

[1] 蔺鹏.电磁控制运动装置设计[J].电脑知识与技术,vol10(16):3937-2940

[2] Invensen Inc. MPU6050datasheet[DB/OL]. www.invensense.com,2013.

[3] 杨宁,黄元峰.微机控制技术[M].2版 北京:高等教育出版社,2002.

猜你喜欢
PID算法单片机
基于单片机的SPWM控制逆变器的设计与实现
基于单片机的层次渐变暖灯的研究
基于单片机的便捷式LCF测量仪
小议PLC与单片机之间的串行通信及应用
基于单片机的平衡控制系统设计
Microchip推出两个全新PIC单片机系列
基于AVR单片机的旋转倒立摆设计