ВНИМАНИЕ! Наша конференция посвящена космической тематике и компьютерным играм. Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!
|
» "Семерка" (МБР Р-7) для Orbiter | страница 1 |
|
|
|
Канал Orbiter: «"Семерка" (МБР Р-7) для Orbiter» |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Долго я решался и вот наконец решился. Восстановить справедливость и создать нармальный аддон
РАКЕТЫ ВЕКА.
Для начала ссылка
http://texband.nm.ru/pub/dimonspage/orbiter/R7.zip
Для тех кто скачал и посмотрел, все нижеследующее:
1) Просьба не смеятся . Это даже не альфа версия аддона, это технологическая демка большого
проекта под названием "Р-7 - советская межконтинентальная баллистическая ракета".
2) Учитывайте, что для автор аддона этот проект первый, много он пока не понимает ("Я не
волшебник, я только учусь")
Теперь о деле. То, что находится в архиве - модель 2-й ступени ракеты Р-7. Реализованы:
1) Визуальная модель. Делалось по доступным мне чертежам и фотографиям. Довольно коряво, но
выглядит по-моему ничего . Чуть не сбрендил выделывая обтекатели под рулевики и забыл про
отсек, расположенный над баком окислителя. Текстуры пока нет, не разобрался я с
текстурирование, да и с бухты-барахты ерунду лепить не хочется. Подождет текстура.
2) В ступени есть баки и пять движков - 4-х камерный РД-108 и четыре рулевика. Выхлоп из
двигунов пока стандартный (опять таки текстуры и потоки частиц... сделаю!). Зато есть то,
чего не видел на других моделях, в частности у "Союзов" - рулевики анимированы, т.е. качаются
при управлении ракетой по каналам поворота.
3) Исходники (специально для Юрия Кульчинского ) прилагаются. Не судите строго, это только
начало .
Что хочу от коллектива:
1) Высткажите мнение по поводу визуальной модели, она явно далека до совершенства
2) Плз., кто в курсе, какая тяга и ISP у рулевиков (у меня она липовая - 1 тонна). Честно
искал, и продолжаю искать инфу, но если кто знает...? Желательно в вакууме и в пустоте.
Вообще, если есть ссылки по Р-7 или "Союз", поделитесь, плз.
3) Много вопросов вызывает циклограма отделения "боковушек". По имеющимся у меня сведением
все протекает так:
-переход двигателей 1-й ступени в режим малой тяги (сколько???)
-выключение 1-й ступени
-отделение "боковушек". 2-я ступень работает на полной тяге, и естественно улетает прочь
-на боковушках открываются клапаны сброса давления наддува кислородных баков, создают доп.
тягу и помогают уходить "боковушкам". А вот где эти клапаны и какое там давление, пока не
знаю...
ВНИМАНИЕ: Запуск ВСЕХ движков - клавиша "O" (латинская буква, а не ноль ). Да, ступень не взлетает сразу - у нее тяга меньше веса, взлетает когда выгорит 20% топлива.
Пока все. Надеюсь довести проект до конца, идей тьма .
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Очень рад!
Рулевики - 2,5 тонны тягой. Вот источник, можно взять кое-что - http://www.buran.ru/htm/gud%2011.htm
Если откроется на оглавлении, то нужно кликнуть на главе "Ракетный комплекс Р-7".
Главная вкусность отделения боковушек следующая. Узел переднего крепления - силовой, именно через него передается тяга боковушки на центральный блок. Крепление - шарнирное, допускающее повороты (в 2-х плоскостях). Нижний пояс креплений - не силовой, жто простые тяги, которые не дают ступени болтаться туда-сюда. Когда двигатели выключаются, некоторое время существует остаточная тяга (я не помню - то ли самих двигателей, то ли продолжают работать рулевики). В этот момент нижний пояс креплений рвется, и на остатках тяги боковушки проворачиваются вверх вокруг верхних шарниров. Если смотреть снизу, ракета раскрывается, как цветок. Поворачиваются далеко - градусов на 60. После этого освобождается верхний пояс креплений. В верхней части боковушек (бак окислителя расположен вверху, горючего - внизу) открываются сопла, через которые стравливается давленние наддува баков окислителя. Создается момент, разворачивающий боковушки уже в другую сторону (этот момент превышает момент вращения, созданный остаточной тягой и боковушка начинает вращаться уже в другую сторону). Так как центр масс боковушки уже отведен от ракеты, сразу получается, что боковушка отведена от РН и разорачиваясь цветком (но уже глядя сверху) быстро остается позади. Вот то, что я знаю. Но я не знаю технических подробностей - расположение сопел, угол векторов тяги и т.п.
Если что-то невнятно, могу нарисовать рисунок
_________________ Юрий Кульчицкий aka Kulch |
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Кстати, на той же странице есть рисунок - явно снимок 3-мерной модели. Можно попробовать написать Вадиму Лукашевичу и попросить исходник модели (скорее всего для b-cad). Ее можно конвертнуть для 3ds max, там обработать для Орбитера и конвертнуть в меш. Могу взяться, если надо. Я на этом деле крокодила съел.
_________________ Юрий Кульчицкий aka Kulch |
|
|
Kulch
105 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 2(21) Репутация: 29 Сообщения: 604 Откуда: Россия, Санкт-Петербург Зарегистрирован: 24.08.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Посмотрел. Визуалка хороша. Есть огрехи, но на них можно и забить. Замечание пока только одно - когда начинаешь рулить, то отклонение рулевых двигателей происходит с конечной скоростью (что правильно), а возврат в нейтраль - мгновенно, стоит только отпустить клавиатуру, а это - неправильно. Еще надо бы уточнить угол максимального отклонения рулевиков - навскидку кажется, что взятый (я понимаю, что наугад) сейчас - слишком велик.
Да и еще одно - перепутано руление. Я жму вверх - лечу вниз, жму влево - лечу вправо.
В остальном - очень хорошо.
_________________ Юрий Кульчицкий aka Kulch |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Спасибо, особенно за ссылку! Буду работать . Если что понадобится, обязательно к вам обращусь. До выходных может чего и созреет, а пока работа - учеба, учеба - работа... И комп далеко...
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Bloodest
155 EGP
![Бронзовая звезда (+25 EGP)](/conference/images/ranks/medals/bronze.gif) ![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
По движкам - источник - Альбом конструкций ЖРД.(часть 3)П/р Глушко В.В. М.:ВИ МО СССР 1969 (гриф снят в 90 году). Собственно это часть описания движков глушковской конторы разработанных с 55 по 62 год.
По 107/108 (выборочно)
Код: |
Полная (основные и
рулевые камеры, реакция
выхлопа ТНА) номинальная тяга
У земли 83,7/76 т
В пустоте 102/96 т
Тяга одной камеры у земли
Основной 19,2/16,3 т
Рулевой 3,21/2,73 т
Удельня тяга (полная номинальная тяга к полному расходу)
У земли 256/248 сек
В пустоте 313/315 сек
Давление на срезе
Основных камер 0,4/0,34 ата
Рулевых камер 0,35/0,32 ата
Диаметр среза
Основных камер 720/720 мм
Рулевых камер 310/310 мм
Расходы через ТНА (кг/с)
Окислитель 226/210,2
Горючее 91,4/87,9
H2O2 8.8/7,5
N2 (ж) 1,75/1,35
Рулевая камера, расходы (кг/с)
Окислитель 8,35/3,64
Горючее 4,15/7,56
Циклограмма работы
№ Время(сек) Описание (Условие)
от команды
старт
-1 - Продувка кислородных полостей КС воздухом смомента начала захолаживания.
0 -5 мин Переход на продувку азотом
1 0 Команда на старт - вкл автоматики
автоматика - зажигание пироустройств
2 1 Предварительная окислитель - клапан окислителя приоткрывается до повисания на разрывном болте - окислитель прямотоком боз подкачки ТНА поступает в камеры (зажглись все пироустройства).
3 2,5 Предварительная горючее - клапан горючего открывается полностью - прямоток (открылись все клапаны окислителя)
4 4,7 Стоп продувки (+2,2 сек от №3)
5 9,5 Контроль давления в камерах (в течении 1 сек контакты
всех датчиков давления не должны размыкаться)
6 10,5 Промежуточная 1 для 107 (при выполнении №5 подается перекись на ГГ в объеме промежуточной 1)
7 ~11 Рвутся разрывные болты в клапанах окислителя (контролируются контактами).
8 15 +4,5 от №6 Контроль давления в камерах 107 - 25 ати (размыкание контактов датчиков и незамыкание в течении 1 сек)
9 16 Перевод 108 на режим главной ступени и 107 промежуточной 2 (по выполнении 8).
10 19,5* Контроль давления в 108 на 25 ати.
11 22** Перевод 107 на главную ступень (через 6 секунд от контакт подъема)
12 140 Перевод 107 на ступень промежуточная 1. Останов рулевых камер.
13 141 Останов 107 путем прекращения подачи перикиси водорода.
14 142 Закрытие клапанов окислителя и горючего 107.
15 320 Перевод 108 на пониженный режим.
16 321 Закрытие клапанов основных камер 108
17 326*** Закрытие клапанов рулевых камер 108 и клапана подачи перикиси.
*- посфактум контроль - после № 15 БР отрывается от стола
**- уже в полете
*** - Длительность работы №15 определяется системой РКС - точный набор рассчетной скорости.
108 имеет два блока клапанов - отдельно для рулевых и основных камер.
На 107 - общие и отдельные, последовательно к общему на окислителе рулевых.
Переход на предварительную ступень осуществляется открытием клапанов, остальные путем подачи и изменения расхода перекиси.
Все клапана находятся за ТНА - ТНА перед стартом залит компонентами.
Два регулятора систем
СОБ - совместного опоржнения баков - изменяет соотношение компонентов так чтобы к концу работы ступени не осталось остатка горючего или окислителя.
РКС - регулирования кажущейся скорости - измение тяги в соответствии с расчетным значением. Идея следующая -
Имеется гиростабилизированная платформа - она выставляется перед стартом в плосоксть горизонта и азимут пуска. На платформе стоит интегратор ускорения - его ось направлена в направлении вектора конечной скорости. Соответственно он интегрирует не реальную скорость а кажущуюся - которая станет реальной только в конце работы. Определяется рассогласование между предварительно вычисленным значением и измеренным и соответствующая команда на регулятор РКС.
Гыг. Электроники никакой - только часовые механизмы, которые вращают дорожки переменных резисторов в виде кулачков. Соответственно ручки со щетками движутся от датчиков - интегратора ускорений и оси Х ГСП для тангажа. Нужна другая траектория - точи кулачок. :gigi:
|
Вот так. Если чего еще - могу посмотреть.
|
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Bloodest, спасибо ! А про конструктивное исполнение боковых болоков там ничего нет? Особенно интересно расположение клапанов сброса давления наддувва кислородных баков. Еще интересен уровень тяги на всех режимах.
Kulch : |
Еще надо бы уточнить угол максимального отклонения рулевиков - навскидку кажется, что взятый (я понимаю, что наугад) сейчас - слишком велик.
|
Угол отклонения 45 градусов. Взят не от фонаря, только источник неприпомню. Уточню.
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Dik
100 EGP
![Ветеран Elite-Games (20 лет)](/conference/images/ranks/medals/veteran20.png) Репутация: 3 Сообщения: 107 Откуда: 53.248N 83.409E Зарегистрирован: 28.03.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
To astronavt
А хорошо получается!!! Качество модели на несколько порядков выше чем у существующих!!!
_________________ Одни строят, а другие...другие ломают. |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
To Dik
Старался . Однако победу праздновать еще слишком рано...
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Всех пилотов и пилотесс С ДНЕМ КОСМОНАВТИКИ!!!
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Bloodest
155 EGP
![Бронзовая звезда (+25 EGP)](/conference/images/ranks/medals/bronze.gif) ![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Добавил расходы для 108 - перикиси и азота.
Угол качания -=45 градусов подтверждаю - обеспечивается тем, что подвод компонентов производится не через сильфоны, а через узлы качания - внутри подшипников скользящее соединение трубопроводов. Гермитизация - три полости - компонент - отсос - азот, в отсосе давление меньше чем в компоненте и азоте.
По тягам данных нет - есть графики давлений в основных КС на переходных режимах - в % от номинальной тяги.
Код: |
107 Запуск (Время -0 команда на переход на промежуточную 1)
Время Уровень давления Команда (примечание)
сек % от номинала
0 - промежуточная 1 (линии нет)
3 70 (на 3 сек вертикальный взлет от 5 % до 70%)
4 76
6,5 77 промежуточная 2
7,3 86
12,5 88 главная
13 99
17 100
107 Останов (Время -0 команда на переход на промежуточную 1)
Время Уровень давления Команда (примечание)
сек % от номинала
0 100 промежуточная 1
0,4 80
0,6 77 отсечка
1,0 15
1,4 4
4 0
108 Запуск
Время Уровень давления Команда (примечание)
сек % от номинала
0 - главная (линии нет)
3 70 (на 3 сек вертикальный взлет от 5 % до 70%)
4 95
5 98
8 100
108 Останов
Время Уровень давления Команда (примечание)
сек % от номинала
0 100 Переход на пониженную тягу
0,3 20
0,4 10
0,8 5
5 2,5 (Дальше график обрывается и выхода на 0 нет)
Модификации двигателей
107
===============================================================
ИНДЕКС Применен Коментарии
===============================================================
8Д74 БР, Восток нет (в таблице прочерк)
8Д74ПС Спутник 1и2 Удельный импульс -5 сек (повышенный расход горючего на пристеночный слой). +15% расход азота. переход с главной на первую промежуточную на 100ой секунде.
8Д76 Спутник 3 +5% расход азота. переход с главной на первую промежуточную на 85ой секунде.
8Д728 Тяж спутники
Луна Марс Венера
Восход Запуск через одну промежуточную (средняя между первой и второй). +5% расход азота.
===============================================================
108
===============================================================
ИНДЕКС Применен Коментарии
===============================================================
8Д75 БР, Восток нет (в таблице прочерк)
8Д75ПС Спутник 1и2 Удельный импульс -6 сек (повышенный расход горючего на пристеночный слой). Нет операций по останову - останов по выроботке топлива.
8Д77 Спутник 3 Нет операций по останову - останов по выроботке топлива.
8Д727П Луна Марс Венера +5%Рк +3сек удельный импульс у земли
8Д727 Тяж спутники Восход Нет конечной ступени.
|
|
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Тоже хлеб, да еще какой! Спасибо огромное!!!
Полагаю, тяга пропорциональна давлению, поэтому буду отталкиваться от этих данных. На выходных засяду за "боковушки".
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Вот результат моих потуг на этих выходных. Прошу любить и жаловать, следующая технологическая демка (сожалею, что пока не альфа-версия ).
http://texband.nm.ru/pub/dimonspage/orbiter/R7_demo3.zip
demo3, потому, что была еще demo2, но о ней можно уже забыть.
Итак, что здесь есть.
Во-первых:
ИСПРАВЛЕНО:
1) Теперь руление верное, исправил, как впрочем и переделал сам алгоритм поворота рулевиков.
2) Исправлен мгоновенный возврать рулевиков на нейтраль – теперь они возвращаются в исходную позицию с конечной скоростью
3) Теперь двигатели можно выключить нажатием «*» на цифровой клавиатуре
ДОБАВЛЕНО:
1) Добавлена 1-я ступень. Долго ломал я голову (всю прошедшую неделю!) как ее прикрутить. Аттачменты не прокатывают, стыковочные порты тоже (бред вообще)… Спасли исходники «Атлантиса» - принцип вчистую слизан оттуда. Надо упомянуть об этом в комментариях к коду, чтобы Роберт Конлей не обидился.
Ступень отделяется, правда есть одно но. Она отделяется НЕПРАВИЛЬНО!!! Сил и времени на реализацию верного алгоритма отделения уже не хватило, подождем до следующих выходных . Благодаря инфе, предоставленной Kulch и Bloodest я имею об этом процессе вполне четкое представление.
2) Ну естественно, первая ступень снабжена рулевыми камерами, которые, разумеет качаются. Без этого никак, упирался рогом, пока не сделал.
Вот пока все новшества. Приборный отсек на визуалку второй ступени так и неприделал, некогда было. Все модели серого цвета, пламя стандартное, потоков частиц нет. Все красивости буду делать, когда полностью реализую динамику РН.
Уф, а пока допер как вычислить номер группы, которую нужно крутить (это я про анимацию рулевиков)!!! Чуть не обалдел! Но для настоящих джеддаев нет преград .
Зато теперь я точно знаю, как буду делать третью ступень для «Востока», «Молнии», «Союза» и прочих модификаций. С первой сложность была в том, что она работает одновременно со второй, а третья то выключена! Приаттачу, да и дело с концом. Правда нужно будет реализовать горячее разделение.
Да, пока не забыл. Слетал тестовый полет – вывел на LEO 200 км. Даже на видео записал . Для управления тангажем использовал LauncerMFD от Bloodest (рульный тулз, Роман!!!). Правда пришлось использовать хакерские пары сил, т.к. моя «Семерка» не дает интерфейса к управлению ориентацией.
Вот такие результаты. Как всегда, пара вопросов:
1) При объединении движков в группы (в пользовательские) работает криво - вылетает в винды, чаще всего при загрузке. То ли двигунов много (каждая камера реализована), толи я туплю…. Пришлось запускать движки не группами, а в цикле, по очереди. Кто-нибудь сталкивался с такой ерундой?
2) «Отъезжаю» камерой. Далеко, в космос. При возврате, или в процессе удаления – вылет в винды. См. вопрос из предыдущего пункта + может я туплю ?
На этом все. Жду критики.
P. S.: Bloodest, я посмотрел, то что Вы просили. Тетрадки возьму с собой и завтра (вернее уже сегодня ) обязательно накатаю постинг в теме «Межзвездные перелеты». Просто не хватило времени, «засемерился» .
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Bloodest
155 EGP
![Бронзовая звезда (+25 EGP)](/conference/images/ranks/medals/bronze.gif) ![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Множественные юзерские группы (Н1 №Л7 первая ступень).
Код: |
double XB= 7.446;
double YB= 3.916;
double ZB= -51.61;
th_first_BU[0]= CreateThruster (_V(-XB,-YB,ZB), _V(0,0,1), MAX_ATT_FIRST, ph_first, ISP_FIRST_VAC, ISP_FIRST_SL);//крен 1
th_first_BU[1]= CreateThruster (_V( XB, YB,ZB), _V(0,0,1), MAX_ATT_FIRST, ph_first, ISP_FIRST_VAC, ISP_FIRST_SL);//крен 2
th_first_BU[2]= CreateThruster (_V(-XB, YB,ZB), _V(0,0,1), MAX_ATT_FIRST, ph_first, ISP_FIRST_VAC, ISP_FIRST_SL);//крен 3
th_first_BU[3]= CreateThruster (_V( XB,-YB,ZB), _V(0,0,1), MAX_ATT_FIRST, ph_first, ISP_FIRST_VAC, ISP_FIRST_SL);//крен 4
thg_first_ST = CreateThrusterGroup (th_first_ST, 16, THGROUP_MAIN);//CreateThrusterGroup (th_first, 30, THGROUP_MAIN);
thg_first_XP = CreateThrusterGroup (th_first_XP, 2, THGROUP_USER);
thg_first_XM = CreateThrusterGroup (th_first_XM, 2, THGROUP_USER1);
thg_first_YP = CreateThrusterGroup (th_first_YP, 2, THGROUP_USER2);
thg_first_YM = CreateThrusterGroup (th_first_YM, 2, THGROUP_USER3);
thg_first_CE = CreateThrusterGroup (th_first_CE, 6, THGROUP_USER4);
thg_first_BU = CreateThrusterGroup (th_first_BU, 4, THGROUP_USER5);
rul_N1.Momentum[2]=4*8.413*MAX_ATT_FIRST*.866; |
Расширение OrbiterAPI.h
Код: |
typedef enum {
THGROUP_MAIN,
THGROUP_RETRO,
THGROUP_HOVER,
THGROUP_ATT_PITCHUP,
THGROUP_ATT_PITCHDOWN,
THGROUP_ATT_YAWLEFT,
THGROUP_ATT_YAWRIGHT,
THGROUP_ATT_BANKLEFT,
THGROUP_ATT_BANKRIGHT,
THGROUP_ATT_RIGHT,
THGROUP_ATT_LEFT,
THGROUP_ATT_UP,
THGROUP_ATT_DOWN,
THGROUP_ATT_FORWARD,
THGROUP_ATT_BACK,
THGROUP_USER = 0x40,
THGROUP_USER1 = 0x41,
THGROUP_USER2 = 0x42,
THGROUP_USER3 = 0x43,
THGROUP_USER4 = 0x44,
THGROUP_USER5 = 0x45
} THGROUP_TYPE; |
Вращение движков крена (они неравномерно расположены по окружности- под углом +- 27,74 градуса от плоскости Y0Z)
rul_N1.Momentum[] - VECTOR3 максимально развиаемых моментов.
Допустим нужно только гасить вращение по крену
Код: |
VECTOR3 Omega0;parent->GetAngularVel(Omega0);
i=2;
gamma_r.data[i]=fabs(Momentum[i])/Inertia.data[i];
upr.data[i] = -Omega0.data[i]/(gamma_r.data[i]*SimdT);
upr.data[i] = dSign(upr.data[i]) * min(1,fabs(upr.data[i]));
BankA(upr.data[2]);
|
Собственно руление sig - сигнал на крен -1...0...1
Код: |
void n1bisM_RN::BankA(double sig)
{
double angle = 60.*RAD*sig;
VECTOR3 dir0,dir1,dir2,dir3;
dir0.x =-sin(angle)*sin(27.74*RAD);
dir0.y = sin(angle)*cos(27.74*RAD);
dir0.z = cos(angle);
dir1.x = sin(angle)*sin(27.74*RAD);
dir1.y =-sin(angle)*cos(27.74*RAD);
dir1.z = cos(angle);
dir2.x = sin(angle)*sin(27.74*RAD);
dir2.y = sin(angle)*cos(27.74*RAD);
dir2.z = cos(angle);
dir3.x =-sin(angle)*sin(27.74*RAD);
dir3.y =-sin(angle)*cos(27.74*RAD);
dir3.z = cos(angle);
SetThrusterDir (th_first_BU[0],dir0);
SetThrusterDir (th_first_BU[1],dir1);
SetThrusterDir (th_first_BU[2],dir2);
SetThrusterDir (th_first_BU[3],dir3);
} |
Как видно для руления вовсе необязательно использовать группы. Вообще группы нужны для стандартного управления из Орбитера - включить клавные двигатели или kill rotation. В группах - главное невоткнуть чужой, из другой группы и правильно задать количество.
Глюк близко - далеко - близко - вообще может возникать из-за геометрии- мешей.
|
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Угу, понятно, т.е. понадобилось ковырять заголовочные файлы . Ну на группы я забью - зачем они РН? Автопилот все равно делать буду, а ручками можно и так рулить .
Bloodest : |
Глюк близко - далеко - близко - вообще может возникать из-за геометрии- мешей
|
Это не есть хорошо. Очень неприятно. Если дело в этом, то я рискую стать автором глюковатого аддона, чего оч-чень не хочеться. Вообще мои меши не грузятся в такой тулз как ShipEdit, что странно и тоже неприятно.
Меши генерю прямо из 3dmax 7, скриптами, скачанными с avsim.com. В субботу долго не мог загрузить в "Орбитер" меш 1-й ступени, изматюкался, перерыл буквально все доки. Потом просто перегенерировал меш и он загрузился . А шипэдит так и материться... Может скрипты какие кривые, может 7-м макс что-то портачит. Все может быть.
Кстати, сегодня прочел ваши с Kulch разговоры по поводу аттачментов в теме "Сила торможения парашютом". И мне стало грусно, это значит я ошибался, говоря, что лихо приаттачу 3-ю ступень... Что ж, нато он и форум, чтобы отрезвлять мозги. Прорвемся, тем более что до 3-й ступени еще далеко, хотя б спутник запустить, или "Кузькину мать" на баллистическую дальность... Хотя там тоже аттачмент нужен.
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Bloodest
155 EGP
![Бронзовая звезда (+25 EGP)](/conference/images/ranks/medals/bronze.gif) ![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 3(40) Репутация: 18 Сообщения: 944 Откуда: Питерские мы Зарегистрирован: 07.10.2004
![Вы не можете голосовать](images/tool_cool.gif) |
|
Дык посморкал треть версию -
3 замечания.
1) Скорость вращения рулей не привязана ко времени ( в общем случае шаг времени переменный).
2) Отсечка первой ступени по полному израсходованию топлива - возможен глюк "реализма" (а мот и не прявится) - орбитер считает расход горючки по шагам - сперва первый двигатель сколько сожрал - вычитает, сколько второй вычитает и т.д. Фича в том, что если двигателей много и объява идет по кругу, то на поледнем тайм степе всем может и нехватить - часть отработает а часть двигателей сдохнет - получим неуправляемый запрос по вращению в тангаже и/или рысканье.
if ( (GetPropellantMass(ph_main1) <= 1) && (stage == 0) ) FirstStageSeparation();
Лудше
if ( (GetPropellantMass(ph_main1) < GetPropellantFlowrate(ph_main1)*simdt*2) && (stage == 0) ) FirstStageSeparation();
simdt - шаг симуляции
2 - запас
3)- вылет - возникает при потере видимости.
void R7_second_stage::clbkVisualCreated(VISHANDLE visual, int refcount)
{
if (refcount > 1) return;
vis = visual;
RotateFirstStageBlocks();
}
void R7_second_stage::clbkVisualDestroyed(VISHANDLE visual, int refcount)
{
if (visual == vis) vis = NULL;
}
В принципе понятно надо отслеживать наличие визуалки штоб не пытаться вращать меши которых нет ( не отображаются из за большого расстояния)
Но возникает такой казус
Колбэк клавы вызывается всегда ( иэто правильно) если ни чего не нажато то аргумент пустая строка - "".
Обработчик доползает до возврата в нейтраль и пипец - там вызов изменения анимации а внем
MeshgroupTransform(vis, mt1);
И пипец - меша то ведь нет! - вне пля видимости...
Естественно я не такой яйцеголовый чтобы сразу раскусить казус.
Принцип такой -
Настраиваем проект на дебуг.
Настраиваем сброс dll прямо в .прмрбр./orbiter/modules
Настраиваем исполняемый exe и путь к нему
.прмрбр./orbiter/orbiter.exe
.прмрбр./orbiter/
Все компилим дебуг и жмем отладка (орбитер должен быть в оконном режиме - иначе пипец на брекпоинте экран не отпустит и и полный пинцет (особенно в икспях) ни то ни се - вполне понятный "подвис")
Двигаем удаление ждем ошибки - хряп смотрим контекст выполнения
ORBITER! 04267B6()
R7_second_stage::clbkConsumeDirectKey(char *)
ORBITER! 004146DE()
...
Вторая строчка соответственно функция где ошибка. Но вовсе не та квартира, где деньги лежат .
Потому как контекст отображает только (во всяком случае у меня) корни цепочек вызовов. Т.е. ошибка произошла где то внутри
clbkConsumeDirectKey(char*)
Дальше просто - сбрасываем дебуг -
ставим первой строчкой в clbkConsumeDirectKey(char*)
return false;
Компилим - запускаем дебуг - двигаем в космос - работает вылета нет.
А теперь финт ушами - прямо на ходу орбитера ставим бреакпоинт на только что введенный
return false;
Хоп, орбитер всал на бреакпоинте. Ремим return false; жмем выполнить следующую строчку (f10) - мелкософт компилит прямо исполныемый код (если места хватит), ругается что брекпоинт недействителен и он сдвигает его на следующую строку. Дык теперь надо построчно пройти весь код (лудше f11- со спуском в подпрограммы)
Ну дык доходим до UpdateCE(); а в нем на
MeshgroupTransform(vis, mt1); затаился кирдык.
Добавляем
void R7_second_stage::UpdateCE(void)
{
if(!vis) return;//<<<<<<<<<<<<<<<<<<<<<<!!!!!
mt1.transform = MESHGROUP_TRANSFORM::ROTATE;
И отец русской демократии спасен...
|
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Дело мастера боится. Спасибо!!!
Bloodest : |
1) Скорость вращения рулей не привязана ко времени ( в общем случае шаг времени переменный)
|
А про это знаю. В общем случае скорость уножается на время вывода кадра, чтобы на разных тачках скорость поворота была одинаковой. Просто до этого руки не доходили... Прикручу, делов-то
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Tiger
65 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Репутация: 10 Сообщения: 140 Откуда: Россия, Барнаул Зарегистрирован: 13.12.2005
![Вы не можете голосовать](images/tool_cool.gif) |
|
Странно, это только у меня меши рулевых двигателей развернуты градусов на 80 по отношению к тому, "как надо"? Направление реактивных струй при этом именно "как надо".
_________________ Siberian Tiger |
|
|
astronavt
86 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Рейтинг канала: 1(3) Репутация: 35 Сообщения: 403 Откуда: Новочеркасск Зарегистрирован: 11.01.2006
![Вы не можете голосовать](images/tool_cool.gif) |
|
Tiger : |
Странно, это только у меня меши рулевых двигателей развернуты градусов на 80 по отношению к тому, "как надо"?
|
Странно... Угол поворота движков обнуляется при загрузке аддона. Я проверял в дома и сегодня проверил на работе - все нормально.
С мешами есть другой глюк - когда нажимаешь, например рыскание, не отпустив тангаж, то меши рулевиков перекручиваются интересным образом, так что смещается положение нейтрали. Это связано с обработкой клавы, я переделаю ее.
Струи поворачиваются с помощью SetThrusterDir(...), а визуалка - трансформацией.
_________________ Я бы изменил этот мир, но Бог не дает мне исходников... |
|
|
Tiger
65 EGP
![Ветеран Elite-Games (15 лет)](/conference/images/ranks/medals/veteran15.png) Репутация: 10 Сообщения: 140 Откуда: Россия, Барнаул Зарегистрирован: 13.12.2005
![Вы не можете голосовать](images/tool_cool.gif) |
|
Возможно: я топтал клаву как попало, а потом посмотрел на рулевые.
_________________ Siberian Tiger |
|
|
|
|
|
Канал Orbiter: «"Семерка" (МБР Р-7) для Orbiter» |
|
|