基于AVR单片机的风力摆控制系统研究

龙源期刊网 http://www.qikan.com.cn

基于AVR单片机的风力摆控制系统研究

作者:孙畅 付超

来源:《科技传播》2015年第17期

摘 要 介绍一种基于ATmega16单片机控制的风力摆控制系统的硬件和软件设计方法,该系统由Atmega16单片机控制模块、角度传感器采集模块、液晶显示模块、三个风力摆组成模块、电机驱动模块AQMH2407、按键控制模块以及风力摆机械结构组成的闭环控制系统。SCA60C角度传感器检测风力摆摆动角度,单片机Atmega16将采集到摆动角度通过PID精确算法调节产生相位可调PWM方波控制直流风机的转速,同时由12864液晶显示风力摆的角度和响应时间。本系统实现了直流风机是驱动风力摆的唯一动力,具有快速起摆、快速恢复静止、画线、画圆的功能。

关键词 ATmega16;电机驱动模块;角度传感器;PID算法

中图分类号 TM3 文献标识码 A 文章编号 1674-6708(2015)146-0128-02 1 控制系统总体构成

本风力摆控制系统由Atmega16单片机控制模块、角度传感器采集模块、液晶显示模块、三个风力摆组成模块、电机驱动模块AQMH2407、按键控制模块以及风力摆机械结构组成的闭环控制系统。风力摆由万向节连接碳素杆再连接风机组成。两片SCA60C角度传感器放在碳素杆上检测风力摆摆动角度,单片机Atmega16将采集到摆动角度通过PID精确算法调节产生相位可调PWM方波控制直流风机的转速。本系统结构框图如图1 所示。 图1 系统结构框图

2 控制系统硬件组成与实现设计 2.1 系统主控制模块

采用ATmega16为控制核心。采用Atmega16芯片为控制核心。该芯片具有高性能、低功耗以及运算速度快等特点,拥有8位AVR微处理器,32个8位通用工作寄存器,全静态工作,16KB的系统内可编程Flash,内存量大,还拥有上电复位以及可编程的掉电检测功能,支持扩展的片内调试功能,32个可编程I/O口,而且功耗小。 2.2 系统驱动模块

采用专用的电机驱动芯片,例如L298N、L297N、AQMH2407等电机驱动芯片,由于它内部已经考虑到了电路的抗干扰能力、安全、可靠性,因此我们在应用时只需考虑到芯片的硬

龙源期刊网 http://www.qikan.com.cn

件连接、驱动能力等问题就可以。由于风力摆需要的风力较大,所以需要电流较大的电机驱动芯片,因此不选择L298N和L297N,电机驱动模块选用AQMH2407。 2.3 电机的速度控制和算法的选择

为了达到对速度的控制要求,采用脉宽调制方式(PWM)从I/O口输出不同占空比的脉冲,经滤波后获得不同高低电平控制电机,且控制简单易实现、速度快、精度高。 采用PID算法,按比例、积分、微分的函数关系,进行运算,将其运算结果用以输出控制。优点是控制精度高,且算法简单明了。对系统的控制精确,节约了单片机的资源和运算时间。

2.4 风力摆控制方案

采用2只0.8A轴流风机和1只自制直流风机,自制风机可以解决轴流风机无法反转的问题,两个轴流风机对向而立,自制直流风机放在轴流风机之间,即可以是激光笔画出直线也可以画圆,自旋少。 3 控制系统软件设计 3.1 PID算法的设计与实现

本系统采用PID算法来控制风机转动的速度。风机开始工作后,角度传感器采集当前风力摆角状态,并与之前的状态比较,使得风力摆的运动状态逐渐趋向于平稳。PID算法控制器由舵机转动角度比例P、角度误差积分I和角度微分D组成。其输入e(t)与输出U(t)的关系为:

它的传递函数为:

风力摆转动角度比例P:对风力摆角速度进行比例调整,即对舵机转动速度调整。比例越大,调节速度越快。但不能过大,过大可能造成四风机因工作状态突变而是摆杆不稳定。 角度误差积分I:使系统消除稳态误差,提高无差度。加入积分调节可使系 统稳定性下降,动态响应变慢。本系统追求更快更稳完成对风力摆的控制,因此,本系统对积分调节的需要就非常弱。 即保证在不需要时系统不会受到影响。

角度微分D:微分作用反映风力摆角度的变化率,即角速度。具有预见性,能预见偏差变化的趋势因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,减少调节时间。 3.2 系统程序流程

龙源期刊网 http://www.qikan.com.cn

本系统采用4个独立按键输入各参数及测试模式,系统开机启动进入初始化阶段,按下指定按键后进入选择界面,选择界面有6个功能,分别实现快速起摆、快速恢复静止、画线、画圆的功能,通过按键可以选择进入相应的功能,功能执行完毕后系统回到菜单选择界面,继续等待按键输入执行相应的功能。 4 控制系统的计算与分析 4.1 风力摆状态的测量和计算

SCA60C是一款低成本单轴倾角(加速度)传感器,可以测量垂直Z轴方向的加速度值,测量范围±1g。将2片SCA60C水平固定在平衡板上,放在万向节下方固定在摆杆上,达到实时检测平衡板倾角的目的。系统可以键盘预置倾斜角度,实时显示角度值。

当直流电机带动平衡板倾斜到使角度传感器SCA60C处于水平位置时,Vo端输出+0.5V的模拟电压。传感器SCA60C仅可精确检测到0~90度的角度范围,当平衡板转到使角度传感器与水平面成90度的角度时,此时Vo端输出+5V的模拟电压。在0~90度的倾角范围内,Vo端输出的是正比于倾角大小的+0.5~+5V的模拟电压信号,当平衡板转动到使角度传感器与水平面间的角度从90度到180度的范围变化时,输出端Vo输出的是从+5V依次变化到+0.5V的模拟电压信号,因此通过测定传感器SCA60C输出端Vo电压的大小即可确定平衡板与水平面的夹角。

本文主要针对风力摆控制系统的应用设计了一种直流风机控制系统,以ATmega16单片机为主控芯片,采用AQMH2407为驱动元件,通过硬件和软件整体设计制作了一套结构完整,功能模块化,反应灵敏的风力摆控制系统,实现了直流风机是驱动风力摆的唯一动力,具有快速起摆、快速恢复静止、画线、画圆的功能,效果较好,运行稳定性好。 参考文献

[1]刘治满.AVR单片机(C语言)项目开发实践教程[M].北京:人民邮电出版社,2015. [2]彭伟.单片机C语言程序设计实训100例[M].北京:北京航天航空大学出版社,2012. [3]叶贞贞.角度传感器简单应用系统[J].科技致富向导,2010(15).

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4