Алгоритмы тяжелого борта

MaestroEv

В общем идея понятная и правильная. Сам когда-то задавал вопрос “Доколе ронять самолеты будем по ошибке пилота?”

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

И из посадки нужно убрать разрешение на посадку. Это часть полета. Ибо пока не разрешили - тупо летаем и пока не возбуждаемся… посадки может не быть если нет разрешения, если долго нет - то запасной алгоритм - это уже ЧП.

Ну то есть после команды взлет - любое отклонение от алгоритма ведет к возникновению ЧП и отказу от полета.
И после начала посадки любое отклонение ведет к запасному алгоритму.

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

Думаю, что общее обсуждение будет не очень понятным не программистам. Ибо… Ибо.

Еще в каждом шаге алгоритма должно быть ответвление на ошибки, и тут вопрос в ответвлении на ошибку должно быть еще ответвление или как? Например, на рулежке на двухмоторнике, второй мотор стал газовать, по ошибке - глушим моторы - они не глушатся-сломалась глушилка… Это очень образно, но тем не менее, отказоустойчивость алгоритма- самое важное с чем придется столкнуться. Самик четко должен знать что делать. Без этих ответвлений получим то же самое что счас и имеется…

Syberian
MaestroEv:

после команды взлет - любое отклонение от алгоритма ведет к возникновению ЧП и отказу от полета.

В РЛЭ обычно расписано много вариантов “отказа от полета” при отказе оборудования. Поэтому стоит уточнять, какой именно отказ и что при этом делать.
К примеру, возьмем отказ единственного двигателя.
Вот варианты:

  1. при высоте менее 100м и скорости Х осуществить посадку прямо по курсу на возможно ровный участок
  2. при высоте более Х и расстоянии до выхода в коридор менее Y выполнить плавный разворот и осуществить посадку на полосу
  3. при высоте 10 м и наличии штопора убить себя апстену
MaestroEv

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

Serafimus
MaestroEv:

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

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

И из посадки нужно убрать разрешение на посадку. Это часть полета. Ибо пока не разрешили - тупо летаем и пока не возбуждаемся… посадки может не быть если нет разрешения, если долго нет - то запасной алгоритм - это уже ЧП.

По умолчанию борт сразу идет на посадку согласно плану полета. Диспетчер может вмешаться и запретить посадку. Для обеспечения захода против ветра нужно знание ветров, которое по хорошему вместе с METAR борт должен получить в какойто момент времени до выбора ВПП с какой стороны вообще ему садится. Имеется в виду что диспетчер должен передать его на борт, или борт будет использовать то видение ветров которе у него сложилось на протяжении последнего получаса полета, что не всегда может быть верно, как показали тестовые полеты на симуляторе. Ошибка может достигать 60 градусов а обычно составляет около 30-40 градусов. А если полет протикает в горной местности или в условиях знакопеременной турбулентности, то там скорее всего вообще будет ирунда а не реальный ветер.

Ну то есть после команды взлет - любое отклонение от алгоритма ведет к возникновению ЧП и отказу от полета.
И после начала посадки любое отклонение ведет к запасному алгоритму.

Да, разумеется. Алгоритм строился по ситуационной схеме. Каждая ситуация накладывает свои ограничения. Например, садимся, снос ветрами слишком сильный, в полосу не вписываемся, откат на второй круг, но! отказывает двигатель, это накладывает требование на немедленное выполнение посадки. Борт пытается ее осуществить если не получает указание “уходить от ародрома любой ценой в указанную точку” (например, грузовым беспилотником можно пожертвовать) а дальше уже насколько высоты ему хватит… В любом случае, борт будет сохранять управляемость по критерию воздушной сокрости до последнего, и лишь перед аварийной посадкой попробует выровняться.

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

Именно!

Еще в каждом шаге алгоритма должно быть ответвление на ошибки, и тут вопрос в ответвлении на ошибку должно быть еще ответвление или как? Например, на рулежке на двухмоторнике, второй мотор стал газовать, по ошибке - глушим моторы - они не глушатся-сломалась глушилка…

Потенциальные отказы прописываются в алгоритме жетско довольно таки (пока, там посмотрим), их количество довольно ограниченно по сути. (Кстати, Т-0 пока работает только с одномоторной конфигурацией, многомоторность будет уже много позднее)
Т.е. описанные проблемы можно описать так
“двигатель не развивает заданной мощности” (наш случай)
“двигатель полностью отказал”
Если дело на земле, останов, полные тормоза.
Если дело на разбеге, то зависит от того успеем или не успеем затормозить.
Если в воздухе, то прокладывается маршрут полета к ближайшей ВПП.

Это очень образно, но тем не менее, отказоустойчивость алгоритма- самое важное с чем придется столкнуться. Самик четко должен знать что делать. Без этих ответвлений получим то же самое что счас и имеется…

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

Syberian:

Владимир, я правильно понял, что Вы не используете ПИДы в чистом виде для регулирования? Что-то в голове маячит, но сообразить не могу.
Для примера рассмотрим вывод в горизонт после выполнения бочки.
ПИД-регулятор всегда принимает решение об остановке, когда “нулевая” точка уже пройдена, т.о. колебания неизбежны, пусть треть периода. Человек-пилот может давить, преположим, крен до последнего, а потом резким “качком” руля в обратную сторону остановить вращение без перехода “нуля”.
При этом оценивается момент движения, и в итоге остается всего один динамический коэффициент, который подстраивается “автоматом” после оценки выполнения маневра. И никаких ПИДов.
У Вас такой подход?

Гм, я пока не готов говорить чем заменены ПИДы и как именно алгоритм работает с динамикой высокоинерционного тела, это изюминка и ноу-хау в данном случае.
Но в Вашем случае описан тот же ПИД, пилот “знает” насколько ему надо “дать крена” что бы точно встать в ноль, это компонента "П"пропорциональная с учетом текущего вращения борта, "И"нтегральной компоненты…

Syberian
Serafimus:

чем заменены

Мне важно было знать, что они заменены, а чем именно - не очень 😃

Serafimus
Syberian:
  1. при высоте 10 м и наличии штопора убить себя апстену

До штопора не доведем, а просто выровняем немедленно борт что бы брюшком плюхнуться. Т.к. такая высота отказа говорит о том что мы у ВПП 😃

Панкратов_Сергей
Syberian:

Мне важно было знать, что они заменены,

Насколько я понял - алгоритм тот же что и у пилота RC.
Голова и руки запоминают в тренировках при какой воздушной скорости на сколько и в течении какого времени нужно махнуть управляющей плоскостью чтоб получить нужную коррекци ю положения.

Serafimus
Syberian:

Мне важно было знать, что они заменены, а чем именно - не очень 😃

Да, они заменены. С самого начала разработки был глубокий поиск алгоритма который будет не менее эффективным чем хороший ПИД, но при этом будет работать на низкой частоте, и не требовать предварительной адаптации, делать все в процессе полета, при этом не вызывая опасных ситуаций. Реально полтора года проб и ошибок, прежде чем стало ясно куда копать… Ну вот и выкопали вроде. 😃

Частота алгоритма обеспечивающая вменяемый полет 5 герц… Стабильного 10 Гц… (это не 50…120 как у обычных ПИД цепочек… но тут конечно много чего зависит от инерционности борта)

Панкратов_Сергей
Serafimus:

Частота алгоритма обеспечивающая вменяемый полет 5 герц… Стабильного 10 Гц…

У пилота - не большая.

Serafimus
Панкратов_Сергей:

Насколько я понял - алгоритм тот же что и у пилота RC.
Голова и руки запоминают в тренировках при какой воздушной скорости на сколько и в течении какого времени нужно махнуть управляющей плоскостью чтоб получить нужную коррекци ю положения.

Собственно с этого и начался поиск. Первый алгоритм 2005 года, был по сути специализированной экспертной системой постоянно набиравшей статистику по поведению борта в зависимости от внешних возмущений и приложенных управляющих моментов. Способ хороший. Замечательный! Работает как раз для упоминавшихся выше сферических коней, но чем более тяжелый и инерционный борт управляется им, тем выше, пардон, едет крыша у системы. Тк ей надо учитывать неизвестную ей инерцию в понимании поведения борта. 😃 А все чему надо учить на земле, не годится по начальным условиям задачи “универсального алгоритма”.

Панкратов_Сергей:

У пилота - не большая.

Именно! Нам не нужна большая частота для решения задач управления, значит, можно сделать такой же алгоритм которому тоже не нужна будет большая частота. Это тоже стало одним из “условий ТЗ”.

ZigZag_ZZ:

Тобишь вы создаёте Гомункулиса, отодвигая пилота взад?
Нажал на капу и пепелац сам летает и садится.

я его вообще исключаю. И в теории, мы говорим конечно не о пассажирских перевозках, а о грузовых. Тяжелый БПЛА должен обеспечивать весь цикл полета сам, самостоятельно разруливая все проблемы которые возникнут в полете. Да, звучит амбициозно, но на данном этапе речь идет даже не о принципиальной возможности создании подобного алгоритма управления (к счастью, он уже создан “в черновике”), а скорее о том что бы теперь медленно и верно приводить его (алгоритм) в реально летающий вид. До того как модель-прототип поднимется в воздух еще ой как много лет. (учитывая скорость работ, пара лет точно) т.к. естественно это не финансируется и не поддерживается никем, и в данном случае все работы ведуться по остаточному принципу времени. Но как ни странно все же идут, потому как задача нетривальная и интересная. Собственно до того как борт выполнил полет на симуляторе в феврале, еще были сомнения “можно-нельзя, справимся-несправимся”, сейчас сомнений нет. (а) - справимся, (б) - можно. Теперь идет кропотливая доводка. Большо количество узких мест, неправильного поведения в ситуациях и просто ошибок математики и логики. И это только на мат-модели, что уж будет всплывать когда будут полеты в железе страшно подумать 😃 Но опять таки, задача интересная, решаемая, хотя и не быстро 😃

blade
Serafimus:

Тяжелый БПЛА должен обеспечивать весь цикл полета сам, самостоятельно разруливая все проблемы которые возникнут в полете. Да, звучит амбициозно,

Вы, прежде чем амбции то выращивать-глянули лучше, что уже летает?
Если на МАКС приедете, то сможете увидеть там Иркут-200: отлично летающий БПЛА который, тем не менее- взлетает и садится “вручную”.
Делали его профессионалы, которые намеренно отказались от автовзлёта/посадки, поскольку эти понты только усложняют эксплуатацию и снижают надёжность.

MaestroEv

Не согласен с Blade. Именно взлет и посадку нужно отдавать роботам. По алгоритму, как программист хочу посоветовать, полностью “нормализовывать” алгоритм. Алгоритм должен не содержать элементов разного уровня “высоты”.
Например:
1.Проверка
2.Рулежка
3.Взлет
4.Полет
5.Посадка
6.Парковка
И между ними не может быть других более “низких” уровней.

3.1 Выпускаем механизацию
3.2 Добавляем газ
3.2 Убираем тормоз
… То есть в этом уровне не должно быть уровня “ниже” и “выше”, то есть на каждом уровне решаем задачу из одного логического уровня не смешивая борщ и мух.

По инерционности - тут можно всегда высчитывать на каждом этапе и коректировать “СКОРОСТЬ ОТВЕТА” самолета на каждое действие (отдельно для правых и левых и верха и низа для учета ветра и пр.) и получить таблицу исходя из которой уже и “давать рулей”, которые будут уменьшать расходы при подходе к нужному курсу и исключат раскачку и “промазывание” или даже смогут парировать это. Ну в общем то о чем писал Syberian.

blade
MaestroEv:

По алгоритму, как программист хочу посоветовать

По количеству виденных дров и морковок, как моделист и разработчик , могу возразить: если взлёт/посадка происходит на бетонке 6кмХ2 (как в ЛИИ им Громова),предварительно прометённой- то почти никаких проблем, ну кроме ветра 😃
Если же имеется в виду эксплуатация БПЛА в реальном мире, с кочками, ямками порывами ветра и прочими колдобинами, то АП, какой бы умнейший алгоритм в нем не был заложен, не поймёт что делать😢
Если вдруг под колесо попала ветка, шишка или другая помеха: он что сделает- полный газ и ручку на себя?
А если самолёт после помехи изобразил “прогрессирующего козла” и- глядит носом в землю?
Человек (даже летящий “по камере”)- совершенно не озадачится и поправит ситуацию автоматически 😃
Все рассуждения автора топика- не более, чем мнение “боксёра-заочника” выигрывающего бои “по переписке”. Но на настоящем ринге- бьют по морде 😦

MaestroEv

Думаю речь все же идет о нормальной полосе. Ибо ездить по бездорожью в автоцентрах тоже сразу не учат. Для этого есть другие машины и другие люди.
Сейчас задача заставить безаварийно летать тяжелую модель. Кстати, Serafimus, есть уже аппаратуры со связью с компом, то есть комп может рулить реальной моделью. Если Ваш алгоритм сразу же адаптировать для такой апы, то и скептицизма поубавится. Пеносамоль с приличным размахом (типа электропланер) - самое то.

blade
MaestroEv:

Пеносамоль с приличным размахом (типа электропланер)

Так, для “пеносамоля” и изобретать ничего не надо: полно готовых АП в продаже 😃
В том числе- и с открытыми кодами.
Да и отрабатывать автопилот для “тяжелого БПЛА” на пенолёте- всё равно, что движок для Ф1- обкатывать на Запорожце 😂

Serafimus
blade:

Вы, прежде чем амбции то выращивать-глянули лучше, что уже летает?
Если на МАКС приедете, то сможете увидеть там Иркут-200: отлично летающий БПЛА который, тем не менее- взлетает и садится “вручную”.
Делали его профессионалы, которые намеренно отказались от автовзлёта/посадки, поскольку эти понты только усложняют эксплуатацию и снижают надёжность.

😃 я не комментирую и не спорю с работами коллег. В то же время меня они никак не касаются. У меня свое видение построения борта и алгоритмов у иркута и прочих свое. Ниша лакомая, ниша интересная, кто первым получит коммерческое решение (а не опытно-испытательное как сейчас) того и тапки. Логику заложенную в БЦВМ иркута-200 и прочих автоматичски взлетающих и садящихся комментировать тоже не вижу смысла. Аналогия: Автомобили известны начала века. Что тут можно изобрести? 4 колеса да двигатель. И нафига эти конструкторы еще чтото новое делают? Вон же есть форд (тот который с конвеера Того Самого Форда)! Ездит сам! 😃 так вот, я с уважением и пониманием отношусь к решениям коллег, но не вижу основания восхищенно опускать руки глядя как откровенно сырой аппарат раз за разом ставят на МАКС. 😃 Если сравнивать, то реальный конкурент, извинит, не Иркут, а Боинг с их автоматически садящимся челноком. (тот что давеча тихо и мирно год а автомате на орбите отлетал) 😉

MaestroEv:

Алгоритм должен не содержать элементов разного уровня “высоты”.

Алгоритм не содержит “высоты” 😃
Вы управляете бортом и находитесь в каждый момент времени в одной из этих ситуаций. Вот и все. Высота тут не при чем. Алгоритм делает то же что и вы 😃

По инерционности - тут можно всегда высчитывать на каждом этапе и коректировать “СКОРОСТЬ ОТВЕТА” самолета на каждое действие (отдельно для правых и левых и верха и низа для учета ветра и пр.) и получить таблицу исходя из которой уже и “давать рулей”, которые будут уменьшать расходы при подходе к нужному курсу и исключат раскачку и “промазывание” или даже смогут парировать это. Ну в общем то о чем писал Syberian.

Ну, при интересе, см в видео. Что там делает алгоритм…

msv

Тяжелым самолетам- тяжелые алгоритмы…😃
ИМХО постулаты первого поста сложно воспринимаются как алгоритмы (во всяком случае программером)… Скорее это пожелания заказчика, для которых нужно составлять подробное ТЗ… И уже на основе которого, думать над алгоритмами, реализующими все хотелки заказчика… Но, как понял, именно алгоритмы сурово засекречены, и нам надо просто поверить, что они есть и работают…

Serafimus
blade:

По количеству виденных дров и морковок, как моделист и разработчик , могу возразить: если взлёт/посадка происходит на бетонке 6кмХ2 (как в ЛИИ им Громова),предварительно прометённой- то почти никаких проблем, ну кроме ветра 😃

Боковой ветер не проблема. Он учтен на уровне алгоритма.

Если же имеется в виду эксплуатация БПЛА в реальном мире, с кочками, ямками порывами ветра и прочими колдобинами, то АП, какой бы умнейший алгоритм в нем не был заложен, не поймёт что делать😢

А как вы то “понимаете” что делать? Почему вы отказываете алгоритму в понимании “что делать”? На каком основании? 😃

Если вдруг под колесо попала ветка, шишка или другая помеха: он что сделает- полный газ и ручку на себя?

Зачем? Если пробег - то просто парирует боковой снос если был, если взлет, то скорее всего тоже… если его конечно после этой ветки взлет не начался 😃

А если самолёт после помехи изобразил “прогрессирующего козла” и- глядит носом в землю?

алгоритм не даст этого сделать, что тут особого то?

Вы рассматривает сейчас какието желозебетонно жесткие системы, зачем? Это динамическая комплексная система, она оценивает, решает, взвешивает… Пока иногда ошибается, причем не в плане любимых “морковок” и прочего, а просто вынуждена выводить аппарат из опасных режимов. Она то выводит, но, надо добиться что бы ничего такого не было изначально.

Все рассуждения автора топика- не более, чем мнение “боксёра-заочника” выигрывающего бои “по переписке”. Но на настоящем ринге- бьют по морде 😦

Боже… Ну попробуем еще раз: АЛГОРИТМ ГОТОВ (!)
читайте по губам Г.О.Т.О.В.
сейчас идет его доводка и отладка… в свободное от зарабатывания денег время.
я не спрашиваю возможность или невозможность. я спрашиваю что упустил.
какой заочный бокс?

Offtop!
более того, вы мне начнете говорить да что я знаю о реальной динамике посадки реального борта (т.к. наверняка до этого момента нечитали что я написал много выше)
я знаю реальную динамику того что делаю.
и “учу” борт по динамике посадки соответствующей вот этой штуке (гироплан), с отказавшим мотором.
(снимку правда уже 5 лет, а за ручкой, ваш покорный слуга, “боксер-заочник” 😉 )

msv:

. Скорее это пожелания заказчика, для которых нужно составлять подробное ТЗ… И уже на основе которого, думать над алгоритмами, реализующими все хотелки заказчика… Но, как понял, именно алгоритмы сурово засекречены, и нам надо просто поверить, что они есть и работают…

UPD Пардон, я неправильно прочел. Да, вы все правильно поняли. Алгоритм есть, сурово засекречен и вам в доказательство того что вас не дурят (а зачем дурить то? вы спонсор? работодатель? 😃 ) только то мутное видео с одним из бесчисленных тестовых кружков по ссылке выше. Но какое это отношение имеет к моим вопросам, чесслово не знаю.

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

MaestroEv:

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

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

msv
Serafimus:

Если я чтото упустил в этих действиях…

А что тут можно упустить… Аппарат должен взлететь, пролететь по маршруту и сделать посадку. Если все это уже реализовано и работает, нам (посетителям и участникам ветки “Самодельная электроника, компьютерные программы”) остается только порадоваться вашим успехам…

blade
Serafimus:

А как вы то “понимаете” что делать?

Если бы я понимал, как и что “понимает” человек- Билл Гейтс у меня бы в садовниках работал 😃
Или Вы уже дошли до создания искусственного интеллекта? 😍
В общем- дерзайте!
Хотя, судя по темпам (если с 2005 г- ещё нет ничего реального), я до триумфа Вашей мысли-не доживу 😦

Dimon11

Как все сложно и запущено…
А что за ОС планируете использовать?
Неужели виндовс? Или неужели Линукс?