Перейти к публикации

Рекомендованные сообщения

Опубликовано:

Предлагаю простой способ усовершенствования обычного джойстика, который позволит, улучшить кинестетическое восприятие процесса управления Летательным Аппаратом (ЛА).
Очень хотелось, при описании обойтись без "волосатых" формул и в то же время, сделать его достаточно обоснованным.
Поэтому, для понимания и достоверности логики рассуждений, всё же некоторые вещи надо пояснить. Постараюсь коротко.
При активном пилотировании, пилот контролирует ЛА, в основном, не по приборам, а по перемещениям (Х) и нагрузкам (Р) на КРУ -Контрольных Рычагах Управления (РУС и педали), т.е. по кинестетическому восприятию.
Главной величиной, которая определяет Х и Р, является величина скоростного напора (q), она состоит из произведения двух частей: плотности воздуха, которая почти линейно уменьшается с увеличением высоты (Н) и скорости набегающего потока, т.е. скорости полёта (V), эта часть изменяется, пропорционально квадрату V.
Отражением q является приборная скорость (Vпр), собственно это одно и то же.
Для создания определённой перегрузки, Х будет зависеть от q, а Р не будет, что собственно и пытаются воспроизводить джойстики с ффб.
Именно эта особенность и является наиболее притягательным свойством джойстиков с ффб, поскольку Р является опорным сигналом в формировании устойчивого кинестетического восприятия.
Теперь посмотрим на обычный, самой распространённый джойстик, в определённом диапазоне значений q (до Vпр= 300-400км/ч), он полностью (почти) совпадает с джойстиками с ффб и только при выходе из этого диапазона в основном в сторону увеличения q, перестаёт адекватно передавать кинестетическое восприятие.
Предлагаемая концепция такова: на любом ЛА, при любых возможных условиях управления, кинестетическое восприяитие процесса управления, должно быть одинаковым (однообразным по Р и Х), соответственно при этом, должна быть использована возможность полного хода КРУ.
На этом фоне, обычный джойстик идеально ложиться в эту концепцию, Р и Х у него стабильны, осталось только сохранить эту стабильность, на все возможные значения q (Vпр).
Как этого добиться? Надо использовать некий Автомат Регулирования Управления (АРУ), который и будет регулировать передаточное отношение между КРУ и рулями.
Очевидно, что для сохранения полного хода КРУ, нужно уменьшать передаточное отношение к рулям, пропорционально возрастанию текущего значения q (Vпр).
Делать это  можно автоматически или вручную.
Для автоматического регулирования, потребуется "зашивать" его в контроллер джойстика и брать значения q (Vпр) из игры.
Но тогда основная масса обычных джойстиков, у которых нет доступа в контроллер для перепрошивки, " выпадает ", а именно они и интересны в первую очередь.
Поэтому предлагаю следующий способ: использовать программы, которые позволят этот АРУ создать и использовать в играх.
Лично я, использую связку GlovePIE и PPJoy, хоть на последних версиях Виндоус,  PPJoy работает только в тестовом режиме, но работает без проблем.
Связки FreePIE и vJoy, тоже должны работать, вполне возможно, подойдет и софт самих джойстиков.
Рассмотрим этот вопрос на примере канала тангажа, в качестве испытуемого будут: РУС СН Файтерстик, РУД Сайтек Х52 и виртуальный  РРJоу.
В качестве вычислителя используем GlovePIE, а в качестве игры
"Старичок" Ил-2_ЗС.
Сначала создадим алгоритм работы РУ и найдём управляющий параметр, а проще говоря, найдём источник величины q.
Таким источником будет являться приборная скорость полёта (Vпр), в игре она выводится на спитбар и (или) Указатель Скорости.
Для полётов на дозвуковых ЛА, верхнее значения q ограничим Vпр=1000км/ч, а диапазон от о до 300км/ч, примем за базовый с коэффициентом редукции равным 1, чем он и является на самом деле.
Тогда оставшийся диапазон разбиваем с шагом в 100км/ч и получается так:
Vпр=400  коэф=1,77;  Vпр=500  коэф=2,77; Vпр=600  коэф=4; Vпр=700  коэф=5,44; Vпр=800  коэф=7,11; Vпр=900  коэф=9; Vпр=1000  коэф=11,11
Т.е. эти коэффициенты являются делителями полного диапазона отклонения рулей при полном перемещения ручки.
Например: при Vпр=300км/ч и  коэф=1 , полный ход ручки соответствует полному отклонению рулей, при Vпр=600км/ч и  коэф=4, полный ход ручки соответствует отклонению рулей, уменьшенных в 4 раза. 
Таким образом, при любых значениях q (Vпр) и соответствующем коэффициенте, усилия на РУС, будут одинаковыми для создания одинаковой перегрузки, как и с ффб, но при этом появляется возможность использовать полный ход РУС, что естественно повышает точность пилотирования, и автоматически (в разумных пределах), предохраняет от превышения перегрузки. 
Фиксированные значения коэффициентов, понадобятся, если их  придётся вводить дискретно, например кнопками, в моём же варианте, коэффициент будет изменятся плавно, но дискретные значения, будут соответствовать голосовой индикации ибо при плавном изменении, конкретных значения АРУ, лучше (проще и быстрее) воспринимать их на слух.
Итак, все необходимые программы установлены и для начала надо назначить в конфигураторе ось тангажа, поскольку прямое управление с джойстика не подходит.
Берём ось виртуального джойстика PPJoy1.Analog1 (т.е. ось №1 виртуального джойстика №1) и в корне игры найдя в папке Users нужный профиль пишем: JoystickDevice3 AXE_Y=-elevator.
Тут необходимо пояснить некоторые моменты ,в данном примере я использую кроме СН Файтерсик и РУД Сайтек Х52, ещё два виртуальных джоя №2 и №1 (хотя и одного было бы достаточно), игра  все четыре, нумерует как  : JoystickDevice0; : JoystickDevice1; JoystickDevice2; JoystickDevice3; причём  PPJoy1, она считает как JoystickDevice3, а  PPJoy2  как JoystickDevice2 (так у меня).
В скрипте GlovePIE  джойстики считаются с №1 при чём "настоящие" прописываются как Joystick1.Y или так: Joystick2.Slider, виртуальные можно прописывать как  PPJoy1.Analog1 или PPJoy2.Analog4 .
После точки идёт название оси и да, вот это отрицательное значение : JoystickDevice3 AXE_Y=-elevator, потому, что у меня на СН ось тангажа инвертирована. 
Ось назначили, сохранили и открываем GlovePIE, в создаём примерно такой скрипт:
 // АРУ
var.int = round(MapRange(-Joystick1.Y, -1, 1, 0, 100))
if ( INRANGE (var.int, 00, 49 ) ) {
var.Koef_Slide = (Joystick2.Slider +2)
}
if ( INRANGE (var.int, 50, 100 ) ) {
var.Koef_Slide = (Joystick2.Slider +2)^2
}
PPJoy1.Analog1 = (Joystick1.Y+Joystick2.RX/3)/var.Koef_Slide
var.int = round(MapRange(Joystick2.Slider, -1, 1, 0, 71))
if ( INRANGE (var.int, 00, 01 ) ) {
speech.agata.text = «ару в режиме 300»
}
if ( INRANGE (var.int, 10, 11 ) ) {
speech.agata.text = «ару в режиме 400»
}
if ( INRANGE (var.int, 20, 21 ) ) {
speech.agata.text = «ару в режиме 500»
}
if ( INRANGE (var.int, 30, 31 ) ) {
speech.agata.text = «ару в режиме 600»
}
if ( INRANGE (var.int, 40, 41 ) ) {
speech.agata.text = «ару в режиме 700»
}
if ( INRANGE (var.int, 50, 51 ) ) {
speech.agata.text = «ару в режиме 800»
}
if ( INRANGE (var.int, 60, 61 ) ) {
speech.agata.text = «ару в режиме 900»
}
if ( INRANGE (var.int, 70, 71 ) ) {
speech.agata.text = «ару в режиме 1000»
}
Конкретно, что и как, я могу расписать если надо, а вкратце : для регулятора использован ползунок (слайдер) на РУД Х52, он и вычисляет коэффициент в зависимости от своего положения  о чём и объявляет голосом Агаты программа. 
Эта голосовая функция зашита в  GlovePIE её создавать не надо.
 Выглядит всё таким образом: например ползунок полностью на себя тогда коэф=1 Агата объявляет :"АРУ в режиме триста" , ход аэродинамических рулей совподает с ходом РУС.
Пропускаем промежуточные значения ползунка, там всё пропорционально и двигаем его в крайнее переднее положение (для Vпр=1000км/ч), тогда коэф= 11,11, что значит полный ход руля высоты будет в 11,11 раз меньше хода ручки, Агата скажет: "АРУ в режиме одна тысяча".
Ещё использован псевдо триммер, так как пришлось поставить на Файтерстик пружины (я обычно летаю без загрузки), тогда понадобилось триммировать самолёт при маршрутных полётах.
Можно было обойтись триммером в игре, но не на всех самолётах он есть, поэтому псевдо триммер был создан в скрипте на базе оси RX Сайтека и поскольку он был нужен только  для коррекции горизонтального полёта, то для точности работы в центральной зоне, его значение поделено на 3 
PPJoy1.Analog1 = (Joystick1.Y+Joystick2.RX/3)/var.Koef_Slide
Причём его значения как значения джойстика (их сумма) делятся на коэффициент, что бы не искажать общую картину.
Много бы по теме можно было написать, да и так длинновато вышло.

  • Поддерживаю! 1
Опубликовано:

А чем это отличается от того как это работает сейчас в Ил-2? 

Опубликовано:

Отличается тем, что к примеру, пикируя  на Р-47 со скоростью 1000км/ч (по прибору), на джойстике с ффб, я буду тянуть ручку на вывод ориентируясь по усилию на ней. На обычном джойстике, этой возможности я лишён и поэтому буду ориентироваться на перемещение ручки, что требует очень аккуратной работы, ведь загрузка на обычном джое  от скорости не зависит. Велик риск сломать аэроплан или в блэк войти, про точную стрельбу я уже не говорю, тут микронные перемещения нужны. В предложенном случае, я могу ориентироваться по загрузке, она будет соответствовать скорости и в тоже время, у меня будет в распоряжении полный ход ручки с вытекающей из этого, точностью пилотирования, недоступной ни пружинному джойстику, ни джойстику с ффб.  А сейчас (без ффб,) только по перемещению ручки и можно контролировать перегрузку, и чем больше скорость, тем более ювелирными должны быть эти перемещения.

Опубликовано:

Вообще то, идея конечно не моя. Просто давно я занимаюсь системами управления (ещё до выхода в свет Ила), так вот в поле зрения попала такая концепция (тогда она была ещё концепцией). Коль скоро в авиации, как минимум в боевой, появилась Электрическая Дистанционная Система Управления, которая механически не связана с рулями. Появилась и концепция аэродинамически неустойчивого самолёта, стало возможным использовать полные отклонения рулей, соответственно пилоту оставили джойстик в кабине, а всю остальную работу взял на себя компьютер ибо человеческой реакции для управления такими ЛА уже не хватало. Но этого мало, появилась концепция, основанная на физиологических принципах точного движения человека. Примерно такая же, что я изложил выше. Т.е. грубо говоря, если нужно создать перегрузку 4g, то для этого нужно переместить РУС на 30мм, создав загрузку на нём в 6кгс (цифры с потолка, хотя и соответствуют). При этом не важно с какой скоростью совершается полёт (лишь бы была возможность создать такую перегрузку). С этим проблем не возникло и разработчики решили пойти дальше. А почему бы не начать формировать у пилотов единые кинестетические восприятия при управлении, независимые от марки и типа самолёта? Ведь с таким принципом управления пилоту намного легче управлять, особенно если он к этому привыкает ещё с учебного самолёта. Намного может удешевиться сам процесс обучения, можно даже массово привлекать и женщин, что похоже и происходит. Как сейчас обстоят дела с этим я не знаю, но принцип решил использовать ещё лет 8 назад, правда без загрузки. Кстати и тензо джойстики можно использовать таким же образом.  

  • Поддерживаю! 1
Опубликовано: (изменено)

Я правильно понимаю, что для полного механического хода джойстика просто выделяется ход виртуального джойстика с границей, зависящей от скорости ЛА? (граница плавающая, примерно в пределах 100% - 50% от игрового хода, или даже меньше).     

Изменено пользователем 72AG_Olega
Опубликовано:
1 час назад, gfdtk62 сказал:

Кстати и тензо джойстики можно использовать таким же образом

Ну так и используют) 

 

Управление в ил-2 так и реализовано как вы описываете.

Опубликовано:
4 часа назад, gfdtk62 сказал:

о чём и объявляет голосом Агаты программа.

В GlovePIE есть встроенная говорилка: say("шестьсот"), никаких доп. рограмм не надо. Вы её имели ввиду?

Одно из главных достоинств FFB это возможность триммирования. Альтернативой FFB может стать динамическое регулирование загрузки (натяжение пружин) в зависимости от скорости ЛА, если использовать клещевую загрузку, то можно и триммирование организовать. Однако, кинематическая схема FFB, которую сделал Propeller самая простая из всех. Касательно вашей схемы нужно всё-же искать путь, как в GlovePIE (или FreePIE) передать значение скорости ЛА. Регулировка на слайдере конечно просто и хорошо, но в горячке боя точно не до этого.  

Опубликовано:
1 час назад, 72AG_Olega сказал:

Я правильно понимаю, что для полного механического хода джойстика просто выделяется ход виртуального джойстика с границей, зависящей от скорости ЛА? (граница плавающая, примерно в пределах 100% - 50% от игрового хода, или даже меньше).     

 

1 час назад, 72AG_Olega сказал:

В GlovePIE есть встроенная говорилка: say("шестьсот"), никаких доп. рограмм не надо. Вы её имели ввиду?

Одно из главных достоинств FFB это возможность триммирования. Альтернативой FFB может стать динамическое регулирование загрузки (натяжение пружин) в зависимости от скорости ЛА, если использовать клещевую загрузку, то можно и триммирование организовать. Однако, кинематическая схема FFB, которую сделал Propeller самая простая из всех. Касательно вашей схемы нужно всё-же искать путь, как в GlovePIE (или FreePIE) передать значение скорости ЛА. Регулировка на слайдере конечно просто и хорошо, но в горячке боя точно не до этого.  

Именно так, согласно скорости уменьшается в 11раз при 1000км/ч.

Да собственно я ведь не против ффб, есть у меня и майкрософтовски джой с ффб, но разговор то об обычном. А в горячке боя там всё просто, поставил на минимал и воюй. Всё одно, скорость даже не 500, другое дело бум-зум, но тут и горячки нет, выставил сколько надо, атаковал, вышел из атаки, потом можно и переставить. Например на Р-39, в догфайте или дуэли, ставил между 400 и 500, и энергию сохраняет, хоть ручка порой до пупа, и в штопор не срывается, если РН не передать.

  • 1 месяц спустя...
Опубликовано:

Собственно такой принцип управления сейчас и реализован в Ил-2 и в MSFS2020. Корнями эта концепция идет отсюда:

https://riseofflight.ru/forum/topic/2566-ob-upravlenii-samolyotami-v-rof-nejtral-rulya-vyso/
 

Концепция понятна, и не смотря на весь здравый смысл за этой идеей на данный момент это, то с чем я пытаюсь бороться))) 

Мне видится, что проблему управления нужно решать именно хардварным методом, иначе, самолеты теряют свой характер и превращаются в fly-by-wire самолеты типа Falcon и Airbus.

Описанный вами алгоритм очень хорош, если его реализовать на тензоджойстике, например, в DCS, где управление прямое. Как вариант, я Роме «Propeller” ,кажется, предлагал использовать его софт с телеметрией в DCS на тензоджойстиках, это будет классная и очень недорогая альтернатива очень мощному FFB

  • Поддерживаю! 1
Опубликовано:

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

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

  • Нравится 1

Создайте аккаунт или войдите в него для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать аккаунт

Зарегистрируйтесь для получения аккаунта. Это просто!

Зарегистрировать аккаунт

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас
×
×
  • Создать...