基于PID神经网络的三自由度直升机控制

2018-02-09 07:18王晓东
计算机与数字工程 2018年1期
关键词:旋转轴权值神经元

周 唯 王晓东

(昆明理工大学信息工程与自动化学院 昆明 650500)

1 引言

三自由度直升机模型是一个高度非线性,强耦合的多变量控制系统。对它的研究成果可以为直升机研制提供有力参考。本文的目的是实现三自由度直升机良好的姿态控制。基于传统PID的控制方法[1]虽然对SISO控制系统鲁棒性好,但是对多变量强耦合控制系统而言表现不佳。传统的PID控制方法使用在三自由度直升机上,俯仰轴和横滚轴的去耦合效果差。现代控制理论处理多线性多变量问题具有优势[2~3],三自由度直升机的数学模型是一个典型的仿射非线性系统多变量强耦合控制系统,尽管利用现代控制理论方法处理经过简化后的三自由度直升机取得了比较好的仿真效果,但控制器在实际应用中很难实现姿态的无差控制,产生的误差无法接受。以上提到的方法主要的缺陷是:在建立三自由度直升机数学模型过程中某些非线性环节被忽略,这种忽略大多是没有严格的依据,仅仅是为了适合控制理论中的某些线性的数学模型,最终根据线性系统和理论设计得到的控制器很难达到满意的控制品质。随着人工智能的兴起,智能型的控制算法逐渐出现,使得对复杂控制系统的控制更加的简洁。本文使用PID神经网络多变量控制算法[4~5]对三自由度直升机的姿态控制效果好,控制器设计方便,克服了传统方法的不足。

2 三自由度直升机系统模型

三自由度直升机系统模型在三个维度上运动,其模拟的是纵列式双旋翼结构直升机,比如美国的中型运输直升机(支奴干纵列式双旋翼结构直升机CH-47)就是代表。如图1所示,三自由度直升机研究平台由直升机本体,俯仰机架杆,重力块,偏航机架杆,基座,集电环,三个角度传感器组成。直升机本体由两个螺旋桨电机驱动叶片提供直升机系统运动的动力。俯仰机架杆两端分别连接重力块和直升机本体。偏航轴机架杆支撑俯仰轴机架杆。三个角度传感器实时测量系统在俯仰,滚动,偏航这三个维度上的角度。定义三自由度直升机的俯仰角(Pitch)为 α ,横滚角(Elevation)为 θ ,偏航角(Travel)为ϕ,也称为旋转角。安装在基座中的集电环保证了直升机本体和控制台之间的信号传送不受直升机转动的影响。三自由度直升机实验平台的控制目标是俯仰角度,旋转角度的跟踪控制,同时控制横滚角在一定的范围内变动。取俯仰轴水平时α=π/2rad,滚动轴水平时θ=0rad,旋转角初始位置ϕ=0rad。本文要求达到的控制指标是位置跟踪误差要小。俯仰角控制在机械结构允许的最小角度和最大角度之间[0.262,1.134]rad,控制误差要求小于0.01rad。横滚角在实际的控制中要求动态响应时角度在正负0.13rad内,即是正负15°。旋转轴可以在全局范围内达到任意位置,要求控制位置误差小于0.045rad(小于5°)。

图1 三自由度直升机示意图

2.1 俯仰轴(Elevation axis)建模

俯仰运动是靠前向电机和后向电机驱动两个螺旋桨产生的升力和系统的重力在俯仰机架上产生的合力矩来驱动的。前向电机的电压输入Vf,后向电机的输入Vb。电机驱动螺旋桨产生的升力近似和电机的输入电压成正比例,Kf为螺旋桨产生的升力和输入电压的比值。则单个螺旋桨的输入电压V和输出升力F之间的关系:

俯仰轴的转动惯量是Je,直升机本体到俯仰轴支点距离La,前向、后向电机的输入电压分别为Vf,Vb,俯仰轴自重产生的关于俯仰轴支点的力矩是Fgsinα。则俯仰轴的动力学方程如下:

2.2 滚动轴(Pitch axis)建模

前向电机和后向电机的驱动力不相等时,作用在滚动轴上的合力矩不为零,此时滚动轴被驱动。滚动轴转动惯量为Jp,电机到转轴之间的距离为Lh,直升机的升力是垂直于滚动轴的。则滚动轴动力学方程如下:

2.3 旋转轴(Travel axis)建模

直升机的旋转运动是由于在直升机产生俯仰角后在水平面产生了相对于旋转轴的力矩,此力矩使直升机在水平面转动。直升机旋转轴转动惯量Jt=Je,旋转平面上的受力是Kf(Vf+Vb)sinθ,受力点到旋转轴距离La,力的方向与旋转轴之间的夹角为α。则旋转轴的动力学方程如下:

在直升机的实际控制中首先是控制俯仰角稳定,再次控制旋转角。这样在控制旋转角时方程(2)是稳定的,有如下方程:

把式(5)代入式(4)可得:

综上所述,由式(1)~(6)三自由度直升机的数学模型如下:

表1 系统参数

由式(7)可以看出三自由度直升机系统是一个多输入多输出,强耦合,非线性的系统。对上述系统直接设计控制器是十分困难的。通常的做法是在式(7)的基础上进行近似处理,使得系统用线性系统来近似,再利用线性系统设计的相关理论进行控制器设计,这样做的好处是简化了设计控制器的过程,缺点是在线性化过程中往往忽略了在系统动态响应过程中起重要作用的非线性部分,在强耦合系统中这样处理往往会难以解耦。可以看出,当俯仰角控制时,俯仰轴上的重力对俯仰轴支点产生的力矩是随着俯仰角度的变化而变化的;当机体绕轴做横滚运动时,机体在俯仰轴上产生的俯仰动力力矩会随着横滚角度的变化而变化,这样会对俯仰轴的位置稳定带来干扰。因此本文使用的PID神经网络多变量控制方法可以对三自由度直升机的俯仰轴和滚动轴起到很好的解耦作用,同时俯仰轴可以达到满意的跟踪效果。在仿真和实验中可以得到满意的控制效果。

3 PID神经网络控制原理

PID神经网络多变量控制可以对多变量强耦合的非线性系统进行有效的控制,PID神经网络多变量控制是以单层的PID神经网络控制为基础的。单层的 PID 神经网络控制器[6]NNC(Neural Network Controller)可以对SISO控制对象进行控制,且不需要对建模后的复杂数学模型进行精确的计算,也不需要对控制对象进行辨识就可以对系统进行有效的控制,图2是PID单变量神经网络控制原理。由于PID神经网络控制器的参数是需要学习来确定的,所以必须在数学模型的基础上进行仿真,仿真过程是对PID神经网络中的权值矩阵进行初始的学习确定,学习完成的控制器才可以在实际的控制对象中使用。单层的PID神经网络控制器是PID神经网络多变量控制的基础[7]。下面是单层PID神经网络控制的原理如图PID单变量控制原理。其中r1是控制指令的给定,r2是目标控制变量的反馈。

图2 PID单变量控制原理

PID神经网络多变量控制的控制对象P是具有n个输入和n个输出且内部具有强耦合的n变量的非线性系统,图3是PID多变量神经网络控制原理。这样系统在设计控制器会面临系统解耦的问题。多变量的PID神经网络控制方法可以利用多个神经网络之间的输出层之间的耦合实现控制率的解耦。已知控制器NNC由n个PID神经子网络组成,神经子网络的输入层至隐含层是各自独立的;隐含层至输出之间不独立,相互有连接权,各个子网络的隐含层中的三个神经元分别为比例(P),积分(I),微分(D)单元。这样,一个n输入和n输出的多变量耦合非线性系统的控制器NNC可以表示成 N2n,3n,n。

图3PIDNNC

本文使用的是两个神经网络构成的PID神经网络多变量控制器的控制算法,即是三自由度直升机的高度轴和俯仰轴的角度控制器。

1)控制器输入层神经元的输入和输出

输入层神经元的输入与输出相等:R=[r1,y1,r2,y2]=[r11,r12,r21,r22]式中,r1是高度轴跟踪指令,y1是高度轴的输出;r2是俯仰轴跟踪指令,y2是俯仰轴的输出;R是控制器的输入。

2)隐含层神经元的输入和输出

神经元的隐含层之间的信息流是没有耦合的,所以每一个神经元的隐含层权值矩阵单独计算。第s个子网络隐含层第i个节点的输入为

其中1Ws是第s个子网络输入层到隐含层的权值矩阵,3×2的实数矩阵,1wsij是1Ws中的元素,是第s个子网络输入层第j个节点至隐含层第i个节点的权值。

隐含层的输出是xsi(k)输入经过非线性调节器计算输出,非线性PID调节器的输出计算如下:

(1)比例环节:

(2)积分环节:

(3)微分环节:

第s个神经元隐含层的输出为:qs=[qs1,qs2,qs3]T。

3)输出层神经元的输入和输出

输出层神经元的输入是各个神经元的输出的加权和。输出层第h节点的输入

PID神经网络控制器与多变量被控对象一起作为广义网络,采用反向传播(BP)学习算法对隐含层和输出层的权值矩阵进行调整,使得控制对象的输出和控制给定的误差二范数准则指标在给定的限度内。

三自由度的高度轴和俯仰轴是耦合的、非线性的。采用两个PID神经元和控制对象组成的广义网络在实行跟踪控制。准则函数:

根据BP网络的调整算法可分为两个部分:输出层权值学习调整;隐含层权值学习调整。

输出层权值调整算法:

可以推导出输出层梯度:

输入层至隐含层权值调整算法为

可以推导出输出层梯度:

此控制器是稳定的,可以参考文献[8],至此设计了三自由度直升机的两个自由度通道的控制器。

旋转轴位置跟踪设计成PID控制器设计,可以把式(6)右端横滚角θ看成式(6)的输入,则简化后的表达式 Jtϕ̇=Fgθ ,进行拉普拉斯变换后

首先加入PD控制器,定义旋转角误差e=ϕc-ϕ ,则输入 uβ=Kke+Kdė,Kk为比例系数,Kd为微分系数。闭环传递函数:

按照二阶系统响应选取阻尼比ξ=0.707设计系统PD控制器参数。再加入积分环节,实现旋转角的无静差控制。通过计算和调试选取的控制器为:Kk=0.55,Kd=1.66,Ki=1.11。

4 仿真硬件和软件平台介绍

仿真和实验均是在Matlab/Simulink环境下实现。其中仿真是在Simulink的normal模式仿真环境下实现的。实验是通过Matlab/Simulink的实时工具箱RTW(Real-Time Workshop)实现实时控制[9]。在Matlab中的Simulink中进行仿真实验,确定以上两输入两输出多变量PID神经网络的隐含层,输出层和学习调整速率h的值,以便在控制对象使用。仿真程序有两部分组成:PID神经网络控制程序;控制对象的非线性强耦合数学模型。实现方式是利用Matlab中强大的S函数实现。每个采样时间采用Runge-Kutta迭代算法求解控制对象的微分方程。实验中采用“ode45”积分求解。仿真学习过程分为两个部分:在滚动轴平衡条件下按照正弦指令训练俯仰轴通道PID神经网络权值参数;在俯仰轴水平条件下按照正弦指令训练滚动轴通道PID神经网络权值参数。仿真时分别给定俯仰轴和滚动轴进行仿真,给定的指令信号分别为[10]:高度 轴 y1=sint,y2=0;俯 仰 轴 y1=0,y2=0.1sint。仿真中两个神经元的隐含层和输出层的权值矩阵取值按随机赋予(-1,1)之间的实数。经过多次仿真调试,隐含层的学习速度ηshi统一取值0.2,输出层权值矩阵的学习速度ηsij统一取0.05。学习目标取ε=0.01。

图4 仿真程序图

通过仿真调试得到的结果如下:

俯仰轴和横滚轴仿真学习训练过程如图5所示。

图5 俯仰轴和横滚轴仿真训练

从仿真结果可以看出,单独进行俯仰轴参数仿真学习时俯仰轴进行俯仰角度正弦指令跟踪比较迅速。在4s之前,俯仰角迅速调整,滚动轴在比较小的范围内抖动,但是不影响飞机本体的平衡性;在4s以后俯仰角迅速跟踪俯仰角正弦指令,横滚角的微小滚动还在持续,飞机的平稳性依旧良好。

图6 仿真训练误差

PID神经网络多变量控制在Matlab中的学习过程误差见图误差图,从中可以看出系统的综合误差在5s之前在迅速的调整。在5s以后误差ε≤0.01。通过仿真确定了隐含层和输出层的权值矩阵参数,使用得到的权值参数进行俯仰轴阶跃响应的仿真实验,结果如图7所示。

图7 俯仰轴仿真

从图7俯仰轴仿真仿真的结果中可以看到,俯仰轴的阶跃响应迅速,系统的调节时间为2.1s,超调量较大接近60%,系统的稳态误差几乎为0,伴随着微小抖动。滚动轴有微小抖动,抖动范围自由±0.05rad。仿真的阶跃响应控制品质基本达到要求。

由于控制系统使用的控制程序是在Simulink中进行搭建的,使用S函数编写的控制器程序可以直接地移植到实时的控制程序中。在系统控制中受到客观的条件限制 5π/18<α<2π/3,-π/6<ϕ<π/6。直升机静置状态下的俯仰轴α=0.26rad,滚动轴θ=0rad。实时控制系统先控制俯仰角稳定,再给定旋转角1.5rad图8是实际的传统PID控制曲线。

图8 传统PID控制结果

从表2传统PID控制指标中可以明显的看到俯仰角跟踪过程较慢,超调小,调节时间越14s,无静态误差。但是在旋转角给定后,横滚角有较大的低头现象,在的抖动范围在±0.6rad(约±35°)。在横滚角抖动的过程中极大的影响了俯仰角的位置,造成俯仰角出现了约-0.2rad(约-12°)的减小。综合可以看出:使用传统PID控制方法忽略了横滚角变化时直升机产生了俯仰角方向力矩变化,这种非线性的力矩变化对俯仰角影响很大;俯仰角单独的控制时,横滚角的抖动非常大达到了正负三十五度。这样的大抖动极大的降低了控制品质。旋转轴的调节时间15s,超调较小。本文提出了PID神经网络多变量控制可以解决这个问题。

表2 传统PID控制指标

从图9 PID神经网络控制结果和表格3PID神经网络控制指标中可以明显的看到俯仰角跟踪过程迅速,上升时间3s,超调位0,调节时间越35s,无静态误差。可以看出相比于传统的PID控制方法,PID神经网络控制的俯仰轴响应达到了更好的控制指标。当俯仰角给定后,旋转角给定1.5rad时,俯仰角没有出现低头现象,同时横滚角的变化较小在[-0.2,0.2]rad之间,满足了横滚角的控制要求,但是这样的控制方法保守,使得旋转角的响应速度变慢,超调增加。

图9 PID神经网络控制

表3 PID神经网络控制指标

5 结语

根据仿真和实验结果,可以得出本文使用的PID神经网络控制方法在三自由度直升机模型上是适用的,并且取得了较好的效果。解决了在控制旋转角时由耦合造成俯仰角低头的现象。最终俯仰角动态响应迅速,跟踪准确;旋转角跟踪准确,但响应较慢。

猜你喜欢
旋转轴权值神经元
一种融合时间权值和用户行为序列的电影推荐模型
基于5G MR实现Massive MIMO权值智能寻优的技术方案研究
AI讲座:神经网络的空间对应
链轮焊接辅助工装设计
一种基于互连测试的综合优化算法∗
一种新型铝锭夹钳的设计与应用
浅析微积分中求旋转体体积的技巧
仿生芯片可再现生物神经元行为
程序属性的检测与程序属性的分类
铁饼四个旋转轴的技术重点组合教学设计