张小明 王坤坤 于纪言
摘 要: 针对非线性、强耦合、多变量和欠驱动的旋转倒立摆不稳定系统,提出基于STM32的串级PID控制系统,在其中加入了一階低通滤波用来降低位置控制环中的振荡。通过在Matlab的Simulink中搭建模型对其可行性进行验证,并结合共轭梯度法搜索最优PID控制参数。试验结果表明加入一阶低通滤波的串级PID控制器较未加一阶低通滤波其响应时间快约15%,超调量降低约10%,稳态误差降低约30%,位置控制过程中振荡也得到明显改善。通过在搭建的倒立摆实物平台上进行试验进一步证实所提出的控制系统能够实现对倒立摆实时、快速和平稳的控制。
关键词: 旋转倒立摆; 串级PID; 一阶低通滤波控制; 控制系统设计; 搭建模型; 实验仿真
中图分类号: TN876?34; TP273 文献标识码: A 文章编号: 1004?373X(2020)04?0021?04
Design of cascade PID LPF control system for rotating inverted pendulum
ZHANG Xiaoming1, WANG Kunkun2, YU Jiyan1
(1. College of Mechanical Engineering, Nanjing University of Science and Technology, Nanjing 210094, China;
2. School of Energy and Electric, Hohai University, Nanjing 211100, China)
Abstract: In allusion to the instability of the rotating inverted pendulum system with nonlinear, strong coupling, multivariable and under actuation, a cascade PID control system based on STM32 is proposed, in which the first?order LPF (low?pass filtering) is joined to reduce the oscillation in position control loop. The feasibility of the model is verified by building a model in Matlab′s Simulink, and the optimal PID control parameters are searched in combination the conjugate gradient method. The experimental results show that, in comparison with the controller without first?order LPF, the response time of the cascade PID controller with first?order LPF is about 15% faster, and its overshoot and the steady state error are reduced by about 10% and 30% respectively. Its oscillation in the position control process is also reduced obviously. The experiments on the inverted pendulum platform further prove that the proposed control system can realize the real?time, fast and stable control of the inverted pendulum.
Keywords: rotating inverted pendulum; cascade PID; first?order LPF; control system design; build model; experiment simulation
0 引 言
对于倒立摆的研究起源于20世纪50年代,麻省理工学院的控制论专家根据火箭发射助推器原理设计出一级倒立摆的实验设备。目前对倒立摆系统的稳定控制研究涉及到四轴飞行器、双足机器人及柔性机械臂等欠驱动控制领域[1],国内外已将许多先进的控制算法成功的应用在倒立摆平台上,如最优控制、自适应控制、智能控制、滑模控制和LOR等控制算法。文献[2]针对单级倒立摆的不稳定性提出了一种基于RBF神经网络自适应滑模控制方法,但其数学模型复杂,计算量大,不易推广使用;文献[3]针对单级倒立摆系统设计了基于STM32F103ZET6微控制器的双闭环控制系统,但其鲁棒性较弱,系统波动较为严重;文献[4]以二级倒立摆为被控对象,提出基于融合函数的T?S模糊控制器,解决模糊控制器的“模糊规则爆炸”问题,控制精度较高,但抗干扰能力仍有待提高;文献[5]以STC90C51单片机为平台,采用传统PID控制算法,用试验法进行参数整定,能够使系统达到稳定状态,但是抗扰能力不强,稳定后还存在一定振荡;文献[6]在倒立摆线性化状态方程的基础上对倒立摆进行了LQR算法设计,其抗干扰能力较强,但是在最优状态下的响应速度较慢;文献[7]基于倒立摆动力学模型在Matlab中建立SimMechanics可视化仿真系统,利用Bang?Bang控制和LQY控制理论,设计了倒立摆稳定平衡控制算法,响应速度快,稳态精度高,但是抗干扰能力仍有待提高;文献[8]采用数字采样控制设计了基于PD反馈控制系统,实时性好,抗干扰能力强,但其时滞量和采样周期对倒立摆控制系统具有重要影响。本文首先建立单级旋转倒立摆系统的数学模型,分别分析其角度控制环和位置控制环。为了在保证控制系统能够快速响应且控制平稳的基础上降低位置控制过程中倒立摆系统的振荡,在位置控制环加入一阶低通滤波器,结合共轭梯度搜索法对控制器的控制参数实时搜索,使倒立摆系统的控制效果达到最优。在Simulink中分别搭建未加一阶低通滤波的串级PID控制器和加了一阶低通滤波器的串级PID控制器的数学模型,并同时给予相同的单位阶跃信号,通过观察比较两种控制器的输出波形,分析其控制响应速度和控制的平稳性,证实在串级PID控制器的位置环中加入一阶低通滤波,可以使控制效果更加平稳。
1 旋转倒立摆的数学模型
单阶旋转倒立摆系统由光码盘、带齿轮减速箱的直流电机、水平旋转臂、电位器和摆杆组成,其结构图如图1所示。
水平旋转臂由直流电机驱动在水平面内作圆周运动,电位器固定连接在旋转臂上,摆杆可绕电位器的旋转轴在竖直平面内作圆周运动。假设旋转臂和摆杆均为理想匀质杆,其中旋转臂的长度为R,假设初始位置为零位,其任意位置相对于零位的角位移为[α],竖直摆杆的长度为L,摆杆质心到与电位器连接点中心的距离为[L′=L2],其相对于z轴正方向的角位移为θ。
此处采用拉格朗日方法来获得系统的运动方程,则非线性运动方程如下:
[θ=3g4L′θ+3R4L′α=3g2Lθ+3R2Lα] (1)
在上述运动方程中,采用摆杆的角加速度作为输入,从而获得旋转倒立摆系统的状态空间方程如下:
[X=00100001000003g2L00X+0013R2Lα] (2)
[Z=10000100X] (3)
式中,X,Z分别为为旋转倒立摆在x,z轴方向上的位移输出。
2 倒立摆控制系统设计
旋转倒立摆控制系统应满足低成本、低功耗、抗干扰能力强、运行平稳等要求,在此采用基于ARM的 Cortex?M3内核的微控制器STM32作为主控芯片,STM32正常工作时其时钟频率为72 MHz,功耗低至36 mA。控制算法采用串级PID结构,为了解决倒立摆控制过程中存在的振荡问题,在位置控制的程序中加入一阶低通滤波环节,并在程序中对共轭梯度PID控制参数进行自整定,使控制器在工况复杂的情况下实时调整控制参数,提升抗干扰能力。
2.1 串级PID控制器设计
旋转倒立摆是一种非线性、不稳定、单输入双输出的典型控制对象,为了使摆杆一直稳定在目标位置,要将水平旋转臂的在水平面内的角位移[α]和摆杆相对于z轴正方向的角位移θ作为被控变量,分别将二者与目标位置的偏差带入串级PID控制器中进行运算。其中经典PID控制模型为:
[u=kPe+kI0tedt+kDdedt] (4)
式中:u為控制器输出;e为期望值与实际输出的偏差;[kP]为比例系数;[kI]为积分系数;[kD]为微分系数[9]。根据功能要求,最终设计出的串级PID控制框图如图2所示。
串级PID控制框图分为内外两环,内环为角度控制环,外环为位置控制环,其中位置控制的输出作为角度控制的输入,角度控制的输出作为整个系统的输出。本文内外环均采用位置式控制表达式,且均用比例和微分环节来达到控制要求。其中角度控制环的代码实现如下:
int balance(float Angle)
{
float Bias;
static float Last_Bias,D_Bias;
int balance;
Bias=Angle?ZHONGZHI;
D_Bias=Bias?Last_Bias;
balance=?Balance_KP*Bias?D_Bias*Balance_KD;
Last_Bias=Bias;
return balance;
}
其中:ZHONGZHI为摆杆处于目标位置时即与z轴正方向重合时电位器的数据;Angle为摆杆处于任意位置时电位器的数据;Last_Bias为上次误差;D_Bias为误差微分。同理,位置控制环的代码也采用位置式PD控制表达式,但为了降低控制过程中的振荡,本文加入了一阶低通滤波环节。
2.2 一阶低通滤波算法原理
一阶低通滤波也称作一节惯性滤波,低频通过高频不通过[10],通常是用C语言编程来实现普通硬件RC低通滤波器的滤波功能,在特定频率的目标信号的基础上滤除高频的干扰信号,干扰信号的频率越高滤波作用越明显。
一阶低通滤波的算法公式为:
[p(n)=c·q(n)+(1-c)·p(n-1)] (5)
式中:c为滤波系数;[q(n)]为本次采样值;[p(n-1)]为上次滤波输出值;[p(n)]为本次滤波输出值。一阶低通滤波采用本次采样值与上次滤波输出值进行加权,得到有效滤波值,使得输出对输入有反馈作用。
在旋转倒立摆的位置控制环中加入一阶低通滤波,其代码实现如下:
int Position(int Encoder)
{
Static float Position_PWM,Last_Position,Position_
Bias,Position_Differential;
static float Position_Least;
Position_Least =Encoder?Position_Zero;
Position_Bias *=0.8f;
Position_Bias += Position_Least*0.2f;
Position_Differential=Position_Bias?Last_Position;
Last_Position=Position_Bias;
Position_PWM=Position_Bias*Position_KP+
Position_Differential*Position_KD;
return Position_PWM;
}
其中:Encoder是与电机同轴的水平旋转臂在任意位置时由编码器得出的数据;Position_Zero是把旋转臂初始位置作为目标零位时编码器的数据,加入一阶低通滤波的目的是对角度环的输出进行滤波,减小控制过程中的振荡,提高倒立摆系统的稳定性。内环和外环实现后将二者并入串联结构,其表达式如下:
Position_PWM=Position_Bias*Position_KP+Position
_Differential*Position_KD
balance=?Balance_KP*Bias?D_Bias*Balance_KD
根据串级结构控制框图,最终系统输出的表达式为:
Moto=?Balance_KP*(Bias?Position_PWM)?D_Bias
*Balance_KD? Bias*Balance_KD
经过进一步化简,得到最终串级PID控制器输出PWM的表达式如下:
Moto=Balance_Pwm?Balance_KP*Position_Pwm
2.3 PID控制参数自整定
用代码将串级PID一阶低通滤波器实现以后,为了避免串级PID控制参数人工调试工作繁琐,不确定性大,随工况的变化波动较大,采用共轭梯度搜索法对PID控制参数进行搜索自整定。将PID控制器的输出s(k)和系统的输出m(k)构成共轭梯度搜索的数据序列,需要引入搜索参数[λ]向量,一个包含[kP],[kI]和[kD]的向量,对[λ]依次沿共轭方向迭代,迭代n次以后得出搜索后的参数估计值[λ(n)],然后根据最小方差原则计算出判断值[11][λc(n)],以这个值来判断迭代结果是否满足控制要求,迭代结果是否收敛。当迭代过程使控制参数达到最小方差标准时,会使整个旋转倒立摆的控制状态达到最优状态。
根据第2.2节所述,设置共轭梯度搜索的目标函数为:
[P(λ,n)=i=0N[m0-m(n-i)]2] (6)
式中:[m0]为理想系统输出值;[m(n-i)]为[(n-i)]时刻的系统输出值;[λ]为包含控制参数[kP],[kI]和[kD]的向量。
在优化值附近可将式(6)简化为:
[P(λ,n)=[m0-m(n)]2] (7)
利用共轭梯度法对[λ]求最优估计值,其迭代公式为:
[λ(n)=λ(n-1)-αngradP[λ(n-1)]] (8)
由于被控對象的不同,每个PID控制器都有不同的[λ],在此假设系统的输出为:
[m(n)=R[s(n-1)]] (9)
从式(9)求出[m(n)]关于[s(n-1)]的梯度:
[?m(n)?s(n-1)=?R?s(n-1)≈φ(n)] (10)
求解目标函数关于[λ]的梯度:
[?P(λ,n)?λ=-2[m0-m(n)]φ(n)?s(n-1)?λ] (11)
对式中的[kP],[kI]和[kD]分别求偏导,假设在优化值附近[φ(n)]近似为常数,根据共轭梯度迭代算法得到:
3 实验仿真
本文在Matlab的Simulink中分别搭建加一阶低通滤波的PID控制器和未加一阶低通滤波的PID控制器的数学模型并进行仿真分析,对两种模型同时给予相同的单位阶跃信号,通过对两种模型响应曲线的观察分析,得出两种控制器的优劣。倒立摆系统对于控制算法的快速性和平稳性要求较高,所以在控制系统的设计中主要针对这两个因素进行优化提高,同理在单位阶跃信号的响应虚线中也主要针对其快速性和平稳性进行分析验证。其中,未加一阶低通滤波的PID控制器的单位阶跃响应曲线如图3所示,加了一阶低通滤波的PID控制器的单位阶跃相应曲线如图4所示。数据分析之前通过肉眼观察,可发现在位置环加入一阶低通滤波的控制系统相较于未加滤波的控制系统在50 ms后基本无震荡波动且其响应速度也明显快于前者。
通过具体对比两个曲线图,得出加一阶低通滤波的串级PID控制器相较于未加滤波的串级PID控制器其响应时间快约15%,超调量降低约10%,稳态误差降低约30%。将串级PID低通滤波控制器在搭建的倒立摆实物平台上进行试验进一步证实所提出的控制系统抗干扰能力强,系统振荡较小,能够实现对倒立摆实时、快速和稳定的控制。
4 结 语
本文基于串级PID控制器,在其外环加入一阶低通滤波环节,用以滤除高频干扰。通过旋转倒立摆实物平台验证,能够在快速稳定的使倒立摆在目标状态运行的基础上有效的避免了运行过程中的振荡,并结合共轭梯度PID参数自整定方法,提升了控制器的可靠性和高效性。
参考文献
[1] 任桢,林都,李静.旋转倒立摆虚拟仿真模型构建与验证[J].现代电子技术,2019,42(6):60?64.
[2] 彭继慎,刘盼,宋立业.倒立摆的神经网络自适应滑模控制[J].控制工程,2018,25(11):1976?1981.
[3] 范硕,陶翔翔,王志明.基于STM32的旋转倒立摆实验平台的下位机设计与实现[J].电脑知识与技术,2018,14(16):224?226.
[4] 李志刚,吴楠.二级倒立摆T?S模糊控制器优化设计[J].现代电子技术,2018,41(21):111?116.
[5] 亢健.单片机在倒立摆控制系统的应用[J].机械工程与自动化,2014(5):138?140.
[6] 李洁,李世煜.基于极点配置法的倒立摆系统控制器设计[J].广州航海学院学报,2018,26(3):68?71.
[7] 方鹏,王旭,匡毅.基于SimMechanics的单级倒立摆最优控制算法研究[J].农业装备与车辆工程,2017(11):51?54.
[8] 王强,梁松,王在华.基于采样PD反馈的倒立摆控制系统的稳定性[J].动力学与控制系统,2017,16(4):377?384.
[9] 张铮,魏雄杰,董雷.模糊PID双组份流量控制方法研究[J].现代电子技术,2019,42(5):160?163.
[10] 罗春林,舒朝君,罗茜,等.零相移滤波器综合实验设计:以解决一阶低通有源滤波器相位移动问题为例[J].工业和信息化教育,2018(12):46?52.
[11] 李航,王耀力.四旋翼飞行器中PID控制的优化[J].电子技术应用,2017(2):73?76.