|
|
|
|
|
#1 | |
|
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,716
|
Цитата:
Прошу прощения! Я знаю, что стаб не переставляется, о чём и сетовал. Ил не знает, что такое сдвиг САХ от выработки топлива, но вот упорные мододелы ещё под под 4.09 в классе Мустанга вписывали такой код и он работал. В БзС тоже по поляре еропланы летают, и формулы у них с Иловскими одинаковые - если, конечно, у них не своя "особая аэродинамика". Поэтому код из С++ переложить на джаву грамотному, думаю, не сложно. ------------------------------ При прямолинейном полёте крыло создаёт некое Су, - от 0.15 у Як-1/9 до 0.23 у ФВ-190. Изменяя угол атаки крила - поворотом стаба - тем самым снижаем нулевое Су до минимальной величины и снимаем нагрузку на ручку. Может я не верно понимаю? Если неверно, то для чего "хвашисты" заморочились со стабом? Могли же обойтись и небольшими триммерами. Последний раз редактировалось Vasya; 27.07.2021 в 02:08. |
|
|
|
|
|
|
#2 | ||
|
Пытающийся полететь
|
Цитата:
Принято эти смещения измерять в процентах от САХ(средняя аэродинамическая хорда крыла) Да изменения центра тяжести от топлива отсутствует в коде совсем. Но если честно это изменение имеет заметное значение только у самолетов с расположением масс топлива строго вдоль продольной оси. При наличии нескольких баков там можно голову сломать считать и учитывать все эти перетечки, перекачки топлива туда сюда-обратно и их влияний на центр масс самолета. В итоге может оказаться, что при наличии многих баков с топливом в самолете, реально посчитанные изменения центр масс могут оказаться минимальными и практически ,при наших формулах в игре, не оказывают заметного влияния на поведение самолета. Получим кучу процессорного времени потраченного на расчет , а выхлоп реалистичности минимальный. Для точного учета всех этих влияний надо вводить в код игры кучу других формул, что приведет к написанию новой ФМ. Цитата:
А вот когда сам стабилизатор (в отличии от нейтрального положения) имеет за счет поворота своего уже большую силу(на пикирование-кабрирование), то вот складываясь с силой от руля высоты уже хватает сил для управления полетом. Управление триммером незначительно(по силе) и его почти всегда не хватит в некоторых режимах полета, поэтому обычно его используют для "мелкой-очень точной" балансировки полета по причине слабого воздействия сил от триммера на полет. И поэтому у триммера очень мелкая шкала подвижки , сделанная именно для точности. Это все конечно если упростить всю современную аэродинамику, до величин и формул доступных в ИЛ-2.
__________________
Даёшь защищенный онлайн и Свободный оффлайн. Теперь я и в телеграмме: https://t.me/il_2_1946 Последний раз редактировалось carsmaster; 27.07.2021 в 02:57. |
||
|
|
|
|
|
#3 | |
|
Звичайна людина на Землі
Регистрация: 06.11.2011
Адрес: Україна, м.Київ, Печерський район, вул. Кіквідзе
Сообщений: 8,716
|
Цитата:
Мне уже давали замечание про САХ. Я опять лохонулся в терминологии - конечно проценты а не сам САХ. Вот сам код от 2009 года для Мустанга - работает отлично. При попытке потянуть ручку порезче - Конь брыкается и сваливается в штопор. Код:
private void petrole()
{
float petrole = FM.M.fuel;
float cg = (petrole - 593F) / 591.28F;
if(cg < 0.0F)
cg = 0.0F;
float reverse = FM.getAOA();
reverse = (cg * reverse) / 11.9F;
if(reverse <= 0.0F)
reverse = 1E-005F;
FM.SensPitch += reverse;
if(FM.CT.Weapons[3] != null && FM.CT.Weapons[3][0] != null && FM.CT.Weapons[3][FM.CT.Weapons[3].length - 1].haveBullets())
FM.setGCenter(0.007F - cg - reverse);
else
FM.setGCenter(0.015F - cg - reverse);
for(int l = 0; l < FM.CT.Weapons.length; l++)
if(FM.CT.Weapons[l] != null)
{
for(int j1 = 0; j1 < FM.CT.Weapons[l].length; j1 += 2)
if((FM.CT.Weapons[l][j1] instanceof FuelTankGun) && FM.CT.Weapons[l][j1].haveBullets())
FM.setGCenter(0.007F - cg - reverse);
else
FM.setGCenter(0.015F - cg - reverse);
}
}
private void calcg()
{
G = FM.getOverload();
limite = 36800F / FM.M.mass;
if(limite < G)
FM.SensPitch = FM.SensPitch - G / 91F;
if((double)G > (double)limite * 1.1040000000000001D)
{
FM.VmaxAllowed = FM.getSpeed() - 30F;
FM.SensPitch = FM.SensPitch + G / 91F;
} else
if(FM.CT.cockpitDoorControl != 0.9F)
FM.SensPitch = 0.496F - G / 91F;
else
FM.SensPitch = 0.496F - G / 91F;
}
Последний раз редактировалось Vasya; 27.07.2021 в 02:36. Причина: дописка текста |
|
|
|
|
![]() |
| Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|
|