FS-Troubles — журнал разработки — Малая авиация

Друзья, возникла тут идея написать Lua-скрипт для имитации обледенения и некоторых поломок/неисправностей вроде отрыва закрылков, не выхода шасси и тп. Понятное дело, что визуально этих поломок заметно не будет, но повлиять на поведение самолета можно попробовать.

Разумеется, все это сымитировать можно только очень условно. Например, при обледенении можно ограничить ход элеронов или внести погрешность в органы управления из-за которой самолет начнет уводить в сторону или вниз/вверх, а с накоплением льда увеличивать паразитное отклонение вплоть до полной потери управления и срыва.

Для исполнения скриптов потребуется зарегистрированный FSUIPC и установленная LINDA, поскольку мне ее проще использовать, как уже готовую модульную инфраструктуру.

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

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

FSX обледенение кое-как симулирует — возрастает масса самолета и (похоже) паразитное сопротивление из-за которого падает скорость. Замерзание трубки pitot и карбюратора пока оставляем в стороне. Обсуждаем только обледенение плоскостей, рулей, закрылков.

Что происходит с самолетом, когда он начинает постепенно обрастать льдом? Как меняется поведение? Как быстро все это происходит (в условиях сильного обледенения)?

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

Давайте представим для начала, что мы говорим об обычной Цессне 172 — на ней и будем испытывать.

Сообщение отредактировано crum: 25 April 2012 — 14:28


Ответов: 75

fspassengers? не, не слышал :)
там же вроде как все это реализовано как раз на таком уровне?

Интересная мысль! Про обледенение планера — всё верно. Возрастает вес, сопротивление. Кроме этого, ухудшаются свойства несущих поверхностей. Проще говоря, падает коэффициент подъёмной силы. Выражается это в том, что растёт скорость сваливания. Заклинение рулей и элеронов льдом — очень редкий случай, почти не встречающийся: лёд нарастает, в основном, на передних поверхностях. А вот продольная балансировка нарушается, при выпуске закрылков может появиться огромный момент на пикирование, например.

Закрылки при превышении скорости на Цессне не оторвёт, просто заклинит. Ну, может, ассиметрично заклинит.

А как насчёт отказов и перебоев в работе силовой установки? На поршне это самое интересное :)

FSPassengers — это хорошо, но там много чего нет. Она, например, не имитирует забрасывание свечей маслом, «детонацию» в случае останова двигателя отключением зажигания, плохую приемистость на холодном двигателе, да много чего. Так что идея классная — лишь бы заработало.

Я так понимаю, эта идея исключительно для FSX? (т.к. LINDA не поддерживает FS9)

FSP не обсуждаем. Штука хорошая, но со своими минусами. Хочется сделать что-то погибчее и поинтереснее.

Двигатели пока тоже не обсуждаем. Наверняка можно будет имитировать какие-то поломки, но это потом. Для тех кто в теме, мы можем повлиять и сломать все, что так или иначе доступно через оффсеты FSUIPC… а там доступно много чего интересного. Но пока давайте все-таки обледенение реализуем.

Илья, у меня пока сценарий такой вырисовывается (от малого к большому):
— FSX сам наращивает вес и паразитное сопротивление — процесс медленный
— пропорционально накопленному весу льда добавляем паразитное отклонение на руль высоты, так чтобы направить нос вниз
— после достижения какого-то порогового значения добавляем паразитное постепенно возрастающее отклонение элеронов, чтобы создать уход в сторону (можно и руль направления «погнуть», чтобы был не простой крен, а со скольжением)
— если лед продолжает нарастать увеличиваем паразитные отклонения до упора, и в итоге самолет просто падает

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

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

В таком виде оно будет убедительно или надо сразу что-то более сложное планировать?

Я так понимаю, эта идея исключительно для FSX, т.к. LINDA не поддерживает FS9?

На начальном этапе — да, только FSX. Но FS9/FSUIPC тоже позволяет запускать скрипты, так что при желании можно будет адаптировать (не всю ЛИНДУ, а конкретно скрипт поломок).

Сообщение отредактировано crum: 12 April 2012 — 19:06

Из того, что в голову приходит, можно еще на загрузку самолета влиять… на динамику прямо повлиять нельзя, но можно добавить веса, допустим, передним или, наоборот, задним «пассажирам» — сместить центр тяжести и таким образом повлиять на управляемость.

Надо только это как-то в общий более-менее реалистичный сценарий все вписать…

…»детонацию» в случае останова двигателя отключением зажигания…

Напрашивается такая вещь, как накопление ошибок пилотирования и эксплуатации от полета к полету. Было бы круто.

Напрашивается такая вещь, как накопление ошибок пилотирования и эксплуатации от полета к полету. Было бы круто.

Потенциально реализуемо, если из Lua под FSUIPC можно осуществлять запись в файлы (не уверен, возможно ли это). Но опять-таки, не надо сразу замахиваться на великие свершения… сделаем одно — можно будет сделать что-то следующее.

Что происходит с самолетом, когда он начинает постепенно обрастать льдом? Как меняется поведение? Как быстро все это происходит (в условиях сильного обледенения)?

те, кто это узнал, уже ничего никому не расскажут

это очень сложный процесс, зависящий от многих факторов — интенсивности обледенения, причин (переохлажденные осадки, облачность, температура), типа самолета и т.д. В зависимости от разных условий обледенение будет проявляться по-разному. Сделать какое-то универсальное обледенение, наверное, можно, но это будет далеко от истины.

Как уже сказали, лучше по отказам поработать

Сообщение отредактировано someone1: 12 April 2012 — 21:45

это очень сложный процесс, зависящий от многих факторов — интенсивности обледенения, причин (переохлажденные осадки, облачность, температура), типа самолета и т.д. В зависимости от разных условий обледенение будет проявляться по-разному. Сделать какое-то универсальное обледенение, наверное, можно, но это будет далеко от истины.

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

Погода в FSX тоже довольно условная, но обледенение слабое от обледенения интенсивного (например, дождь при минусовой температуре) отличить можно, а значит можно и в развитии событий это учесть.

Существует XML-приборчик, который эту задачу уже решает, но там все сделано очень топорно — 3 ступени обледенения и на 2 этапе руль высоты тупо выставляется в фиксированное положение, на 3 этапе угол еще резче.

Здесь в скрипте общая начальная концепция та же, но хочется сделать это более красиво… для разминки. Другие отказы — потом.

Сообщение отредактировано crum: 12 April 2012 — 21:55

Полагаю, при всем разнообразии, все укладывается в несколько типовых сценариев.

нет, не укладывается.

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

Погода в FSX тоже довольно условная, но обледенение слабое от обледенения интенсивного (например, дождь при минусовой температуре) отличить можно,

отличить можно, но к настоящему это мало отношения имеет.
Вы ж спрашивали, каково оно в реале, правильно?

Сообщение отредактировано someone1: 12 April 2012 — 22:07

Потенциально реализуемо, если из Lua под FSUIPC можно осуществлять запись в файлы (не уверен, возможно ли это).

В LUA есть средства ввода/вывода (ссылко). По идее можно читать из файла/писать в файл.

Вы ж спрашивали, каково оно в реале, правильно?

Да, хорошо бы составить представление о типовых сценариях в реале. Понятно, что реал непредсказуем и каждая ситуация уникальна, но ведь есть какие-то общие тенденции. Здесь и сейчас задача в том, чтобы выработать ПРИЕМЛЕМЫЙ с точки зрения реалистичности сценарий развития событий в рамках тех ограничений, которые установлены имеющимся симулятором. Чудес не бывает и реал смоделировать не получится — но такой задачи и не стоит… Задача в том, чтобы условия обледенения в симе оказывали хоть какое-то заметное влияние — чтобы пришлось думать, куда летишь, а не тупо включать «обогрев всего» и забывать о потенциальной проблеме.

В LUA есть средства ввода/вывода (ссылко). По идее можно читать из файла/писать в файл.

В Lua-то они есть… вопрос в том, есть ли они в той реализации Lua, которая зашита в FSUIPC. На крайний случай там можно внешние Lua-библиотеки подключать, но лучше бы конечно, если бы родными средствами можно было это сделать.

— после достижения какого-то порогового значения добавляем паразитное постепенно возрастающее отклонение элеронов, чтобы создать уход в сторону (можно и руль направления «погнуть», чтобы был не простой крен, а со скольжением)

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

someone1
В чём вы пытаетесь всех убедить? :) Реал из сима всё равно не сделать, и это нет необходимости кому-либо объяснять или доказывать. То, что ни один полёт вообще не укладывается ни в какие типовые сценарии, мы знаем. А вот сделать сим интереснее всегда можно. Сэр crum взялся и делает, а это… того… не мешки ворочить :)

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

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

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

Обледенение вообще процесс до сих пор остается малоизученным.
Все так, только эта масса льда может нарасти где угодно и как угодно, отсюда непредсказуемо в какую сторону тебя потащит и с какой силой, а может быть заклинит или вообще приведет к срыву и полной неуправляемости…. рулетка одним словом)
Посмотрите вот этот фильм, если не смотрели. Думаю некоторые моменты пригодятся.
http://video.mail.ru…html?autoplay=1

someone1
В чём вы пытаетесь всех убедить?

Я пытаюсь убедить в том, что если есть возможность, то гораздо продуктивнее сделать адекватный частичный отказ двигателя (конкретного, например, М-14П), чем пытаться сделать обледенение.

Потому как в первом случае мы получим хороший продукт, а во втором «чуть лучше, чем было»
Это сугубо мое мнение. Решать, конечно, автору…

Обледенение вообще процесс до сих пор остается малоизученным.
Все так, только эта масса льда может нарасти где угодно и как угодно, отсюда непредсказуемо в какую сторону тебя потащит и с какой силой, а может быть заклинит или вообще приведет к срыву и полной неуправляемости…. рулетка одним словом)
Посмотрите вот этот фильм, если не смотрели. Думаю некоторые моменты пригодятся.
http://video.mail.ru…html?autoplay=1

Ну, вот я собственно о том же… значит добавление кренов и скольжений при большой массе накопленного льда будет вполне уместно. Видео посмотрю…
Вот еще толковый ролик на ту же тему (про ТУ154):
http://www.youtube.com/watch?v=HZYikJyd_O8

Идеи для реализации (чтоб не забыть):
— наземное обледенение
— изменение балансировки самолета за счет увеличения/уменьшения загрузки в передних и задних payload stations
— увеличение общей массы загрузки для имитации уменьшения подъемной силы крыла (то есть, масса загрузки должна увеличиваться не только на массу накопленного льда, но и ее на какое-то дополнительно значение)
— обход косяка FSX, при котором мгновенно сбрасывается весь лед, как только включается обогрев плоскостей (лед должен уходить постепенно, а при некоторых условиях ПОС может и не справляться со скоростью обледенения)
— вибрация при большом количестве льда

Я пытаюсь убедить в том, что если есть возможность, то гораздо продуктивнее сделать адекватный частичный отказ двигателя (конкретного, например, М-14П), чем пытаться сделать обледенение.

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

Идея скрипта в гораздо большей степени развлекательная, чем «симуляционная»… Всегда хотелось, чтобы самолет в FSX не был «железным» и неразрушимым — это слишком уж расхолаживает. Хочется, чтобы он требовал внимания к имеющимся паспортным ограничениям, погодным условиям и, в идеале, действительно увеличивал бы вероятность поломок в результате систематических ошибочных действий и чрезмерных нагрузок. Но в то же время не хочется доводить все до такого занудства, как в аэрософтовской Katan’e.

Сообщение отредактировано crum: 13 April 2012 — 10:04

Итак… первые эксперименты проведены. Отслеживать количество льда можно, вносить паразитные отклонения тоже можно. Но возникла загвоздка — при работающем (дефолтном) автопилоте эти фокусы не срабатывают, поскольку углы отклонения управляющих поверхностей программно ограничены — соответственно, автопилот легко справляется с любым паразитным отклонением.. Это значит, что при включенном автопилоте нарастающее обледенение ничем не грозит и повлиять на это толком нельзя. Масса будет расти, скорость падать, но в целом самолет будет продолжать нормально лететь, пока хватает мощности движка.

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

Еще есть вариант при возникновении сильного обледенения вырубать каналы автопилота и не давать их включать, но не знаю, насколько это будет «реалистично».

Что происходит, если пилот «спит», автопилот держит курс/высоту, а самолет попадает в зону обледенения? По логике, до поры до времени автопилот будет справляться с управлением, но в какой-то момент произойдет сваливание. Или автопилот раньше отключится из-за сильной нагрузки?

Сообщение отредактировано crum: 13 April 2012 — 16:07

— изменение балансировки самолета за счет увеличения/уменьшения загрузки в передних и задних payload stations
— увеличение общей массы загрузки для имитации уменьшения подъемной силы крыла (то есть, масса загрузки должна увеличиваться не только на массу накопленного льда, но и ее на какое-то дополнительно значение)

Выходит, с паксами не полетать? А жаль… Летают то многие и если не будет возможности — опробуют и забудут. Хотя, еще Economy есть…

Мне, в свое время, хватило гауги ice, прикрученной к скауту. Ужас! :)
Выбрал соответствующую погоду. Летел недолго…
Скаут и иже с ним, очень хорошо валятся, а гауга добавила и ужесточила. Шансов не было.
Давайте Вашу испытаем!

Мне, в свое время, хватило гауги ice, прикрученной к скауту. Ужас! :)
Выбрал соответствующую погоду. Летел недолго…
Скаут и иже с ним, очень хорошо валятся, а гауга добавила и ужесточила. Шансов не было.
Давайте Вашу испытаем!

«Моя» делает сейчас ровно то же самое (тот же принцип), но не так резко. В той гауге в какой-то момент просто клинит руль высоты на пикирование и больше она ничего не делает. Я пытаюсь сделать влияние обледенения более постепенным и разнообразным, чтоб поинтереснее было.

Собственно, proof of concept уже готов, но надо бы сейчас определиться, что делать на случай включенного автопилота (вопрос задан выше, пост #20). Потом это отполирую все и можно будет выложить на всеобщее обозрение.

Выходит, с паксами не полетать? А жаль… Летают то многие и если не будет возможности — опробуют и забудут. Хотя, еще Economy есть…

Почему не полетать? Вряд ли будет серьезный конфликт. Рано пока об этом говорить… Вот лично меня паксы утомили — мне от них интересны только поломки, а экономическая составляющая уж слишком там условная. Вот FSEconomy поинтереснее, но запускать каждый раз экономию, паксов и еще радар контакт — достало. Поэтому поломки отказы хочу автоматизировать, чтобы сами собой работали.

Update…

1. Написал первую версию скрипта
— отслеживает обледенение
— вносит помехи в управление
— увеличивает вес (загрузку)
— отрубает каналы автопилота при определенном уровне паразитных отклонений
— коэффициенты влияния массы льда на рули управления пока подобраны на глаз (плюс в них есть случайный компонент… для разнообразия)

2. Отказался от использования LINDA в качестве базовой инфраструктуры. Скрипт представляет из себя один единственный файл, который запускается через ipcReady.lua и дальше живет своей жизнью. В теории, должно работать и в FS9.

3. Интенсивность обледенения определятся симулятором. Скрипт просто берет массу накопленного льда, умножает ее на разные коэффициенты, вносит случайную поправку, а затем добавляет паразитные отклонения на рули и меняет вес загрузки.

4. При включении обогрева крыльев весь лед исчезает мгновенно, соответственно исчезает и весь эффект от скрипта… В этой части скрипт еще надо будет доработать.

5. В условиях интенсивного обледенения (t < 0C + дождь + сильное обледенение в параметрах погоды) дефолтная Цессна взлетает и с постепенным ухудшением положения держится в воздухе 5 минут, после чего окончательно теряет управление и уходит носом в землю. Это много или мало? (исходя из того, что наземное обледенение нулевое). Если пару минут запускаться и рулить со стоянки, то взлететь становится уже проблематично.

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

Заинтересованным предлагаю записываться на бета-тестирование.

__________

Проверил только что работу ПОС на Carenado C90B — там она борется со льдом с переменным успехом — лед исчезает постепенно и даже иногда снова начинает нарастать. Круто! То есть, все-таки FSX моделирует ПОС более адекватно, чем предполагалось.

Сообщение отредактировано crum: 14 April 2012 — 01:04

В настоящее время делаю перелет через Южную Америку. Лечу на Carenado C340 (RAM VII mod) c FSPassX и реальной погодой ASE. Недавно, в районе SBGM-SLSA-SLSB-SLLP, словил обледенение с дождем при температуре около 0. Сейчас следую по марщруту SLOR-SLSU-SLAG-SLVM-SASO-SASJ-… погода ужасная, сильная болтанка, темература на FL180-FL210 ниже нуля. С радостью протестирую утилиту с FSPass в сложных метеоусловиях :sarcastic:
мой мэйл: nickbe(сцобако)mail(тчк)ru

5. В условиях интенсивного обледенения (t < 0C + дождь + сильное обледенение в параметрах погоды) дефолтная Цессна взлетает и с постепенным ухудшением положения держится в воздухе 5 минут, после чего окончательно теряет управление и уходит носом в землю. Это много или мало?

Это не много и не мало, это не корректно.
Если верить практической аэродинамике, то интенсивным обледенение становится, условно, от 1 мм льда за 1 мин. В скоростном выражении это будет выглядеть примерно так = 1 мм льда = 1 мин = 1 км/ч. Т.е. если при неизменных режимах работы двигателя самолет теряет скорость за 10 мин 10 км/ч, то мы имеем интенсивное обледенение.

Далее ситуация станет развиваться неизвестно как, потому как скорость сваливания увеличится ( и продолжит увеличиватся — насколько тоже неизвестно), а скорость самолета продолжит падать.

Поэтому константа в 5 минут совсем некорректна. Если и вводить какой-то промежуток времени, то завязанный на:

1. Интенсивности обледенения
2. Приборной скорости
3. Увеличения скорости сваливания