Optimal Rocket Builder

  1. Оффлайн

    Andarko

    Посетители

    Сообщений: 18

    Всем привет!

    Выкладываю первый вариант своей программы для подборки оптимальной, или по крайней мере очень близкой к оптимальной, конфигураций ракет. Подобный проект уже существует, в виде онлайн-калькулятора. Однако меня эта программа далеко не во всем устраивает, поэтому я решил написать свой вариант.

    Главные отличия и особенности:
    1. Принцип работы. Не знаю точно, как работает онлайновый Optimal Rocket Calculator, но насколько я смог разобраться - он клепает случайные конфигурации ракет и выбирает из них подходящие под заданные условия. В результате, если заданная задача достаточно сложна, например, взлет с Ив, он может довольно долго перебирать неподходящие варианты и очень долго искать решение.
    Алгоритм моей программы использует перебор вариантов по нескольким параметрам (число горизонтальных ступеней, кратность симметрии горизонтальных ступеней и различные вариации распределения DV по ступеням). При каждом наборе параметров он находит одну и только одну наиболее подходящую по заданные условия конфигурацию ракеты. После перебора всех конфигураций ракет, алгоритм выдает наилучшую. Причем алгоритм достаточно быстро это делает, большинство трудных задач он решает за 1-2 минуты, по крайней мере на моем компьютере.

    2. Критерий оптимизации. У GaryCourt, автора Optimal Rocket Calculator, на выбор предлагается 3 оптимальных критерия. Вы можете оптимизировать ракету или по массе, или по цене, или по количеству деталей. В моей программе можно выбрать те же самые 3 критерия или любую их комбинацию, указав коэффициенты важности каждого критерия.

    3. Управляемый вектор тяги. В моем калькуляторе вы можете задать вашей ракете необходимый минимальный управляемый вектор тяги. Таким образом все ваши ступени будут иметь TVC не ниже заданного. Плюс можно задать максимально допустимую массу ракеты, которой TVC не требуется. Но об этом ниже.

    4. Недостатки. К сожалению пока программа работает только с жидкотопливными двигателями, надеюсь допилить твердотопливные и ионные виды двигателей в скором будущем. Думаю, что есть и другие недостатки, надеюсь, что вы мне о них напишите :)
    Ах да, будьте осторожны, я пока не допилил обработку ввода недопустимых значений, ибо уже вечер воскресенья и не успеваю.

    Параметры
    Оптимизировать по: Тут можно указать коэффициенты важности параметров ракеты. Например, если указать для цены коэффициент 1, а для остальных критериев 0, программа найдет оптимальную конфигурацию ракеты по цене. Если указать все критерии по единице, то программа будет подбирать оптимальную ракету по всем критериям сразу. (Например, если будет 2 ракеты с одной массой и первая стоит 100000 и имеет 50 деталей, а вторая стоит 200000 и имеет 25 деталей, то они будут считаться программой одинаково хорошими).
    Стоит отметить, что при выборе оптимальной ракеты имеет значение только соотношение коэффициентов между собой. Например при коэффициентах 1 4 1 и 0.5 2 0.5 будет отображаться один и тот же результат. (Программа рассчитывает средне взвешенное геометрическое по всем параметрам с весами-коэффициентами и выбирает наилучший, то есть умножает между собой параметры в степени коэффициентов, а потом извлекает корень степени суммы всех коэффициентов )

    Полезная нагрузка. Модули, капсулы, научные приборы и т.д. Весь пассивный груз, который нужно доставить до конечной цели.

    Требуемое dv. Запас DV, необходимый ракете ля выполнения задачи.

    Местная гравитация. Задается, если вам необходимо взлетать или садиться на какое-либо тело. К этому параметру привязывается TWR.

    TWR минимальный и максимальный. Минимальный TWR определяет значение TWR, ниже которого тяга ракеты опуститься в процессе полета не должна. Максимальный TWR пока не несет никакой полезной нагрузки, так как у жидкотопливных двигателей можно уменьшать тягу. Эта цифра будет иметь значение, когда я прилеплю к своей программе расчет твердотопливных ступеней.
    TWR и гравитацию можно указывать и для расчета межпланетных перелетов для ограничения времени прожига ступеней. Это может пригодиться, чтобы задать минимальную тягу. Например, если ракете нужно для перелета dv = 3000 м/с и задать гравитацию = 1 и TWR = 2, то ракета будет лететь с ускорением не ниже 2 м/с2. Таким образом время работы ступени будет ограничено 3000/2 = 1500с

    Число горизонтальных ступеней, минимальное и максимальное. Можно указать значение от 1 и выше. Определяет сколько в ракете будет горизонтальных ступеней до вертикального перехода вниз. Если указать 1, то все ступени будут вертикальными. Программа переберет все варианты между минимальным и максимальным значениями и выберет наилучший.
    Горизонтальные ступени по-умолчанию всегда соединяются топливными шлангами, возможно позже я сделаю галочку, что можно было их убрать, но как по мне, в этом нет смысла.

    Горизонтальная симметрия, минимум и максимум.
    Определяет симметрию горизонтальных ступеней 2х, 3х,..., 8х (5х и 7х исключены). Минималное значение - 2, максимальное - 8. Программа выбирает наилучший вариант.

    Предельный размер центральной/радиальной связки. Если стоит значение больше 1, то программа будет предлагать (если в этом есть необходимость) связки одинаковых баков с двигателями без разъединителя. Например, 7 морковок с Mainsaial-ами. Программа предлагает связки баков только в том случае, если не хватает TWR или DV.

    Минимальный угол управляемой тяги и Управляемая масса. Если данный параметр указан, ракета будет комплектоваться такими двигателями, чтобы на каждой ступени средний по мощности двигателей TVC не падал ниже указанного.
    Управляемая масса - это масса, которая будет управляться с помощью SAS или RCS без помощи TVC.

    Разъединитель после полезной нагрузки. Если галочка стоит, то к последней ступени добавляется вертикальный разъединитель, в противном случае последний бак с двигателем остаются крафтом.

    Атмосферные характеристики двигателей. Если данный пункт отмечен, то расчет двигателей будет идти по их импульсу при атмосферном давлении, в противном случае - в вакууме.

    Первая ступень горизонтальная. Если указано, то от полезной нагрузки первые баки с двигателями будут сбоку, в противном случае - снизу.

    Тяга, импульс и TVC предыдущих ступеней. Указываются, если предполагается, что двигатели предыдущих ступеней будут работать вместе с данной ракетой.

    Метод поиска.
    Равномерное распределение DV - ракеты разбивается на ступени с DV каждой ступени, не ниже указанного
    Экспоненциальное распределение DV - Первая ступень будет иметь DV не ниже указанного, минимальное DV каждой следующей будет ниже в указанное количество раз.
    Перебор всех вариантов - автоматически перебираются различные варианты распределения DV по ступеням и выбирается наилучший.
    [attachment=11619]

    Вложения:

      Вам запрещено скачивать вложения.
    Сообщение отредактировал Andarko 25 августа 2014 - 17:45
    24 августа 2014 - 20:56 / #1
  2. Оффлайн

    CoolCrazy

    Хорошие люди

    Сообщений: 3930

    Andarko, наверное, нужная программа. Но я ей не буду пользоваться.
    Для новичков подойдет.

    24 августа 2014 - 21:05 / #2
  3. Оффлайн

    Andarko

    Посетители

    Сообщений: 18

    В программу входят файлы с настройками, в которых можно изменить кое-какие параметры:
    Param.txt - лучше не трогайте, помнит параметры для последней рассчитываемой ракеты, хранит значения для полей ввода.
    Tanks.txt - Хранит топливные баки. Из-за того, что расчет баков пока не универсальный - тут лучше ничего не менять
    Engines.txt - Хранит жидкотопливные двигатели. Вот этот файл можно редактировать. Можете добавлять свои из модов или удалять двигатели, которые вам не нравятся. Только не трогайте группы двигателей, можете указать число двигателей в группе 0 и убрать все двиги, но саму группу оставьте
    Decouplers.txt - хранятся декуплеры, используемые в ракете, можете менять на свои. Но не более чем по одному декуплеру для каждой задачи. Всего их 5 - 1 горизонтальный, 1 крошечный, 1 маленький, 1 большой и 1 экстра большой.
    (Вертикальный декуплер в программе подбирается по размеру топливного бака под ним)

    CoolCrazy писал:
    Andarko, наверное, нужная программа. Но я ей не буду пользоваться.
    Для новичков подойдет.

    Думаю, что многим и не нужна будет, разве побаловаться, потыкать кнопочки. Лично мне было интересно решить некоторые задачи и писал я ее для себя, а потом решил допилить до юзабельного состояния и выложить.

    Чуть не забыл - в Engines.txt есть важные параметры - TinyTankLimit, SmallTankLimit, LargeTankLimit, ExtraLargeTankLimit. Эти параметры определяют сколько двигателей данного типа можно подвесить к соответствующему баку. Если вам не нравится куча двигов снизу бака -задавайте свои цифры
    24 августа 2014 - 21:11 / #3
  4. Оффлайн

    CoolCrazy

    Хорошие люди

    Сообщений: 3930

    Программа консольнаяграфическая?

    24 августа 2014 - 21:15 / #4
  5. Оффлайн

    Andarko

    Посетители

    Сообщений: 18

    CoolCrazy писал:
    Программа консольнаяграфическая?

    Графическая.
    Вообще в планах (пока далеких, так как много работы) допилить построение различных графиков, прикрутить генетический оптимизационный алгоритм и сделать расчет взлета с атмосферного тела
    24 августа 2014 - 21:28 / #5
  6. Оффлайн

    nikollor

    Хорошие люди

    Сообщений: 1279

    Andarko, Вот ж блин. Хотел потестировать, а не запускается шайтан-программа. Ей нужно что нибудь стороннее от системы? типа .net или msxml какого?
    Сообщение отредактировал nikollor 25 августа 2014 - 02:28
    25 августа 2014 - 02:27 / #6
  7. Оффлайн

    konstantinua00

    Посетители

    Сообщений: 3257

    генетический оптимизационный алгоритм


    Я владелец ковчега костей!
    Мои версии (на компьюторе, на данный момент):
    9; 13; 13.2; 13.3; 14.3; 14.4; 15; 15.2; 16; 17.1; 18; 18.2; 18.3(demo); 18.4; 19; 19.1; 20; 20.1; 20.2; 21; 21.1; 22; 23; 23.5; 24; 25; 90; 1; 04; 05
    forum.kerbalspaceprogram.com/threads/24858-Old-versions-of-KSP-(some-versions-still-wanted!) - почти все версии до 0.14

    кое-что затеваю :-p

    25 августа 2014 - 02:49 / #7
  8. Оффлайн

    r0n1

    Посетители

    Сообщений: 460

    не очень понятно нафига все эти опции нужны? в онлайн калькуляторе быстро прикинул чего сколько и по мотивам построил внеся свои поправки. а тут дольше рабираться будешь что все эти опции значат.
    25 августа 2014 - 03:24 / #8
  9. Оффлайн

    Andarko

    Посетители

    Сообщений: 18

    nikollor писал:
    Andarko, Вот ж блин. Хотел потестировать, а не запускается шайтан-программа. Ей нужно что нибудь стороннее от системы? типа .net или msxml какого?

    М.. да, кажется я откомпилировал под расширенной версией Framework.
    Вот новая версия проги V0.11, требует обычный .Net Framework 4. И еще пара багов исправлена
    [attachment=11606]

    r0n1 писал:
    не очень понятно нафига все эти опции нужны? в онлайн калькуляторе быстро прикинул чего сколько и по мотивам построил внеся свои поправки. а тут дольше рабираться будешь что все эти опции значат.

    Скоро выложу гайд, как построить ландер для Eve с помощью моей проги, там будут задействованы все опции :)
    [attachment=11605]

    Вложения:

      Вам запрещено скачивать вложения.
    Сообщение отредактировал Andarko 25 августа 2014 - 09:28
    25 августа 2014 - 09:26 / #9
  10. Оффлайн

    nikollor

    Хорошие люди

    Сообщений: 1279

    Andarko, А все равно не хочет запускаться. win8-64 если что.
    25 августа 2014 - 12:38 / #10
  11. Оффлайн

    Kermaniac

    Посетители

    Сообщений: 1251

    Andarko, тоже не пашет. win7 x64. Висит в диспетчере процесс и больше ничего, секунд 10-15 и он пропадает.

    25 августа 2014 - 13:30 / #11
  12. Оффлайн

    lllypa

    Хорошие люди

    Сообщений: 239

    аналогично, не работает.

    Дополнительно. Сделал программу в экселе для высчитывания разного, но то эксель, может быть можно будет поговорить о том чтобы реализовать ее в нормально виде?

    Мой уютный уголок

    25 августа 2014 - 13:44 / #12
  13. Оффлайн

    CoolCrazy

    Хорошие люди

    Сообщений: 3930

25 августа 2014 - 15:18 / #13
  • Оффлайн

    Andarko

    Посетители

    Сообщений: 18

    nikollor писал:
    Andarko, А все равно не хочет запускаться. win8-64 если что.

    [attachment=11619]

    Надеюсь, что этот вариант запустится нормально, нет компа без VisualStudio, чтобы проверить (пишу на c#)

    lllypa писал:
    аналогично, не работает.

    Дополнительно. Сделал программу в экселе для высчитывания разного, но то эксель, может быть можно будет поговорить о том чтобы реализовать ее в нормально виде?


    Можешь написать в личку, посмотрим. Все зависит от объема и сложности

    Вложения:

      Вам запрещено скачивать вложения.
    Сообщение отредактировал Andarko 25 августа 2014 - 19:34
    25 августа 2014 - 17:45 / #14
  • Оффлайн

    CoolCrazy

    Хорошие люди

    Сообщений: 3930

    Andarko писал:
    запуститься нормально,

    И он не ворк.

    25 августа 2014 - 18:29 / #15
  • Оффлайн

    Andarko

    Посетители

    Сообщений: 18

    Уф, одолжил у друга ноутбук и таки обнаружил в чем была проблема.
    Этот вариант точно должен запуститься, извиняюсь за технические неполадки :)
    [attachment=11625]

    Вложения:

      Вам запрещено скачивать вложения.
    Сообщение отредактировал Andarko 25 августа 2014 - 20:59
    25 августа 2014 - 20:59 / #16
  • Оффлайн

    Andarko

    Посетители

    Сообщений: 18

    Если прога рабочая, то хорошо было бы обновить ссылку в первом посте темы :)
    Сообщение отредактировал Andarko 25 августа 2014 - 21:06
    25 августа 2014 - 21:06 / #17
  • Оффлайн

    CoolCrazy

    Хорошие люди

    Сообщений: 3930

    Andarko, о работает. Круто.
    Себе забрал. Ну на всякий случай.
    Может даже в гайд вставлю. Возможно.

    25 августа 2014 - 21:09 / #18
  • Оффлайн

    Andarko

    Посетители

    Сообщений: 18

    Еще один багфикс, заметил пару недочетов, когда стал делать гайд по постройке ландера на Ив.
    1) Исправлен учет TVC, был забагован
    2) Теперь для крошечных баков программа не будет делать связки, так как к ним нельзя ничего присоединять сбоку
    [attachment=11627]

    Вложения:

      Вам запрещено скачивать вложения.
    Сообщение отредактировал Andarko 25 августа 2014 - 22:21
    25 августа 2014 - 22:19 / #19
  • Оффлайн

    konstantinua00

    Посетители

    Сообщений: 3257

    Andarko, что такое tvc?

    Я владелец ковчега костей!
    Мои версии (на компьюторе, на данный момент):
    9; 13; 13.2; 13.3; 14.3; 14.4; 15; 15.2; 16; 17.1; 18; 18.2; 18.3(demo); 18.4; 19; 19.1; 20; 20.1; 20.2; 21; 21.1; 22; 23; 23.5; 24; 25; 90; 1; 04; 05
    forum.kerbalspaceprogram.com/threads/24858-Old-versions-of-KSP-(some-versions-still-wanted!) - почти все версии до 0.14

    кое-что затеваю :-p

    25 августа 2014 - 22:55 / #20
  • Статистика форума, пользователей онлайн: 1 (за последние 10 минут)

    Major Tom

    Администраторы | Модераторы | Хорошие люди | Посетители | Новичок

    Создано тем1919 Всего сообщений158029 Пользователей19224 Новый участникMikeMS
    Последние сообщения с форума
  • Автор
    Тема в разделе: Вопросы по игре
    Просмотров: 1566129
    Ответов: 12701
  • Автор
    Тема в разделе: В ангаре у Боба
    Просмотров: 9487
    Ответов: 55
  • Автор
    Тема в разделе: Технические вопросы
    Просмотров: 25848
    Ответов: 68
  • Автор
    Тема в разделе: Моды
    Просмотров: 2077
    Ответов: 2
  • Автор
    Тема в разделе: В ангаре у Боба
    Просмотров: 219336
    Ответов: 1484
    Все сообщения..
    Полный список последних сообщений
    Loading...

    Нашли ошибку?
    Вы можете сообщить об этом администрации.
    Выделив текст нажмите Ctrl+Alt