[0052] 如果输入指定了姿态机动的用时ttotal,则判断角速度预置段用时tdec加角速度预置段用时是否大于ttotal,若tdec+tasc≥ttotal则规划无解,直接退出规划方法,若tdec+tasc
[0053] (3)计算点对点机动初始和终端姿态四元数
[0054] 若姿态机动初始时刻卫星三轴角速度的模ω0n>0,则按下式计算点对点机动初始姿态四元数qin:
[0055]
[0056] qin=qMult(q0,qtmp) (10)
[0057] 式中,AxisAng2q(a,Φ)函数表示计算绕矢量a转动角度Φ对应的姿态四元数,其算法为本领域内公知的内容,本发明不做详细介绍;qMult()函数为姿态四元数乘法运算函数,其算法为本领域内公知的内容,本发明不做详细介绍;q0为姿态机动初始时刻的姿态四元数。
[0058] 若姿态机动初始时刻卫星三轴角速度的模ω0n=0,则按下式计算点对点机动初始姿态四元数qin:
[0059] 令qin=q0(11)
[0060] 若姿态机动终端时刻卫星三轴目标角速度的模ωtn>0,则按下式计算点对点机动终端姿态四元数qout:
[0061]
[0062] qout=qMult(qt,qtmp) (13)
[0063] 式中,qt为姿态机动终端时刻的姿态四元数。
[0064] 若姿态机动终端时刻卫星三轴角速度的模ωtn=0,则按下式计算点对点机动终端姿态四元数qout:
[0065] 令qout=qt(14)
[0066] 计算点对点机动的转轴e和转角χ:
[0067] [e,χ]=q2AxisAng(qDiv(qin,qout)) (15)
[0068] 式中,qDiv()为姿态四元数除法运算函数,其算法为本领域内公知的内容,本发明不做详细介绍;q2AxisAng()为由姿态四元数计算对应的转轴和转角,是前述函数AxisAng2q()的相反过程,其算法为本领域内公知的内容,本发明不做详细介绍。
[0069] 之后继续执行下面第4步。
[0070] (4)计算点对点机动用时
[0071] 首先,依据卫星姿态机动能力的角速度椭圆包络,计算点对点机动段的最大角速度:
[0072]
[0073] 式中,ωManMax为卫星三轴最大机动角速度,为已知量。
[0074] 然后,依据卫星姿态机动能力的角加速度椭圆包络,计算点对点机动段的最大角加速度:
[0075]
[0076] 之后,计算点对点机动段中加速子段和减速子段用时:
[0077]
[0078] 之后,计算点对点机动段中匀速子段用时:
[0079]
[0080] 如果tv<0,则点对点机动段中加速子段和减速子段用时tacc,及匀速子段用时tv改用下式计算:
[0081]
[0082] tv=0 (21)
[0083] 如果输入指定了姿态机动的用时ttotal,则判断tdec+tasc+2tacc+tv是否大于ttotal,若tdec+tasc+2tacc+tv>ttotal则规划无解,直接退出规划方法。
[0084] 若tdec+tasc+2tacc+tv≤ttotal,则继续按下式计算静止段用时:
[0085] tsta=ttotal‑(tdec+tasc+2tacc+tv) (22)
[0086] 如果输入未指定姿态机动的用时ttotal,则静止段用时tsta取为0。
[0087] 之后,计算点对点机动段的加速子段的结束时刻:
[0088] tm1=tdec+tacc (23)
[0089] 之后,计算点对点机动段的匀速子段的结束时刻:
[0090] tm2=tdec+tacc+tv (24)
[0091] 之后,计算点对点机动段的结束时刻:
[0092] tm3=tdec+2tacc+tv (25)
[0093] 之后继续执行下面第5步。
[0094] (5)计算实时目标姿态四元数、角速度和角加速度
[0095] 记当前星上时间与姿态机动开始时刻的差为tm。下面将根据tm的值来决定实时目标姿态四元数q、目标角速度ω和目标角加速度a的计算公式。
[0096] 若tm≤0,则姿态机动未开始,实时目标姿态四元数q、目标角速度ω和目标角加速度a按下式计算:
[0097] q=ω0 (26)
[0098] ω=ω0 (27)
[0099] a=[0 0 0]T (28)
[0100] 式中,T为转置运算符号。
[0101] 否则若tm
[0102]
[0103] qtmp=AxisAng2q(ω0,χr) (32)
[0104] q=qMult(q0,qtmp) (33)
[0105]
[0106] a=arunitize(ω0) (35)
[0107] 式中,ar、 χr和qtmp均为计算的中间变量,因此不再详细介绍其物理含义;sin()为正弦函数;cos()为余弦函数。
[0108] 否则若tm
[0109] ttmp=tm‑tdec (36)
[0110]
[0111] qtmp=AxisAng2q(e,χr) (40)
[0112] q=qMult(qin,qtmp) (41)
[0113]
[0114] a=are (43)
[0115] 式中,ttmp为计算的中间变量。
[0116] 否则若tm
[0117] ar=0 (44)
[0118]
[0119] qtmp=AxisAng2q(e,Xr) (47)
[0120] q=qMult(qin,qtmp) (48)
[0121]
[0122] a=are (50)
[0123] 否则若tm
[0124] ttmp=tm‑tm2 (51)
[0125]
[0126]
[0127] qtmp=AxisAng2q(e,χr) (55)
[0128] q=qMult(qin,qtmp) (56)
[0129]
[0130] a=are (58)
[0131] 否则若tm
[0132] q=qout (59)
[0133] ω=[0 0 0]T (60)
[0134] a=[0 0 0]T (61)
[0135] 否则若tm
[0136] ttmp=tm‑(tm3+tsta) (62)
[0137]
[0138] qtmp=AxisAng2q(ωt,χr) (66)
[0139] q=qMult(qout,qtmp) (67)
[0140]
[0141] a=arunitize(ωt) (69)
[0142] 若上述条件都不满足,则姿态机动过程已结束,实时目标姿态四元数q、目标角速度ω和目标角加速度a按下式计算:
[0143] q=qt (70)
[0144] ω=ωt (71)
[0145] a=[0 0 0]T (72)
[0146] 星上每个控制周期执行步骤5一次,直到tm≥tm3+tsta+tasc为止。
[0147] 本发明所述方法的数学仿真结果如图4至图6所示,是以主动推扫转主动推扫的姿态机动为例。图4为模式字曲线,数值13表示主动推扫模式,数值12表示姿态预置模式。图5为姿态角曲线,从中可知,姿态预置前后姿态角存在约50°的差异,说明完成了大角度姿态机动。图6为角速度曲线,从中可知上一次主动推扫结束时角速度非零,约为1.6°/s左右,而下一次主动推扫开始时角速度约为0.6°/s左右。该仿真结果说明本发明方法规划的姿态机动轨迹同时满足了两端的三轴角度和角速度约束。
[0148] 本发明说明书中未作详细描述的内容属本领域技术人员的公知技术。
[0149] 本发明虽然已以较佳实施例公开如上,但其并不是用来限定本发明,任何本领域技术人员在不脱离本发明的精神和范围内,都可以利用上述揭示的方法和技术内容对本发明技术方案做出可能的变动和修改,因此,凡是未脱离本发明技术方案的内容,依据本发明的技术实质对以上实施例所作的任何简单修改、等同变化及修饰,均属于本发明技术方案的保护范围。