APP下载

基于STM32的风力摆控制系统

2016-11-02金冬子朱军

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

金冬子 朱军

摘要:本系统是由STM32控制模块、姿态检测模块、风力摆模块、液晶显示模块以及风力摆机械结构组成的闭环控制系统。其实现了风力摆在直流风机为动力控制下迅速启摆、直线运动、恢复静止的功能,并能精准地绘制不同直线,且在受风力影响后能够快速恢复画圆状态,具有很好的重复性。姿态检测模块MPU6050采集风力摆姿态角,STM32处理姿态角数据后通过PID精确算法调节直流风机以控制风力摆。另外,本系统具有良好的人机交互界面,各参数及测试模式可由按键输入并通过液晶显示,稳定性高、反应速度快。

关键词: PID算法;MPU6050;STM32

中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)23-0180-03

Abstract: This system is composed of STM32 control module, attitude detection module, the wind pendulum module, LCD module, and the machinery structure. In fact, the wind pendulum is now under the direct current fan for the dynamic control of the fast swing, linear motion, restore the stationary state, and it can accurately draw different lines, even though under the wind influence, it has a very good repeatability. Attitude detection module MPU6050 collects the attitude angle of the wind pendulum, and the STM32 processing attitude angle data is adjusted by PID to control the Wind pendulum. In addition, the system has a good man-machine interface, the parameters and test mode can be input by the key and display through the LCD, the stability is high, the reaction rate is fast.

Key words: PID Algorithm; MPU6050; STM32

风力摆系统是自动控制系统中的一个典型的研究对象。在工业和环境监测等行业有着较为广泛的应用前景。本系统通过数字式PID算法可实现风力摆的圆周运动和定向线段的运动,并且系统具有一定的稳定性和精确度。

1 系统方案

1.1总体方案

本风力摆控制系统主要包括单片机控制模块、电机驱动模块、姿态采集模块、风力摆模块、液晶显示模块、人机交互系统以及风力摆机械结构组成。风力摆由万向节连接碳纤维管再连接风机组成。位于碳杆最下方的姿态采集模块不断采集风力摆当前姿态角并反馈给主控芯片STM32。STM32控制液晶显示姿态角数据并处理数据后通过控制PWM波占空比控制风机转速实现对风力摆的控制。本系统结构框图如图1所示。

1.2方案论证

1.2.1风力摆运动控制方案的选择与论证

方案一:将三个直流风机两两分别成120°角,作为动力系统。此方案有利于减轻摆自身的重力,但由于形成等边三角形,相邻两风机夹角过大,依旧不利于精确控制风力摆状态。

方案二:采用四只直流风机作为动力系统。四只风机尾部靠于摆杆,朝向成顺时针排列,通过控制四只风机转速控制风力摆当前状态,此方案风力摆负载最重,但对于控制风力摆状态最为精确,且动力最足。

综合上述比较,考虑系统的快速工作以及精确控制,本系统采用方案二。

1.2.2角度测量方案的选择与论证

方案一:采用二维平面内角位移传感器测量风力摆转动时关于静止状态时的偏转角。该方案软件处理繁琐,且二维平面内的角位移传感器不利于测量风力摆的空间位置,不利于实现对风力摆的精确控制。

方案二采用三维角度传感器。用三维角度传感器时刻测量风力摆当前姿态通过处理采集的姿态角数据控制风机带动摆运动。此方案可精确测量风力摆当前姿态,实现对风力摆的精确控制。

综合比较上述两个方案,本系统采用方案二。

1.2.3 控制算法方案的选择与论证

方案一:采用模糊控制算法, 模糊控制有许多良好的特性,它不需要事先知道对象的数学模型,具有系统响应快、超调小、过渡过程时间短等优点,但编程复杂,数据处理量大。

方案二:采用经验法,弱化加速度计的作用,根据多次试验经验将距离、角度等变量与PWM输出参数相对应并存储在数组中等待调用,优点是可以简化算法与程序,缺点是适应环境能力差。

方案三:采用PID算法,按比例、积分、微分的函数关系,进行运算,将其运算结果用以输出控制。优点是控制精度高,且算法简单明了。对于本系统的控制已足够精确,与方案一相比节约了单片机的资源和运算时间。

综合比较上述三个方案,本系统采用方案三。

2 软件设计

2.1软件流程图

软件流程如图2所示,首先开启对姿态传感器的检测,确定是否产生中断。产生中断,则对数据进行接受。四路PWM波控制四路风机的转动。接下来,用户通过按键对风机进行模式的选择。主要有两个模式,分别为圆周运动和定向线段。根据姿态传感器的数据,调用PID算法调整PWM波的输出,调节风力姿态。预先可以通过姿态传感器进行实验,设定一个姿态变化幅度大小的阈值。当超过设定值时,认为存在干扰,进入防干扰模式。

2.2 PID控制规律

2.2.1 数学表达

2.2.2 PID原理详解

比例控制规律P:采用P控制规律能较快地克服扰动的影响,它的作用于输出值较快,但不能很好稳定在一个理想的数值,不良的结果是虽较能有效的克服扰动的影响,但有余差出现。它适用于控制通道滞后较小、负荷变化不大、控制要求不高、被控参数允许在一定范围内有余差的场合。

比例积分控制规律(PI):在工程中比例积分控制规律是应用最广泛的一种控制规律。积分能在比例的基础上消除余差,它适用于控制通道滞后较小、负荷变化不大、被控参数不允许有余差的场合。

比例微分控制规律(PD):微分具有超前作用,对于具有容量滞后的控制通道,引入微分参与控制,在微分项设置得当的情况下,对于提高系统的动态性能指标,有着显著效果。因此,对于控制通道的时间常数或容量滞后较大的场合,为了提高系统的稳定性,减小动态偏差等可选用比例微分控制规律。

2.2.3 PID算法应用于本系统

对于该系统来说,风力摆转动角度比例 P对风力摆角速度进行比例调整,即对舵机转动速度调整。比例越大,调节速度越快。但不能过大,过大可能造成四风机因工作状态突变而是摆杆不稳定。角度误差积分 I使系统消除稳态误差,提高无差度。加入积分调节可使系统稳定性下降,动态响应变慢。本系统追求更快更稳完成对风力摆的控制,因此,本系统对积分调节的需要就非常弱。即保证在不需要时系统不会受到影响。角度微分D微分作用反映风力摆角度的变化率,即角速度。具有预见性,能预见偏差变化的趋势因此能产生超前的控制作用,在偏差还没有形成之前,已被微分调节作用消除。因此,可以改善系统的动态性能。在微分时间选择合适情况下,减少调节时间。

3 硬件设计

3.1机械结构设计

本系统采用四只直流风机作为动力系统。四只风机取尾部靠于摆杆,各风机依次呈09°排列,通过控制四只风机转速控制风力摆当前状态,此方案风力摆负载最重。摆杆由碳纤维管制作,长度约68cm,顶部与一万向节相连接固定于金属支架上。在摆杆底部放置一小型激光发射器。便于精确判别摆杆运动状态。

3.2电路设计

3.2.1主控电路板

该电路基于STM32核心板,并在此基础上增加了程序下载、按键模式选择、四路PWM输出、蜂鸣器报警等功能,覆盖了本系统对硬件电路的需求,如图4所示。

3.2.2电机驱动电路板

本系统中,直流风机作为动力系统需要较大的驱动电流及稳定的驱动电压,并且需要对四个风机进行驱动,故本系统对电机驱动提出了较高要求,该电路利用主控芯片产生PWM波[4-9]控制MOS管通断成功实现了对大电流直流风机的驱动,如图5所示。

4 系统测试

4.1测试方法及仪器

测试方法:控制变量法、理想化方法、等效替代法

仪器:低频毫伏表、数字风速仪、水平仪、万用表、秒表、量角器、尺子

4.2测试结果

4.2.1驱动风力摆工作

在15s内使激光笔稳定地在地面画出一条长度不短于 50cm的直线段,来回五次,记录其最大偏差距离。测试结果如表1所示。

4.2.3设置风力摆自由摆时角度,驱动风力摆工作

记录不同角度画出20cm直线时的最大偏差角度。测试结果如表3所示。

4.2.4将风力摆拉起一定角度放开,驱动风力摆工作

测试风力摆制动达到静止状态所用时间。测试结果如表4所示。

5 结论

通过系统测试可知,本系统基本达到目标,具有一定的精确度和稳定度。可以进行定向线段和圆周运动,方便运用于很多对物体运动进行控制的场景。今后,将针对系统进行完善,以达到更多方式的运动并且提高运动的精准性和稳定性。

参考文献:

[1] 贾诚安,叶林,葛俊峰,等.一种基于STM32和ADS1248的数字PID温度控制系统[J].传感器与微系统,2015,34(11):103-105

[2] 郭智源,韩建,张西鹏,张彦龙.基于STM32的PID和PWM温度控制系统研究[J].科学技术与工程,2011,11(16),3805-3807

[3] 王毅,王平,苏伟达,等. 基于数字PID控制的直流电机控制系统的设计[J]. 福建师范大学学报,2010,26(4):59-62.

[4] 陈景贤. 单片机控制的直流电机PWM 调速控制器设计[J]. 湛江师范学院学报,2008,29(3):123-126.

[5] 彭志永,穆学桢,孙艳华. 基于DSP的无刷直流电机控制系统[J]. 测控技术,2008,27(4):44-46.

[6] 张立丽,王洪波. 基于PIC单片机的直流电机控制器的设计[J]. 计算机工程与设计,2009,30(11):2681-2683.

[7] 杨靖. 用单片机控制的直流电机调速系统[J]. 机床电器,2008(1):45-47.

[8] 茹占军,谢家兴. 基于AT89S52单片机直流电机调速系统的设计[J]. 软件导刊,2010,9(8):106-107.

[9] 王晓明.电动机的单片机控制[M]. 北京:航空航天大学出版社, 2007.

猜你喜欢

PID算法
基于AVR单片机的旋转倒立摆设计