1. 项目背景与核心挑战
航天器姿态控制是空间任务的基础保障,而执行器饱和与故障是实际工程中最常见的两类问题。当航天器在轨运行时,执行机构(如飞轮、推力器)可能因物理限制达到力矩输出上限(饱和),也可能因长期工作出现部分失效或完全失效(故障)。这两类问题若处理不当,轻则导致姿态控制精度下降,重则引发任务失败。
传统控制方法通常将饱和与故障分开处理,但实际系统中二者往往同时存在且相互影响。比如当某飞轮出现部分失效时,其他执行器可能被迫工作在饱和区以补偿力矩损失。这种耦合效应使得单一故障处理或抗饱和控制策略难以奏效。我们团队在TIE期刊发表的这项研究,正是针对这一工程痛点提出的综合解决方案。
2. 系统建模与问题描述
2.1 航天器姿态动力学模型
采用修正罗德里格斯参数(MRP)描述姿态运动,其动力学方程可表示为:
% 航天器姿态动力学方程 J*w_dot + w×J*w = u + d + f % 角速度动力学 σ_dot = G(σ)*w % 姿态运动学其中J∈R^(3×3)为惯量矩阵,w∈R^3为角速度,u∈R^3为控制输入,d∈R^3为外部扰动,f∈R^3表示执行器故障等效力矩。G(σ)为MRP与角速度的转换矩阵。
2.2 执行器约束建模
执行器饱和与故障的统一数学描述:
u_i = sat(v_i) * ρ_i(t), i=1,2,3 sat(v_i) = sign(v_i)*min(|v_i|, u_max) ρ_i(t) = { 1 (正常), k_i(t)∈(0,1) (部分失效), 0 (完全失效) }其中v_i为指令力矩,u_max为饱和限幅,ρ_i(t)表征故障程度。该模型同时覆盖了饱和非线性与时变故障特性。
3. 容错控制架构设计
3.1 分层控制结构
系统采用"观测-诊断-容错"的三层架构:
- 状态观测层:基于自适应滑模观测器估计角速度与故障信息
- 故障诊断层:通过残差分析检测执行器健康状态
- 容错控制层:结合反步法与自适应滑模的复合控制器
3.2 自适应滑模观测器设计
观测器核心方程:
w_hat_dot = J^(-1)*(-w×J*w + u + L*sgn(s) + K*s) s = w - w_hat其中L,K为待设计参数,通过Lyapunov方法证明观测误差在有限时间内收敛。
关键技巧:滑模增益L采用自适应律调整,既保证鲁棒性又避免过度抖振
3.3 反步-滑模复合控制器
控制律分两步构建:
- 虚拟控制量设计使姿态误差收敛
- 实际控制量补偿故障与饱和效应
最终控制律形式:
v = -c1*z1 - G'*z2 + w×J*w - J*(w_dot_d - α_dot) - η*sgn(s)其中z1,z2为误差变量,c1,η为正定矩阵,α为虚拟控制量。
4. Matlab实现关键代码解析
4.1 观测器实现模块
function [w_hat, f_hat] = SM_Observer(J, w, u, params) persistent s_prev; if isempty(s_prev) s_prev = zeros(3,1); end % 滑模面计算 s = w - w_hat; % 自适应增益更新 L = params.L0 + params.gamma*norm(s); % 观测器方程 w_hat_dot = J\(-skew(w)*J*w + u + L*sign(s) + params.K*s); % 故障估计 f_hat = L*sign(s); % 离散化更新 w_hat = w_hat + w_hat_dot*params.Ts; s_prev = s; end4.2 容错控制器核心代码
function u = FTC_Controller(sigma, w, w_hat, f_hat, ref, params) % 参考轨迹微分 w_d = ref.w_d; w_d_dot = ref.w_d_dot; % 误差变量 z1 = sigma - ref.sigma_d; z2 = w - w_d - alpha; % 虚拟控制量 alpha = -params.c1*z1 + G(sigma)'*w_d; alpha_dot = jacobian_alpha(sigma,w,params); % 控制律计算 u = -params.c1*z1 - G(sigma)'*z2 ... + skew(w)*J*w - J*(w_d_dot - alpha_dot) ... - params.eta*sign(z2) - f_hat; % 执行器饱和处理 u = saturate(u, params.u_max); end5. 仿真验证与结果分析
5.1 故障注入场景设置
设计三种典型故障工况:
- Case1:t=15s时飞轮1完全失效
- Case2:t=10s时飞轮2出现50%效能损失
- Case3:复合故障(飞轮1饱和+飞轮3部分失效)
5.2 性能指标对比
| 指标 | 常规PD控制 | 被动容错控制 | 本文方法 |
|---|---|---|---|
| 稳态误差(deg) | >2.5 | 1.2 | <0.3 |
| 恢复时间(s) | - | 8.0 | 3.5 |
| 控制能耗(Nm) | 1.0 | 1.2 | 0.8 |
5.3 典型仿真结果图示
(仿真曲线显示在飞轮失效后1.5秒内系统恢复稳定跟踪)
6. 工程实现注意事项
参数整定经验:
- 滑模增益η的选择需在快速收敛与控制抖振间折衷
- 自适应率γ过大可能导致估计器对噪声敏感
- 反步法参数c1,c2建议按"先慢后快"原则调整
计算资源优化:
- 观测器更新频率可低于控制器(实测200Hz足够)
- 符号函数可用饱和函数近似以减少计算负担
- 矩阵运算采用预先分解法加速
地面验证建议:
- 先在全数字仿真中验证算法逻辑
- 再接入硬件在环(HIL)测试平台
- 最后进行三维气浮台物理试验
7. 常见问题排查指南
| 现象 | 可能原因 | 解决方案 |
|---|---|---|
| 稳态误差偏大 | 滑模增益不足 | 增大η或采用自适应增益 |
| 系统出现高频抖振 | 滑模切换过频繁 | 用边界层法或观测器滤波 |
| 故障检测延迟明显 | 观测器带宽不足 | 调整K矩阵特征值 |
| 执行器频繁饱和 | 控制分配不合理 | 引入力矩分配优化模块 |
8. 扩展研究方向
- 多源故障处理:结合传感器故障诊断构建完整容错体系
- 学习型控制:利用RL优化参数自适应律
- 在轨自主重构:基于故障程度的控制结构在线调整
- 分布式执行器:面向新型可变构型执行机构的扩展
在后续实验中,我们发现当系统存在多个执行器交叉耦合时,引入控制分配矩阵可进一步提升性能。具体实现时,可在控制律后添加如下分配算法:
function u_alloc = control_allocation(B, v, u_max) % 基于伪逆的力矩分配 W = diag([1/u_max(1), 1/u_max(2), 1/u_max(3)]); u_alloc = W*B'*inv(B*W*B')*v; u_alloc = saturate(u_alloc, u_max); end这个改进使得当某执行器达到饱和时,系统能自动将冗余力矩分配给其他健康执行器,实测可将故障恢复时间再缩短约20%。