作者:徐厚华 何哲嘉 向颖锋
直立平衡车因其动力学系统同时具有多变量,非线性,不稳定,强耦合等特性,传统的单环PID控制平衡已经略显吃力。本文将采用内环角速度PI控制、外环角度PD控制及最外环速度PI控制组成的串级 PID算法来控制直立车的平衡及运动,串级PID控制器比常规PID控制系统具有较强的稳定性、抗干扰性。
▲ 制作的节能直立组车模
■ 前言
智能车是现代汽车工业和电子计算机等科技成果相结合的产物, 具有自动识别道路的功能从而实现自动驾驶。两轮直立小车广泛的应用于仓库物流运输以及巡逻的代步工具等方面[1]。两轮直立智能车赛题在大学生智能车竞赛中已经出现快十年,直立车的控制算法也日趋多样,两轮直立智能车在赛道中,需同时兼顾速度、平衡与循迹,姿态与循迹控制效果的优劣直接决定行驶平均速度的高低[2]。直立车模本身只具有一个执行机构,即两个主控马达。对于传统PID控制,涉及到平衡角度环和速度环控制输出复用一个执行机构问题,为提升在较高速度下的运行性能,对传统算法进行了一定程度的改进,提出一种基于串级PID的直立车姿态控制算法。
直立车由双电机驱动,左右电机为控制对象,控制器需具有直立、行驶同时兼顾转向的功能。传统直立车控制算法,大多采用角度环输出与速度环输出线性叠加,在高速行驶状态时姿态的跟随能力欠佳,在此在传统算法基础上将速度-角度进行了串联,并增加了角速度为最内环回路。串级PID 控制器输出后经过处理换算为PWM,输入驱动板后可使直立车行驶。
▲ 系统总体框图
1.1传统直立车PID控制系统
直立车传统控制系统如图1所示。为使其具有速度控制与姿态平衡能力,利用2个单独的闭环分别进行控制,输出电机控制信号为各环输出的叠加。该控制方案虽简单但存在一定问题,如:仅单独施加直立控制,其车身平衡效果虽能满足要求,但此时如果在该基础上额外施加速度控制,速度控制势必会打破直立车的平衡姿态,使得速度与直立控制互相耦合,此时如果再施加转向控制,就会导致高速时转向控制实时性和姿态的平衡性欠佳。
▲ 图1 直立车传统控制框图
传统位置式PID控制算法公式[3]:
其中P(k)为调节器输出,e(t)是当前角度误差,Kp比例系数,Ki积分系数,Kd微分系数。
1.2直立车串级PID 控制
串级PID控制系统结构如图2所示。
▲ 图2 直立车串级控制系统框图
串级PID外环控制算法如公式2:
式中ω ( k ) \omega \left( k \right)ω(k)为外环调节器输出,θ ( k ) \theta \left( k \right)θ(k)是当前角度误差。
内环PID控制算法公式:
式中p(k)为内环调节器输出,e(k)是当前角速度误差,ω ( t ) \omega \left( t \right)ω(t)为当前角速度。
如图2所示,行驶闭环控制车模的行驶姿态和运行速度。在行驶速度闭环中,速度PID 计算输出的值为直立车在机械零点角需要前倾或者后仰的角度,该输出值需与机械零点角相加才能将速度控制转化为角度控制,而角度的变化是要由角速度产生的俯仰角度PID 计算输出值为直立车需要保持的角速度,俯仰角速度PID 计算结果即为串级行驶闭环的输出值
直立车平衡控制使用串级PID,外环角度,内环角速度,最外环速度,只需要通过姿态传感器采集一个轴的数据即可。速度环100ms环控制一次,角度环10ms进行一次控制,角速度环2ms控制一次,外环输出先加一个限幅才传给内环,实测效果非常稳定,不会震荡,也不会出现明显的反应滞后。速度控制和平衡控制,转化为角度和角速度的控制,整个控制系统中仅仅有角速度环的输出给电机控制,原理上可以有效地消除传统速度PID 与直立平衡PID 并联所产生的耦合。
1.3算法实现
串级PID算法的实现在于角速度环、角度环和速度环控制的不同周期。初始化程序完成之后,启动周期为2 ms的定时中断。PIT 中断要为循环中的算法提供程序执行的时序标志位控制,根据标志位实现不同周期执行不同控制环节,这种程序结构有助于提高算法的执行效率以及实时性。中断服务函数中具体控制的算法流程[4]如图3所示。
▲ 图3 中断程序框图
1.4串级PID参数整定
由于串级控制,速度环、角度环和角速度环会互相影响,所以调节参数时应该从内环开始整定。先令外环(角度环、速度环)调节器目标值为零,然后开始整定内环(角速度)PID参数,因为陀螺仪在测量角速度过程中会不断积累误差以及各种噪声的干扰,最终造成系统的稳态误差,所以角速度环采用PI控制来降低系统的稳态误差,调整参数至直立车能够做缓慢的自由落体运动,此时内环参数整定完成。
调整好角速度环后就可以开始整定角度环PID参数了,角度环采用PD控制,调节到直立车能够快速响应在机械零点保持平衡,给一个干扰后能快速回到平衡位置且不发生震荡就算调节好外环参数。
速度环采用PID调节,速度环的参数整定最后来完成,先应该通过设定目标值为零来确定参数的极性,然后通过观察车模实际运行状态,通过上位机观察各数据来给定参数。
当系统受到多级噪声时,内环会先进行调整,再由外环进行调整,所以控制的精度和稳定性都优于单极PID控制[5]。通过实际小车运行状态来看,如图4所示。传统算法围绕中线产生了较大过调;串级PID算法过调明显较小,且跟随能力远强于传统算法,可以看出常规PID 的稳定时间比串级控制短。串级PID控制器比常规PID 控制系统具响应迅速,稳定性高等优点[6]。
▲ 图4实验数据图
串级 PID 相比典型的 PID 算法控制更精准、稳定,系统内环为角速度环,外环为角度环,经过系统测试,能够实现良好的平衡控制效果。由于串级算法实现简单且实用,对传统方案进行改进不需要额外的硬件要求,在直立车控制上具有一定的工程推广和参考价值。
参考文献:
[1]潘飞。基于KEA128芯片的直立电磁小车设计[J]。电子技术与软件工程,2019(10):98-99.
[2]王英杰,孟威李灵恩,姚晓晨,张宁博。改进的两轮直立车多回路控制[J]。自动化与仪表,2019,34(12):39-44.
[3]徐涢基,肖城钢,李婷,龚明,陈芳。串级PID算法在滚球控制系统中的应用[J]。现代电子技术,2020,43(09):122-125.
[4]谢丹妮。 直立智能车运动控制设计与实现[D]。湖南大学,2017.
[5]乔纬国。 一种采用双PID串级控制的双轮自平衡车的研制[D]。吉林大学,2017.
[6]周瓒,徐海荣。基于串级PID闭环控制的飞行控制原理仿真实验[J]。电子制作,2019(21):52-54.
编辑:hfy
全部0条评论
快来发表一下你的评论吧 !