21 век, а простейшие конечные автоматы так и ниасилили
От: landerhigh Пират  
Дата: 28.12.23 13:40
Оценка: 2 (1) -1
(Дисклеймер — псто не про авиацию)

Вот уже за окном засилие облаков, кубернетесов и даже всяких чатов ГПТ.

А тем временем даже в Боинге не умеют в простейший конечный автомат.
В результате чуть 787 прямо апскалу не стукнули при заходе на посадку:

The aircraft was cleared for the runway 25R ILS approach. Shortly after passing waypoint RIVER, the aircraft kept diverging to approximately 1NM north from the approach track and descending to a lowest altitude of 3,700 ft AMSL, where the horizontal clearance between the aircraft and a spot height of 3,277 ft was 570 m.


Причина — детский баг в реализации конечного автомата. И дело даже не в том, что он должен быть быть найден на этапе юнит-тестирования, а в том, что подобные "баги" вообще не должны в принципе возникать в коде:

However, depending on the geometry and groundspeed of the approach, CLC may activate for such a short time that the three FCMs fail to synchronize the engaged autopilot mode and fail to transition to the LOC capture mode. This may result in the aircraft turning to a LOC intercept angle of approximately 20 degrees and flying through the LOC on this track, rather than properly capturing the LOC.
“LOC” will remain on the FMA despite the failed capture and, in some circumstances, the aircraft may begin descent down the glideslope while 20 degrees off of the LOC course.


Короче, КА может "проскочить" одно из состояний насколько быстро, что "остальной" КА его "не заметит"

Почти уверен, что "конечные автоматы" были реализованы через "очередь сообщений/состояний" или обмен сообщениями/контроль состояний осушествлялся через банальный poll.
www.blinnov.com
Re: 21 век, а простейшие конечные автоматы так и ниасилили
От: Артём Австралия жж
Дата: 30.12.23 12:47
Оценка: +1
Здравствуйте, landerhigh, Вы писали:

L>Короче, КА может "проскочить" одно из состояний насколько быстро, что "остальной" КА его "не заметит"


L>Почти уверен, что "конечные автоматы" были реализованы через "очередь сообщений/состояний" или обмен сообщениями/контроль состояний осушествлялся через банальный poll.


Странное объяснение "слишком быстро". Если там несколько FSM параллельно крутятся в разных девайсах / нитках, то одна из FSM должна отправить особый ивент "я тут типа переключилась" в общую очередь ивентов, и остальные заинтересованные FSM на это среагировать.
Re: 21 век, а простейшие конечные автоматы так и ниасилили
От: alex_mah Россия www.elsy.ru
Дата: 30.12.23 15:42
Оценка: 1 (1)
Здравствуйте, landerhigh, Вы писали:

L>...


L>Почти уверен, что "конечные автоматы" были реализованы через "очередь сообщений/состояний" или обмен сообщениями/контроль состояний осушествлялся через банальный poll.


100% нет
Связан тут с одним авиапроектом.
Там у них, как и 100 лет назад, связь между компонентами системы не цифровая, а сигнальными уровнями. Причем по словам коллег, у них в авиации везде так, самый надёжный способ связи.
Убедить вторую сторону на проекте перейти на нормальный логический протокол заняло кучу времени.

Скорее всего и в этом Боинге события происходили слишком быстро, слушающая сторона отбросила изменение сигнала как дребезг.
Re[2]: 21 век, а простейшие конечные автоматы так и ниасилил
От: trop Россия  
Дата: 30.12.23 17:13
Оценка: 2 (1)
Здравствуйте, Артём, Вы писали:
L>>Почти уверен, что "конечные автоматы" были реализованы через "очередь сообщений/состояний" или обмен сообщениями/контроль состояний осушествлялся через банальный poll.
Аё>Странное объяснение "слишком быстро". Если там несколько FSM параллельно крутятся в разных девайсах / нитках, то одна из FSM должна отправить особый ивент "я тут типа переключилась" в общую очередь ивентов, и остальные заинтересованные FSM на это среагировать.

FCM (flight control module), а не FSM,
судя по всему на 787 их три штуки для резервирования.

тут (Background) пишут, что
автопилот (AFDS) не перешёл в режим захода по курсовому маяку (LOC, ILS)
после того как один или несколько FCM поймали "устойчивый сигнал курсового маяка" (CLC) и инициировали переход в режим LOC.
получается, что автопилот не включил заход по курсу (LOC), хотя индикатор режима полёта (FMA) показывал LOC,
и похоже снижение по глиссаде (G/S) в то же время работало.

причиной наз-ют то, что при определённой скорости и угле пересечения створки курсового маяка FCM включают CLC-LOC
несинхронно и на столь короткое время, чего хватает для переключения индикатора FMA в LOC,
но недостаточно для переключения AFDS в режим LOC, в общем автопилот способен "посадить" борт в землю

скорее всего AFDS запрограммирован так, что при разных показаниях с трёх FCM,
например за 1 секунду он получает LOC-CLC-CLC, затем CLC-LOC-CLC и CLC-CLC-CLC
после пролёта створки курсового маяка,
каждый раз AFDS не знает какой из FCM пи#дит и пропускает сигнал или голосует большинством.
в общем они этот баг уже исправили.
-
Отредактировано 30.12.2023 17:22 trop . Предыдущая версия . Еще …
Отредактировано 30.12.2023 17:21 trop . Предыдущая версия .
Отредактировано 30.12.2023 17:20 trop . Предыдущая версия .
Re[2]: 21 век, а простейшие конечные автоматы так и ниасилили
От: landerhigh Пират  
Дата: 30.12.23 21:55
Оценка:
Здравствуйте, alex_mah, Вы писали:

_>100% нет

_>Связан тут с одним авиапроектом.
_>Там у них, как и 100 лет назад, связь между компонентами системы не цифровая, а сигнальными уровнями.

Есть основания сомневаться.
Хотя бы потому, что за уродцем MMS aka ISO 9506 (https://www.iso.org/standard/37079.html) стоит как раз Боинг.

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


Бредятина...
www.blinnov.com
Re[3]: 21 век, а простейшие конечные автоматы так и ниасилил
От: Артём Австралия жж
Дата: 31.12.23 00:34
Оценка:
Здравствуйте, trop, Вы писали:

T>FCM (flight control module), а не FSM,


https://en.m.wikipedia.org/wiki/Finite-state_machine

T>причиной наз-ют то, что при определённой скорости и угле пересечения створки курсового маяка FCM включают CLC-LOC

T>несинхронно и на столь короткое время, чего хватает для переключения индикатора FMA в LOC,
T>но недостаточно для переключения AFDS в режим LOC, в общем автопилот способен "посадить" борт в землю
Event атомарный- у него нет "короткое время".

Но тат в другом посте уже сообщили- сигналы тёплые аналоговые. Так что детерминированных конечных автоматов там нет или они не все детерминированные.
Re[3]: 21 век, а простейшие конечные автоматы так и ниасилил
От: landerhigh Пират  
Дата: 03.01.24 09:49
Оценка:
Здравствуйте, trop, Вы писали:

T>причиной наз-ют то, что при определённой скорости и угле пересечения створки курсового маяка FCM включают CLC-LOC

T>несинхронно и на столь короткое время, чего хватает для переключения индикатора FMA в LOC,

Это вот и есть то самое классическое "в простейшие КА ниасилили, про юнит-тестирование не слышали". Глупо после этого удивляться всяким MCAS.
www.blinnov.com
Re: 21 век, а простейшие конечные автоматы так и ниасилили
От: fk0 Россия https://fk0.name
Дата: 03.01.24 11:54
Оценка:
Здравствуйте, landerhigh, Вы писали:

L>Вот уже за окном засилие облаков, кубернетесов и даже всяких чатов ГПТ.

L>А тем временем даже в Боинге не умеют в простейший конечный автомат.

Потому, что ваши автоматы -- для старых пердунов.

L>Причина — детский баг в реализации конечного автомата. И дело даже не в том, что он должен быть быть найден на этапе юнит-тестирования, а в том, что подобные "баги" вообще не должны в принципе возникать в коде:


Вообще-то ещё до программирования такой баг должен был выявиться при верификации КА.

L>Короче, КА может "проскочить" одно из состояний насколько быстро, что "остальной" КА его "не заметит"


L>Почти уверен, что "конечные автоматы" были реализованы через "очередь сообщений/состояний" или обмен сообщениями/контроль состояний осушествлялся через банальный poll.


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

Через _очередь_ -- это очень плохой способ в определённых обстоятельствах, т.к. очередь
может переполниться рано или поздно. Особенно если внешнее событие может породить лавину
внутренних синтетических.
Re[2]: 21 век, а простейшие конечные автоматы так и ниасилили
От: landerhigh Пират  
Дата: 08.01.24 23:16
Оценка:
Здравствуйте, fk0, Вы писали:

fk0> Вообще-то ещё до программирования такой баг должен был выявиться при верификации КА.


В смысле, на этапе рисования диаграммы состояний/таблицы переходов карандашиком на бумажке? По нынешним временам за такое могут и на костер
www.blinnov.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.