Page 314 - 《软件学报》2026年第3期
P. 314

李晓锋 等: 空间飞行器控制软件在轨自适应可信演化框架                                                     1277


                    根据第   3.2  节中自适应触发要素的定义, 在轨故障作为自适应触发要素之一, 会使系统从正常的工作状态, 跳
                 转为异常的工作状态. 这一结果可以由飞行器姿态数据遥测发现, 例如                      X  轴、Y  轴、Z  轴姿态角的观测值和预期
                 值偏离   (即, 星地姿态发散), 最终导致飞行器姿态不稳定、喷气频繁、能源耗尽, 严重影响飞行器正常任务的执行
                 和寿命, 带来不可挽回的损失.
                    (1) 自适应触发要素分析
                    为了减轻和避免在轨故障所带来的影响, 首先需要对自适应触发要素进行分析. 案例中建立基于树结构的故
                 障事件   (e fault_occurrence ) 匹配方法, 从而触发系统从正常运行状态转移到故障检测状态. 每个控制周期, 控制软件会
                 与星敏建立通信获取星敏采集数据, 除了对数据包的帧头、校验和进行通信层校验, 还需要对姿态数据包中关键
                 数据的有效性进行判断, 当发生数据错误时, 则判定星敏数据无效. 表                   1  中整理了案例场景中       3  种典型的星敏数据
                 无效故障事件, 优先级依次由低到高.


                                                表 1 星敏数据无效故障事件表

                                 序号                      事件名称                       优先级
                                  1             单个星敏数据无效累计时间达50 s                    III
                                  2             所有星敏数据无效累计时间达180 s                    II
                                  3            所有星敏数据无效累计时间达1 380 s                   I

                    对于已知故障事件的识别, 首先通过领域知识建立故障事件树. 原星上代码的故障诊断逻辑多为                               IF-ELSE  条
                 件判断语句, 案例中抽取最外层判定逻辑作为故障事件的判定规则, 它一般描述故障触发的外部条件, 例如星敏作
                 为控制计算机的下位机所传输的姿态数据包中星数识别错误. 由表                      1  所建立的故障事件规则树如图         10  所示. 为了
                 实现故障事件的模块化, 这里建立原子事件              Sts[i]DataInValid, 它的判定结果可以由后序遍历其叶子节点的运算结
                 果得到, 同一层级的节点计算优先顺序为从左至右. 在原子事件的基础上, 构建事件                        1 (图  10(a)) 和事件  2 (图  10(b)).
                 据此, 故障诊断逻辑分解为多个层级, 处理不同粒度的事件, 使故障感知过程更加清晰高效, 同时可以支持故障规
                 则的动态添加、删除或修改, 支持规则的继承和重用, 实现规则的模块化和复用, 减少规则重复定义的工作量, 提
                 升在轨自适应能力.


                                  Sts[i]DataInValid                            AllStsDataFault



                          OR         OR         AND
                 (Quality&0x07)  ((flagStatus>>8)  numStarValid  CWst==TRUE  AND  AND        AND
                   !=0x07    &0x1E)!=0x0B  ==0
                                                              StsADataInValid  StsBDataInValid  StsCDataInValid  CntTime==180
                                  SingleStsDataFault

                                                             Sts[0]DataInValid  Sts[1]DataInValid  Sts[2]DataInValid
                                    AND
                             Sts[i]DataInValid  CntTime==50

                                   (a) 事件1                                      (b) 事件2
                                              图 10 星敏数据无效故障事件规则树

                    (2) 自适应可变要素生成
                    在自适应可变要素中, 针对已知的故障事件, 采用               ECA  规则解析的方式实现故障的诊断和恢复, 在这一过程
                 中, 最重要的步骤就是定义自适应决策规则, 即             ECA  规则. 在此案例场景中, 故障条件匹配则是通过知识库中预先
                 定义好的规则进行故障处理, 在由外部设备、实体等引起的事件触发故障事件的基础上, 根据系统内部条件                                    (例
                 如, 系统属性、部件状态), 选择合适的恢复动作. 故障条件的表达式可以是简单的系统变量的真假判断; 也可以是
   309   310   311   312   313   314   315   316   317   318   319