Айко Атами
Вектор удержания

Глава 1. Угол

Угол к Солнцу ушел на три сотых градуса.

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

Арина Кедрова смотрела не на картинку. Она смотрела на ряд чисел под правым блоком телеметрии.

Минус ноль целых ноль три.

Потом минус ноль целых ноль три семь.

Через двадцать секунд — минус ноль целых ноль четыре.

— Подтвердить источник, — сказала она.

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

— Сверяю с солнечным датчиком и звездником. По обоим каналам тренд один. На шум не похоже.

— Мне не нужно «не похоже». Мне нужен источник.

Арина услышала собственный тон: короткий, сухой, без лишнего воздуха. Такой тон экономил секунды и иногда ломал людей быстрее, чем им требовалось для ответа. Она оставила его. Сейчас важнее было не быть удобной.

Ночная смена ЦУПа держалась в приглушенном свете. На столах горели тонкие полосы клавиатур, на стекле перед операторами дрожали отражения графиков. За обзорным окном темнел пустой коридор. До утреннего доклада оставалось четыре часа, до расчетного окна стыковки нового сервисно-лабораторного модуля — двое суток и одиннадцать часов. В нормальной смене эти цифры жили отдельно. Сейчас они начали сближаться.

Илья Марков стоял позади ее кресла. Руководитель полета не наклонялся к экранам, не давил жестом, но вся смена знала: если он встал, а не остался у главного стола, значит, вопрос уже не локальный.

— Арина, это величина ниже порога тревоги, — сказал он.

— Пока ниже.

— Поэтому я и спрашиваю: что я должен поднять наверх? Три сотых градуса?

Она вывела на боковую панель прогноз по накоплению момента. Кривая шла полого, почти лениво. Такие кривые чаще всего и убивали смену: не скачок, не отказ, не красная лампа, а постепенное «еще допустимо», которое через час превращалось в «почему не остановили раньше».

— Не три сотых. Производную.

Марков помолчал. Он умел задавать паузы лучше, чем вопросы.

— Формулируй.

— Станция получает постоянную добавку по тангажу. Система ориентации ее компенсирует. Гиродины берут момент на себя, но запас по одному блоку уже уходит быстрее расчетного. Если тренд сохранится, через виток мы войдем в зону обязательной разгрузки.

Слово «обязательной» не понравилось никому. Его не повторили, но оно осталось в воздухе, как запах перегретого пластика.

На линии орбиты мигнул значок связи. Вера Седых, командир орбитальной смены, вышла в канал без видео: только голос, ровный, чуть глухой от бортовой обработки.

— Земля, у нас по станции без замечаний. Но я вижу ваш интерес к ориентации. Это тренировка или ночь перестала быть скучной?

Арина включила микрофон.

— Вера, ЦУП. Проверяем малый дрейф угла к Солнцу. На борту что-нибудь по ощущениям? Вибрация, шум приводов, нестандартные команды?

— Если бы станция умела пожимать плечами, она бы пожала. По жилому отсеку тихо. По панелям автоматика работает чаще обычного, но в пределах. Могу дать ручную сверку по теневой границе через семь минут.

— Дайте.

— Принято. И, Арина…

— Да.

— Станция считается нашей не когда мы ее запустили, а когда можем починить. Не торопитесь сразу к двигателям.

Марков слегка повернул голову к динамику. На его лице ничего не изменилось.

Арина убрала палец с клавиши передачи.

Вера не сказала ничего нового по процедуре. Любой командир станции предпочел бы не тратить топливо на разгрузку, если есть другой путь. Но в ее фразе было больше, чем экономия. Стыковка нового модуля должна была показать, что РОС не просто живет как объект, который обслуживают до первого крупного сбоя. Она должна была расти. Ремонтироваться. Держать внешние узлы доступными для робота, а не для будущего музея неудачных обещаний.

Арина запретила себе думать такими словами. Слова про будущее ухудшали расчет.

— Данила, статус по каналам ориентации.

— Звездник чистый. Солнечный датчик дает ту же полку, только с задержкой фильтра. Гиродины отвечают штатно. Командная модель не просит этот момент, она его гасит.

— Версия программного рассогласования?

— Не закрыта. Но слабая.

Арина повернулась к нему.

— Слабая — это не категория.

Он прижал губы, кивнул и быстро вернулся к экрану.

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

— Видим?

— Нет.

— Значит, не снимаем версию, но понижаем.

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

Марков подошел ближе.

— Резерв по топливу?

Арина открыла сводку. Цифры были нормальные. Нормальные цифры тоже могли быть плохими, если их приходилось тратить не на то.

— Для аварийной разгрузки достаточно. Но расход съест запас маневра перед стыковкой. Окно можно будет удержать только при идеальной погоде по баллистике и без повторного ухода.

— «Идеальная погода» в документ не положишь.

— Поэтому я не предлагаю разгрузку сейчас.

— А что предлагаешь?

Она увеличила график. Зеленая линия запаса гиродинов пересекалась с желтой контрольной зоной за семьдесят четыре минуты. Расчет был грубый: фильтр сглаживал, реальная добавка могла расти, могла исчезнуть. Но выбирать приходилось не между знанием и незнанием, а между двумя неполными картинами.

— Двадцать минут на диагностику. Если производная растет — готовим двигатели как резерв. Если находим внешний источник момента — работаем по нему.

— Внешний источник, — повторил Марков. — Какой?

Арина не ответила сразу. По модели станции свободных внешних источников сейчас не было. Ничего не двигалось, не раскрывалось, не висело в нестабильном положении. Малый постоянный момент мог дать застрявший узел, перекос панели, тепловая деформация, утечка через микроклапан. Каждая версия требовала отдельной проверки, и каждая звучала слишком большой для трех сотых градуса.

— Пока неизвестно.

— Тогда наверх идет «малый дрейф, источник уточняется, резервная разгрузка готовится». Без слов про ремонтируемый космос.

— Согласна.

Слово далось легче, чем должно было. Арина не спорила с формулировкой, потому что Марков был прав: программу не защищают красивыми названиями. Ее защищают тем, что не путают лозунг с расчетом.

Данила снова поднял голову.

— Арина Сергеевна.

Она не любила, когда во время инцидента к ней добавляли отчество. Это всегда означало, что человек просит не место в канале, а право рискнуть вниманием смены.

— Говори.

— Есть совпадение по периоду. Дрейф дергается не ровно, а маленькими уступами. Сорок шесть секунд между микропиками. Я сначала думал — шум фильтра, но такая же частота была в архиве по внешнему сервисному узлу.

— Какому архиву?

— Испытания шарнира третьей серии. Термокамера, цикл нагрев-остывание.

Арина почувствовала, как внутри что-то стало неподвижным.

Третья серия.

На экране ничего не изменилось: станция по-прежнему была белой схемой, Земля под ней — синей полосой, цифры — мелкими и послушными. Только память выбросила не картинку, а запах старой лаборатории, усталый голос приемщика и фразу «в допуске», сказанную тогда слишком быстро. Партия шарниров прошла. Испытания потом сорвались на другом узле, по другому документу, но Арина знала, где она тогда не дожала вопрос.

Она убрала это в сторону. Не сейчас.

— Данила, на экран.

Он вывел два графика: текущий дрейф и архивную кривую. Совпадение было не доказательством, а приглашением к ошибке. Масштабы разные, условия разные, станция не термокамера. Но микропики действительно сидели там, где не должны были сидеть, если виновата только программа.

— Это не команда, — сказал Данила. Теперь он говорил тише. — И не чистый датчик. Похоже на железо снаружи.

Марков посмотрел на Арину.

— Твоя оценка?

Она хотела сказать: рано. Хотела отрезать версию, отправить Данилу за нормальной корреляцией, вернуть смену к регламенту, где все неприятное раскладывается по знакомым ячейкам. Это было бы правильно на десять минут назад.

Сейчас зеленая линия запаса снова шевельнулась вниз.

— Оценка: версия рабочая, но недоказанная. Данила, поднимай полный архив по шарниру. Лена Шахова на связи?

— Тепловики в резерве, — ответил кто-то слева.

— Поднимайте Лену. Вера, ЦУП.

— На связи.

— Через семь минут, кроме теневой границы, проверьте локальные признаки по внешнему сервисному сектору. Без выхода, без ручных действий. Только наблюдение и то, что разрешено бортовой процедурой.

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

Арина посмотрела на прогноз: семьдесят одна минута до контрольной зоны, если ничего не изменится. Меньше витка.

— Скажем раньше, — ответила она. — Мы еще спорим цифрами.

Она выключила микрофон и повернулась к смене.

— Работаем как отказ внешнего источника момента до опровержения. Программа остается резервной версией. Двигатели — резерв решения, не первая реакция. Через десять минут мне нужен прогноз не по углу, а по цене каждого следующего шага.

Данила уже печатал. Марков ничего не сказал, и это было его разрешением.

На большом экране станция все так же не двигалась.

Арина смотрела на неподвижную схему и знала: если они ошибутся, первой это почувствует не схема.

Глава 2. Шум новичка

Через двенадцать минут дрейф перестал быть красивой линией.

Он пошел мелкой ступенькой: почти ровно, почти в пределах, почти объяснимо. На экране это выглядело как дефект масштаба, как дрожание руки у того, кто слишком долго держит линейку над чертежом. Арина не любила слово «почти». В техническом журнале оно ничего не значило, но именно из него потом росли фразы для комиссии: почти штатно, почти безопасно, почти успели.

— Двигательная схема готовности? — спросил Марков.

Оператор движения ответил с левого ряда:

— Предварительная разгрузка собрана. По малым двигателям ориентации — две последовательности. Первая мягкая, под окно стыковки еще терпимо. Вторая быстрее, но топливо съест заметно.

— «Заметно» переведите в сменный язык.

— Первая последовательность: минус восемь процентов от резерва на подготовку стыковки. Вторая: до семнадцати, если момент продолжит расти.

Марков посмотрел на Арину.

— Это уже цена.

— Это цена резерва, — сказала она. — Не решения.

Он не спорил. Марков был опасен не тем, что давил, а тем, что умел оставлять чужую фразу висеть без поддержки. Смена слышала: если через несколько минут у Арины не будет более сильной версии, двигатели станут не резервом, а единственным подписываемым действием.

Арина открыла диагностическую матрицу. Датчики. Командная модель. Регулятор. Гиродины. Внешние моменты. Тепловой контур. Все лишнее надо было отбросить не потому, что версия неприятна, а потому, что она не держится на данных.

Данила принес третью распечатку на экран, хотя никто не просил распечаток.

— Здесь лучше видно, — сказал он.

— На экран достаточно.

— На экране фильтр сглаживает. Я вывел сырую телеметрию по микропикам.

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

— Говори.

— Сорок шесть секунд — не точный период, он плавает. От сорока четырех до сорока девяти. Но плавает вместе с освещенностью внешнего сервисного сектора. Когда станция идет к рассвету, микропики сжимаются. После выхода на свет становятся резче.

— Ты только что связал ориентацию, освещенность и шарнир по одному витку?

— Нет. По одному витку я говорю, что программа не объясняет фазу. По архиву шарнира — что есть похожий отклик на нагрев.

— Похожий — не объясняет.

— Согласен.

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

На орбитальном канале щелкнула Вера.

— Земля, сверка по теневой границе.

Арина включила запись.

— Говорите.

— По визуальному ориентиру расхождение есть. Малое. Я бы не заметила, если бы не знала, что искать. Панели чаще подрабатывают, но не дергаются. По жилому отсеку всё штатно.

— Вибрации?

— Нет. Звуков тоже. Но по сервисному переходу есть одна странность.

Арина подняла глаза от матрицы.

— Какая?

— Возле внешнего сектора стенка теплее по локальному датчику. Не авария, не желтый уровень. Просто карта стала неровнее. Я вижу плюс два и восемь десятых от расчетного после рассвета.

Данила резко вдохнул. Арина не посмотрела на него.

— Вера, подтвердите: локальный датчик внутри перехода, не внешний узел?

— Подтверждаю. Внешний мы руками не трогаем и глазами не видим. Но металл вокруг него сегодня явно не любит симметрию.

— Принято. Дайте ряд за последние три витка, если бортовая система отдаст без вмешательства.

— Уже выгружаю.

Марков подался вперед.

— Плюс два и восемь десятых градуса на стенке — это причина?

— Нет, — сказала Арина. — Это симптом.

— Симптом чего?

Данила ответил раньше, чем она успела остановить его:

— Термоциклического перекоса. Если шарнир внешнего узла не дошел до механического упора или ушел с преднатяга, нагрев может давать постоянную добавку момента. Малую, но…

— Стоп, — сказала Арина.

Он замолчал.

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

— Данила, ты сейчас прыгнул через три проверки. Первое: узел должен иметь свободный ход. Второе: тепловой градиент должен дойти до него, а не жить в стенке. Третье: момент должен совпасть по оси. У тебя есть все три?

— Нет.

— Тогда не продавай вывод. Принеси проверку.

Он опустил глаза к клавиатуре. На секунду в нем проступила обида, чистая и молодая, не успевшая обрасти защитой. Потом он кивнул.

— Принесу.

Арина вернулась к Маркову.

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

— Осмотр чего именно?

— Узел крепления внешней сервисной балки, сектор Б. Нужна проверка положения шарнира и теплового состояния. Если версия не подтвердится — сэкономим только время, не ресурс.

— Если подтвердится?

— Тогда двигательная разгрузка останется резервом, а не признанием, что ремонтный контур у нас декоративный.

Марков прищурился.

— Осторожнее с формулировками.

— Формулировка техническая. Если внешний узел дает момент, двигатель снимает последствие. Робот может снять причину.

— Может?

— При подтверждении — может попытаться.

Вот теперь он услышал границу. Не героическую, не красивую: попытаться. Это слово в документах выглядело слабым, но иногда только оно было честным.

Марков повернулся к главному каналу.

— Робототехников на готовность. Без команд на движение до отдельного разрешения. Баллистика — пересчитать последствия двух вариантов разгрузки с учетом окна стыковки. Тепловики — Лена Шахова нужна в канале через пять минут.

Смена ожила не громко, а плотнее. На соседних пультах открылись новые окна, побежали статусы, кто-то убрал кружку от края стола. Арина отметила это машинально. Люди всегда убирали лишнее, когда понимали, что ночь перестала быть наблюдением.

Вера снова вышла в канал.

— Земля, отдаю ряд по локальному датчику. И еще: на борту автоматика дважды пыталась компенсировать малый перекос панелей, но вернулась к прежнему положению. У нас не было предупреждения, только запись в журнале.

— Время?

— Первый раз за четыре минуты до вашего первого запроса. Второй — девять минут назад.

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

— Данила.

— Вижу.

— Не «вижу». Что это меняет?

Он глубоко вдохнул, и на этот раз говорил медленнее.

— Если панели отрабатывали перекос, то регулятор видел не ложный угол, а реальную нагрузку. Значит, версия датчика падает. Версия программного рассогласования тоже слабее, потому что две разные подсистемы реагируют на один физический эффект. Остается внешний момент или ошибка в модели внешнего момента.

— Хорошо. Дальше.

— Нужна геометрия сектора Б на текущую освещенность и история положения узла после последнего обслуживания. Если там был недоход до фиксатора, тепловой цикл мог вывести его в промежуточное положение.

Арина не сказала «лучше». Она просто отметила его строки в общем протоколе. Для Данилы этого оказалось достаточно: плечи у него чуть опустились, пальцы перестали бить по клавишам.

Лена Шахова подключилась без приветствия.

— Кто разбудил тепловика словом «плюс два и восемь» и почему я вижу у вас шарнир третьей серии?