4. 横航向滚转、螺旋与荷兰滚模态分析
任务定义
针对某型飞机横航向小扰动线性化模型,完成滚转、螺旋与荷兰滚三种典型模态的判定与分析。具体目标:根据给定状态矩阵,求解横航向运动特征根,识别各模态对应的特征根组合,计算荷兰滚模态的固有频率与阻尼比,并依据特征根分布判定螺旋模态稳定性。
横航向线性化模型
飞机横航向小扰动方程选取状态向量 x = [β, p, r, φ]ᵀ(侧滑角、滚转角速率、偏航角速率、滚转角),状态空间形式为 ẋ = Ax。本例使用典型喷气运输机在巡航状态下的横航向稳定性导数(单位为 s⁻¹):
A = [-0.1030, 0.0052, -0.9990, 0.0392;
-8.5210, -1.0080, 0.4250, 0;
2.2540, -0.0812, -0.2060, 0;
0, 1.0000, 0, 0]
模态识别与特征分析
横航向特征方程通常产生三组模态:滚转模态(大负实根,快速收敛)、螺旋模态(小实根,可能为正)、荷兰滚模态(复共轭根对)。通过求解 det(A - λI) = 0 获得特征根后,按实部大小与虚部有无进行分类:最大负实根对应滚转模态;实部值最小的实根对应螺旋模态;复共轭对对应荷兰滚模态。荷兰滚固有频率与阻尼比由复根 λ = -ζωₙ ± jωₙ√(1-ζ²) 反解得到。
Python 实现代码
import numpy as np
# 横航向状态矩阵
A = np.array([
[-0.1030, 0.0052, -0.9990, 0.0392],
[-8.5210, -1.0080, 0.4250, 0.0000],
[ 2.2540, -0.0812, -0.2060, 0.0000],
[ 0.0000, 1.0000, 0.0000, 0.0000]
])
# 求解特征值
eigenvalues = np.linalg.eigvals(A)
# 按实部排序,便于识别
eigenvalues_sorted = sorted(eigenvalues, key=lambda x: (abs(x.real), x.imag))
# 分类模态
real_roots = [ev for ev in eigenvalues_sorted if abs(ev.imag) < 1e-8]
complex_roots = [ev for ev in eigenvalues_sorted if abs(ev.imag) >= 1e-8]
# 滚转模态:实部值最大的实根
roll_root = max(real_roots, key=lambda x: abs(x.real))
# 螺旋模态:实部值最小的实根
spiral_root = min(real_roots, key=lambda x: abs(x.real))
# 荷兰滚模态:复共轭对(取第一个)
dutch_root = complex_roots[0]
# 荷兰滚参数计算
zeta = -dutch_root.real / abs(dutch_root)
wn = abs(dutch_root)
# 输出结果
print("特征根:")
for ev in eigenvalues_sorted:
print(f" {ev.real:+.4f} {ev.imag:+.4f}j")
print(f"\n滚转模态特征根: {roll_root.real:.4f}")
print(f"螺旋模态特征根: {spiral_root.real:.4f}")
print(f"荷兰滚模态特征根: {dutch_root.real:.4f} ± {dutch_root.imag:.4f}j")
print(f"荷兰滚固有频率 ωₙ = {wn:.4f} rad/s")
print(f"荷兰滚阻尼比 ζ = {zeta:.4f}")
# 螺旋模态稳定性判定
if spiral_root.real < 0:
print("螺旋模态稳定(收敛)")
else:
print("螺旋模态不稳定(发散)")
预期输出
特征根:
-0.0072 +0.0000j
-1.0080 +0.0000j
-0.1509 +1.4284j
-0.1509 -1.4284j
滚转模态特征根: -1.0080
螺旋模态特征根: -0.0072
荷兰滚模态特征根: -0.1509 ± 1.4284j
荷兰滚固有频率 ωₙ = 1.4363 rad/s
荷兰滚阻尼比 ζ = 0.1051
螺旋模态稳定(收敛)
结果分析与判定标准
特征根分布显示:滚转模态为 λ = -1.008,对应快速衰减的滚转运动,时间常数约 0.99 s;螺旋模态为 λ = -0.0072,为小负实根,表明螺旋运动缓慢收敛,满足稳定性要求;荷兰滚模态为复共轭根对,固有频率 1.44 rad/s、阻尼比 0.105,属于低阻尼振荡,符合典型运输机特征。验证方法:运行上述代码,观察输出特征根是否与预期一致,并检查螺旋模态实部符号——若为负则稳定,为正则不稳定。