江文建 姜 斌 廖 鹤 程月华 叶正宇
1. 南京航空航天大学自动化学院,南京210016 2.上海卫星工程研究所,上海200000
近年来,磁伺服机构作为高精度指向卫星的重要执行部件,其工作过程涉及电、热和磁等多个环节,其运行可靠性直接影响到卫星平台的稳定和安全。由于卫星运行环境复杂、温度交变,故执行机构故障高发[1-2]。开展执行机构故障检测与定位研究,可有效地监测执行机构的运行状态,并检测出系统发生的故障,定位出故障部件,有利于卫星平台及时采取措施隔离故障,实施容错控制,对提高卫星在轨可靠性和安全性具有重要意义[3-4]。
为实现卫星姿控系统执行机构的故障检测,需提取故障特征数据并降维。传统的线性降维算法,如PCA[5],保持了数据集的全局距离结构不变,但不能保持非线性数据结构的内在流形。基于流形的非线性降维算法,如等距映射[6](ISOMAP)、局部线性嵌入[7](LLE)及邻域保持嵌入[8](NPE)等,通过保持数据的几何结构,发现嵌入在高维数据中的低维特征,引起了广泛的关注。但目前这些方法大多应用于离线数据的故障检测,如LLE,在检测前需提取大量的故障特征样本进行训练,而这在实际系统中是不可能实现的。因为流形学习应用于实际系统中时,样本总是不断更新的,系统运行初期很难获得完备的信息[9]。为解决这一问题,文献[9]提出了一种增量式局部线性嵌入(ILLE)方法应用于卫星姿控系统的故障检测,通过将系统运行过程中的有用样本加入原始训练数据库中,取得了很好的检测效果。
故障定位是故障诊断的重点和难点。目前,用于卫星姿控系统执行机构故障定位的方法主要有基于模型的方法和基于人工智能的方法。由于卫星姿控系统的复杂性和非线性,构造精确的数学模型有很大困难。所以,一些专家学者们将目光转向了基于人工智能的故障定位方法。如文献[10]利用动态神经网络模拟了反作用飞轮的运行特性,实现了对卫星姿控系统的故障检测与定位。然而,神经网络需要搜集大量的故障训练样本,这在低概率发生故障的卫星上是不易实现的。针对卫星故障样本少的问题,文献[11]利用SVM对提取到的少量故障特征样本进行分类,实现了卫星姿控系统执行机构的故障检测与定位。
本文在现有研究的基础上,将ILLE和SVM两种方法相结合,应用于卫星姿控系统执行机构的在线故障检测与定位研究。
某高精度卫星仿真平台姿态控制系统配置了3组磁伺服执行机构,分别沿卫星3个轴向安装。每组磁伺服机构由驱动电路和2个对称布置的磁浮机构组成,为卫星提供3轴控制力矩[12]。磁浮机构主要由定子和动子2部分组成,定子为磁钢和磁轭,动子为线圈和骨架。根据磁伺服机构工作原理,由于磁浮机构的定子和动子老化或损坏的概率很小,不考虑其故障情形,仅考虑电流驱动电路故障情形。由于驱动电路中包含电阻、电容、二极管和运算放大器等模块,而电子元器件容易受温度、电磁环境等影响,元器件老化或损坏都有可能导致故障的发生。故本文重点研究驱动电路故障,主要考虑以下2种常见故障类型:
1)驱动电路断路故障,其故障表现形式为
(1)
其中,Io(t)为磁浮机构的实际输出电流;Ii(t)为磁浮机构的正常输出电流,t为当前时刻;tf为故障注入时刻。
2)驱动电路运算放大器放大倍数突变故障,其故障表现形式为
(2)
其中,Δ(t)表示故障引起的实际输出电流与正常输出电流偏差值。
卫星执行机构故障检测与定位策略如图1所示。
图1 卫星执行机构故障检测与定位策略图
图1从系统层面出发,采集卫星姿控系统在线数据建立高维数据集,特征提取后进行数据预处理。采用ILLE算法更新在线数据信息并实施故障检测;针对故障情形下,采集执行机构故障特征数据,采用SVM方法进行故障定位,确定故障发生通道及类别。
ILLE算法在LLE算法的基础上,通过将新样本点加入原始数据库更新映射矩阵,更新相关参数,从而快速准确地实现对执行机构状态的监测。
通过分析卫星姿控系统磁伺服机构功能,取卫星姿态数据以及控制力矩数据,建立高维状态变量X=[x1,x2,…,xN]∈RD×N,为高维状态变量的原始维数,N为样本数。该变量降维后的特征空间Y=[y1,y2,…,yN]∈Rd×N,d为非线性流形的固有维数。基于ILLE算法降维及特征提取可归结为以下4步:
1)寻找局部邻域点
计算原始高维数据中各个样本点之间的欧式距离,并根据距离进行升序排列,找到每个样本点最近的k个邻域点,k为预先设置的每个样本点的邻域点个数。
2)计算重构权值矩阵
计算重构每个样本点xi的权值矩阵W,使得重构代价误差最小。定义代价误差为ε(W),其表达式为
(3)
其中,xi和xj是N个原始高维样本点中任意2个样本点;i=[1,2,…,N];j=[1,2,…,N];wij是xi与xj之间的权值,且要满足以下条件
(4)
3)计算低维嵌入矩阵
保持权值矩阵不变,在低维空间重构原数据样本点,并使得重构误差最小化。定义重构误差为δ(Y),其表达式为
(5)
其中,yi是降维后的低维嵌入样本点;yj(j=[1,2,…,k])是yi的k个邻域点之一。yi需要满足的约束条件如下
(6)
其中,I表示d×d单位矩阵。
4)更新原始数据库
若新样本点更新入原始数据库,则根据式(3)-(6)更新权值矩阵,计算出新的低维嵌入坐标Y′和新的映射矩阵A′。记更新后的高维状态变量为X′,映射矩阵A′的计算如式(7)所示。
A′=Y′X′T(X′X′T)-1
(7)
将ILLE算法应用于卫星执行机构故障检测时,需要利用低维数据空间的特征空间和残差空间构造T2和Q统计量。T2统计量反映的是数据在主元子空间中偏离主元模型的程度,而Q统计量反映的是数据在残差子空间中偏离主元模型的程度[13]。T2和Q统计量的定义公式为
(8)
(9)
其中,ynew为测试样本xnew在LLE空间的投影,可通过ynew=Axnew计算得到。S是正常状态下嵌入矩阵Y的协方差矩阵,即S=YTY/(N-1)。和Q统计量的控制限为
(10)
(11)
ILLE应用于卫星执行机构故障检测时,需要根据新样本的引入情况实时更新T2和Q统计量的控制限。T2和Q统计量控制限的计算公式可参照式(10)和(11)。
基于ILLE的卫星执行机构故障检测分为程序启动和在线检测2个模块,如图2所示。
图2 基于ILLE的卫星执行机构故障检测流程图
程序启动模块实施训练样本集的处理。通过收集系统运行初期数据建立训练样本库,再对数据进行预处理后利用LLE降维,得到初始权值矩阵、低维嵌入矩阵和初始映射矩阵。在线检测模块采集实时在线数据,预处理后,更新数据库及映射矩阵、Q统计量和T2的控制限,最后计算故障检测统计量Q和T2,并与其控制限进行比较。若有统计量超过了其控制限,则判定系统发生故障。
SVM是一种典型的二元分类器,能够将数据分成2类。它基于结构风险最小化原则,具有良好的泛化能力、鲁棒性,能够处理带有大量特征的高维数据集。针对卫星执行机构故障样本少的问题,SVM相较于神经网络,能够很好地处理小样本问题,并且可保证算法的全局最优性 ,避免了神经网络无法解决的局部最小问题。
取卫星执行机构训练数据集{xi,yi}(i=1,2,…,n),x∈Rn,y∈{-1,1},xi是输入向量,yi是所需的分类,n是训练样本数。采用SVM方法,确定一个函数f(x,y)可以将给定的数据{xi,yi}进行分类。最优超平面定义如下:
wTx+b=0
(12)
其中,w∈Rn是权重向量,为一个标量偏差项,w和b用来描述超平面的位置。向量xi和同类的yi必须满足下列不等式:
yi(wxi+b)≥0,yi∈{-1,1}
(13)
对于卫星执行机构,不同磁浮机构的输入输出数据一般不是线性可分的。为了减少计算量,SVM通过选择一个先验的非线性映射,在高维特征空间里构造出最优分离超平面。对于每一个训练样本,一个正的松弛变量εi被定义,用来获得较大距离的超平面,同时也允许了一些样本被错误的分类。因此,搜索最优超平面可以转化为解决下面的约束二次优化问题,即:
(14)
其中,yi(wxi+b)≥1-εi,i=1,…,n。C是正规化参数,用来决定最大化超平面和最小分类误差之间的平衡。如果0≤εi≤1,意味着xi在超平面的右边,即这个模式的分类是正确的。如果εi>1,则意味着xi处于超平面错误的一边。
卫星姿控系统执行机构由多个磁浮机构组成,每个执行机构都有可能发生故障,因此涉及多分类问题。选取每个磁浮机构的输出电流和指令输入电压的比值作为输入,以此检测执行机构中各个磁浮机构是否发生故障,从而实现执行机构的故障定位。
使用SVM解决多类分类问题方法有:一对多法(One Against All)、一对一法(One Against One)以及基于二叉树的多类支持向量机分类方法[14]。由于一对一法测试精度高且实现过程相对简单,本文采用一对一法求解磁伺服机构故障定位问题。具体步骤如下:
1)构建分类器数量。分别选取2个不同类别构成一个子分类器,这样对于k个类别共有k(k-1)/2个SVM子分类器;
2)构造类别i和类别j的SVM子分类器。在样本数据集中选取属于类别i、类别j的样本数据作为训练数据,并将属于类别i的数据标记为正,将属于类别j的数据标记为负;
3)故障定位。将测试数据对个SVM子分类器分别进行测试,并累计各类别的投票,选择得分最高者所对应的类别为测试数据的类别。
基于SVM的卫星姿控系统执行机构故障定位方法具体步骤可分为学习阶段和识别阶段。
1)学习阶段。首先收集历史故障特征样本,建立训练样本集,并根据样本特征选择合适的核函数(一般选用RBF核函数),并利用网格搜索法和交叉验证法确定核函数的相关参数;其次,根据核函数的要求,将训练样本正规化;最后,利用一对一法,在不同类别的样本间两两建立一个SVM子分类器,从而形成多个SVM子分类器;
2)识别阶段。首先采集执行机构发生故障后的故障特征样本,建立测试样本集;其次,将测试样本进行预处理,预处理过程包括滤波及归一化;最后,将测试样本分别装入各个SVM子分类器中进行预测,并累计各个子分类器的投票结果,再根据投票结果确定故障发生通道及类别。
基于SVM的卫星姿控系统执行机构故障定位具体流程图如图3所示。
图3 基于SVM的卫星执行机构故障定位流程图
本文以卫星机动模式为例开展算法的仿真验证。选取初始姿态角为[0°,0°,0°],目标姿态角为[20°,25°,30°],仿真总时长为270s,每隔0.2s采集一次样本。选取0~100.0s的样本点建立训练样本集,100.2~270.0s的样本点建立测试样本集。由于卫星姿控系统发生故障时,对卫星三轴姿态角、姿态角速度和控制力矩的影响较大,故选取这些数据构建原始高维数据集。收集不同故障类型下各磁浮机构的历史输入电压和输出电流,运用一对一法建立多个SVM子分类器。
Case1:执行机构断路故障的检测与定位
针对磁浮机构4注入驱动电路断路故障,故障时间为140.0~270.0s。T2和Q统计量的检测结果如图4所示。
图4 执行机构断路故障下故障检测结果图
图4中的2条虚线分别表示T2和Q统计量的控制限,实线为T2和Q统计量的值,当其中有一个值超过其控制限时,则系统发生故障。由图可知,当磁浮机构4在140.0~270.0s注入驱动电路断路故障时,基于ILLE的故障检测方法能够及时地检测出故障。其中Q统计量的检测结果存在部分漏判,这是因为故障发生后短时间内主元子空间的偏移并没有打破原有模型的变量间的相关性,导致Q统计量的检测存在一定时延。
在140.0s检测到卫星姿控系统发生故障后,选取执行机构138.0~147.8s的指令电流与遥测电压,输入到各个已经训练好的SVM子分类器中进行故障定位。SVM故障定位结果图如图5所示。
图5 执行机构断路故障下故障定位结果图
图5(a)表示当前时刻的故障发生通道(0表示没有磁浮机构发生故障,1-6表示发生故障的磁浮机构编号);图5(b)表示当前时刻的故障类型(0表示正常,1表示驱动电路断路故障,2表示驱动电路放大器故障)。由图可知,基于SVM的故障定位结果为磁浮机构4发生驱动电路断路故障,与预期结果一致。
Case2:执行机构放大器故障的检测与定位
图6 执行机构放大器故障下故障检测结果图
由图6可知,磁浮机构5在140.0~270.0s发生驱动电路放大器故障时,基于ILLE的故障检测方法能够及时地检测出故障。其中Q统计量的检测结果有着较长时间的故障漏判,这是因为磁浮机构发生放大器放大倍数突变故障时,只会在短时间内对某一个或几个特征量的值产生较小影响,而这种影响对主元子空间的影响较大,对残差子空间的影响较小,因此导致了Q统计量检测结果较长时间的漏判。但是,从整体上该方法依然可以及时检测出故障的发生。
在140.0s检测到卫星姿控系统发生故障后,选取执行机构138.0~147.8s的指令电流与遥测电压,输入到各个已经训练好的SVM子分类器中进行故障定位。SVM故障定位结果图如图7所示。
图7 执行机构放大器故障下故障定位结果图
图7(a)表示当前时刻的故障发生通道(0表示没有磁浮机构发生故障,1-6表示发生故障的磁浮机构编号);图7(b)表示当前时刻的故障类型(0表示正常,1表示驱动电路断路故障,2表示驱动电路放大器故障)。由图7可知,基于SVM的故障定位结果为磁浮机构5发生驱动电路放大器故障,与预期结果一致。
为实现卫星姿控系统执行机构的故障检测与定位,研究了一种基于ILLE和SVM的故障检测与定位方法。基于ILLE方法可通过在线更新数据信息,实现卫星执行机构实时故障检测。基于SVM方法可实现在历史故障样本少的情况下,准确辨识故障通道及类别,实现磁伺服机构的故障定位。