Кампания "RSSR" (RSS+RO+kOS)

  1. Оффлайн

    Lynx

    Модераторы

    Сообщений: 2844

    Жги дальше!
    8 ноября 2016 - 20:03 / #1
  2. Оффлайн

    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

    10 ноября 2016 - 21:16 / #2
  3. Оффлайн

    Lynx

    Модераторы

    Сообщений: 2844

    TomAnderson,
    Вот тут выяснили исходя из исходников КЕРа, что в КСП драг считается приближенно к реальности, при этом используется эффективная площадь сечения тела по потоку. Как ее получить в КОСе - загадка.

    lis_vamp писал:

    в общем вот это вырезал из КЕРа
    var m = FlightGlobals.ActiveVessel.parts.Sum(part => part.GetWetMass()) * 1000.0;
    var g = FlightGlobals.getGeeForceAtPosition(FlightGlobals.ship_position).magnitude;
    var a = FlightGlobals.ActiveVessel.parts.Sum(part => part.DragCubes.AreaDrag) * PhysicsGlobals.DragCubeMultiplier;
    var p = FlightGlobals.ActiveVessel.atmDensity;
    var c = PhysicsGlobals.DragMultiplier;
    TerminalVelocity = Math.Sqrt((2.0 * m * g) / (p * a * c));
    Lynx писал:

    lis_vamp, какая интересная штучка
    А если сделать D = c * p * a * v^2 / 2, то получим драг как он есть. А кос может брать данные из кера?

    Сообщение отредактировал Lynx 11 ноября 2016 - 19:46
    11 ноября 2016 - 19:43 / #3
  4. Оффлайн

    Pand5461

    Хорошие люди

    Сообщений: 114

    ??Вот тут выяснили исходя из исходников КЕРа, что в КСП драг считается
    приближенно к реальности, при этом используется эффективная площадь
    сечения тела по потоку. Как ее получить в КОСе - загадка.
    А если по методу ОП вытащить драг из полётных данных и разделить его на vessel:dynamicpressure, не эта площадь получится?

    Мои kOS скрипты: https://github.com/pand5461/kOS

    13 ноября 2016 - 22:16 / #4
  5. Оффлайн

    Lynx

    Модераторы

    Сообщений: 2844

    Pand5461,
    В общем да, только надо еще на Сх делить (var c = PhysicsGlobals.DragMultiplier)
    14 ноября 2016 - 00:29 / #5
  6. Оффлайн

    Pand5461

    Хорошие люди

    Сообщений: 114

    TomAnderson,
    А что бы не решить интегрированием дифференциального уравнения?
    Есть метод Рунге-Кутты, там рекурсии нет никакой, реализуется для таких простых задач хоть в Excel.
    Я тут накидал эту задачку, вроде хорошо работает. Ссылка (xls файл).

    Мои kOS скрипты: https://github.com/pand5461/kOS

    15 ноября 2016 - 15:50 / #6
  7. Оффлайн

    TomAnderson

    Посетители

    Сообщений: 75

    Pand5461,
    По сути у меня записан метод Рунге-Кутты 1-го порядка (использует дифференцирование методом Эйлера).
    Есть ещё метод Рунге-Кутты 2-го порядка (он же улучшенный метод дифференцирования Эйлера).
    Метод Рунге-Кутты 3-го порядка (соответствует методу дифференцирования по Симпсону).
    Я это в курсе. Просто вспоминаю всё последовательно... от простого к сложному. Универ закончил почти 10 лет назад...
    За выкладки спасибо. Чуть попозже я буду показывать Рунге-Кутты 2-го порядка и оценивать ошибки вычислений.

    Почему ты думаешь, что метод Рунге-Кутты это не рекурсия? Для того, что бы вычислить Fn нам приходится вычислять Fj<n столько раз, какого порядка у нас метод. Т.е. определение F мы берём вычисляя F, а это и есть рекурсия. Нет?
    15 ноября 2016 - 17:00 / #7
  8. Оффлайн

    Pand5461

    Хорошие люди

    Сообщений: 114

    TomAnderson,
    Просто метод Эйлера 1 порядка - он же очень плохой. Быстро накапливает систематическую ошибку, неустойчивый, в 0.90 взрывал крафты из-за неустойчивости тепловых потоков.

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

    Мои kOS скрипты: https://github.com/pand5461/kOS

    15 ноября 2016 - 18:00 / #8
  9. Оффлайн

    TomAnderson

    Посетители

    Сообщений: 75

    Pand5461,
    Нельзя говорить плохой или хороший. А 2-го порядка хороший? А 3-го? 5-го? 10-го? в какой момент нужно останавливаться?
    Правильно говорить достаточная точность или не достаточная. А для этого эту точность нужно оценить.
    Для оценки погрешности определённого интеграла по Рунге используются выражения 
    Прикрепленная картинка
    ?
    А ты знаешь по каким алгоритмам КСП считает разные параметры?
    Сообщение отредактировал TomAnderson 16 ноября 2016 - 08:57
    16 ноября 2016 - 08:53 / #9
  10. Оффлайн

    Pand5461

    Хорошие люди

    Сообщений: 114

    TomAnderson,
    Плохой он вот почему:
    Прикрепленная картинка

    Человек тут сравнил разные методы для интегрирования орбиты. Как видно, за одну орбиту накапливается 10м ошибки со схемой Эйлера с шагом 0,0001 с. Со схемой Рунге-Кутты 4 порядка эти 10м накапливаются при шаге порядка 30 секунд. Увеличение допустимого шага на 5,5 порядков при увеличении вчетверо объема вычислений на шаг - я считаю, оправдано.
    Схемы Рунге-Кутты 3 и 4 порядков уже можно считать "хорошими" при шаге по времени 0,001-0,1 секунды, т.к. повышение порядка не приводит к гигантскому повышению точности.
    Схема Верле тоже неплохая, но для расчетов с трением она становится неявной.

    Как именно в КСП что считается, я точно не знаю, но в 0.90 теплоперенос, видимо, считался какой-то простенькой схемой. Потому что временами у какой-нибудь детали начинались колебания температуры с нарастающей амплитудой вплоть до взрыва крафта в космосе, а это для таких схем характерно.?

    Мои kOS скрипты: https://github.com/pand5461/kOS

    16 ноября 2016 - 12:12 / #10
  11. Оффлайн

    TomAnderson

    Посетители

    Сообщений: 75

    Pand5461,
    Т.е. РК1 - плохой, а РК4 - хороший? А остальные порядки? Ты не понял мой вопрос по видимому...
    Это всё равно что говорить: "Штыковая лопата плохая, а экскаватор хороший. Вот посмотри как быстро им можно траншею для водовода выкопать."
    Оценивай для задачи которую ты решаешь, а не для сторонней. Если тебе достаточно расчётов с точностью 100 м, то зачем высчитывать миллиметры?
    Для понимания большинства читателей РК1 (Эйлера) проще чем РК2, а РК2 проще РК3, а дальше уже принципы понятны и можно выбирать любой, который отвечает поставленной задаче.
    Для справки метод Эйлера был опубликован в 1744 году, а Рунге — Кутта в 1900 году.
    16 ноября 2016 - 13:43 / #11
  12. Оффлайн

    TheZotikRus

    Посетители

    Сообщений: 912

    Хорошую работу проделал! Очень интересно :)
    16 ноября 2016 - 17:40 / #12
  13. Оффлайн

    Lynx

    Модераторы

    Сообщений: 2844

    [/quote]TomAnderson,
    я так понял ты просветительской деятельностью занимаешься на тему численных методов интегрирования/дифференцирования.
    А ты бы может не сразу конкретные примеры писал, а сначала толковый такой пост с теорией?
    А то выводы типа
    TomAnderson писал:
    А также в связи с тем, что при каждом дифференцировании наша функция отражаетсяотносительно оси Alt,мы можем сделать вывод, что зависимость имеет вид:
    Прикрепленная картинка
    ?
    порвут неподготовленного читателя в клочья.
    Сообщение отредактировал Lynx 16 ноября 2016 - 19:55
    16 ноября 2016 - 19:54 / #13
  14. Оффлайн

    Tadip

    Посетители

    Сообщений: 69

    Да нормально все, люблю математику
    16 ноября 2016 - 22:06 / #14
  15. Оффлайн

    Наблюдатель

    Посетители

    Сообщений: 2147

    Я институтов не кончал. Все эти формулы мне ничего не говорят. Но темку эту, по диагонали просматриваю.

    16 ноября 2016 - 23:05 / #15
  16. Оффлайн

    Pand5461

    Хорошие люди

    Сообщений: 114

    TomAnderson писал:

    Т.е. РК1 - плохой, а РК4 - хороший? А остальные порядки?
    Для понимания большинства читателей РК1 (Эйлера) проще чем РК2
    Ну да, для примера сойдёт.
    Жду сравнения расчётов по схеме более высокой точности. Интересно.

    Мои kOS скрипты: https://github.com/pand5461/kOS

    17 ноября 2016 - 00:01 / #16
  17. Оффлайн

    Pand5461

    Хорошие люди

    Сообщений: 114

    TomAnderson,
    А что такое k на графиках? Ты, случаем, не сравниваешь расчеты в моменты времени t и t/2?
    Если мы обратим внимание на переход от функции расчёта с рабочим двигателем к функции без двигателя, то мы заметим, что плавает при
    изменении шага.?
    Тут я вот что заметил - двигатель отрубается, как я понимаю, мгновенно, и тяговооружённость резко падает с ~30 до нуля. Что автоматически переводит систему уравнений в разряд жёстких, и даже со схемами более высокого порядка максимальная высота из-за этого гуляет метров на сто.
    Пример для схемы РК4:
    dt, с      Hmax, м      t_apo, с
    0,2           4745        30,6
    0,1           4432        29,6
    0,05          4380        29,45
    0,025         4458        29,7
    0,01          4401        29,51
    0,005         4416        29,565
    0,002         4413        29,552
    0,001         4414        29,556
    0,0006        4415        29,557


    Если же взять начальную скорость около 311,468 м/с, высоту 297,4 м и нулевую тягу (это результаты схемы РК4 с шагом 0,6 мс после отключения двигателя), то искомые 4410-4420 м в апогее получаются даже более простой (!) схемой интегрирования с шагом интегрирования 2 (!!) секунды.

    Мои kOS скрипты: https://github.com/pand5461/kOS

    18 ноября 2016 - 20:38 / #17
  18. Оффлайн

    Басила

    Модераторы

    Сообщений: 603

    TomAnderson писал:
    А тем временем наступило
    26 марта 1951 года

    К моему глубокому разочарованию, положение планет не соответствует реальным в эти даты(
    поправка. гадит RSS Expanded.
    Сообщение отредактировал Басила 21 ноября 2016 - 15:04

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

    20 ноября 2016 - 02:13 / #18
  19. Оффлайн

    Pand5461

    Хорошие люди

    Сообщений: 114

    TomAnderson,
    Попробовал я запилить в своей карьере такие же тестовые полёты с последующим анализом телеметрии и написанием предсказательного интегратора.
    С запусками вертикально проблемы, можно сказать, уже решены в этой теме.
    Если добавить в циклограмму поворот по тангажу - начинается веселье.
    Пришлось:
    - учитывать векторный характер скорости, ускорения, положения и гравитации
    - выучить кватернионы, потому что по-другому вытащить вектор ориентации аппарата по широте, долготе, тангажу и азимуту чёрт ногу сломит
    - ввести дополнительно умножитель драга в боковом направлении, примерно 30 для моей первой жидкотопливной ракеты
    - учесть подъемную силу, иначе траектория по горизонтали неправильно идёт

    После поправок на всё это интегрирование в питоне, вроде, неплохо сходится с полётами в игре.

    Ссылка на Яндекс.Диск со скриптом на питоне для расчета траектории, крафтом, циклограммой полёта для него и табличкой сравнения расчета и лога с игры.
    Естественно, сначала в ходе нескольких симуляций для крафта были найдены параметры сопротивления и подъёмной силы, а сравнение уже для предсказанной с этими характеристиками траектории.

    Мои kOS скрипты: https://github.com/pand5461/kOS

    20 ноября 2016 - 06:30 / #19
  20. Оффлайн

    Pand5461

    Хорошие люди

    Сообщений: 114

    TomAnderson,
    Не, журнал не веду.
    С методической точки зрения, мне кажется, эта тема хороша. А с точки зрения демонстрации дизайна крафтов, методики прохождения и т.п. - стоит куча модов, которые эту механику меняют.
    Пока что основной идеей своей кампании я поставил максимальную автоматизацию (т.е. все взлёты обязательно на kOS, орбитальные манёвры в перспективе тоже) и оптимизацию профиля взлёта на этапе моделирования на Python.
    Заметки по орбитальной механике и методам предсказания траектории, если ты не против, могу здесь оставлять.

    Немного конструктивной критики напоследок:
    А вот собственно и сома формула:

    Где,
    H = 8550 м
    K = 0,089?
    Формула плоха тем, что (а) расчет может вылететь из-за деления на ноль (хотя, конечно, это нужно очень удачно попасть) и (б) H/K ? 96 км, что, ЕМНИП, на 24 км ниже границы атмосферы в RSS. Значит, с 96 км давление по этой формуле ВНЕЗАПНО улетит в плюс бесконечность. Т.е. при расчетах атмосферу придётся обрезать на 96 км вместо 120. Для вертикально взлетающей ракеты, навскидку, погрешность должна быть в районе единиц м/с. Но для орбитальной, которой там долго лететь, может и на 50-100 м/с набраться, а то и больше.
    Рекомендую взять что-нибудь в стиле P(h) = P0 exp(-(h/h1) - (h/h2)^2) - функция гарантированно монотонно убывающая на [0; ?) и не имеющая особых точек нигде вообще. Ну или просто взять формулы стандарта атмосферы в США, поди он же в RSS и забит.

    После инфы о потолке самолётов полез смотреть, сколько там реально для винтовых самолётов было. Удивился, узнав, что как раз в районе 15 км таки забирались. Но по отношению к бедным кербалам долго гонять их на такой высоте негуманно.

    Мои kOS скрипты: https://github.com/pand5461/kOS

    24 ноября 2016 - 02:51 / #20

Статистика форума, пользователей онлайн: 0 (за последние 10 минут)

---

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

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

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