Всем привет! Занимаюсь разработкой симулятора космического корабля Союз-ТМА. Задача - на компьютере полностью смоделировать движение космического аппарата (КА) и реализовать логику управления им как в автоматическом режиме (т.е. от вычислительной системы корабля), так и в ручном используя джойстик.Логику работы вычислительной системы более менее реализовали, но вот перед нами встала самая наверное большая задача - разработка математической модели движения. Мы приблизительно определились с задачами, которые она должна решать и данными, которые она должна обрабатывать, но так как опыта работы с мат.моделями у нас ранее не было, то мы встали в ступор при ее разработке. Прошу помощи у форумчан - подскажите с чего начать, что почитать и как приблизительно можно её реализовать. Мы определились с входными данными. Модель в качестве начальных условий должна в себя должна принимать: Вектор состояния, КА состоящий из вектора положения в эпоху J2000 выражаемый в метрах и вектор скорости выражаемый в м/с, определяющие начальное положение КА в пространстве на момент времени Т0. Вектор угловой скорости КА в J2000 в проекциях на центр масс КА выражаемый в радианах. Компоненты кватерниона разворота строительной системы координат относительно J2000. Моменты инерции (double j[3][3]) Массу КА выражаемую в КГ. Дату и время начала режима по юлианскому календарю. Как я понимаю это должны быть дифференциальные уравнения движения, интегрируя которые мы будем получать текущее положение и ориентацию КА в пространстве, но как быть с управляющими импульсами? На КА установлена двигательная установка, которая и изменяет положения КА в пространстве, создавая линейные ускорения и угловые моменты.
Необходимо учитывать гравитацию Земли и Луны (не знаю по поводу Солнца). Так же в модели будет присутствовать второй объект - модель Международной космической станции (МКС) с которой и будет стыковаться Союз. Она имеет такие же входные параметры.
На выходе нам надо получать вектор состояния КА на текущий момент модельного времени, вектор угловой скорости, компоненты кватерниона разворота относительно J2000, единичный вектор из центра J2000 на Солнце в проекциях на J2000 и линейное и угловое мгновенное ускорение(A, E).
P.S. Модель собираемся реализовывать на языке С++ в виде динамической библиотеки, т.к. я представляю её в виде процедуры в которую я отправляю начальные условия и изменяя параметр времени или значения ускорений каждого двигателя изменялось и возвращаемое значение вектора состояния и ориентации. P.P.S. Знаю про Дубошина, читал, но честно сказать среди огромного количества уравнений так и не понял какие именно надо использовать.
По мере разработки постараюсь тут публиковать результаты, может кому понадобится.
|