飞机在大迎角过失速机动飞行时,气动力具有非定常和非线性的特性,而非线性、非定常气动力的预测,对新一代战斗机设计具有十分重要的意义。随着人工智能技术的发展,神经网络在非线性系统辨识中得到了一定应用,如径向基神经网络[1]、模糊神经网络[2]和自适应神经网络[3]。但这些网络本质上都是前向的静态网络,并不能很好的反映系统的动态特性。而循环神经网络是一种具有反馈结构的神经网络,可以反映系统随时间变化的动态特性,并且可以储存信息。网络的输出不仅与当前的网络输入和权值有关,还与网络之前的输入有关,从而可以表现出非线性系统的动态特性。循环神经网络在非线性系统辨识中已得到应用[4-6], 能够对大部分非线性系统进行建模,但找到一种权值修正的方法使其收敛到有效的模型仍是一个亟待解决的问题。
EKF算法具有较快的收敛速度,但是收敛精度不高[7], 已经被用在循环神经网络[8],而实时递归学习算法[9]作为一种在线训练算法,对于样本数据可以进行不断的学习,在每一时间节点都对网络权值进行调整,对复杂非线性问题的处理具有一定优势,能更精确的模拟非线性系统的动态特性,但是其计算量大,训练速度较慢[10]。
本文采用循环神经网络,结合EKF和实时递归学习算法的特点,提出一种基于EKF的实时递归学习算法,该算法既具有较快的收敛速度又具有较高的收敛精度, 十分适合于非线性动力学系统的辨识。文中给出了循环神经网络在应用此学习算法下的仿真结果,验证了本文所提算法的有效性。
1 循环神经网络本文中循环神经网络是一种全联接的Elman网络[11],一般由输入层、隐含层、关联层和输出层组成,如图 1。
第一层是输入层,输入层中的第i个节点的输入为:
$ \begin{array}{*{20}{c}} {x_i^1\left( k \right) = {x_i}\left( k \right)}&{\left( {i = 1,2 \cdots {n_1}} \right)} \end{array} $ | (1) |
第二层是隐含层,隐含层中每个神经元都与关联层中的所有神经元相连接, 隐含层第i个节点的输入和输出分别为si2(k)和xi2(k),其中i=1, 2, ...n2:
$ s_i^1\left( k \right) = \sum\limits_{j = 1}^{{n_1}} {\omega _{ij}^1x_j^1\left( k \right)} + \sum\limits_{j = 1}^{{n_2}} {\omega _{ij}^2{c_j}\left( k \right)} $ | (2) |
$ x_i^2\left( k \right) = {f_1}\left( {s_i^1\left( k \right)} \right) $ | (3) |
关联层的输入为隐含层上一时刻的输出,输出等于输入,其第i个节点的输入输出分别为
$ s_i^2\left( k \right) = x_i^2\left( {k - 1} \right) $ | (4) |
$ {c_i}\left( k \right) = s_i^2\left( k \right) $ | (5) |
第三层为输出层,其第i个节点的输入输出分别为:
$ s_i^3\left( k \right) = \sum\limits_{j = 1}^{{n_2}} {\omega _{ij}^3x_j^2\left( k \right)} $ | (6) |
$ {y_i}\left( k \right) = {f_2}\left( {s_i^3\left( k \right)} \right) $ | (7) |
其中,ωij1、ωij2、ωij3分别是隐含层、关联层和输出层的权值矩阵,f1、f2分别是隐含层和输出层的激活函数。f1是一个双曲正切S型激活函数,对任意输入值压缩到(-1,1)范围内;f2是一个线性激活函数。
2 基于EKF的实时递归学习算法实时递归学习算法是一种基于梯度下降法的学习算法,属于在线学习,对k时刻的网络误差函数进行定义:
$ E\left( k \right) = \frac{1}{2}{\left( {{y_d}\left( k \right) - y\left( k \right)} \right)^2} = \frac{1}{2}e{\left( k \right)^2} $ | (8) |
$ e\left( k \right) = {y_d}\left( k \right) - y\left( k \right) $ | (9) |
yd(k)为k时刻的期望输出,e(k)即为k时刻期望输出与网络实际输出之间的误差。则网络权值修正的误差梯度为:
$ - \frac{{\partial E\left( K \right)}}{{\partial \omega }} = - \frac{{\partial E\left( K \right)}}{{\partial y\left( k \right)}} \cdot \frac{{\partial y\left( K \right)}}{{\partial \omega }} $ | (10) |
ω可表示输入层、隐含层和输出层的权值。实时递归学习算法在每一时间节点都通过误差梯度对网络权值进行修正,是一种实时计算,计算量极大。本文引入扩展卡尔曼滤波计算网络权值误差协方差矩阵P,每次计算只保留卡尔曼增益K和误差协方差矩阵P, 用来对网络权值进行修正,因此网络的运行速度很快,可以很好的解决实时计算带来的计算量大的问题。对网络权值的变化由文献[12]确定:
$ \omega \left( k \right) = \omega \left( {k - 1} \right) + \Delta \omega $ | (11) |
ω(k)不仅与k时刻的期望值和网络输出值之间的误差有关,还与上一时刻的网络权值有关,其学习过程根据文献[13]进行:
$ \begin{array}{l} K\left( k \right) = P\left( {k - 1} \right){H^T}\left( k \right) \cdot \\ \;\;\;\;\;\;\;{\left[ {H\left( k \right)P\left( {k - 1} \right){H^T}\left( k \right) + R\left( k \right)} \right]^{ - 1}} \end{array} $ | (12) |
$ \Delta \omega = Ke\left( k \right) $ | (13) |
$ P\left( k \right) = P\left( {k - 1} \right) - K\left( k \right)H\left( k \right)P\left( {k - 1} \right) + Q\left( k \right) $ | (14) |
$ H\left( k \right) = \frac{{\partial y\left( k \right)}}{{\partial \omega \left( k \right)}} $ | (15) |
其中,Q(k)为网络噪声的协方差矩阵,R(k)为实验噪声的协方差矩阵。K时刻网络权值的修正值Δω由此时的卡尔曼增益K(k)和误差e(k)求得,接下来对该时刻的误差协方差矩阵P(k)进行更新,以便用到对下一时刻的网络权值的预测。由此不断把误差协方差矩阵进行递归,每一次运算都只保留上一时刻的P,如此自回归运算下去,使得网络运行速度快。H可由网络误差梯度确定。
对于输出层:
$ \begin{array}{l} {H^3}\left( k \right) = \frac{{\partial {y_i}\left( k \right)}}{{\partial \omega _{ij}^3\left( k \right)}} = \frac{{\partial {y_i}\left( k \right)}}{{\partial s_i^3\left( k \right)}} \cdot \frac{{\partial s_i^3\left( k \right)}}{{\partial \omega _{ij}^3\left( k \right)}}\\ \;\;\;\;\;\;\;\;\;\; = {{f'}_2}\left( {s_i^3\left( k \right)} \right) \cdot x_j^2\left( k \right) \end{array} $ | (16) |
隐含层:
$ \begin{array}{l} {H^1}\left( k \right) = \frac{{\partial {y_l}\left( k \right)}}{{\partial \omega _{ij}^3\left( k \right)}} = \frac{{\partial {y_l}\left( k \right)}}{{\partial s_l^3\left( k \right)}} \cdot \frac{{\partial s_l^3\left( k \right)}}{{\partial x_i^2\left( k \right)}} \cdot \frac{{\partial x_i^2\left( k \right)}}{{\partial \omega _{ij}^1\left( k \right)}}\\ \;\;\;\;\;\;\;\;\;\; = {{f'}_2}\left( {s_i^3\left( k \right)} \right) \cdot \omega _{li}^3 \cdot \frac{{\partial x_i^2\left( k \right)}}{{\partial s_i^1\left( k \right)}} \cdot \frac{{\partial s_i^1\left( k \right)}}{{\partial \omega _{ij}^1\left( k \right)}}\\ \;\;\;\;\;\;\;\;\;\; = {{f'}_2}\left( {s_i^3\left( k \right)} \right) \cdot \omega _{li}^3 \cdot {{f'}_1}\left( {s_i^1\left( k \right)} \right) \cdot \left( {x_j^1\left( k \right) + } \right.\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\;\left. {\sum\limits_{m = 1}^{{n_2}} {\omega _{im}^2} \cdot \frac{{\partial x_m^2\left( {k - 1} \right)}}{{\partial \omega _{ij}^1\left( k \right)}}} \right) \end{array} $ | (17) |
同理,关联层:
$ \begin{array}{l} {H^2}\left( k \right) = {{f'}_2}\left( {s_i^3\left( k \right)} \right) \cdot \omega _{li}^3 \cdot {{f'}_1}\left( {s_i^1\left( k \right)} \right) \cdot \left( {x_j^2\left( {k - 1} \right) + } \right.\\ \;\;\;\;\;\;\;\;\;\;\;\;\;\left. {\sum\limits_{m = 1}^{{n_2}} {\omega _{im}^2} \cdot \frac{{\partial x_m^2\left( {k - 1} \right)}}{{\partial \omega _{ij}^1\left( k \right)}}} \right) \end{array} $ | (18) |
在EKF-RTRL学习算法中,网络噪声协方差矩阵Q(k)、实验噪声协方差矩阵R(k)、网络权值误差协方差矩阵初始值P(1)对算法收敛性是有影响的。根据参考文献[14],初始方差矩阵P(1)对滤波效果影响很小,算法都能较快收敛,所以P(1)可以任意取一个不为零的矩阵,本文中P(1)取为单位对角阵。网络噪声协方差矩阵对结果误差影响较大,随着Q(K)增大而增大,变换较为显著。所以网络噪声协方差矩阵的取值越小越好,可以使用一个很小但不为零的矩阵,本文取Q(K)=10-4×diag([1, 1])。实验噪声协方差矩阵R(K)的取值变大或变小,效果不一定好,在计算时进行了多次的选值调整,使结果最好。
3 算例 3.1 风洞试验本文实验动态机构如图 2,由支撑机构、振荡机构、运动控制机构和数据采集系统组成。支撑机构运动由计算机通过液压传动机构控制,可按任意规律变化。该机构可以实现偏航、滚转以及偏航滚转耦合运动。③和⑧分别是模型偏航角φ和滚转角ϕ的角度编码器。可测量模型运动的偏航角和滚转角。模型迎角θ人工测量。
由坐标变换原理可知,体轴系到地轴系的转换矩阵为Btd,风轴系到体轴系的转换矩阵为Bqt。由于在风洞试验中,气流来流与风洞轴线一致,因此地轴系xd与风轴系xq一致,通过坐标转换:
$ \left[ {\begin{array}{*{20}{c}} 1\\ 0\\ 0 \end{array}} \right] = B_t^dB_q^t\left[ {\begin{array}{*{20}{c}} 1\\ 0\\ 0 \end{array}} \right] $ | (19) |
可得迎角α和侧滑角β:
$ \begin{array}{l} \tan \alpha = \frac{{\cos \phi \sin \theta \cos \varphi - \sin \phi \cos \varphi }}{{\cos \theta \cos \varphi }}\\ \sin \beta = \sin \theta \sin \phi \cos \phi + \sin \varphi \cos \phi \end{array} $ | (20) |
该实验在南京航空航天大学NH-2低速风洞进行。
3.2 建模数据该神经网络的建模数据来自于某飞机模型支撑迎角为50°时,不同振动频率下的大振幅动态实验数据,包括单自由度的偏航、滚转运动和两自由度的偏航滚转耦合运动。其中单自由度偏航和两自由度偏航滚转耦合运动的动态实验频率为0.2、0.4、0.6、0.8,将0.2、0.4和0.8三组数据作为训练样本进行建模,0.6频率数据作为模型仿真验证;单独滚转运动的动态实验频率为0.4、0.8、1.2、1.6,将0.4、0.8、1.6三组数据作为训练样本进行建模,1.2频率数据作为模型的仿真验证。
本文实验数据较多,数据跨度较大,各变量间的量级相差较大,为了使实验数据跨度缩小,便于建模仿真,对实验数据进行了归一化处理,将其处理为[-1, 1]之间的数据,采用如下公式:
$ \hat x = 2\frac{{x - {x_{\min }}}}{{{x_{\max }} - {x_{\min }}}} - 1 $ | (21) |
本文在运用循环神经网络对非定常气动力建模时,将单自由度偏航、滚转以及偏航滚转耦合运动数据放在一起进行网络训练,建立统一的模型,对于横航向运动,主要考虑其滚转力矩系数和偏航力矩系数,具体模型为:
Mx=F(β, p, r, f),My=F(β, p, r, f),其中p为滚转角速度,r为偏航角速度,f为振动频率。
对于单自由度偏航运动,f=0.4的实验数据在建模时已经作为训练样本使用,图 3是建模结束后,使用建立好的神经网络模型重新对此频率数据进行仿真的结果。图 4是建模时未使用的f=0.6的实验数据在此神经网络模型下的仿真预测结果。对于单自由度的滚转运动,图 5、图 6为仿真结果与仿真预测结果同实验结果的比较。对于两自由度的偏航滚转耦合运动,图 7、图 8为仿真结果与仿真预测结果同实验结果的比较。
由以上各对比结果图可以看出,不管是对训练时使用过的数据进行仿真,还是用训练时未使用过的数据进行仿真预测,其得到的偏航力矩系数和滚转力矩系数与实验所得的数据都几乎重合,这充分证明了该神经网络模型在非定常气动力建模上的可行性。
本文建模采用大振幅动态数据,得到了很好的结果,为进一步验证该神经网络模型适用性,将大振幅下建立好的模型运用到对小振幅数据的仿真预测。图 9、图 10分别是小振幅单独偏航(f=0.4)、滚转(f=0.8)运动的仿真预测结果和实验结果的对比。
由图 9和图 10可以看出,小振幅下实验结果和仿真预测结果的拟合程度较好,说明用大振幅数据建立的神经网络模型在小振幅情况下可以较好的适用。
3.4 与RTRL算法比较以单自由度滚转运动为例,对于相同的单自由度滚转运动的实验数据,我们再采用文献[2]中基于RTRL算法的循环神经网络对其滚转力矩系数进行建模,模型训练次数与本文所提EKF-RTRL循环神经网络一样。比较两种算法在相同的训练次数下的拟合程度和误差值。图 11是分别采用两种算法时对滚转力矩系数的仿真预测结果与实验结果的比较,图 12是两种算法的误差曲线比较。
由图 11可以看出,EKF-RTRL算法比RTRL算法的拟合程度更高,同时由图 12的误差曲线可以看出,EKF-RTRL算法相对于RTRL算法,具有更快的收敛速度和更高的收敛精度,说明本文所提EKF-RTRL的循环神经网络模型在非定常气动力建模上的有效性。
4 结论本文讨论了循环神经网络在非定常气动力建模中的应用,结合扩展卡尔曼滤波与实时递归学习算法提出一种EKF-RTRL算法。利用飞机大迎角大振幅单自由度滚转、偏航以及两自由度滚转偏航耦合运动实验数据验证了该循环神经网络模型在对一些非定常气动力建模上的可行性。运用大振幅运动数据建立的神经网络模型在对小振幅运动进行仿真验证时,也同样具有较好的结果,表明该循环神经网络具有一定的适用性。而通过与RTRL算法的对比,说明其既具有RTRL算法收敛精度高的特点,又具备EKF收敛速度快的优点,可以很好的应用在飞机复杂机动的非定常气动力建模上。
[1] |
Shi Z W, Wang Z H, Li J C. The research of RBFNN in modeling of nonlinear unsteady aerodynamics[J]. Acta Aerodynamica Sinica, 2012, 30(1): 108-112. (in Chinese) 史志伟, 王峥华, 李俊成. 径向基神经网络在非线性非定常气动力建模中的应用研究[J]. 空气动力学学报, 2012, 30(1): 108-112. DOI:10.3969/j.issn.0258-1825.2012.01.019 (0) |
[2] |
Shi Z W, Ming X. The application of FNN in unsteady aerodynamics modeling based on fuzzy clustering[J]. Acta Aerodynamica Sinica, 2005, 23(1): 21-24. (in Chinese) 史志伟, 明晓. 基于模糊聚类的模糊神经网络在非定常气动力建模中的应用[J]. 空气动力学学报, 2005, 23(1): 21-24. DOI:10.3969/j.issn.0258-1825.2005.01.005 (0) |
[3] |
Gong Z, Shen H L. Structure self-adapting ANN method in modeling of unsteady aerodynamics[J]. Flight Dynamics, 2007(4): 13-16. (in Chinese) 龚正, 沈宏良. 非定常气动力的结构自适应神经网络建模方法[J]. 飞行力学, 2007(4): 13-16. DOI:10.3969/j.issn.1002-0853.2007.04.004 (0) |
[4] |
Seidl D R, Lorenz R D. A structure by which a recurrent neural network can approximate a nonlinear dynamic system[C]//Ijcnn-91-Seattle International Joint Conference on Neural Networks. IEEE, 1991: 709-714.
(0) |
[5] |
Raol J, Jategaonkar R. Aircraft parameter estimation using recurrent neural networks-A critical appraisal[C]//20th Atmospheric Flight Mechanics Conference, 1995: 119-128.
(0) |
[6] |
Li D L, Deng C H, Chen H. Research on identification modeling based on recurrent neural network[C]//China Annual Conference on Control and Decision Making, 2006. (in Chinese) 李大路, 邓长虹, 陈涵, 等. 基于循环神经网络的辨识建模研究[C]//2006中国控制与决策学术年会. 2006. (0) |
[7] |
Haykin, Simon Neural Networks: A Comprehensive Foundation[M]. 2″d Edition, Prentice-Hall, 1999, ISBN 0-7803-3494-9.
(0) |
[8] |
Straub S, Schroder D. Identification of nonlinear dynamic systems with recurrent neural networks and Kalman filter methods[C]//IEEE International Symposium on Circuits and Systems, 1996. ISCAS'96. Connecting the World. IEEE, 1996: 341-344 vol. 3.
(0) |
[9] |
Williams R J, Zipser D. A learning algorithm for continually running fully recurrent neural networks[J]. Neural Computation, 1989, 1(2): 270-280. DOI:10.1162/neco.1989.1.2.270 (0) |
[10] |
Zhang G S. Study on nonlinear system identification based on recurrent neural network[D]. Lanzhou University, 2010. (in Chinese) 章国升. 基于递归神经网络的非线性系统辨识研究[D]. 兰州大学, 2010. http://cdmd.cnki.com.cn/Article/CDMD-10730-2010130034.htm (0) |
[11] |
Gao X Z, Gao X M, Ovaska S J. A modified Elman neural network model with application to dynamical systems identification[C]//Conference: Systems, Man, and Cybernetics, IEEE International, 1996, 2(2): 1376-1381.
(0) |
[12] |
Coelho P H G. A complex EKF-RTRL neural network[C]//Neural Networks, 2001. Proceedings. IJCNN'01. International Joint Conference on. IEEE, 2001, 1: 120-125.
(0) |
[13] |
Cai J S. System identification for flight vehicles[M]. China Astronautic Publishing House, 1995. (in Chinese) 蔡金狮. 飞行器系统辨识[M]. 宇航出版社, 1995. (0) |
[14] |
Wang J W, Dong D W, Hua C R, et al. Analysis of the influencing factors of EFK[J]. Electronic Sci & Tech, 2013, 26(8): 10-12. (in Chinese) 王京伟, 董大伟, 华春蓉, 等. 扩展卡尔曼滤波的影响因素分析[J]. 电子科技, 2013, 26(8): 10-12. DOI:10.3969/j.issn.1007-7820.2013.08.004 (0) |
[15] |
Huang D, Wu G X. Experiment on fighter oscillating in large amplitude yaw-roll motion[J]. Journal of Nanjing University of Aeronautics & Astronautics, 2005, 37(4): 408-411. (in Chinese) 黄达, 吴根兴. 飞机偏航-滚转耦合运动非定常空气动力实验[J]. 南京航空航天大学学报, 2005, 37(4): 408-411. DOI:10.3969/j.issn.1005-2615.2005.04.002 (0) |