Наступить на горло песне
Разрабатываем авионику. Один из проектов предусматривал создание сложной системы, обрабатывающей навигационную информацию с самолётных датчиков. Ясное дело, любой датчик имеет погрешность — как систематическую, так и случайную. С систематической всё просто: корректируем со спутника. Со случайной хуже: датчики собирали с миру по нитке, и что будет в реальном полёте, неизвестно.
Великими трудами был разработан хитрый алгоритм коррекции, который определял наиболее вероятное значение параметра в следующий момент времени и корректировал действительность под идеал.
Момент истины — полёт! Вначале летим с выключенной коррекцией — весьма недурно. Включаем на борту наш хитрый алгоритм. Жуть… А всё просто: случайные ошибки изменялись по синусоиде, а пока имеющееся у нас железо считало поправку, ошибка меняла знак. Ошибка возрастала, и следующая поправка опять приходила в противофазе. Красота.
Что же делать? Умножить алгоритм на ноль нельзя: он наш кормилец. Решение была гениальным: результат коррекции сравнивался с исходным и теоретическим значениями, умножался на поправочный коэффициент, близкий к нулю, и складывался с исходными данными. При этом учитывалась задержка и рассчитывалось значение, которое будет, когда прокрутятся шестерёнки. А поскольку железо было тормознутое, угадать значение удавалось редко. В 95% случаев алгоритм выдавал поправку, равную нулю.
Сдаточные испытания прошли успешно.