Таблица 3. в статье Закон управления уменьшенным гироскопом космического телескопа Хаббла «Дизайн, реализация и характеристики на орбите»; AAS 08-278, найденный в ответе @OrganicMarble, кажется, дает единичные векторы, на которые указывают три звездные камеры HST (Fixed Head Star Tracker или FHST):
FHST Num. t1 t2 t3
1 0.0000 0.0000 -1.0
2 -0.6547 -0.3779 0.6546
3 -0.6547 0.3779 0.6546
а в табл. 1 приведены оси шести гироскопов для измерения скорости.
Gyro Number g1 g2 g3
1 -0.52547 0 -0.85081
2 -0.52547 0 0.85081
3 -0.58566 -0.61716 -0.52547
4 0.58566 0.61716 -0.52547
5 -0.58566 0.61716 -0.52547
6 0.58566 -0.61716 -0.52547
Я не нашел таблицы для ориентации четырех гироскопов управления импульсом, но изображение, показанное ниже, предполагает, что они находятся на
+sin(20) +cos(20)sin(45) cos(20)cos(45)
+sin(20) -cos(20)sin(45) cos(20)cos(45)
-sin(20) +cos(20)sin(45) cos(20)cos(45)
-sin(20) -cos(20)sin(45) cos(20)cos(45)
или
0.342020 0.66446 0.66446
0.342020 -0.66446 0.66446
-0.342020 0.66446 0.66446
-0.342020 -0.66446 0.66446
Этот комментарий предполагает, что (по крайней мере, для направлений камеры) направления такие, какие они есть, потому что
Это работает с практичностью дизайна, и это достаточно хорошо.
Хотя это, скорее всего, правда, у меня есть предчувствие, что некоторые серьезные мысли и оптимизация дизайна привели к решению, куда направить все эти вещи.
Вопрос: Каким образом были оптимизированы ориентации звездных камер космического телескопа Хаббла, гироскопов скорости и реактивных колес (3+6+4=13) для совместной скоординированной работы? Как были выбраны оценочные функции (за неимением лучшего слова)? Что именно было оптимизировано?
Рис. 1 Конфигурация узла реактивного колеса
Вот значения в Python вместе с графиком. Я пробовал брать скалярные произведения различных комбинаций, но не сразу нашел явных взаимосвязей.
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
degs = 180/np.pi
camvecs = np.array([[0, 0, -1],
[-0.6547, -0.3779, -0.6546],
[-0.6547, +0.3779, -0.6546]])
rategyrovecs = np.array([[-0.52547, 0, -0.85081],
[-0.52547, 0, 0.85081],
[-0.58566, -0.61716, -0.52547],
[ 0.58566, 0.61716, -0.52547],
[-0.58566, 0.61716, -0.52547],
[ 0.58566, -0.61716, -0.52547]])
sin20, cos20 = [f(20*np.pi/180) for f in (np.sin, np.cos)]
sin45, cos45 = [f(45*np.pi/180) for f in (np.sin, np.cos)]
controlgyrovecs = np.array([[+sin20, +cos20 * sin45, cos20 * cos45],
[+sin20, -cos20 * sin45, cos20 * cos45],
[-sin20, +cos20 * sin45, cos20 * cos45],
[-sin20, -cos20 * sin45, cos20 * cos45]])
fig = plt.figure(figsize=[10, 8]) # [12, 10]
ax = fig.add_subplot(1, 1, 1, projection='3d')
for x, y, z in camvecs:
ax.plot([-x, x], [-y, y], [-z, z], '-k', linewidth=2)
for x, y, z in rategyrovecs:
ax.plot([-x, x], [-y, y], [-z, z], '-r')
for x, y, z in controlgyrovecs:
ax.plot([-x, x], [-y, y], [-z, z], '-b')
ax.set_xlim(-1.1, 1.1)
ax.set_ylim(-1.1, 1.1)
ax.set_zlim(-1.1, 1.1)
plt.show()
Не настоящий ответ, а некоторые мысли, которые слишком длинны для комментария.
Я сомневаюсь, что была забота об оптимизации направлений для облегчения вычислений. Позиции фиксированы и известны, поэтому все уравнения можно составить вручную, чтобы обеспечить довольно быстрые, но все же точные расчеты на бортовых компьютерах.
Ориентация 4 реактивных колес кажется мне довольно прямолинейной. В идеальном случае четырех инерционных колес вы должны ориентировать их, как грани правильного тетраэдра — таким образом, любое из них может выйти из строя, в то время как остальные три вместе могут создавать импульс в направлении оси отказавшего колеса. Но это относится только к симметричному спутнику. Удлиненная трубчатая форма Хаббла далека от этого. Вам нужно гораздо больше крутящего момента, чтобы вращаться вокруг и оси по сравнению с . Именно это достигается разведением колес на 90° в плоскости 2-3, но только на 40° перпендикулярно ей. Таким образом, сумма крутящего момента, создаваемого четырьмя колесами, может быть в два раза выше при наклоне всего телескопа по сравнению с вращением вокруг оси прицеливания.
ооо
ооо