Elite Games - Свобода среди звезд!
.
ВНИМАНИЕ!
Наша конференция посвящена космической тематике и компьютерным играм.
Политические вопросы и происходящие в мире события в данный момент на нашем сайте не обсуждаются!

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

Поиск | Правила конференции | Фотоальбом | Регистрация | Список пилотов | Профиль | Войти и проверить личные сообщения | Вход

   Страница 4 из 4
На страницу: Пред.  1, 2, 3, 4 | Все страницы
Поиск в этой теме:
Канал Orbiter: «Универсальный ракетный автопилот»
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Kulch :
Bloodest, что-то меня вот только сейчас торкнуло... А как ты подаешь управляющие моменты на ракеты типа моей "Энергии"? У меня никакого RCS, понятно, нету. Опять же про перекладывание вектора тяги спрашивал... Ну у меня-то там используются методы Орбитера для того, чтобы "взять" клавиатурное или джойстиковое отклонение. Получаются уровни управления по углам - по 2 на каждый канал и по ним я смотрю, как мне надо наклонить движки.

А ты-то как это снаружи по отношению к моей dll делаешь??? Или можно как-то подсунуть эти уровни управления?


Ни как и не чего по отношению к dll RN не делаю - работа идет с классом от которого произведена Энергия.
В ИПВ на
Код:
DLLCLBK void opcPreStep (double simt, double simdt, double mjd)

Сидит вставка обучения
Код:
bool Driver::Learn(VESSEL * ves, bool HackAT)
{
parent=ves;
Moments =_V(0,0,0);
parent->GetPMI(Inertia);Inertia=Inertia*parent->GetMass();
if(HackAT)
{
   for(int i=0; i<3;i++) Moments.data[i]=0.1*Inertia.data[i];
   HackATT=true;
}
else
{
   HackATT=false;
   
/////////////////////////////////////////////////////////////////////Pitch
   int n_dv = 0; n_dv = parent->GetGroupThrusterCount (THGROUP_ATT_PITCHUP);
   if(!n_dv) return false;
   for(int i=0; i<n_dv;i++)
   {
      THRUSTER_HANDLE th = parent->GetGroupThruster (THGROUP_ATT_PITCHUP,i);
      VECTOR3 pos,dir;
      parent->GetThrusterRef (th,pos);
      parent->GetThrusterDir (th,dir);
      Moments=Moments-crossp(pos,dir)*parent->GetThrusterMax (th);
   }
...

Флаг HackAT=true когда включен триггер HAT.Соответственно если он включен то производится установка моментов псевдоуправленя, таких чтобы они обеспечивали ускорение 0,1 рад/с/с

Непосредственно в управлении

Код:
   if(HackATT)
   {
      for(i=0;i<3;i++)
         if(SwitchA.data[i] >=0)
         {
            double Force = upr.data[i]*ScaleMFactor.data[i]*Moments.data[i];
            VECTOR3 VF1,R1,VF2,R2;VF1=R1=VF2=R2=_V(0,0,0);
            switch(i)
            {
               case 0:
                  VF1.data[1] =  Force;
                  VF2.data[1] = -Force;
                  R1.data [2] =  0.5;
                  R2.data [2] = -0.5;
                  break;
               case 1:
                  VF1.data[2] =  Force;
                  VF2.data[2] = -Force;
                  R1.data [0] =  0.5;
                  R2.data [0] = -0.5;
                  break;
               case 2:
                  VF1.data[0] =  Force;
                  VF2.data[0] = -Force;
                  R1.data [1] =  0.5;
                  R2.data [1] = -0.5;
                  break;
            }
            parent->AddForce(VF1,R1);
            parent->AddForce(VF2,R2);
         }
   }   
   else
   {
      for (i=0;i<3;i++)
      {
         if(SwitchA.data[i] >=0) parent->SetAttitudeRotLevel (i, upr.data[i]*ScaleMFactor.data[i]);
         else  parent->SetAttitudeRotLevel (i, 0);
      }
   }
    Добавлено: 08:30 10-04-2006   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
... AddForce'ами, понятно... Жаль...
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 10:08 10-04-2006   
Tiger
 65 EGP


Репутация: 10
Сообщения: 140
Откуда: Россия, Барнаул
Зарегистрирован: 13.12.2005
... А если автопилот "Энергии" и ИПВ Bloodest'а с хаком друг на друга наскочут, кто кого сборет? Ой, не могу!..
_________________
Siberian Tiger
    Добавлено: 10:15 10-04-2006   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
Tiger :
кто кого сборет?

Мой победит. Он учитывает внешние воздействия и старается их компенсировать. При этом используются управляющие моменты до 0.3 от максимально возможных.
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 14:09 10-04-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Пока да- в атмосфере родной лудше. Но каким спопособом? Учет воздействий это не все. А вы поинтерисуйтесь какие такие углы атаки у Энергии на максимальных напорах.
Вне атмосферы родной здорово сдает... Посмотреть просто - надо запустить ИПВ во время работы только второй ступени в режиме single stage ship, добавить ARD и посмотреть сброс aero.txt - угловые ускорения не превышают 0,005 рад/с/с ... Ну поскольку Энергия не обеспечивает ручную отсечку двигателей по высотам швах, но по наклонению 1 тысячную градуса держит...
    Добавлено: 08:00 11-04-2006   
Kulch
 105 EGP


Рейтинг канала: 2(21)
Репутация: 29
Сообщения: 604
Откуда: Россия, Санкт-Петербург
Зарегистрирован: 24.08.2004
Роман, я не спорю.

1. Помни просто о том, на каком принципе сделан мой автопилот (я писал про это дважды). Он НЕ МОЖЕТ быть точным. Более того, я НЕ РАБОТАЮ над его улучшением, в моем проекте есть более важные аспекты, требующие доделки в текущий выпуск.

2. В первую версию ракеты НЕ ЗАЛОЖЕНЫ ограничения по углам атаки и по скоростному напору, я оставил эти тонкости для последующих версий. (Я, как программист, придерживаюсь той точки зрения, что вовремя остановиться и выпустить достаточно качественный, но недостаточно доделанный продукт - важнее, чем долго совершенствовать его, но выпустить поздно).

3. Я просил тебя дать мне исходники твоего автопилота в надежде на то, что разобравшись в них, я смогу быстро скомбинировать такой автопилот, который будет иметь приемлемую точность. Мне инутри виднее, как присобачить к моей ракете другой алгоритм. Вполне возможно, что применить его к моей ракете вообще невозможно, но это могло натолкнуть меня на другие идеи. Еще раз напоминаю, что в математике я не смыслю ничего. Поскольку ты не заметил или проигнорировал мои слова (возможно, я был недостаточно настойчив, а может быть - не вежлив?), я решил, что изучение теории управления ракетами и формирование собственного алгоритма управления я оставлю на потом. В текущий выпуск я уже не успеваю.
_________________
Юрий Кульчицкий aka Kulch
    Добавлено: 10:50 11-04-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
1. Любую точность можно улудшить. В управлении с ограничением по постоянной скорости перекладки можно использовать описанный выше мной алогритм с леаниризацией - только вместо "a" применить a=K*sin(W0+W*t) и на выходе либо использовать дробные значения - скорость переменная либо просто знак U - направление перекладки.
3. Когда закончу Launcher - в финальной версии будет и программный интерфейс к dll и текст проги (только без некотрых частей - комерческих [тех что делал по договорам]- часть математики -быстрый код - на ассемблере).
    Добавлено: 16:24 11-04-2006   
Tiger
 65 EGP


Репутация: 10
Сообщения: 140
Откуда: Россия, Барнаул
Зарегистрирован: 13.12.2005
Bloodest :
И главное - нет ни какого смысла дробить участки на мелкие. Достаточно вот так
Красные - нулевые флаги
синие - переменные =1
Коричневые - нулевой длительность


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

В порядке посильной помощи (если, конечно, ты планируешь заканчивать Пускатель) предлагаю перевести мануал. Думаю, моего уровня хватит.
_________________
Siberian Tiger
    Добавлено: 15:20 13-04-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
1. Сглаживать - надоть порыскать по инету на счет кода что-то вроде распознавания образов.

2. На счет первода - это... я очень рад - с англицким у меня швах - чтитаь вроде кое как а писать - полная ж.

3. Заканчивать обязательно буду - штука должна получиться ходовая. Я так надеюся.

Задержка вызвана проблемами в атмосферном модуле - в его согласовании с реальной физикой управления. Теперь треба все и земная тяга и сопротивление и площади и сопротивление вращению.
То есть полный автомат оказался весьма капризен. Все дело в начальном завале - нужно выдержать процесс завала достаточно точно. Чтобы вектор скорости отличался от заданного не более 2ух градусов.
Это оказалось весьм трудным делом. Вот пока раздумывал - слетал к звездам. И мысля сама пришла.
Сегодня реализовал - пока на Новых горизонтах, Кассини, ТМА, Протонах с Миром и главное - Атлантисе работает тип-топ. На Энергии нет - не работает - в конфиге неверно задана тяга боковушек. Счас счищаю все отладчики и дописываю код (заглушки убираю - например земная тяга считывалась только на первой ступени прямо на старте, а не читалась из обучения, остальные ступени строились в пропрции с первой). В выходные напишу обнавленный мануал.
К вторнику -среде думаю скинуть в инет.
    Добавлено: 20:34 13-04-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Атмосферный автопилот

ftp://koavia.com/n1/LauncherMFD_A7P.rar

Код:
Тестовый патч А7Р

Изменения

1.Триггеры SED и HAT перенесены в режим "работа".

2.В режиме работа убраны все маркеры - работают только табло триггеров.

3.Автопилот начинает работу только после набора высоты равной 2ум характерным  размерам ЛА (2*GetSize).

4. Введен автопилот полета в атмосфере.
   Последовательность работы с ним следующая.
 -В режиме работа кратковременно включить автопилот.
 -Автопилот должен включится, если нет - у ЛА отсутствуют выделенные двигатели
  управления по вращению - нужно включить HAT.
 -Выключить автопилот.
 -Проанализировать показания параметра U - максимальное угловое ускорение
  по тангажу - если оно меньше 0.03 - использовать HAT на этапах полета
  в атмосфере.
 -Нажать клавиш ARD - ИПВ перейдет в режим "compute gimbal angle" - расчет
  угла завала.
 -Клавишами GA+ GA- подобрать такое значение параметра Max gimbal angle при
  котором образуется минимальное Ending Time.
 -Отменить расчет RST или подтвердить GO
 -При подтверждении после автоматического перехода в режим рбота включаются   режимы ARD и AP
   Все можно стартовать    
  В файлах конфигурации добавлен четвертый параметр целевых установок -   максимальный угол отклонения (см примеры конфиг файлов).


Зы Ариан - попровывал - в конфигах - 2 шт.
Все работает перекрасно - прямо и голяком - только надо отрезать голову, где тяговооруженность меньше единицы.

ООпс. ошибочка была.
ftp://koavia.com/n1/LauncherMFD_A8P.rar

Изменения

1.Исправлена ошибка в работе с одноступенчатым ЛА.
    Добавлено: 09:28 19-04-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Дык кто-либо- пробывал. Отпишите плз!
    Добавлено: 07:32 24-04-2006   
Tiger
 65 EGP


Репутация: 10
Сообщения: 140
Откуда: Россия, Барнаул
Зарегистрирован: 13.12.2005
Дико звиняюсь за молчание - Христос воскресе, кстати. Попробую между окончанием рабочего дня и уходом домой что-нибудь протестировать. Только я уже теряюсь, на чем бы... Расстроен
_________________
Siberian Tiger
    Добавлено: 08:10 24-04-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Во-истину воскрес!
Спешить не надо - тестировать можно на том на чем и раньше (хотя бы на Атлантисе)- собственно сейчас вожно использование разных ПК с разными настройками - по тому как алгоритм "зарос" настолько что начали появлятся ошибки в инициализации параметров (версия а7). Дык это очень гнусное дело - проявляется не всегда и не везде и требует значительных усилий на поиск- использование неинециализированного значением параметра можно выявить только на иной машине - там как правило в ячейке памяти будет другое значение алгоритм его скушает и поведет себя по иному...
    Добавлено: 09:13 24-04-2006   
Tiger
 65 EGP


Репутация: 10
Сообщения: 140
Откуда: Россия, Барнаул
Зарегистрирован: 13.12.2005
Добрался в этот выходной до Орбитера, попробовал "Атлантис". По инструкции, задействовал атмосферный автопилот, все сработало просто замечательно (если не считать отсутствия "Roll Program"... забавно было видеть шаттл, летящий "на боку" Хы... ) C gimbal angle все понятно, только параметр максимального углового ускорения (кажется так) U неплохо было бы подсвечивать красным, когда он не укладывается в диапазон руления "без хака". Лучше даже чтоб мигал и явно было видно, что что-то не в порядке. А то еще поди вспомни нужное значение (0.03).

Еще с прошлых разов помню, что включение режима LEI (правда, не в тех азимутах бросания, для которых он предусмотрен, а обычных) приводит к ошибке расчета. К сожалению, не могу сказать про близкие к 90 градусам азимуты - пока не пробовал.

Можно добавить полезную фишку: в файле программы тангажа ввести формат строк комментариев, которые будут показываться в определенные моменты. Например "jettison fairing now!"

Думаю, в остальном в плане эргономики претензии высказать сложно. Что касается возможных глюков, то один я их никак не выявлю (а похоже, что тут один я и тестирую ИПВ). Пожалуй, только одно предсказание: если установлено много разных MFD'шек, то они начинают конфликтовать по клавишам вызова, и Орбитер им автоматически назначает комбинации Shift+1, Shift+2 и т.д. Возможно, это приведет к конфликту с рядом управляющих клавиш ИПВ.

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

1. Во вводной части следует пояснить, чем отличается истинный азимут бросания от азимута, показываемого IMFD. Я вот, например, не уверен, что знаю.

2. стр. 8: "от +5 до +0.5 градуса от минимально возможного - широты места пуска". Пожалуй, еще одно замечание по эргономике - это условие на глаз определить сложно, требуется заглянуть в Map или Surface и еще посчитать в уме. Так что не мешает еще одну "красную лампочку" прикрутить.

3. стр. 8: "предстартовые операции состоят из разворота, если требуется, корабля в истинный азимут бросания - команда ROL." Неясно, как определить, требуется или нет.

4. чуть ниже там же - так и не понятно, что такое LEI и почему оно так называется. Расстроен

5. стр. 10 - помянут Saturn4B, очевидно, Titan4B.

6. стр. 11 - пожирнее про недопустимость в конфигурации режимов с тяговооруженностью < 1. Я вот не обратил давеча внимания...

7. стр. 13 - рекомендуешь произвести захват наклонения перед стартом "Союза". Тогда я вообще не понял про этот захват, что ли? Азимут-то 63... Надо будет следущим разом отлетать этот сценарий.

8. стр. 15 - чисто из интереса, здесь используется вторая промежуточная орбита, на 30 км ниже орбиты станции? Если да, то как правильно рассчитать время опережения для начала маневров перехода? Я с этой проблемой парился при использовании SoyuzGuidance MFD. Там предлагается с 200*200 перейти сперва на 330*330, а потом уже непосредственно сближаться со станцией (ориентировочно 360*360). Запарка была в том, чтобы определить разность MnL на первой орбите, достаточную, чтобы не проскочить на второй орбите время начала маневра сближения. Кстати, хороший тулз, только он и Rendez-vous MFD используют метод свободных траекторий.

Вот, пока все...
_________________
Siberian Tiger
    Добавлено: 00:15 30-04-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Замечания учту. LEI- захват эклиптического наклонения и соответственно полет в него а не в экваториальное - собственно данная фича не оправдала себя, скорее всего будет удалена.

Дык на счет синхронизации - дык можно и так - дык с ИМФД проще -
200*200 есть первая и последняя орбита - с нее и идет сближение - переход начинает осуществлятся когда до станции 200-250 км (естественно он расчитывается заранее благо ИМФД это позволяет). Естественно ИМФДшный метод Ламберта точнее чем Свободных траекторий. Последний применяется при сближении с дистанций в 20-30 км и на околокруговых орбитах - отсюда и запарки. А так при разности фазирования даже в 359 градусов будут невелированы разностью высот в 160 км примерно за 2ое суток... И главное не впилиться в станцию при торможении Гы-гы
    Добавлено: 12:29 03-05-2006   
Thorton
 87 EGP


Рейтинг канала: 3(36)
Репутация: 12
Сообщения: 696
Откуда: Томск
Зарегистрирован: 15.05.2006
Роман, это не про Ваш лаунчер случаем?
http://orbit.m6.net/Forum/default.aspx?g=posts&t=11599
    Добавлено: 19:29 05-12-2006   
Bloodest
 155 EGP


Рейтинг канала: 3(40)
Репутация: 18
Сообщения: 944
Откуда: Питерские мы
Зарегистрирован: 07.10.2004
Гы - про мой - я типа и забыл что одну из альф туда бросал - типа первый ответ был через 2 недели...
Да есть такой глюк - проявлялся и у меня - в чем проблема не знаю - те стоит на этой машине пересобрать проект dll и все работает.
    Добавлено: 19:55 05-12-2006   
Канал Orbiter: «Универсальный ракетный автопилот»
На страницу: Пред.  1, 2, 3, 4 | Все страницы
  
Показать: 
Предыдущая тема | Следующая тема |
К списку каналов | Наверх страницы
Цитата не в тему: Давайте не будем про "элементы ИИ". Нельзя быть чуть-чуть беременной. (Udav)

  » Универсальный ракетный автопилот | страница 4
Каналы: Новости | Elite | Elite: Dangerous | Freelancer | Star Citizen | X-Tension/X-BTF | X2: The Threat | X3: Reunion | X3: Terran Conflict | X Rebirth | X4: Foundations | EVE Online | Orbiter | Kerbal Space Program | Evochron | VoidExpanse | Космические Миры | Онлайновые игры | Другие игры | Цифровая дистрибуция | play.elite-games.ru | ЗВ 2: Гражданская война | Творчество | Железо | Игра Мечты | Сайт
   Дизайн Elite Games V5 beta.18