logo资料库

基于STM32和增量PID的旋转倒立摆的设计.pdf

第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
资料共5页,全文预览结束
第28卷第11期Vol.28No.11钦州学院学报JOURNALOFQINZHOUUNIVERSITY2013年11月Nov.,2013欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟欟[收稿日期]2013-07-20[基金项目]广西教育厅教改课题:基于项目超市的单片机实训平台的建设(2013JGB258)。[作者简介]包敬海(1979-),男,广西防城港人,钦州学院物理与电子工程学院副教授。基于STM32和增量PID的旋转倒立摆的设计包敬海,覃贵寿(钦州学院物理与电子工程学院,广西钦州535000)[摘要]旋转倒立摆系统应用广泛,但是传统设计中存在成本较高、功耗较大等问题。针对该难题,提出利用32位低功耗嵌入式芯片STM32作为主控制器、以增量PID和惯性起摆为控制算法的解决思路。通过连续多次采样角度传感器WDX35D,STM32将获取的数值进行增量PID计算并产生PWM信号,使BTS7960能够快速、平滑地驱动伺服电机,实现摆杆进入稳定的倒立状态。实践表明,该倒立摆稳定、可靠、运行平滑、抗干扰能力强,具有低成本、低功耗等优点。[关键词]旋转倒立摆;STM32;增量PID;惯性起摆;BTS7960;连续采样[中图分类号]TP368.1[文献标识码]A[文章编号]1673-8314(2013)11-0010-05倒立摆控制系统是一个多变量、高阶次、强耦合非线性的自然不稳定系统,是检验各种控制理论的理想模型,一直是控制理论界关注的焦点[1]。倒立摆控制系统能较好地体现出系统稳定性、可控性和抗干扰能力,因此它的控制方法在工业控制、军工、航天、机器人等领域都获得了广泛应用。如何利用较低成本和较低功耗实现稳定可靠的倒立摆,成为当前的一大挑战。1倒立摆的研究摆是一种悬挂于定点、在重力作用下往复运动的机械装置。摆可以分为两大类,顺摆和倒立摆。顺摆的支点在上方,重心在下方,例如钟摆、吊车、杂技中的顶伞、旋转的芭蕾舞演员等都属于顺摆的情况。倒立摆与顺摆相反,支点在下方,重心在上方[2]。倒立摆系统是一种恒不稳定的非线性系统,控制比较复杂,应用非常广泛,例如火箭在空中的姿态调整、卫星在太空中的飞行姿态控制、智能平衡小车,以及机器人等各类复杂的控制系统,往往都是利用倒立摆的控制方法来实现[3]。可以说,倒立摆已经成为测试控制理论是否有效的试金石,也是产生新的控制方法的基础平台。倒立摆可以从级数、架构两方面进行划分。首先,从支点和摆的数量来看,可以划分为一级、二级、三级等倒立摆[4]。其次,从架构来看,可以划分为直线、环形和平面等类型。环形倒立摆也称为旋转型倒立摆,其摆体组件安装在可以自由运动的圆周运动模块上,控制难度更大。2旋转倒立摆的工作原理旋转倒立摆一般由支架、计算机、控制器、电机、角度传感器、支点、摆杆等几个部分组成[5]。其典型架构如图1所示:
第11期包敬海,覃贵寿:基于STM32和增量PID的旋转倒立摆的设计图1旋转倒立摆的典型架构fig1Aarchitectureofrotaryinvertedpendulumsystem从图中可以看出,当控制器不工作的时候,摆杆在重力的作用下自然下垂;当控制器驱动电机使得旋臂在圆盘上进行快速往复旋转,可以把摆杆甩到支点的上方,这个过程被称为起摆或起振;起摆后,控制器根据角度传感器获取摆杆的运动情况,经过计算后控制电机进行相应的运动,使得摆杆保持倒立状态[6]。由于摆杆处于恒不稳定的状态,对响应速度和抗干扰有很高要求,因此国内相关研究中的旋转倒立摆大多采用了上下位机的模式。其中,上位机为高性能计算机,用于快速完成复杂的运算,而下位机的控制器负责AD采集、数据传送和电机控制。倒立摆的运动方程的建立和分析方法主要有牛顿-欧拉方法和拉格朗日方法[7]。对于旋转倒立摆,目前多采用拉格朗日方法来获得系统的运动方程。设l1为旋臂长度,l2为摆杆质心到支点的距离,θ1为旋臂与水平x轴的夹角,θ2为摆杆与垂直向上方向的夹角,则非线性运动方程如下:θ¨2=3g4l2θ2+3l14l2θ·1(1)采用角加速度作为输入,可以获得旋转倒立摆系统的状态空间方程:X=00100001000003g4l200X+0013l14l2θ¨1(2)Y=10000100[]X(3)根据旋转倒立摆的运动方程和空间方程,利用神经网络、遗传算法、LQR、模糊控制、分级逼近、根轨迹、频率响应、鲁棒控制、状态空间等方法就可以使得摆杆进入倒立状态[8-11]。但是传统系统存在几个不足之处:首先,采用高性能计算机作为上位机,下位机部分多采用DSP和昂贵的大功率电机,成本较高;其次,功耗较大,难以满足低功耗的常规设计需求;第三,采样周期一般为10ms左右,响应较慢,而中小型系统对灵敏度、抗干扰的要求更高。为此,需要从控制器等硬件和快速算法两方面进行调整。3硬件部分设计要实现低成本、低功耗、抗干扰能力强的旋转倒立摆,如何选择合适的硬件是最关键的问题。第一,控制器。控制器是硬件部分的核心,重要性十分突出。高性能计算机在成本、功耗等方面存在不足,而传统的51、PIC、AVR等单片机甚至16位的MSP430、32位的TMS320等都难以满足快速采样和计算的需求。因此,采用基于ARMCortex-M3内核的微控制器STM32作为主控芯片。STM32具有高性能、低成本、低功耗显著特点[12]。STM32的时钟频率高达72MHz,功耗仅为36mA,单块芯片最低仅为5元,内部资源非常丰富,大大减小了因外部电路设计造成的不稳定因素。因此,STM32是当前低成本、低功耗、抗干扰能力强的中小型旋转倒立摆的最佳选择。第二,驱动模块。驱动模块是旋转倒立摆系统的瓶颈所在。如果采用L298N等主流驱动模块,由于驱动电流较小,倒立控制的响应较慢,不容易保持稳定。经比较测试,采用Infineon的BTS7960为主控芯片的驱动模块[13]。BTS是BTN系列的简化版本,是应用于电机驱动的大电流半桥高集成芯片,但是发热比BTN要低得多。BTS7960的内部框架如图2所示。从图中可以看出,BTS7960内部具有P沟道的高边MOSFET、N沟道的低边MOSFET和驱动IC,省去了电荷泵的需求,减小了EMI。BTS7960提供了电流诊断、斜率调节、过热保护、短路保护等功能。最为突出的是,BTS7960的典型通态电阻仅为16毫欧姆,驱11
钦州学院学报第28卷动电流43A。因此,即使输入的PWM值非常小,BTS7960也能响应并产生适当的输出电流,使得电机平滑运动,达到较为理想的控制效果。图2BTS7960驱动芯片fig2BTS7960driverchip第三,电机。电机是倒立摆系统的执行部件和主要受控对象。首先,大功率电机的性能较为理想,但是价格昂贵;其次,步进电机的控制较为精确,但是力矩较小,而性能较好的五相混合式步进电机一般处于千元级别;再次,直流电机力矩较大,但控制精度不高。因此,应该采用全数字直流伺服电机作为执行电机。对于2500线编码器、四倍频的标准电机而言,其脉冲当量为0.036°,堵转扭矩为50Kg·cm,连续扭矩为17kg·cm,空载转速8100RPM,价位约为60元,较为适合。第四,角度传感器。为了提高分辨率、减小机械磨损,采用非接触式(无触点霍尔式)角度传感器WDX35D。它具有360°无盲区测量、动态噪声小、12位分辨率、旋转平滑性较好、线性精度小于0.3%等优点。第五,ADC模块。传统的8位ADC模块精度太低,因此应采用12位或以上的ADC模块。为减小设计的麻烦,没有采用独立的ADC模块,而直接采用STM32内部集成的18通道逐次逼近型模拟数字转换器。4PID控制PID是Proportion(比例)、Integral(积分)、De-rivative(微分)的简称,是目前应用最广泛的工业控制器[14]。PID控制器由比例单元P、积分单元I、微分单元D组成。其输入e(t)与输出u(t)的关系和传递函数分别如公式(4)、(5)所示:u(t)=kp(e(t)+1Ti∫t0e(t)dt+Tdde(t)dt)(4)G(s)=U(s)E(s)=KP(1+1Tds+Tds)(5)其中,e(t)为目标值与当前值之差,kp为比例系数,Ti为积分时间常数,Td为微分时间常数。kp越大,系统的灵敏度越高;但是,kp过大很容易造成输出振荡和不稳定。Ti能够减缓输出的快速变化,从而降低超调的影响;但是,Ti过大也会造成被控物理量在反馈信号急剧变化时难以迅速恢复的问题。Td可以根据信号变化的速率提前给出相应的调节动作,从而缩短了调节时间,克服因积分时间过长而使恢复滞后的缺陷。从式(4)、(5)可以看出,PID控制算法的关键是设定kp、Ti、Td。一般情况下,可以通过多次测试计算出比较适合数值,也可以采用经验值。例如,温度控制系统中,kp的经验值为0.2~0.6,Ti为180~600s,Td为3~180s。PID控制系统的结构如图3所示。从图中可以看出,PID控制系统的核心思想是误差反馈和控制。也就是说,将输出信号out反馈到输入端,与期望的目标信号in进行差值计算,然后进行比例、微分、积分的运算,最后产生新的输出控制信号。由于PID具有结构简单、使用方便、参数互相独立、实用性强、鲁棒性好等诸多优点,因此是当今最流行的控制方法之一,许多新的控制算法也是从PID的衍生算法或借鉴了PID的控制思想。图3PID控制系统的结构fig3StructureofPIDcontrolsystemPID控制器可以划分为位置型、增量型、微分先行型等类型。在旋转倒立摆系统中,受控对象为伺服电机,应该采用增量型[15]。首先,增量型PID不需做误差的累加,对控制量的计算影响较小;其次,增量型PID得出的是控制的增量,误动作影响小,也可以通过逻辑判断限制或禁止本次21
第11期包敬海,覃贵寿:基于STM32和增量PID的旋转倒立摆的设计输出,使得系统更加稳定。另外,增量型PID的计算量比较小,能大大加快计算的速度,对于实时性要求非常高的旋转倒立摆来说显然更为适合。5旋转倒立摆的实现根据前面的分析,不难设计出旋转倒立摆的工作流程,如图4所示。图4旋转倒立摆系统的工作流程fig4Workflowofrotaryinvertedpendulumsystem首先,系统启动后,先进行相关设备的初始化,为AD采样、电机控制、PID运算作准备。然后,系统进入起摆状态。起摆的策略主要是能量控制[16]。具体的起摆方法有急停法、数学模型法、惯性法等。急停法能够让摆杆瞬间进入顶部,但是主要依靠经验模型,容易造成机械磨损和系统的不稳定性。数学模型法比较精确,但是计算过于复杂,一般只适合大型系统。因此,本设计采用通用性较好的惯性算法:电机以中等速度进行往复运动;只要摆杆能往顶部方向移动,电机就持续通电使之逼近顶部;只要靠近顶部,电机就保持断电状态,以便充分利用摆杆的惯性并保持系统的平滑性。接着,STM32每隔1ms对WDX35D进行连续5次的采样,确保系统的高速响应,同时也能更好的去除抖动干扰带来的影响。而传统倒立摆系统往往每采样一次就进行一次电机控制,容易出现无法及时处理摆杆下落和识别干扰的问题。WDX35D与ADC模块的分辨率均为12位,误差为1/4096,转换时间约为1.17us,能很好的满足系统的需求。摆杆自然下垂时设为0°,理想倒立状态时为180°,顶部区域为165°~195°。当通过ADC获取摆杆当前角度后,系统判断其是否进入的顶部区域。如果没有进入顶部,则返回平滑起摆状态,反之进入增量PID控制状态,并使得摆杆保持倒立。相关PID的结构和控制算法如下:structPID{∥PID的结构intSetPoint;∥目标值,本设计中180°折合2048intProportion;∥比例常数,10~25,本设计取值14intIntegral;∥积分常数,1~10,本设计取值3intDerivative;∥微分常数,30~60,本设计取值46intLastError;∥上次误差intPrevError;∥当前误差};structPIDspid;introut;∥输出PIDResponse(Output)intrin;∥反馈PIDFeedback(Input)intPIDCalc(structPID*p,intNextPoint){∥PID控制iError=p->SetPoint-NextPoint;∥增量计算return(p->Proportion*iError-p->Integral*p->LastError+p->Derivative*p->PrevEr-ror);∥PID计算……∥更新各变量}经实践检验,该旋转倒立摆系统能够在2秒内平滑的进入顶部区域并立即进入倒立状态。在没有干扰的情况下,系统可以保持无限长时间的倒立状态,稳定性超强;在拍打摆杆等常规干扰下,无法使摆杆脱离倒立的动态平衡状态;在严重干扰下,摆杆也能通过惯性起摆算法迅速的恢复倒立状态。从稳定性、可靠性、抗干扰能力、功耗、成本等各方面来看,该倒立摆都达到了比较理想的状态,如图5所示。图5的(a)为旋臂保持稳定的倒立状态,(b)为旋臂进行360°旋转的倒立状态。当然也可以利用角度传感器对旋臂的旋转幅度进行限制,在此不再赘述。31
钦州学院学报第28卷(a)旋臂稳定的倒立状态(b)旋臂旋转的倒立状态图5旋转倒立摆系统的运行效果fig5Effectofrotaryinvertedpendulumsystem6结束语以STM32为控制器,以惯性起摆和增量PID为控制算法,将角度传感器获取的数值进行计算,通过PWM信号控制BTS7960驱动伺服电机,实现了旋转倒立摆系统。实践表明,该旋转倒立摆具有稳定、可靠、运行平滑、抗干扰能力强、功耗较低、价格低廉等优点。参考文献[1]刘浩梅,张昌凡.基于LQR的环形单级倒立摆稳定控制及实现[J].中南大学学报:自然科学版,2012,(9):3496-3501.[2]马光,高强.单级旋转倒立摆控制研究[J].天津理工大学学报,2007,(3):32-34.[3]张欣.单级旋转倒立摆的二次型最优控制研究[J].电脑开发与应用,2011,(12):28-29,32.[4]曾孟雄,方春娇,赵千惠.单级旋转倒立摆极点配置与二次型最优控制[J].机电工程,2010,(3):60-62,70.[5]李凌,袁德成,井元伟.旋转式倒立摆系统控制策略研究[J].实验室研究与探索,2006,(1):21-23,46.[6]江晨,王富东.旋转式倒立摆系统的算法研究及仿真[J].工业控制计算机,2010,(10):54-56.[7]邵瑞,张昌凡,黄宜山,等.基于滑模观测器的环形倒立摆控制系统的设计与实现[J].测试技术学报,2010,(2):133-139.[8]王洪斌,安志银.基于神经网络旋转二级倒立摆系统的预测控制[J].计算机仿真,2010,(7):149-152.[9]柳志远,张湘平.基于遗传算法PID的旋转式倒立摆控制[J].计算机技术与发展,2008,(2):180-183.[10]谢慕君,王辉.模糊趋近率的滑模控制在倒立摆系统中的应用研究[J].自动化技术与应用,2008,(10):8-10.[11]高兴泉,陈虹.电机驱动力矩受限的旋转倒立摆保代价控制[J].吉林大学学报:工学版,2011,(4):1444-1449.[12]杨波.基于STM32的异步电机重载软启动器的研制[D].西安:陕西科技大学优秀硕士论文,2013:32-34.[13]英飞凌.BTN7930B/7960B/7970B/7971:电机驱动器IC[J].世界电子元器件,2009,(3):27.[14]熊家秦,熊锐,吴坚,等.增量式PID怠速控制策略在发动机上的应用[J].广东工业大学学报,2013,(3):109-111,117.[15]罗天资,陈卫兵,邹豪,等.直线电机模糊增量PID控制算法的研究[J].测控技术,2011,(2):56-59.[16]MuskinjaN,TovornikB.Swingingupandstabilizationofrealinvertedpendulum[J].IEEETrans.onIndustrialElectronics,2006,(2):631-639.DesignofRotaryInvertedPendulumwithSTM32andIncrementalPIDBAOJing-hai,QINGui-shou(PhysicsandElectronicCollege,QinzhouUniversity,Qinzhou535000,China)Abstract:RotaryInvertedPendulum(RIP)systemhasbeenwidelyused.However,traditionalRIPiscostlyandwithhighpowerconsumption.Therefore,asolutionisproposed,whichsuggeststhenewRIPshouldhavea32bitpowerconsumptionem-beddedchipSTM32asthemastercontrollerandhaveincrementalPIDandinertiaswingingupasthecontrolalgorithm.Afterthisimprovement,thosenumericalvaluesobtainedfromcontinuoussamplingbyangletransducerWDX35DarecalculatedbySTM32withtheincrementalPID,whichgeneratesthesignalofPWManddrivestheservomotorfastlyandsmoothlybyusingBTS7960.Afterthat,theoscillatingbarissteadilystabilizedatinvertedstate.IthasbeentestedthatthenewdesignofRIParestable,relia-ble,smoothandwithstronganti-interferenceability,lowcostandlowpowerconsumption.Keywords:RotaryInvertedPendulum;STM32;IncrementalPID;Inertiaswingingup;BTS7960;Continuoussampling[责任编辑江元杪]41
分享到:
收藏