龙弟之,闻 新,2,王 戬,战泓廷
(1.南京航空航天大学 航天学院,南京 210016; 2.广东省“天临空地海”复杂环境智能探测重点实验室(北京理工大学), 广东 珠海 519088)
姿态敏感器是航天器获取自身姿态信息的重要测量部件,长期在轨运行它的内部元件会发生老化和漂移,导致测量信息不可信,若不能及时诊断并进行补偿,轻则航天器姿态控制性能下降,重则丢失姿态。因此,开展航天器姿态敏感器故障诊断研究对提升航天器在轨安全性意义重大[1-2]。
对于姿态敏感器故障,通常基于姿态运动学模型开展故障诊断设计,相比动力学模型可认为其模型是精确已知的,不存在模型不确定性的问题[3]。但敏感器测量噪声和空间扰动是客观存在的,会对诊断结果产生较大影响。常用的解决方案是提高诊断算法的鲁棒性。文献[4]设计自适应观测器用于敏感器故障诊断,并采用非线性几何方法解耦外部干扰对观测器输出的影响。文献[5]在传统卡尔曼滤波器基础上提出了一种自适应扩展卡尔曼滤波器(extend Kalman filter,EKF),利用新息序列建立卡方检验实现敏感器故障诊断。文献[6-7]将神经网络用于在线学习状态方程未知函数信息,通过补偿观测器从而提高对敏感器的诊断性能。但是,当敏感器发生微小故障时,仅提高鲁棒性难以达到检测目的,如何计算合理的检测阈值也是影响故障诊断性能的关键[8]。因此,在增强鲁棒性的同时设置更严格的阈值是解决敏感器微小故障诊断的有效途径之一。
考虑多重故障的隔离问题,文献[9-10]分别实现了对不同轴向陀螺故障的隔离以及执行器与敏感器故障之间的隔离。而航天器姿态控制系统包括方位敏感器和惯性敏感器,且均有可能发生故障。文献[11]研究了红外地球敏感器和陀螺故障的隔离问题,指出利用姿态运动学方程的解析冗余关系可以对故障进行检测,但不能定位故障出自二者中哪一个敏感器,需要额外的冗余关系辅之进行判断。在工程应用中航天器在轨资源有限,如何在现有硬件基础上设计高效诊断系统,以增强对姿态敏感器的故障检测与隔离能力还有待研究。
针对上述问题,本文提出了基于SORNN干扰观测器的姿态敏感器故障诊断方法,在干扰和测量噪声存在的情况下实现两类敏感器微小故障的检测与隔离。首先设计了具备自适应调节功能的SORNN模型解决网络结构确定问题;然后给出了SORNN干扰观测器设计方法并结合低通滤波器推导更严格的残差和检测阈值;最后利用姿态动力学和运动学冗余关系设计了故障隔离观测器实现对星敏感器和陀螺故障的隔离。
如图1所示,SORNN利用循环结构将上一时刻的输出反馈至隐藏层神经元作为下一时刻的输入。相比传统RNN,SORNN不仅能够根据系统输入输出自适应地调节隐藏层神经元数量m,还可以调节循环记忆深度n,将之前n个时刻记忆的输出反馈至隐藏层作为输入,强化时序数据之间的联系。
图1 自组织循环神经网络结构示意Fig.1 Structure of self-organized recurrent neural network
在文献[12-13]的基础上,设计了一种适用性更广的网络结构自组织算法,使得SORNN具备自适应调节功能,能够更好地应用于复杂非线性函数的拟合。
SORNN结构自组织算法流程如图2所示,详细步骤为:
图2 自组织循环神经网络结构自组织算法流程Fig.2 Self-organizing algorithm flow chart of self-organizing recurrent neural network
Step1选取一个简单的3层RNN结构。其中,隐藏层初始仅有一个神经元,输入层和输出层中的神经元个数q和p与拟合任务需要的输入输出变量维数相关。初始化SORNN连接权值,并设置批量学习大小为b,即在线学习b组采样数据为一个学习批次。
Step2利用权值更新算法对SORNN权值进行训练,计算第ι个学习批次的训练误差E(ι)。需要注意,只训练与隐藏层新添加神经元相关的权值,已完成训练的权值保持不变。
其中,E(ι)的计算公式为
(1)
式中:p为输出层神经元个数,Yi,j、Zi,j分别为输出层在一个学习批次中,第j组数据对应的第i个神经元期望与实际输出。
Step3根据训练误差对SORNN学习进程进行终止条件判定,若满足条件则SORNN结构完成搭建,转到Step6;否则继续下一步。
Step4计算前、后两个批次学习误差的减少量,若小于等于预定值εc1,则继续下一步;否则转到Step2。
Step5判断隐藏层第m个神经元与相邻神经元是否冗余,若是则在输出层反馈至隐藏层第m个神经元的回路中增加一层记忆深度;否则在隐藏层添加一个神经元,并固定已有连接权值,将新添加的神经元对应的连接权值初始化为0,转到Step2。
Step6输出SORNN结构特征与权值参数。
在SORNN训练过程中,利用训练误差和验证误差来设定终止条件。首先给定一个训练窗口K,通过计算DK(ι)描述SORNN在K个学习批次的平均训练误差大于最小训练误差的程度,然后利用当前学习批次的训练误差E(ι)和验证误差Ev(ι)计算泛化损失GL(ι)。当GL(ι)>DK(ι)时,停止训练。其中,DK(ι)和GL(ι)计算公式分别为:
(2)
(3)
式中Eo(ι)为最小验证误差。
当继续训练无法提高SORNN性能,即原有网络结构达到性能饱和时,为防止过拟合,可添加隐藏层神经元或反馈记忆深度来优化网络。
通常利用前、后两批次训练误差的减少量来判断是否添加新的神经元,数学描述为
E(ι-1)-E(ι)≤εc1
(4)
式中:E(ι-1)为前一个学习批次的误差,εc1为预设的阈值。当添加过多的神经元,由于功能的相似会变得冗余,对神经网络性能提升并无作用。为解决该情况,引入如下条件定量地判断一个学习批次内两个神经元是否表现出相似的功能:
(5)
式中:hm(i)、hm-1(i)分别为隐藏层第m个神经元和相邻神经元对应第i组训练数据的输出,εc2为预设的阈值。
综上所述,当只满足条件式(4)时,则在隐藏层添加新的神经元;而当同时满足条件式(4)、(5)时,则通过加深反馈记忆深度,使得第m个神经元接收更多来自先前的信号来扩展搜索空间,提升网络的拟合性能。
星敏感器和陀螺微小故障一般发生在故障初期,具有幅值小、不易发觉以及故障信息容易被干扰和噪声掩盖的特点,加之闭环控制系统本身的特性,使得微小故障在初期对航天器姿态影响并不明显。为及时发现微小故障,需要增强故障检测观测器的鲁棒性,并且计算更严格残差和阈值。
考虑陀螺和星敏感器的测量噪声以及二者故障情况,采用四元数法描述姿态运动学状态空间方程为[14]
(6)
不失一般性,可作以下合理假设[15]。
假设1航天器工作在小角度姿态机动状态下,φ(x1,u1)满足Lipschitz条件,即
(7)
假设2陀螺和星敏感器不会同时发生故障。
假设3敏感器故障和测量噪声均有界,且故障的变化速率有界。
在无故障情况下,采用SORNN对陀螺测量误差进行估计,得到基于SORNN的干扰观测器为
(8)
(9)
(10)
为了快速逼近b(t),将EKF自适应更新算法用于SORNN权值更新[16]。针对式(10)建立的SORNN输入输出映射模型,权值参数可描述为
(11)
式中,k=t/τ表示第k个采样时刻。
当隐藏层添加新神经元后,不再对已训练好的权值进行更新。因此每个采样时刻只需对θi(k)的最后一列,即第m列参数进行更新。基于EKF的权值更新算法为
(12)
(13)
(14)
(15)
(16)
(17)
定理1如果由式(12)、(13)和式(16)描述的EKF权值更新算法的训练参数满足式(18),那么SORNN权值更新过程将是收敛的。
(18)
式中λmax(·)为矩阵最大特征值。
(19)
(20)
(21)
(22)
根据式(17)、(18)可得
(23)
因此,
(24)
将式(12)中Gm代入式(24)可得
(25)
星敏感器测量噪声一般由高频部分构成,因此可引入低通滤波器对残差信号进行处理从而抑制噪声。假设滤波器阶数为po,传递函数H(s)=sHpo(s),其中
(26)
不失一般性,可用相同的H(s)对观测器每一个输出滤波。用于故障检测的残差信号r1(k)表达式为
r1(t)=H(s)[ey1(t)]
(27)
(28)
(29)
(30)
根据假设1,利用φ(x1,u1)的Lipschitz特性,计算出一个合适的上界,即
(31)
(32)
(33)
利用三角不等式,式(29)满足:
(34)
已知渐近稳定的传递函数Hpo(s)的脉冲响应hpo(t)呈指数衰减,即t>0时,对于特定的υ>0,ζ>0,满足|hpo(t)|≤υe-ζt。根据上述推导的边界值,得到最终的故障检测阈值为
(35)
航天器姿态控制方程由运动学子系统和动力学子系统组成。以陀螺和星敏感器为例,运动学方程能够表述星敏感器输出角度和陀螺输出角速度之间的关系,动力学方程能够表述陀螺输出角速度和执行器输出力矩之间的关系。因此,利用两个系统之间的冗余关系可以实现对星敏感器故障和陀螺故障的隔离。故障诊断系统框架如图3所示,首先针对运动学子系统设计基于SORNN的干扰观测器,然后针对动力学子系统设计故障隔离观测器。前者用于判断是否发生故障,后者用于判断是否为陀螺故障,实现姿态敏感器故障隔离。
图3 航天器姿态敏感器故障检测与隔离框架Fig.3 Spacecraft attitude sensor fault diagnosis framework
带外部扰动和陀螺故障的姿态动力学子系统状态方程表示为[14]
(36)
(37)
(38)
式中γΦ为Lipschitz常数。
针对状态方程(36)设计未知输入观测器[17]:
(39)
式中:z(t)为观测器状态变量,矩阵F,T,N,L满足:
(40)
Fex2(t)+TΔΦ(t)+TEd(t)-
(41)
(42)
另外,rank(CE)=rank(C)=q,根据TE=E-NCE=0可解得矩阵N=E[(CE)T(CE)]-1(CE)T。当确定了矩阵L,利用式(40)容易得到其他矩阵。为此,给出如下定理求解矩阵L。
(43)
那么所设计观测器是鲁棒稳定的,其中U=P2L。
(44)
(45)
定义指标函数:
(46)
将式(45)代入J可得
(47)
其中:
式中,Ξ11=FTP2+P2F+γΦP2TTTP2+I+CTC。
当Ξ<0时,在零初始条件下:
(48)
当发生陀螺微小故障时,误差动态方程(42)改写为
(49)
根据式(8)设计SORNN干扰观测器。[q1,q2,q3]T对应的3个SORNN学习参数初始值和网络结构调整预设阈值见表1。
表1 自组织循环神经网络仿真实验参数Tab.1 Simulation experimental parameters of SORNN
图4 自组织循环神经网络隐藏层神经元和记忆深度调整过程Fig.4 Hidden layer neurons and memory depth adjustment process of SORNN
图5 x轴陀螺测量误差估计Fig.5 x-axis gyro measurement error estimation
图6 y轴陀螺测量误差估计Fig.6 y-axis gyro measurement error estimation
图7 z轴陀螺测量误差估计Fig.7 z-axis gyro measurement error estimation
1)陀螺故障。假设航天器x轴陀螺在t=150 s时发生时变故障,故障表示为
(50)
2)星敏感器故障。假设航天器星敏感器y轴测量输出在t=150 s时发生突变故障,故障表示为
(51)
为验证检测方法的性能,将所提方法与基于改进EKF的故障检测方法[10]进行对比。采用3-σ法对基于改进EKF的检测方法设置阈值,陀螺故障检测结果如图8、9所示。
图8 基于改进EKF故障检测方法陀螺故障检测结果Fig.8 Fault detection results of gyro based on improved EKF fault detection method
星敏感器故障检测结果如图10、11所示。从图8和图10的结果可以看出,基于改进EKF的故障检测方法虽然对陀螺测量误差进行了鲁棒抗干扰处理,但由于噪声的存在,对微小故障响应不明显,并且没有适配更严格的检测阈值,导致对陀螺和星敏感器微小故障的检测均出现了漏报情况。而对比图9和图11的结果,在陀螺测量误差补偿以及滤波处理后,很大程度上消除了陀螺测量误差和星敏感器噪声的影响,然后利用式(35)计算出的检测阈值,能够实现对陀螺和星敏感器微小故障的准确检测,从而验证了所提微小故障检测方法的有效性。
图10 基于改进EKF故障检测方法星敏感器故障检测结果Fig.10 Fault detection results of star sensor based on improved EKF fault detection method
图11 所提方法星敏感器故障检测结果Fig.11 Fault detection results of star sensor based on the proposed detection method
在检测出故障发生后,根据式(38)设计故障隔离观测器并利用残差来判断是否为陀螺故障,从而实现陀螺故障和星敏感器故障的二分问题。给定常数γΦ=0.5,δ=0.8,求解LMI(43),得到观测器增益矩阵为
(52)
为评估故障隔离观测器的检测性能,在动力学模型存在不确定性情况下,分别对式(51)、(52)所描述的陀螺故障和星敏感器故障开展故障隔离实验。将10-7[2sin(0.3t) 3cos(0.1t) 1cos(0.2t)]T叠加高斯白噪声加入至动力学状态方程中作为模型不确定性,设置检测阈值分别为1.250 4×10-6、7.057 0×10-7、1.465 5×10-6,仿真结果如图12、13所示(其中残差初始部分为动态调整过程,在此不作讨论)。仿真结果可以看出故障隔离观测器对模型不确性具有一定鲁棒性,并且残差只对陀螺故障敏感,当陀螺发生故障时,残差迅速越过阈值,而当星敏感器发生故障时残差并不会出现明显的响应,验证了该方法对姿控系统陀螺故障和星敏感器故障的隔离功能。
图12 陀螺故障情况下故障隔离结果Fig.12 Fault isolation results in case of gyro fault
图13 星敏感器故障情况下故障隔离结果Fig.13 Fault isolation results in case of star sensor fault
1)在传统RNN结构基础上设计了具备自适应调节功能的SORNN和对应的EKF自适应权值更新算法,并应用于干扰观测器中,通过估计陀螺测量误差消除其对状态估计的影响。
2)结合低通滤波器抑制测量噪声对系统输出估计误差的影响,推导出了更严格的残差和检测阈值的计算方法,从而提高了对微小故障的检测能力。
3)利用航天器姿态运动学和动力学冗余关系设计未知输入观测器实现对星敏感器和陀螺故障的隔离。最终通过仿真结果验证了所提出故障检测与隔离方法的可行性。