一种基于CMAC-滑膜一体化控制的无人机半物理仿真控制
方法
技术领域
本发明属于飞行器控制、信息处理领域,具体涉及一种基于CMAC-滑膜一体化控制的无人机半物理仿真控制方法。
背景技术
常见无人机按其结构可分为固定翼无人机和旋翼式无人机,与固定翼无人机相比,旋翼无人机具有能够向后飞行、垂直起降和悬停的特点,对起飞、降落场地的条件要求很少,控制起来非常灵活,能够满足多种用途,因此旋翼无人机具有更大的研究价值。四旋翼飞行器与普通旋翼飞行器相比,具有结构简单、故障率低、控制灵活和单位体积能够产生更大的升力等优点,并且非常适合在狭小的空间内执行任务,拥有广泛的应用前景。
但是四旋翼飞行器同时又是一个典型的欠驱动系统,具有多变量、强耦合、非线性等特性的系统,而且涉及学科多,领域广,包括机体的合理设计、传感器数据的融合、整机的控制算法等。加上飞行过程中状态复杂,飞行器本身承受多种物理作用和气流等外部环境的干扰,如旋翼的弹性形变、振动、机身自旋等问题,以及传感器的温漂对控制性能产生的影响。此外,无人机现场调试时会出现的各种问题,比如“炸机”等伤人的危险发生。上述问题给飞行器及其控制系统的设计带来很大的困难。
发明内容
本发明的目的在于一种基于CMAC-滑膜一体化控制的无人机半物理仿真控制方法,以克服上述现有技术存在的缺陷,本发明提高了控制精度,可以使程序在低成本处理器下实时运行,并达到精确控制,数据收敛更快,精度更高。
为达到上述目的,本发明采用如下技术方案:
一种基于CMAC-滑膜一体化控制的无人机半物理仿真控制方法,包括以下步骤:
步骤1:在MATLAB/Simulink上建立基于CMAC-滑模一体化控制的模型;
步骤2:在LabVIEW上建立控制该模型的地面站;
步骤3:根据LabVIEW给定无人机模型飞行指令,通过CMAC-滑模一体化控制模型输出控制量,最终控制飞行器姿态。
进一步地,步骤一中基于CMAC-滑模一体化控制的模型的建立方法包括以下步骤:
步骤1.1:设计滑模位置控制律;
步骤1.2:设计滑模姿态控制律;
步骤1.3:设计CMAC小脑模型神经网络;
步骤1.4:整合滑模控制和CMAC小脑模型神经网络,得到基于CMAC-滑模一体化控制的模型。
进一步地,步骤1.1中设计滑模位置控制律,以实现位移x→0,位移y→0,位移z→zd,具体方法如下:
四旋翼无人机动力学模型如下:
其中,x,y,z是位移,θ是俯仰角角,ψ是偏航角,φ是翻滚角,u1是位置控制量,u2,u3,u4是姿态控制量,g是重力加速度,m是质量,l是机臂长度,I1,I2,I3是无人机转动惯量,di是扰动,Ki是阻力系数,其中i=1,2,3,4,5,6;
由式(3-1),定义
则位置状态模型变为:
设计滑模面函数s(x):
其中,s1是x方向控制的滑模面,s2是y方向控制的滑模面,s3是z方向控制的滑模面,x,y,z是位移,zd是给定信号,ze是位移误差,c1,c2,c3是滑模系数;
首先对第一个位置子系统,有:
取第一个位置子系统的滑模位置控制律为:
其中η1≥D1,k1>0,D1是扰动上限,η1和k1是控制律参数,则
同理针对于第二个位置子系统和第三个位置子系统的滑模位置控制率为:
其中,η2和k2,η3和k3是控制律参数;
假设满足控制律(3-6)(3-9)(3-10)所需的姿态角度为θd和ψd,为了实现俯仰角θ和偏航角ψ对目标俯仰角θd和目标偏航角ψd的跟踪,对其进行求解,其中φ是翻滚角,φd是目标翻滚角,由式(3-2)得
在式(3-12)中,令
X设定上下限为[-1,1],以保证θ
d存在,求解完θ
d和ψ
d之后,根据式(3-2)得出位置子控制器的输出u
1。
进一步地,步骤1.2中设计滑模姿态控制律,以实现俯仰角θ→θd,偏航角ψ→ψd,翻滚角φ→φd
其中,针对(3-13)设计滑模函数s(x):
其中,s4是俯仰角控制的滑模面,s5是偏航角控制的滑模面,s6是翻滚角控制的滑模面,c4,c5,c6是滑模系数;
对于第一个姿态角子系统,有
取滑模姿态控制律为:
其中,η4≥D4,k4>0,D4是扰动上限,η4和k4是控制律参数,则:
因为
所以保证了s
4指数收敛,即θ及θ
d指数收敛于零;
同理针对于第二个姿态子系统和第三姿态子系统的滑模姿态控制率为:
其中,η5和k5,η6和k6是控制律参数。
进一步地,步骤1.3中设计CMAC小脑模型神经网络具体为:
CMAC网络的整体构架一共有四层,分别为输入层、虚拟联想层、物理存储空间以及输出层;
M=m·(nb-1)+1 (4-1)
W=m·nbn (4-2)
第一层是输入层,设有n维输入,每一维有m层,每层有nb块,根据公式(4-1)计算出输入大小范围的等分块数M,通过(4-2)得到所需权值地址空间大小,根据输入利用式(4-3)进行量化,其中xmax和xmin为输入的大小范围,在式(4-4)中,j为当前遍历的层数,abs(t)用于取t的绝对值,floor()函数的作用是对参数向上取整,经过处理得到的k就是输入对应的等分块序号;
t=(u-xmin)·M/(xmax-xmin) (4-3)
k=floor((abs(t)+m-j)/m) (4-4)
第二层是虚拟联想空间,得到的k值之后,把不同维间的同一层的权值索引进行联合,之后把所有层的权值索引求和,即得到物理存储空间地址;
第三层是物理存储空间,根据上一层给出的地址值在实际物理地址上找到对应的权值;
第四层是输出层,承接第三层,根据第三层选出的权值累加求和得到CMAC小脑模型神经网络的输出;
CMAC小脑模型神经网络的权值存储方法具体为:实际物理地址存储即权值存储,每次有新的权值激活的时候,都紧接上一个权值后面存储,把权值地址矩阵从第一位开始使用,保证前面没有闲置的空间,即在原CMAC基础上再加一层,把实际存储器AP虚拟化,不再对应实际物理地址空间。
进一步地,步骤1.4具体为:对滑模控制器使用CMAC神经网络监督控制的控制方法在线学习,得到基于CMAC-滑模一体化控制的模型。
与现有技术相比,本发明具有以下有益的技术效果:
本发明方法使用基于CMAC-滑模一体化控制器提高了控制精度,可以使程序在低成本处理器下实时运行。对于给定跟踪目标相同的情况下,利用传统PID控制下翻滚角在大概6s处达到稳定状态,而Z位置到达目标10m处需要20s;利用增稳积分反步法控制下翻滚角在4s处达到稳定,Z位置到达10m的时间是10s;利用本发明设计的CMAC-滑模控制时翻滚角大概在0.2s处到达稳定状态,Z位置在0.25s时到达10m目标位置。这三种控制方法都能有效抑制超调和余差,除此之外可以明显看出CMAC-滑模控制器控制结合控制的方法在快速性以及鲁棒性方面性能更优,在实际应用中具有很明显的优势。并达到精确控制,数据收敛更快,精度更高。
附图说明
图1为本发明方法总体流程图;
图2为传统PID控制跟踪翻滚角与Z位移,其中(a)为翻滚角控制图,(b)为Z位移控制图;
图3为增稳积分反步法控制跟踪翻滚角与Z位移,其中(a)为翻滚角控制图,(b)为Z位移控制图;
图4为CMAC-滑模一体化控制器控制跟踪翻滚角与Z位移,其中(a)为翻滚角控制图,(b)为Z位移控制图;
图5为本发明滑模控制输出和CMAC的输出比较图,其中(a)为滑模控制输出;(b)为CMAC的输出;
图6为帧格式示意图。
具体实施方式
下面结合附图对本发明作进一步详细描述:
参见图1,本发明利用神经网络监督控制,使神经网络在线学习传统控制器,逐步取代传统控制器在系统中的控制作用,过程中采用的陀螺仪为MPU-6050六轴传感器,飞控为STM32F407,电机驱动器为电子调速器,电机为无刷电机,仿真系统为基于SIT工具箱的MATLAB/Simulink和LabVIEW的协同编程。
一种基于CMAC-滑模一体化控制的无人机半物理仿真控制系统的控制方法,包括以下步骤:
步骤一:在MATLAB/Simulink上建立基于CMAC-滑模一体化控制的模型;
步骤二:在LabVIEW上建立控制该模型的地面站;
步骤三:根据LabVIEW给定无人机模型飞行指令,通过CMAC-滑模一体化控制器输出控制量,最终控制飞行器姿态。
步骤一中设计CMAC-滑模一体化控制器的设计方法为:
A)滑模位置控制律设计;
设计位置控制律,实现位移x→0,位移y→0,位移z→zd。
四旋翼无人机动力学模型:
其中,x,y,z是位移,θ是俯仰角角,ψ是偏航角,φ是翻滚角,u1是位置控制量,u2,u3,u4是姿态控制量,g是重力加速度,m是质量,l是机臂长度,I1,I2,I3是无人机转动惯量,di是扰动,Ki是阻力系数(i=1,2,3,4,5,6);
由式(3-1),定义
则位置状态模型变为:
设计滑模面函数s(x):
其中,s1是x方向控制的滑模面,s2是y方向控制的滑模面,s3是z方向控制的滑模面,x,y,z是位移,zd是给定信号,ze是位移误差,c1,c2,c3是滑模系数;
首先是第一个位置子系统,有:
取滑模控制律为:
其中η1≥D1,k1>0,D1是扰动上限,η1和k1是控制律参数,则
同理可得针对于第二,第三位置子系统的滑模控制率为:
其中,η2和k2,η3和k3是控制律参数;
假设满足控制律(3-6)(3-9)(3-10)所需的姿态角度为θd和ψd,为了实现俯仰角θ和偏航角ψ对目标俯仰角θd和目标偏航角ψd的跟踪,对其进行求解,其中φ是翻滚角,φd是目标翻滚角,由式(3-2)可得
在式(3-12)中,当
超过[-1,1],就会造成θ
d不存在,应当对x设定上下限为[-1,1],保证θ
d存在。求解完θ
d和ψ
d之后,就可以根据式(3-2)的出位置子控制器的输出u
1。
B)滑模姿态控制律设计;
设计姿态子系统滑模控制律,实现俯仰角θ→θd,偏航角ψ→ψd,翻滚角φ→φd
其中,针对(3-13)设计滑模函数s(x):
其中,s4是俯仰角控制的滑模面,s5是偏航角控制的滑模面,s6是翻滚角控制的滑模面,c4,c5,c6是滑模系数;
对于第一个姿态角子系统,有
取滑模控制律为:
其中,η4≥D4,k4>0,D4是扰动上限,η4和k4是控制律参数,则:
因为
所以保证了s
4指数收敛,即θ及θ
d指数收敛于零。
同理可得针对于第二,第三姿态子系统的滑模控制率为:
其中,η5和k5,η6和k6是控制律参数。
C)CMAC小脑模型神经网络设计;
CMAC网络的整体构架一共有输入层,虚拟联想层,物理存储空间,输出层这四层。
M=m·(nb-1)+1 (4-1)
W=m·nbn (4-2)
第一层是输入层,设有n维输入,每一维有m层,每层有nb块,根据公式(4-1)计算出输入大小范围的等分块数M,通过(4-2)可得所需权值地址空间大小,根据输入利用式(4-3)进行量化,其中xmax和xmin为输入的大小范围。在式(4-4)中,j为当前遍历的层数,abs(t)用于取t的绝对值,floor()函数的作用是对参数向上取整,这些函数都是MATLAB中的自带数据处理函数。经过处理得到的k就是输入对应的等分块序号。
t=(u-xmin)·M/(xmax-xmin) (4-3)
k=floor((abs(t)+m-j)/m) (4-4)
第二层是虚拟联想空间,得到的k值之后,把不同维间的同一层的权值索引进行联合,之后把所有层的权值索引求和,得到的就是物理存储空间地址;
第三层是物理存储空间,也就是根据上一层给出的地址值在实际物理地址上找到对应的权值;
第四层即输出层,承接第三层,根据第三层选出的权值累加求和得到的就是CMAC小脑模型神经网络的输出。
改进CMAC小脑模型神经网络的权值存储方法具体为:对于权值存储,使用传统方法哈希映射还是不能使地址空间得到充分的使用,虽然已经大大减小了硬件的开销。使每次有新的权值激活的时候,都紧接上一个权值后面存储。这样,把权值地址矩阵从第一位开始使用,保证了前面没有闲置的空间。也就是说,在原来CMAC基础上再加一层,把实际存储器AP虚拟化,不再对应实际物理地址空间。
定义每次进行更新的一帧数据,格式如图6:
其中,B到I列为激活的权值,这里我选择的泛化系数c为8,所以对应8个块。A为B对应的实际地址,J为I对应的实际地址。因为激活的地址都是连续的,所以剩下的块的地址都是可以确定的。按照这样定义,每次在权值进行读取和更新时,遍历一遍权值矩阵,每次间隔10个进行匹配,比较A和J的值,进行判断更新读取。在操作检索过程中主要进行如下几方面考虑:
(1)匹配或读取到的权值矩阵的值与J的值相同,则权值矩阵中该位置往前8位就是目标更新或读取的值;
(2)匹配或读取到的权值矩阵的值与J的值不同,但是其差值的绝对值小于8,说明有重合部分,这个地方体现了CMAC小脑神经网络的泛化能力,则根据差值进行判断更新或读取的个数;
(3)匹配或读取到的权值矩阵的值与J的值不同,此时权值矩阵中该值为零,说明遍历完了权值矩阵中已经使用的部分,如果前面没有遇到权值矩阵的值与J的值相同的,在为零的位置新建一个存放区域;如果前面已经遇到权值矩阵的值与J的值相同的,在为零的位置不用新建,直接结束;
(4)对于权值更新和读取的过程大致相同,有一点的区别。在权值更新时,需要遍历完已经使用过的权值矩阵;而在读取时,当把需要的8个块读到之后就可以结束遍历,不需要遍历完。
D)整合滑模控制和CMAC小脑模型神经网络;
对传统滑模控制器使用CMAC神经网络监督控制的控制方法在线学习取代传统控制器。
在图2中,利用传统PID控制下翻滚角在大概6s处达到稳定状态,而Z位置到达目标10m处需要20s;在图3中,利用增稳积分反步法控制下翻滚角在4s处达到稳定,Z位置到达10m的时间是10s;在图4中,利用本发明设计的CMAC滑模控制时翻滚角大概在0.2s处到达稳定状态,Z位置在0.25s时到达10m目标位置。这三种控制方法都能有效抑制超调和余差,除此之外从图5可以明显看出CMAC滑模控制器控制结合控制的方法在快速性以及鲁棒性方面性能更优,在实际应用中具有很明显的优势。