基于改进PID 算法的风力摆控制系统研究
徐雯琪++陈佳颖++袁菊明
摘要:介绍一种基于MSP430单片机控制的风力摆控制系统的设计,系统以F5529Lauchpad为控制核心,以MPU6050为主传感器,采用积分分离PID算法计算控制输出,利用片内定时器输出PWM波到驱动电路控制空心杯电机转速,达到快速起摆、保持稳定飞行的要求。
关键词: 积分分离PID算法;430F5529 ;MPU6050;四元素算法;PWM控制
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2016)11-0256-02
风力摆控制系统是一个研究物体运动中轨迹控制以及运动平衡的实验装置,示意图如图1所示,具有多变量、非线性、参数不确定性等动力学特性。当风力摆运动时,除受到重力、刚性轴的拉力之外,还受到垂直于刚性轴平面的四个风机的推力作用,为本质不稳定状态。风力摆控制系统是自动控制系统的一个较典型的研究对象,可以作为学习、应用控制理论及控制算法的学习平台,同时对学习平衡控制、飞行器姿态控制起到入门的作用。
1 硬件系统
风力摆的硬件系统可分为两个主要部分,一为机械结构,主要包括支架、两个万向节、摆杆、电机支架;另一部分为控制电路,主要包括电机(含桨)、传感器、电源、激光头、控制电路板以及LCD 显示器等。
1.1 机械结构
本文用以承载风力摆的悬挂支架高90cm,悬挂臂固定一个万向节,70CM长的碳纤维棒通过顶丝固定于万向节,碳纤维棒的下端通过万向节连接支架,四个电机置于支架平面的四个方向,电机轴安装桨叶,电机工作桨叶高速旋转产生推力推动支架偏离垂直位置,四个推力配合就能控制支架按照一定的轨迹运动。如下图所示:
1.2 控制系统硬件
风力摆控制系统的核心采用TI的MSP430F5529芯片,采用F5529芯片不仅是因为其优秀的控制性能,很好的可靠性以及丰富的内部资源:有三个定时器提供多达十几路的捕获/比较输出,10KB的SRAM空间,128KB的FLASH程序空间[1],能满足本控制系统中需要至少4路的PWM输出,程序中有计算平台的偏转角度时需要较多的变量的编程需要。围绕此芯片搭建的控制板还包括电源转换模块,为主控芯片及电机驱动电路提供电源;按键接口用于设置参数,完善控制性能利用;电机驱动模块,利用L298 芯片搭建驱动电路,为直流电机提供控制电压;LCD显示器用来将所采集的信号以及经过处理的数据显示出来,这样可以使控制过程更加直观;MPU6050模块,以IIC总线与单片机连接,读取三轴加速度、角加速度参数,模块垂直固定在碳素杆上,检测风力摆摆动角度。图2为风力摆控制系统结构框图。
2 软件设计
2.1 控制策略
当未加任何控制时,由于重力作用,摆体(电机支架)垂直向下,当要求摆体做圆周运动(本文以控制风力摆做圆周运动为例)时,控制内电机、左电机,电机带动桨叶旋转产生风力,使摆边旋转边偏离Z轴,MPU6050模块用热胶固定在摆杆上,读取其加速度参数,运用四元素解析算法,计算出Z轴的偏转角度,Z轴的偏转角度就是风力摆的目标参数。控制软件主要流程分两个部分,主程序部分及中断服务程序部分,主程序在完成芯片时钟、定时器、PID参数等初始化设置后,进入摆角设置模块,完成设置后进入主模块:检测是否按下按钮取消当前飞行返回,如果否则控制PWM输出模块,定时中断设置的定时间隔为1MS,中断程序中主要完成通过IIC接口读取6050参数,调用四元素解析算法模块,计算摆杆的Z轴偏转角,然后进行PID运算,根据运算结果,修改定时器PWM模块的CCRX参数。软件流程如图3所示。
2.2 改进PID 控制算法
本系统中控制对象为风机转速,达到让风力摆按预定轨迹飞行的要求。以要求风力摆作圆周飞行为例,Z轴的偏转角度作为控制目标,启动后,风机开始工作后,读取6050模块数据,调用四元素算法,计算出Z轴的偏转角度,并与目标偏转角度比较,使得风力摆的运动状态逐渐趋向圆周并保持平稳。传统PID 算法的输入e(t)与输出u(t)的关系为:
在现代控制系统中,由于普遍应用计算机(单片机)代替模拟调节器,用软件实现PID控制算法,因此,连续PID控制算法不能直接使用,需要进行离散化。本文采用增量式PID控制算法,提供给执行机构的是控制量的增量,根据递推原理可得
增量式PID控制算法解决了PID算法在单片机中计算问题,对于本系统而言,还有一个问题需要考虑:当启动风力摆时,偏差很大,系统要求迅速地接近目标值,在接近目标值时,控制的重点是系统的稳定性要好,即飞行时圆周的偏差要小。因此在上述算法基础上,采用积分分离控制策略,基本思路是:当被控量与设定值偏差较大时,取消积分作用,以免由于积分作用使系统稳定性降低,超调量增大;当被控量接近给定值时,引入积分控制,以便消除静差,提高控制精度,流程图键图4,其具体实现步骤如下:
a) 根据实际情况,人为设定阈值ε>0;
3实验结果及分析
本文搭建了以430F5529LAUNCHPAD为控制核心、以一款最高转速达40000rpm的超强磁空心杯电机为桨叶驱动的风力摆控制系统,在实验中不仅要对a0、a1、a2作参数整定,积分分离PID控制时,ε值的设置也对系统的稳定时间、偏差有一定的影响,下表一列出了不同ε值下以及采用一般增量PID算法下,经过参数整定后,稳定时间及偏差对比数据。
从实验结果看,本控制系统采用钕铁硼超强磁空心机电机,风力摆起摆快,稳定性较好,设置不同的PID参数对摆的运动控制效果明显,但是在控制飞行偏差上,有待进一步提高。
参考文献:
[1] 沈建华,杨艳琴. MSP430系列16位超低功耗单片机原理与实践[M].北京:北京航空航天大学出版社,2008.
[2] 胡寿松.自动控制原理[M]. 6版.北京:科学出版社,2013.
[3] 谢克明.现代控制理论[M].北京:清华大学出版社,2007.