基于改进单神经元的四旋翼PID控制器设计
2016-10-31管业鹏
姚 乐,管业鹏,金 星
(1.上海大学 通信与信息工程学院,上海 200444; 2.中国科学院 上海微系统所与信息技术研究所,上海 200050;3.浙江中科领航汽车电子有限公司,杭州 311228)
基于改进单神经元的四旋翼PID控制器设计
姚乐1,2,3,管业鹏1,金星2,3
(1.上海大学 通信与信息工程学院,上海200444; 2.中国科学院 上海微系统所与信息技术研究所,上海200050;3.浙江中科领航汽车电子有限公司,杭州311228)
针对传统PID控制算法对四旋翼飞行器的姿态角进行控制时,其控制参数很难随着环境的变化进行自整定,进而影响四旋翼飞行器的稳定性的问题,提出了一种改进的PID控制算法;该算法通过改进单神经元中的K值公式提高了Kp、Ki、Kd的学习速率,从而提高了系统的响应速度;通过增加超调惩罚措施,通过适当的放大或缩小超调,可以使系统超调达到最小;通过与增量型PID、标准二次型单神经元PID算法进行比较,并且进行仿真实验;结果表明:所提方法具有参数自整定能力强且快速响应、鲁棒性强及稳定性好。
四旋翼飞行器;单神经元PID控制
0 引言
近年来,四旋翼飞行器以其简单的机械结构与悬浮、垂直起落等优点,被广泛应用于航拍、道路监控等领域[1]。四旋翼飞行器要完成悬浮、垂直起落,需要控制系统对姿态具有良好的控制特性。四旋翼飞行器姿态控制系统分别对Pitch(俯仰)、Roll(横滚)和Yaw(航向)3个通道进行协调控制,即可实现飞行。
针对四旋翼飞行器姿态控制,常规PID 控制器虽然简单易行,但一组固定不变的PID参数无法适应参数变化,干扰众多的控制系统。针对这一缺点,文献[2]提出了模糊PID控制,但是模糊PID控制的参数需要研究者根据先验经验确定,具有很强的主观性并且不一定能找到最优解;文献[3]提出了基于遗传算法的PID控制以及文献[4]提出了基于量子粒子群优化的PID控制,这两种算法可以找到最优解,但需要建立被控对象的精确数学模型,然而实际工程中,随着环境的变化以及原器件的老化,很难建立精确的数学模型,因此不能实现精确控制;文献[5]提出了基于神经网络PID控制算法,不需要精确的数学模型,也不需要先验知识确定最优解,有效解决了上述两个问题,由于神经网络具有很大的复杂度,计算量大,而在四旋翼控制模型中一般采用为32位的Arm(Stm32等),或者16位(AVR等),甚至是8位(Arduino),且主频不超过100 MHz,因此很难满足其计算量。由于单神经元是神经元的组成单元,不仅可以实现在线调整PID参数,且不需被控对象的精确数学模型,整个系统的构架简单,提出了一种改进的单神经元的PID控制方法,并应用于四旋翼上。
通过实验结果仿真与对比表明:所提方法不仅具有较强的收敛速度,而且具有较强的自适应能力和自学能力,对控制器参数可实现在线调整,有较强的鲁棒性。
1 单神经元结构及控制算法
1.1单神经元自适应PID控制
神经网络是模拟人类大脑神经网络结构和行为的一种网络,单神经元作为神经网络的基本单元,同样具有其基本的学习性能,并且单神经元结构简单、易于计算,更适合在运算速度较低的MCU;PID控制参数的变化与被控对象的输出紧密联系,故将两者结合形成的单神经元自适应PID控制器,这样既可以实现四旋翼根据不同环境下自适应调节,也可以使整个系统结构简单。在四旋翼中存在不同的角度控制,为了分析方便,只进行俯仰角的分析,俯仰角的单神经元自适应PID控制器的结构[6]如图1所示。
图1 单神经元自适应PID控制结构
因为在PID中有3个调节参数,因此令n=3,则图1中的状态变换器的输入即t、t-1和t-2时刻的四旋翼上俯仰角的偏移误差分别为:
(1)
(2)
(3)
单神经元PID控制的核心特点是通过一定的学习规则对系数进行调整,从而实现自适应功能[7]。常用的学习规则有3种包括无监督Hebb学习、有监督的Delta学习和有监督的Hebb学习。文献[7]推导出单神经元自适应PID控制算法如下:
(4)
(5)
(6)
(7)
(8)
式中,R(t)为t时刻给定的输入,即给定的俯仰角的角度值;e(t)为t时刻输出和给定的偏差;xi(t)表示t时刻单神经元的状态输入信号,即t时刻四旋翼与给定信号的偏差;ωi(t)为t时刻xi(t)的权值系数;u(t)表示t时刻单神经元状态输出值;K为神经元的比例系数,K值的大小决定系统调节的速度,适当的增大K值可以提高系统的响应时间,但过大会使系统出现过大超调甚至系统发散,过小会使系统的响应时间变长,系统的随动性能变差;ηp、ηi、ηd分别为PID中比例、积分、微分的学习速率;h(t)为性能指标或神经元的递推信号,h(t)=e(t)。
从式(6)~(8)可以看出,其控制规律的形式与增量式PID具有一致形式。
采用Hebb学习规则,通过调节权系数,可以对被控对象进行自动的调节各个系数的权重,以适应被控对象在不同环境下的状态变化。单神经元自适应PID控制规律,相当于可变系数的PID控制器,可以实现高性能、强鲁棒性的要求[7]。
1.2标准二次型性能指标学习算法的PID
在单神经元自适应过程中,为了能够得到参数的最优,从而使四旋翼更快的达到稳定状态,在连续权值的调整中加入二次性能指标,使系统的输出偏差和控制规律的增量加权平方和为最小,间接实现对偏差和控制律增量的约束控制,根据文献[8]可得到标准二次型性能指标学习算法的PID控制公式:
(11)
(12)
(13)
式中的符号参考1.1节。
1.3改进的标准二次型单神经元的PID算法
由于单神经元PID控制算法的稳定性,完全取决于K值的大小,因此K值的变化会影响到整个系统的稳定性[9],而在标准二次型单神经元PID算法中,K值恒定不变的,而四旋翼对于系统的实时性要求较高,从而易导致当误差比较大时,Kp、Ki、Kd的学习速度较慢,导致整个系统的调节速度较慢,而当四旋翼从一个稳定状态改变到另一个稳定状态时,如果在中间过程维持过多时间,可能导致整个四旋翼偏离或者坠机,因此需要根据误差实时的在线调整K值。根据文献[10-11],提出一种可以实时调整的K值方法:
(14)
式中,α为标准二次型神经元的K基准,在实际调整系数时,可以先根据标准二次型的K值调节至最好的状态作为α的值,这样不仅可以保证K值为正,而且可以减少调节参数。β可以根据实际的系统进行分段处理,当误差较大时,可以适当增加β值,相当于间接的增加K值从而增加系统的响应速度;当误差较小时可以将β值变为0,当误差为负数时,可以将β值也变为负数,这样可以增加系统的学习速度。
在实际的四旋翼控制过程中,由于对于平衡的要求较高,不仅需要较短的响应时间,而且不需要较大的超调,从而能够保证平衡状态,因此提出一种超调惩罚措施,即当有超调时,将该处误差放大:
(15)
式中,k0为放大倍数,可以进行分段调整,k0≥0,当误差较小并且是允许的范围之内,可以将k0置为0,停止调节。
上述为改进的单神经元PID控制算法,其算法流程如下:
Step1:根据经验,先调试一组比较好增量式PID参数;
Step2:初始化各个参数,将Kp、Ki、Kd的初值赋值为上述初始值,对Kp、Ki、Kd的学习速率进行初始化,初始化P、Q值;
Step3:根据公式(1)~(3)计算系统偏差;
Step4:根据公式(11)~(13)更新网络的权值系数;
Step5:根据公式(14)更新K值,公式(15)更新误差公式;
Step6:如果达到控制要求,则算法结束,否则返回Step3。
2 仿真与结果分析
2.1四旋翼飞行器高度的PID控制
对于单神经元PID控制算法,不需要建立受控对象的精确模型,可由系统偏差来调整控制量,从而使系统达到期望输出,因此可以选取四旋翼的俯仰通道角度与输出的传递函数[12]做为参考,其他几个通道也可以进行相关分析,其传递函数如下:
由于姿态解算的更新时间为4 ms,因此每一次姿态的都进行控制一次,因此将采样时间定为4 ms,经过抽样以及z反变换,这样被控对象在时域的输入输出关系如(16)所示:
y(t)=2.645 6*y(t-1)-2.302 8*y(t-2)+
0.657*y(t-3)+0.000 4*u(t-1)+
(16)
其中:y(t)表示系统输出量,u(t)表示系统的输入量。
分别使用增量型PID算法,标准二次型单神经元PID算法,以及改进二次型单神经元PID算法,对系统进行阶跃响应及抗干扰性进行仿真。
对于标准增量式的PID,分别选取Kp=10,Ki=0.1,Kd=190;标准二次型单神经元PID算法选取K=3.075,P=0.1,Q=0.1;改进二次型PID选取K=3.075-0.16e(t),当e(t)>0.1时,e(t)=2e(t)时,其阶跃响应如图2所示。
图2 不同算法下的阶跃响应
为了可以更好地观察其超调,局部放大图如图3所示。
图3 阶跃响应局部放大图
其中横轴代表时间,纵轴代表输入为阶跃响应时的输出响应。由图2和3可以看出,增量式PID和标准二次型单神经元PID的调节时间基本一致,都在0.25 s左右,但是改进的二次型单神经元的调节时间为0.03 s左右,远远小于其他两种算法。其中对于超调,标准二次型单神经元的超调最大,其次是增量式PID,而改进的二次型单神经元PID控制算法的超调最小。
由于四旋翼在实际环境中会遇到各种各样的干扰信号,对于算法的鲁棒性要求高,因此需要进行抗干扰测试。分别在第200步时对系统添加10%的干扰信号,通过Matlab对其输出响应仿真,结果如图4所示。
图4 干扰信号下的各个算法的仿真曲线
其坐标与图3的坐标的意思一致。由图4可知,改进的二次型单神经元PID算法,具有比其他两种更好的鲁棒性能,可以在最短的时间内恢复到期望输出。
Kp、Ki、Kd三个参数在有干扰信号下的学习过程如图5所示。
图5 干扰信号下Kp、Ki和Kd三个参数的学习过程
其中横轴表示时间,纵轴表示Kp、Ki、Kd的随着时间的变化而变化的值。由仿真结果可知:Kp,Ki和Kd具有很快的学习速率,且在干扰信号下能够实时的调整自身的值。
3 结论
改进的二次型单神经元PID控制器具有较强的收敛速度、控制输出平稳、自适应强和强鲁棒性等优点,解决了四旋翼随着环境变化而不能调整控制参数的问题。根据实验结果仿真与实验,所提算法不仅具有调节时间短,且鲁棒性强,可有效应用于四旋翼飞行器中。
[1] 张镭,李浩. 四旋翼飞行器模糊 PID 姿态控制[J]. 计算机仿真,2014,31(8): 73-77.
[2] Gautam D,Ha C. Control of a quadrotor using a smart self-tuning fuzzy PID controller[J]. International Journal of Advanced Robotic Systems,2013,10.
[3] 牛志玲,潘晓萌. 基于双种群遗传算法的四旋翼飞行器 PID 参数整定方法[J]. 计算机测量与控制,2014,22(4): 1230-1232.
[4] Mohammed M J,Rashid M T,Ali A A. Design optimal PID controller for quad rotor system[J]. International Journal of Computer Applications,2014,106(3).
[5] 赵帮俊. 基于 PID 神经网络的四旋翼飞行器控制系统研究[J]. 科学与财富,2014 (12): 189-190.
[6] Fang H,Yu X. Design and simulation of neuron PID Controller[A]. 2011 International Conference on Information Technology,Computer Engineering and Management Sciences (ICM)[C]. IEEE,2011,1: 80-82.
[7] 马菲,马清华,杨凯,等. 毫米波导引头预定回路改进单神经元控制[J]. 弹箭与制导学报,2015(1):41-44.
[8] 刘金琨. 先进 PID 控制 MATLAB 仿真[M]. 北京:电子工业出版社,2004.
[9] 侯一民,朱志超. 单神经元 PID 控制算法在智能车控制系统的应用[J]. 化工自动化及仪表,2015(2): 003.
[10] Wang B,Sun Y,Cao J,et al. Control and simulation of an underwater robot using single neuron PID control based on immune feedback mechanism[A]. 2010 8th World Congress on Intelligent Control and Automation (WCICA)[C]. IEEE,2010: 2507-2511.
[11] Wang W,Gao X Z. A single neuron PID controller based on immune tuning and its application[A].2010 Sixth International Conference on Natural Computation (ICNC)[C]. IEEE,2010,6: 2831-2836.
[12] 李俊,李运堂. 四旋翼飞行器的动力学建模及PID控制[J]. 辽宁工程技术大学学报(自然科学版),2012(1):114-117.
Design of Quadrotor PID Controller Based on Improved Single Neuron
Yao Le1,2,3,Guan Yepeng1,Jin Xing2,3
(1.School of Communication and Information Engineering,Shanghai University,Shanghai200444,China; 2.Shanghai Institute of Microsystem and Information Technology,Shanghai200050,China; 3.Zhejiang Autorock Electronics Co.,Ltd,Hangzhou311228,China)
When PID controller is adopted to control quadrotor attitude angle,one of difficult problems is how to self-tune parameters of controller with the variance of circumstance,which affects the stability of quadrotor. An improved single neuron PID controller is proposed. The algorithm improved K value formula of single neuron PID control to improve the Kp,Ki,Kd learning rate,which increase the response speed of the system; by increasing the overshoot punitive measures,through appropriate zoom in or out overshoot,overshoot can be minimized. By comparing with standard PID controller and standard quadratic single neuron PID algorithm and simulating,the result shows that the algorithm has a strong self-tuning,quick response,strong robustness and a good stability.
quadrotor; single neuron PID control
1671-4598(2016)04-0068-03DOI:10.16526/j.cnki.11-4762/tp.2016.04.021
TP15
A
2015-09-11;
2015-11-02。
姚乐(1991-),男,山西运城人,硕士研究生,主要从事嵌入式软件方向的研究。