Это действительно ваша разработка?

При разборе проблем в отечественной промышленной политике обычно обращаются к китайской действительности, где производится большая номенклатура продукции. Да и китайские заводы у всех на слуху. При этом в дискуссиях незаметно происходит фетишизация производства и подмена понятий: создается впечатление, что если завод производит радиоэлектронные изделия, то он знает и понимает как эти изделия создавать. Для многих между этими двумя понятиями стоит знак равенства, но на самом деле между производством и разработкой (R&D, Research and Development) — пропасть.

Приведу небольшой пример. На снимке — небольшое радиоэлектронное устройство. Видно, что оно выполнено по технологии поверхностного монтажа; судя по разъемам и основаниям для крепления экранов, содержит СВЧ компоненты. Завод, производящий эту плату, может демонстрировать ее на выставках и она будет показателем высокого уровня технического развития и соответствия современным технологиям. И это на самом деле так.

Приемный модуль, Receiver

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

Для чего предназначена эта плата и какую роль она выполняет в системе, частью которой она является? Завод об этом не знает (если только не производит всю систему целиком). Собственно, это устройство и было так изготовлено: производителю была передана печать и необходимая документация, перечень элементов, благодаря чему он самостоятельно закупил компоненты, изготовил печатную плату, установил компоненты на плату. При этом производитель не имел ни малейшего понятия, для чего предназначена плата — на все про все ушло 2 недели.

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

Мы, как разработчики, знаем что на снимке — приемник диапазона 60 — 1000 МГц, содержащий синтезатор частот, управляемый по I2C, с возможностью работы от внешнего синтезатора с целью поддержания когерентности системы. Выходной сигнал — квадратурные составляющие I/Q, предназначенные для оцифровки в быстродействующих АЦП. У нас на руках электрическая схема, описание работы и другие документы, которых у завода нет и которые ему не нужны.

Теперь представим, что заказчик, вдохновившись этой платой, которая изготавливается на «передовом производстве», задает заводчанам вопрос: ребят, а можно нижнюю частоту сделать 50 МГц? Или — у вас внешне подключаемые ФНЧ, какая оптимальная частотная характеристика будет если оцифровку выполнять на скорости 250 млн. выборок в секунду? Или — давайте упростим плату и перенесем синтезатор в другое устройство, какие фазовые шумы нужно обеспечить для того чтобы вы выполнили требования по когерентности? И тут в ответ — тишина… Заводу ответить нечего. И незачем — его задача обеспечивать партию выпуска по той документации, которую ему дал разработчик.

Смешная получается история: солидное предприятие, станки стоят, руководство ходит в галстуках, получает финансирование на развитие и модернизацию… а модернизировать ничего не может. Приходится обращаться к очкарикам, которые сидят в небольшой комнатке со своими приборами, паяльниками и компьютерами 🙂 Смешно потому, что когда рассказываешь о своих проектах, тебя спрашивают: а где у вас производство? Граждане, производство сейчас вообще не проблема! Любую деталь или плату вам сделают за милую душу где угодно — хоть в Рязани хоть в Таиланде. Только платите. Не про производство надо спрашивать, а про IP — интеллектуальную собственность, которая подтверждена реально работающими устройствами.

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

Обобщим данный пример и попробуем ответить на вопрос, вынесенный в заголовок: что считать своей разработкой, которая может быть воспроизведена на любой производственной базе? И с другой стороны — когда завод, производящий радиотехнические системы, может утверждать что он является разработчиком и следовательно может модернизировать, изменять и развивать свою продукцию?

Свое и чужое

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

Характерно, что разработчик находящийся в красной зоне (R&D) хорошо представляет как его продукт начинает жить в зеленой (производство), поскольку принимает участие в испытаниях и сопровождении во время изготовления. Обратное далеко не всегда встречается: как правило, заводчане полагают, что знают все об изделии и системе (этим же грешат эксплуатанты), а на самом деле даже не представляют, какой пласт информации кроется за этим. Завод знает о том, как сделано, а разработчик — почему сделано именно так. Чувствуете разницу? В первом случае — конечная станция, просим освободить вагоны, а второй открывает множество дорог в будущее.

Но я немного отвлекся ) Итак, как построена наша схемка. Блоки имеют группировку по вертикали и относятся к наиболее типичным компонентам изделия или системы: антенно — фидерный тракт, аппаратура (сюда включается все — СВЧ узлы, устройства формирования и обработки, компьютерные устройства, средства передачи и отображения данных), программное обеспечение как Firmware — прошивки чипов расположенных на своих платах и программное обеспечение как Software — приложения работающие под управлением операционной системы на встраиваемых платформах SBC (Single Board Computer).

Символично то, что Firmware расположено между аппаратурой и ПО высокого уровня, поскольку это низкоуровневый софт, тяготеющий к железу и являющийся его неотъемлемой частью.

Разработка, R&D, производство

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

Stupid piece of iron

Поскольку я заметил, что заводчане часто без понятия, откуда берется то что они производят, начнем с них, то есть с нижней части схемы. Про плату радиоприемного модуля мы уже сказали, что завод с ней сделать ничего не может (кроме того что изготовить): наличие конструкторской и технологической документации (информация зеленой зоны) не дает абсолютно никакой информации о способах развития и усовершенствования устройства. Возьмем другой пример: антенна радиолокатора. Документация на антенну позволяет изготовить детали и правильно собрать их. Технологическая остнастка обеспечивает достижение точности там, где это критично: например, соблюдение формы рефлектора и расположение излучателя. Антенну красят, устанавливают на пьедестал, запускают двигатели… и — вуаля! Вот тот момент, который обожают заказчики: здоровый кусок железа начал вращаться вокру своей оси. Мы сделали локатор!

Когда я работал в Риме по радиолокационному проекту, итальянцы — разработчики называли этот характерный момент «stupid piece of iron» — тупой кусок железа, который выглядит зрелищно, привлекает внимание, но мало кто понимает что самая соль содержится в небольших узлах обработки сигнала и ПО.

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

Электрический расчет антенны, Radar Antenna

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

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

Эту истину простую очень
Принимай как есть и не сетуй:
Есть дорога из лета в осень,
Нет дороги из осени в лето

(Неизвестный Автор)

Программное обеспечение: эта песня будет вечной

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

Конечно, вы можете занятся дизассемблированием на свой страх и риск, но если исходники вам официально не давали, не советую и начинать.

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

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

Несмотря на то, что исходные тексты программ снабжаются комментариями, в ПО сложной архитектуры невозможно по одним комментариям и логике текста программы определить общий замысел. Для этого нужна документация, по структуре соответствующая MIL STD 498, что позволяет поддерживать разработку ПО и развивать ее. Эта документация — на вес золота, потому что в современных изделиях софт берет на себя больше функционала — за счет железа, которое реализуется относительно стандартными блоками. Алгоритмы обработки и формирования, математические модели, обеспечение быстродействия, удачные находки — в этой документации. Само собой, она не покидает стен фирмы и тем более не передается на производство.

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

Все вышесказанное также относится и к Firmware. Это софт весьма специфичен и напоминает разработку драйверов устройств. Как правило, его пишут уже не программисты а чистые инженеры. Поскольку внешний мир для Firmware — это плата, связи между ними являются очень тесными и для производства не документируются. В этом ПО может содержаться существенная часть ноу-хау по обработке данных в критичных условиях: например, софт в ПЛИС обеспечивающий работу АЦП.

Разработчики, заводчики и заказчики

Эта статья принесет мало пользы разработчикам и заводчикам. Первым — по причине того что они и так все это знают, вторым — по причине что они и так прекрасно все это знают, но не в их интересах показывать, как все обстоит на самом деле. А вот для заказчиков польза может быть немалая. Это актуально с учетом последних трендов. До пресловутого импортозамещения все было просто: знай покупай импортную аппаратуру, перебивай шильдики и продавай под своим брендом (если кто-то думает что такое возможно только в ширпотребе, покажу примеры из области радиотехнического обеспечения полетов). Сейчас это уже не прокатывает и приходится действовать тоньше: например, перерисовывать чертежи под своими децимальными номерами и изготавливать узлы на своей производственной базе. Благо, зарубежные компании заинтересованные в российском рынке охотно передают ограниченную документацию для China Copy. Но свою технологию они передавать никогда не будут. А это — вечная зависимость. Ну и нехорошо вводить в заблуждение покупателей ложным термином «отечественная продукция».

АРП встраиваемый в РЛК «Комар-2»

Если к радиопеленгатору «Пихта-2С» применима фраза «первый микропроцессорный», то АРП «Комар-2» это следующий процессорный АРП, который базировался на технологиях Пихты. Его особенность в том, что он разрабатывался в составе чехословацкого радиолокационного комплекса «Комар-2», который создавался по заказу наших ВВС в Тесла Пардубице.

После разработки АРП «Пихта-2С» все пеленгационное направление перешло ко мне. Имеющийся задел требовал своего выхода, и такая возможность скоро представилась.

В начале 90-х почтовые ящики нашего профиля ни шатко ни валко занимались ОКР «Мельхиор», которая должна была обеспечить полной наземной радиотехнической инфраструктурой все военные стационарные, мобильные и высокомобильные аэродромы. Мы разрабатывали радиопеленгаторы для этой ОКР. В рамках работы должны были разрабатываться передовые технологии, такие как углепластиковые конструктивы, призванные существенно снизить вес оборудования. Углепластик так и не появился, и во время моей очередной встречи с ведущим конструктором ВНИИРА по высокомобильному КДП, который должен был располагаться на вертолете, он с тихой грустью сказал: — «просуммировал массу оборудования по документации всех поставщиков для КДП… вертолет не поднимет».

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

Близко к Мельхиору стояли еще две разработки радиолокационных комплесов: челябинская «Радиан-90» и чешская «Комар-2». И также ни шатко ни валко у нас до «Пихты-2С» велась разработка встраиваемого АРП для этих комплексов. Техническое руководство нашей конторы исправно ездило в Чехословакию для подписания протокола сопряжения РЛК и радиопеленгатора. То-ли кофе в Пардубицах был славный, то-ли пиво — но протокол никак не хотел подписываться. После очередного вояжа я, уже будучи главным конструктором АРП «Комар-2», недвусмысленно намекнул боссам, что техникой должны заниматься инженеры, а не начальники. После этого скрепя сердце меня «выпустили» за границу.

Бюджетная песня

90-е годы были под завязку набиты креативом. Тем, кто жил в эти времена, можно зачесть сутки за трое 🙂 Вместе с выборами директоров предприятий, в нашу контору пришел хозрасчет. Я как главный конструктор темы, получил реальный бюджет и чековую книжку, в которой выписывал исполнителям наличные за выполненные по проекту работы. Наличные выплачивались как премия каждый месяц.

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

АРП, РП, DF, Direction Finder, РЛК Комар-2, Radar Komar-2

Блок АРП «Комар-2». Встраивался в шкаф радиолокационного комплекса «Комар-2».

Чековая книжка худела, разработчики АРП начали слыть баснословными богачами, радиопеленгатор появился практически за полгода. Вот что делает животворящий бюджет! Ни до, ни после мне не приходилось возглавлять такой скоростной проект. К этому моменту за одну мою поездку в Тесла Пардубице был наконец согласован протокол сопряжения, где оговаривалось подключение АРП к радиостанциям РЛК и выдача пеленгационной информации. Как сейчас помню, это был стык ИРПС (токовая петля) 20 мА.

В результате, мы погрузили опытный образец, нестандартку, приборы и кувалду для забития костылей в основание антенны (ручка покрашена в зеленый цвет!) в ГАЗ-66 и он взял курс на Пардубице.

Хозрасчетная эпопея длилась недолго. Отчасти потому, что сразу выяснилось какие направления в конторе обеспечены договорами (такое как наше), а какие существуют просто сами по себе — дотационно. Руководство лишилось сильного рычага — перераспределения средств, и поэтому лавочку быстро прикрыли. Плюс был в том, что АРП «Комар-2» к этому моменту успели изготовить. Ну а с минусами понятно — не все смогли дальше работать в прежнем вялотекущем режиме: часть специалистов уволилась, а часть продолжала работать в режиме итальянской забастовки. Надвигался самый пик лихих 90-х с невыплатами зарплат по полгода, сгоревшими вкладами в сберкассах и погружением основной части населения в нищету и беспросветность.

Тесла — Пардубице

К моменту прибытия ГАЗ-66 в Пардубице обосновалась наша небольшая пеленгационная команда. Это был первый наш выезд за границу. Ехали в поезде, в вагоне который гремел буквально каждой железкой. Когда стояли на границе в Бресте и ждали когда поменяют тележки вагонов для перехода на европейскую колею, стала понятна причина, почему вагоны издают звуки имитирующие ведро с болтами. Таможенники зашли в вагон и начали откручивать буквально все, что держалось на винтах, в поисках тайников. Отвинчивали буквально до крышек на потолках. Тщательно проверяли багаж. Причины тотального шмона были понятны: возник огромный перекос в стоимости товаров между бывшим СССР и Западом, что породило целые потоки в прямом и обратном направлении. Чехи с удовольствием возили наши дверные замки и топоры, поскольку в exUSSR железо стоило пока еще дешево, а в Европе — уже дорого, и давно дорого. Были и курьезные ситуации: одно время, после тотальной войны против курильщиков и изчезновения сигарет, государство одумалось и начало спешно закупать импортную продукцию, которая дотировалась. Поэтому, купив в московском магазине блок каких нибудь Rothmans и перепродав его на Западе, можно было получить ощутимую прибыль )

Вспоминая Пардубице, я сразу ощущаю аромат кофе. Казалось, этот гостеприимный запах встречает тебя везде. Нас поселили в небольшой двухэтажной спортивной гостинице рядом с городским стадионом. Вот какие ассоциации вызывает у советского человека слово «гостиница»? В первую очередь конечно «мест нет», потом «после 24 часов прием посетителей запрещен», плюс дежурные по этажу, простреливающие своим взглядом тепловозного прожектора все коридоры. Еще анкеты, которые надо заполнять и которые судя по всему никто не читал, поэтому в графе «цель приезда» можно запросто внести запись: «ограбление банка».

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

После этого мне стало особенно близка тихая печаль Радомира Герверта, руководителя проекта РЛК «Комар-2», когда во время приезда в Махачкалу он ознакомился с местным гостиничным сервисом. В центральной гостинице «Ленинград» ему дали номер в котором не работал замок, и на вполне резонный вопрос от получил ответ типа такого — «а что ты там собрался делать втайне от всех» ) Ну и выделив ему неубиваемое вафельное полотенце, горничная погрозила пальчиком: смотри мол, не сопри, знаем мы вас командировочных. Хотя Радомира конечно этим не удивить: он хорошо поколесил по СССР по позициям где стояли тесловские локаторы, в том числе в войсковых частях. Навидался всякого.

РЛК «Комар-2»

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

АРП, РП, DF, Direction Finder, РЛК Комар-2, Radar Komar-2

Схема расположения РЛК «Комар-2» на аэродроме

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

Интересные особенности, которые запомнились после знакомства с проектом.

Конструктив Евромеханика 19»

Все было сделано в этом конструктиве, размеры плат — от 3U до 6U. Мы тогда все еще использовали рекомендованные конструктивные элементы УБНК. Тем не менее, по протоколу сопряжения блок АРП был вписан в то место, которое было отведено для него в шкафу — над радиостанциями.

Z80

Так неожиданно и странно было увидеть этот процессор на плате военного радиолокатора. Легендарный компьютер ZX Spectrum, который мы собирали сами, это одно, а тут… Объяснение было простое: доступно и функционально, поэтому использовали.

Сопряжение

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

Индикаторы кругового обзора

Именно ИКО мы рассчитывали увидеть, как это принято в военных радарах, но увидели… цветные дисплеи. Это было невероятно, потому что во-первых, наши военные ни за что бы не их не согласовали, а во вторых для тех времен, когда только появились персональные компьютеры и цветной экран был редкостью, цветной монитор в изделии выглядел настоящим модернизмом. На вопрос насчет наших военных заказчиков о замене ИКО на цветные дисплеи Радек ответил коротко, просто и снова логично: «дерьмо ставить не будем». Вот так.

Два босса

Управление проектом РЛК было разделено: Радомир отвечал за сроки, бюджет и результаты, а другой профи (к сожалению, не помню как зовут) — за технику. Это было непривычно, потому что в нашей системе координат главный конструктор отвечает за все. Понятие бюджета было эфемерным, потому что им всегда распоряжалось руководство конторы (все так и осталось, несмотря на внедрение PMI).

Радомир старался уложиться в бюджет, но похоже из-за магнетрона ему это не очень удалось )

Военпред

Да, на Тесле был наш настоящий представитель заказчика. Когда Чехия начала обособляться от советского блока, его присутствие стало чисто номинальным и вообще потеряло смысл когда фирма начала распродавать изделия, которые разрабатывались по заказу СССР. На территорию фирмы Юру еще пускали, но в планах компании он уже участия не принимал, хотя всячески помогал нам продвигать проект. В ходе очередного приезда, на вопрос: «Как дела?» Юра отвечал — «Отлично, сохраняю советское военное присутствие» )

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

Радиопеленгатор простреливает Пардубице

Процессы, которые шли в Чехии и бывшем СССР после распада последнего, разительно отличались. Было ощущение что мы летим в какую — то пропасть с распадом всех существующих связей и страны, а чехи наоборот — возвращаются к себе домой. Никаких конфликтов у чехов со словаками не было — они расстались тихо и незаметно. Универсальный индекс — стоимость кружки пива держался на уровне 5 — 7 крон, в то время когда с рублем творилась настоящая чехарда. Когда в один день встревоженные чехи показали новости по ТВ, где расстреливали здание Верховного Совета (мы в это время находились в Пардубице), это так контрастировало с почти беспечной обстановкой в этом городке. Помню, их сильно удивило то, что люди не бежали, а стояли и смотрели на расстрел — «как в кино».

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

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

Радек нашел авто с установленной FM радиостанцией и договорился с городским отелем, который располагался в многоэтажном здании. В один прекрасный субботний — или прекрасный воскресный день, сейчас уже не помню, мы вытащили блок АРП из аппаратной РЛК, сняли антенну (благо она складная и поэтому легко транспортируема) и обосновали на крыше отеля пеленгационную позицию. Автомобиль с радиостанцией пошел по маршруту, давая постоянные отсчеты, и мы отмечали пеленги на карте города. Результаты были очень даже неплохими, учитывая что Комар-2 имеет малобазовую 8 — вибраторную антенну. Погрешность составляла до 3 и в некоторых случаях — до 5. Используя триангуляцию, в таком малоэтажном городе как Пардубице, можно было получить хорошие результаты по определению местоположения угнанного авто.

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

Помнится завершение нашей последней поездки: на вокзале ждем наш поезд, который идет с Праги до Москвы. Стоянка всего 5 мин, поэтому нужно быстро найти вагон и оперативно погрузиться со всеми вещами. Благо, на станции есть любовно выполненные макеты поездов с указанием номеров вагончиков. На станцию влетает поезд, мы подбегаем к своему вагону, а он… закрыт. Наши минуты истекают, и мы начинаем барабанить по вагону что есть силы. В результате дверь распахивается и показывается пьяная проводница (когда она успела по дороге из Праги?), которая выпучила глаза и начала кричать: «В Пардубице посадки нет!». Промелькнула мысль: «ну здравствуй, Родина…» и с этой мыслью, прорываясь сквозь заслон, мы заскочили в вагон.

Завершение истории

Оказывается, РЛК «Комар-2» не остался в 90-х, а получил свое дальнейшее развитие. В сети я нашел ссылки на брошюры этого изделия. Только пеленгатор там конечно уже не наш.

АРП, РП, DF, Direction Finder, РЛК Комар-2, Radar Komar-2

Радиолокатор «Komar-2»

Также я нашел в сети фирму, которая очень хотела делать пеленгационную систему: OM Complex, судя по сайту, она до сих пор здравствует. Сама Тесла прошла несколько трансформаций и по прежнему работает на этом рынке. Много лет спустя мы встретились с Радомиром Гервертом в Чешском доме в Москве и вспомнили старые добрые времена.

Никто из разработчиков этого проекта, включая меня, в конторе уже не работает. На память осталась только фотография пеленгационного блока, даже не помню когда и зачем ее сделали. К сожалению нет фото складной пеленгационной антенны — в ней были использованы оригинальные конструкторские решения. Программное обеспечение разработанное как для Комара, так и для Пихты-2С, легло в основу популярного АРП «Платан» (DF-2000), который я сделал уже 10 с лишним лет спустя.

Ковариационная матрица и линейная трансформация

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

В изложении я минимизировал формульную часть; там где это необходимо показал формулы в нотации Питона. Поэтому все выкладки которые приведены очень легко проверить буквально в режиме командной строки.

Начнем с формирования исходных данных.

Шум и ничего более

Будем работать с двумя массивами, или как любят говорить в линейной алгебре — векторами. Переменные x0 и x1 будут представлять из себя независимые друг от друга векторы с нормальным распределением со средним 0 и дисперсией равной единице.

Почему переменных будет именно две? Только по той причине, что двумерные распределения удобно смотреть на плоском графике 🙂 Можно конечно работать и с трех- и многомерными переменными, но в этом случае наглядность может пострадать 🙂

В любом случае, этот пример можно распространить на любое количество измерений.

Я сразу сохранил два этих вектора в одной матрице x для удобства дальнейшей работы. Вот что получилось при отрисовке при N=1500 (по оси абсцисс — x0, по оси ординат — x1):

Ковариационная матрица, линейное преобразование, собственные числа, собственные векторы, Covariation matrix, Eigen vectors, eigen values

Нормальное распределение двух независимых случайных переменных

Из графика видно, что наибольшая плотность вероятности действительно лежит в точке (0,0). Переменные независимы друг от друга, потому что точки с координатами (x0,x1) распределены равномерно вокруг центра.

Независимость, или некоррелированность, мы можем подтвердить также путем вычислений:

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

Сделаем небольшое отступление: почему мы работаем с матрицей ковариации а не корреляции? Исторически сложилось, что корреляцию воспринимают как ковариацию, нормированную в диапазон -1, … +1. Нормировка нам не к чему, поэтому мы работаем с матрицей ковариации.

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

Линейное преобразование двух случайных векторов

Трансформацию векторов x0,x1 получают перемножением векторов на матрицу трансформации A, в результате чего получится уже новая пара векторов. Трансформация будет состоять из двух частей: матрицы поворота ROT на угол 20°

и матрицы масштабирования SCALE с коэффициентом 4 по оси х и коэффициентом 0.5 по оси y:

В результате матрица трансформации A как произведение только что заданных матриц поворота и масштабирования будет такой:

Ну и в результате получим трансформированные векторы, чего мы и добивались:

На рисунке изображение всех значений вектора xa выделено зеленым цветом.

Ковариационная матрица, линейное преобразование, собственные числа, собственные векторы, Covariation matrix, Eigen vectors, eigen values

Исходное нормальное распределение (синий цвет) и распределение после его трансформации: поворота и масштабирования (зеленый цвет)

Наше нормальное распределение деформировалось: теперь оно уже далеко не нормальное: вытянулось вдоль одной оси, сжалось вдоль другой и вдобавок еще повернуто. Но самое главное из того что произошло, это то что теперь новые векторы больше не являются независимыми: например, если первый из трансформированных векторов принимает значения >10, то с высокой степенью вероятности второй вектор будет принимать значения >3, как следует из распределения. В исходном распределении такого не было: любому из значений x0 могло соответствовать любое значение x1 из области распределения.

Теперь эту зависимость отражает и ковариационная матрица:

Значение 5.135 недвусмысленно намекает на взаимосвязь между трансформированными векторами.

Здесь самое время задаться вопросом: поскольку ковариационная матрица является обобщенной характеристикой нового распределения, которое в свою очередь получено в результате трансформации A, существует ли связь между ковариацией и линейной трансформацией A?

Физический смысл ковариационной функции линейного преобразования

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

Другими словами, все взаимосвязи в результате будут определяться матрицей линейного преобразования.

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

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

В статье посвященной методу главных компонент мы занимались поиском собственных значений матрицы линейного преобразования. А что если найти собственные векторы и числа ковариационной матрицы? Сказано — сделано:

В результате получаем собственные векторы

и собственные числа:

Отрисуем их на нашем распределении красным цветом. При этом само собой масштабируем собственный вектор собственным числом:

Ковариационная матрица, линейное преобразование, собственные числа, собственные векторы, Covariation matrix, Eigen vectors, eigen values

Собственные векторы линейного преобразования: показаны красным цветом

Пусть вас не смущает отсутствие стрелочки справа: она как раз находится за полем рисунка.

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

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

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

Коротко о главном

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

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

Updated 06.05.2018

Схемотехника: однокаскадный усилитель

Сделаем небольшую разминку: потренируемся на однотранзисторном усилителе. Когда-то чтение аналоговых схем было сродни искусству; профи по внешнему виду безошибочно определяли функционал узла. Наверное, это один из немногих оставшихся навыков, для имитации которых не получится использовать поисковые системы.

Схема на рисунке, вопрос следующий: чему равно значение выходного напряжения Uout? Заметим, что на вход мы еще ничего не подали; таким образом речь идет о задании режима работы по постоянному току, или рабочей точки транзистора.

Однокаскадный транзисторный усилитель

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

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

По Дерибасовской гуляют постепенно

Рассмотрим процесс как в замедленной съемке, например после подачи питания +12В. При этом предположим, что транзистор отрабатывает медленно — настолько медленно, чтобы мы могли провести свой мысленный эксперимент.

После включения, с делителя напряжения R1/R2 потенциал через резистор R3 подается на базу транзистора. Транзистор начинает открываться (мы договорились о замедленной съемке), и по мере его открывания ток, протекающий от эмиттера к коллектору начинает увеличиваться. Увеличивается ток — значит возрастает падение напряжения на резисторе R5, или другими словами на эмиттере транзистора. Поскольку транзистору интересна разность потенциалов между базой и эмиттером (на самом деле ему больше интересен протекающий ток, но не будем мелочиться), то увеличение напряжения на R5 приводит к уменьшению этой разницы. Уменьшение — это уже процесс запирания транзистора. Вот это и есть отрицательная обратная связь.

В конечном счете, в системе установится равновесное состояние. Все, замедленное кино закончилось.

Равновесие

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

Теперь у нас есть все, что нужно для расчета, а именно понятый принцип работы.

Напряжение на выходе делителя R1/R2 = 12В x 18к/ (33к + 18к)  = 4,2В. Предполагаем, что в режиме эмиттерного повторителя ток в базовой цепи мал, поэтому это напряжение полностью прикладывается к базе. Тогда на эмиттере транзистор будет поддерживать напряжение 4,2В — 0,6В = 3,6В. Напряжение будет стабильным даже тогда, когда наша схема будет испытывать температурные перепады: не забываем, при прочих условиях при увеличении температуры среды на 10° ток коллектора будет удваиваться! Поэтому простые решения в аналоговой технике работают у любителей и совершенно непригодны в профессиональной области 🙂

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

Но мы отвлеклись. Дальше — дело техники. Поскольку напряжение на R5=3,6В то ток в эмиттерной цепи = 3,6В / 1k = 3,6мА. Такой же ток течет в коллекторной цепи: ведь мы же пренебрегаем малым током базы, не правда ли? Чуть позже выясним, так ли это.

В коллекторной цепи ток 3,6мА создает падение напряжения на резисторе R4. Оно будет равно 3,6мА х 1,8к ≈ 6,5 В. Тогда напряжение Uout составит 12В — 6,5В = 5,5В. Задачка решена.

Самопроверка

Теперь когда мы знаем токовые соотношения, проверим, насколько корректны допущения которые мы сделали. Если коэффициент передачи транзистора по току большой, как я сказал вначале, пусть он будет равен 100 (поскольку диссертации никто не читает, примем h=100). Тогда ток базы составит 36мкА. При таком токе падение напряжения на резисторе R3 составит 36мкА х 12к = 0.4В. Это очень мало по сравнению с тем напряжением, который держит делитель R1/R2: поэтому мы сделали правильно, что пренебрегли резистором R3 при расчете.

Далее, входное сопротивление цепи базы будет 4,2В / 36мкА = 117кОм. Это значение на порядок больше, чем сопротивления в плечах делителя напряжения R1/R2, поэтому делитель практически не нагружен и его выходное напряжение соответствует действительности.

Зачем тогда вообще нужен резистор R3, если мы пренебрегаем им сплошь и рядом? Несмотря на то что в цепи базы входное сопротивление — высокое, оно все равно шунтируется относительно низкоомным делителем R1/R2. Эта величина соответствует параллельному включению этих резисторов (поскольку для переменного входного сигнала цепь питания и «земля» это одно и то же — можно считать, что по переменному току они замкнуты). Входное сопротивление каскада составит 11,6кОм, и чтобы сделать его побольше, стоит резистор R3. С ним для источника сигнала нагрузка составит 11,6+12 = 23,6кОм, что уже неплохо. Повторюсь еще раз: входное сопротивление транзисторного каскада будет высоким — 117кОм, поэтому значение входного сопротивления всего каскада будет определять резистивная цепь.

AC/DC

Все наши рассуждения были справедливы как для постоянного тока (установка рабочей точки), так и для переменного (для усиления которого собственно и предназначена схема). Однако, есть нюанс. За счет отрицательной обратной связи усиление сигнала будет подавляться точно также, как и для постоянного тока. И точно также значение коэффициента транзистора будет играть второстепенную роль. Коэффициент передачи будет соответствовать соотношению номиналов резисторов R4 и R5 и будет составлять довольно скромную величину 1.8. Для того чтобы избавиться от обратной связи для сигнала, предназначен конденсатор C2. Для переменного напряжения он закорачивает резистор R5, что резко повышает коэффициент усиления всей схемы. Однако, не все так просто — после этого немедленно и кратно упадет входное сопротивление, хотя термостабильность останется. В результате возникнут проблемы для предыдущего каскада — у него упадет коэффициент усиления за счет дополнительной нагрузки.

Но кто обещал, что будет легко? Аналоговая схемотехника — это один сплошной компромисс. Компромиссным решением может стать дополнительный резистор, включенный последовательно с конденсатором C2. Это снизит эффект усиления и соответственно падения входного импеданса.

Роль конденсатора C1 в схеме тривиальна: развязка от предыдущих цепей по постоянному току.

Вот и все. За скобками остался анализ максимального тока коллектора, мощности, паразитных емкостей и частотной характеристики схемы. А так — все будет прекрасно работать.

FFT-on-Chip: Cross — ambiguity function в реальном времени на GPU

В статье про кросс-компиляцию я рассказал о том, как подготовить удобный инструментарий для работы с Raspberry Pi. Напомню, что статья началась с новости о том, что Broadcom открыл спецификации своего чипа GPU, который используется в RPi, что открыло возможности по быстродействующим вычислениям преобразования Фурье: БПФ/FFT на этом чипе.

Поскольку бродкомовские библиотеки у меня поднялись сразу, я не стал торопиться и подготовил пару питоновских утилит для моделирования входной выборки и визуализации выходных данных (спектр выборки). Дальше — больше: чтобы наработанный материал не пропадал зря, я сразу решил приспособить fft-on-chip технологию для нахождения кросс — функции неопределенности, которая используется в пассивной локации (PCL). В итоге, у меня получилось три приложения.

Три источника и три составные части FFT-on-Chip

Первое приложение — питоновская программа для формирования входной I/Q выборки. Для того чтобы обеспечить последующую визуализацию результатов работы, данные формируются блоками по принципу один блок — одна картинка. В результате все записывается в бинарный файл, который отдается приложению на RPi.

Для какого сигнала будем определять кросс — функцию неопределенности? Вначале я планировал сделать выборку близкой к реальному речевому/музыкальному сигналу, который транслируется ФМ станциями, что и нужно пассивному радару. Однако я обнаружил что закапываюсь в звуковых и ALSA модулях Питона и трачу много времени на то, чтобы распатронить mp3 запись с песней Тото Кутуньо в PCM формат, который уже можно преобразовать в I/Q последовательность. Поэтому я поступил просто: чтобы визуализация/анимация была наглядной, выбрал в качестве входного сигнала выборку М-последовательности, которые славятся хорошими автокорреляционными свойствами.

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

Мы пойдем простым путем. Помните, что каждый раз когда надо сделать просто, на помощь приходит Питон? Одна строчка и последовательность у нас в кармане, то есть в переменной m_seq:

Девятка — это длина последовательности как степень двойки. Дальше, самое время вспомнить что мы собираемся генерировать «кросс» функцию неопределенности, поэтому полученную выборку будем интерпретировать как опорную для пассивного радиолокатора, то есть полученную с базовой ФМ станции. Сам сигнал, отраженный от цели, должен получить доплеровский сдвиг по частоте (движение цели) и сдвиг по времени (задержка при отражении от цели). Опять таки, для наглядности будущей анимации сделаем эти параметры линейно меняющимися во времени. Сигнал и опору записываем в файл, и на этом генерация данных завершена.

Второе приложение на RPi: программа обработки данных и нахождения кросс — функции неопределенности. Здесь мы вовсю используем наработанный инструментарий. Приложение работает на ARM процессоре RPi и для вычисления FFT использует GPU модуль. Вне зависимости от того, какой из методов нахождения кросс — функции неопределенности мы используем, для входной выборки нужно выполнить серию FFT преобразований. И было бы обидно, если быстродействующую функцию БПФ нужно было вызывать каждый раз, теряя драгоценное время на вызов.

К счастью, разработчики спецификаций и библиотек дали возможность отправлять на разработку целый пакет выборок, возвращая пакет спектров БПФ. Пакетную обработку выполняет функция API gpu_fft_execute(fft). В результате, пакет комплексных переменных записывается в файл уже для последующей анимации.

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

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

Coming Soon

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

Приближенность к спектру реального сигнала позволит оценить эффективность подавления. Пока что в своих экспериментах я достигал величины 60 дБ, но нет предела совершенству.

АЗН-В/ADS-B: изделие — система — сервис

«Два мира — два Шапиро»
(популярная цитата советских времен)

Рассказывая про поездку в американскую компанию ITT Exelis, отложил на потом самую суть: как устроена федеральная сеть ADS-B, которую разрабатывала эта компания. Это именно сеть, поскольку осмысливая результаты этого визита, стало ясно, что на западном рынке никто уже не работает на уровне абстракций изделия: «изготовили — поставили». Изделие уже не является продуктом как таковым, а всего лишь входит в состав сети, главным коммерческим выхлопом которой являются сервисы (услуги).

Но обо всем по порядку.

Поучительная история

Краткая история того, как строилась сеть ADS-B. Для нас она поучительна в том смысле, что раскрывает схему взаимодействия США как государства и частного бизнеса в этой отдельно взятой области. Джон Кефалиодис рассказал про истоки этого сетевого проекта.

Когда в системах независимого наблюдения за воздушным движением явно обозначился тренд от классических вторичных радиолокаторов в сторону существенно более дешевого зависимого наблюдения — ADS-B (АЗН-В, где буковка «З» так об этом и говорит — зависимого), возникла потребность покрыть страну сетью зависимого наблюдения. При этом американское государство в лице FAA — Federal Aviation Administration озвучило свои подходы к решению этой задачи. Заметим сразу, что никто не писал тяжеловесных ТЗ и не указывал, какие антенны должны быть в станциях ADS-B, какие процессоры они должны использовать и даже какую информацию передавать. Всю философию FAA в отношении этого проекта можно было выразить двумя предложениями:

  • исполнитель создает сеть за свой счет;
  • исполнителю предоставляется возможность стать оператором созданной сети и предоставлять на ней сервисы определения местоположения для FAA, зарабатывая таким образом.

Весь фокус именно в сервисах, а какое железо будет использовано — вопрос глубоко второстепенный. Все услуги прописываются в контрактах, и показатели качества услуг (SLA) также прописываются в терминах работы сети.

Можно предположить, что такой подход мигрировал из телекоммуникационной области, где намного раньше фокус переместился с железа на сервисы. Забегая вперед, отмечу, что в сети ADS-B созданной ITT Exelis есть и существенная нативная сетевая компонента — IP/MPLS с хорошо известными в телекоме средствами сетевого мониторинга, предоставления и контроля качества услуг такими как HP Open View и Remedy (вот уж не мог предположить, где встречу этих старых знакомых по своему предыдущему опыту работы в системных интеграторах).

Я не расспрашивал Джона, какие были риски вхождения в этот проект для его компании, и были ли они вообще существенными? В конце концов, операторская гарантия FAA обеспечивает прибыльный бизнес на многие годы вперед, а где найти инвестиции — для американского бизнеса вообще не проблема. Интереснее было то, какой вклад американского государства (в лице опять таки FAA) был сделан в этот проект. FAA взяло на себя все документальное обеспечение, в том числе формирование требований к сети и предоставляемым услугам. Джон оценил эту бумажную работу очень высоко, практически 50 на 50: то есть организационный вклад FAA был сопоставим с инвестиционным пакетом ITT Exelis (интересно, могут похвастаться таким наши отечественные структуры, такие как ГосНИИГА и сертификационные конторы?).

В сетевом контексте этого повествования даже нет смысла рассказывать о том, откуда появились сами станции ADS-B: их разработку просто заказали у одной из европейских компаний. То, что в отечественной практике является полем битвы в добывании контрактов у заказчика, в сетевой структуре ITT Exelis ушло глубоко вниз и было отдано на откуп профессиональным исполнителям. Бизнес не в железе а услугах!

Структура сети ADS-B: «у них» vs «у нас»

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

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

АЗН-В, ADS-B, IP/MPLS

Информация со всех станций ADS-B объединяется с помощью сети IP/MPLS. На уровне сети появляются термины источников и потребителей информации, и не только. На уровне сети возникают такие понятия, как обнаружение и управление сетевыми отказами (Fault Management), управление провключением услуг на уровне сетевого оборудования (Service Provisioning) и другие сетевые инструменты. Центр управления этими сетевыми инструментами находится в штаб — квартире ITT Exelis, где ведется постоянное дежурство (уровень качества услуг надо поддерживать — иначе штрафы по SLA!)

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

Серверами приложений управляет следующий уровень, расположенный этажом выше: это хорошо знакомая специалистам телекома абревиатура SDP (Service Delivery Platform — платформа предоставления услуг) и тарификация услуг, или, говоря простыми словами, сколько потребителю требуется оплатить за каждый вид услуги. Биллинговая система обсчитывает все сервисы системы и выдает счета пользователям.

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

На следующей картинке я привел небольшой фрагмент сети — схему взаимодействия серверов приложений (слева, серверы мультилатерации, ADS-B, ADS-R, TIS-B и FIS-B) и платформы предоставления услуг SDP. Как мы видим, мультилатерация тоже отлично прижилась в сетевой структуре.

Специалисты по УВД увидят здесь стыки в соответствии с милыми сердцу категориями Asterisk. Из схемы хорошо видно, что сопряжение уровней сервисной иерархии между собой — достаточно сложная задача, далеко выходящая за рамки разработки собственно радиотехнического оборудования.

АЗН-В, ADS-B, IP/MPLS

Взаимодействие уровня приложений и предоставления услуг

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

АЗН-В, ADS-B, IP/MPLS

Вслед за телекомом

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

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

 

Термопринтер Zebra: печать из МоегоСклада под Ubuntu/Linux

Пришло очередное время пополнения инструментария. В хозяйстве появился принтер этикеток Zebra ZD410 — как оказалось вещь крайне нужная, потому что печатать таблицы на клейкой бумаге — это сущий ад. В онлайн — сервисе «МойСклад», который мы используем как облегченную версию 1С, есть функционал печати термоэтикетки для каждого товара из справочника. Вначале я не обращал на него никакого внимания, но с покупкой термопринтера вспомнил про эту фичу и попробовал сделать распечатку. Первая же попытка показала, что эта опция носит чисто декоративный характер.

Нет, конечно же сама этикетка формируется, причем как ods файл. Можно сохранить ее и попробовать распечатать из LibreOffice на вновь обретенном термопринтере Zebra: только ничего толкового из этого не вышло. Также не помогло расхваленное в сети приложение gLabels. С другой стороны, делать это не особенно и хотелось: в оплаченные возможности термопринтера входят самостоятельное формирование шрифтов, штрихкодов и даже логотипов, что очень полезно с точки зрения быстродействия. Правда для этого пришлось погружаться в язык разметки ZPL. И вот что из этого получилось.

У вас есть план, мистер Фикс?

Наш план будет таков. Во первых, нужно подкрутить шаблон термоэтикеток МоегоСклада таким образом, чтобы он не формировал графическое изображение штрихкода, а оставил просто его численное значение (принтер нарисует штрихкод сам). Также я выкинул печать артикула товара — это ни к чему. К плюсу сервиса «МойСклад» относится то, что поддержка оперативно реагирует на вопросы, во всяком случае на изменение и доработку шаблонов печати. Так получилось и в этот раз: мне прислали шаблон, который требуется. К сожалению, заменить избыточный ods файл на plain text они не могут — ну и не надо, сами справимся.

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

Заходим в карточку товара и жмем печать с новым шаблоном термоэтикетки. Вежливо соглашаемся сохранить ods файл куда — нибудь. Конечно, тут было бы полезно сразу перехватить данные каким — нибудь скриптом, но мне не хотелось сильно погружаться в API броузера. Дальше, жмем на ods правой клавишей мышки, где в меню уже предусмотрительно прописан наш скрипт, после чего скрипт получает файл, преобразует его для начала в csv, а потом уже в файл разметки zpl. Этот файл скрипт отдает принтеру. Все!

Сказано — сделано, начинаем претворять план в жизнь.

Установка термопринтера Zebra ZD410 на Ubuntu/Linux

Само собой, вначале нужно установить принтер. Как обычно, под Linux все запускается или сразу (хвала принтерам HP), или с недетской кривизной, которая сопровождается поиском и установкой драйверов (злосчастный Canon, который взяли только из-за белого цвета — уступка женскому коллективу). На этот раз обошлось: после подключения Зебры по usb принтер обнаружился и встал нормально. Его я назвал — ни за что не догадаетесь — «Zebra». Вот как он выглядит в моей Убунте:

Теперь необходимо сделать следующую вещь. Поскольку в Зебру мы будем посылать коды разметки, понятные ей, нам не нужно чтобы высокоуровневый cups драйвер принтера умничал и по-своему вносил изменения в поток на печать. Для этого, на самом деле мы будем использовать новый принтер в raw режиме и создадим его так:

Среди принтеров появляется новый — ZebraRaw, и только с ним мы будем работать дальше.

Уже сейчас мы можем напечатать что — нибудь, например сделаем тестовый файлик test.zpl

и пошлем его на принтер:

после чего вылезет этикетка с распечаткой.

Все, принтер работает, поехали дальше.

Главный скрипт

Не отвлекаясь пока на детали, сразу начну со скрипта. Скрипт сделан на bash’е и принимает в качестве аргумента имя ods файла термоэтикетки, который как вы помните мы выгрузили с МоегоСклада. Вот он (zebraconv.sh):

Скрипт содержит три существенных пункта. Первое — это преобразование из ods формата в csv, в котором в свою очередь содержится только наименование товара, его цена и численное значение штрих — кода. Это преобразование выполняет команда unoconv.

Внимание! Потратил много времени чтобы обнаружить одну засаду: в Убунте 16.04 unoconv работает не совсем так как в 14.04: она самостоятельно добавляет расширение .csv к имени выходного файла (хотя ее об этом никто не просил). Вот уж действительно: лучшее — враг хорошего! Поэтому учтите это в скрипте, если используете Ubuntu 16.04.

Второе — это подстановка данных полученных из csv в zpl — шаблон. Эту задачу выполняет Perl — скрипт zebraconv.pl. Zpl шаблон этикетки хранится в нем же.

И наконец третье — это собственно печать zpl шаблона с подставленными значениями. Перед печатью bash скрипт спросит еще количество копий, которое требуется.

Остальное в скрипте — это создание временных csv и zpl файлов в директории /tmp с последующим их удалением, чтобы не засорять систему. Как видно из логики скрипта, основная нагрузка на создание файла для печати ложится на Perl скрипт zebraconv.pl. Почему именно Perl? Просто по старой памяти и потому, что это самый подходящий язык для всяческих манипуляций с текстом. Правда, особо существенных манипуляций не было, перловый код выглядит топорно (наверняка есть более элегантное решение, которое не было использовано из-за недостатка времени), но все работает.

Формирование zpl файла для печати из шаблона

Сейчас может сложиться впечатление, что все проходило гладко и быстро. На самом деле, львиную долю времени отняло создание шаблона для печати. Во-первых, в шаблончик хотелось добавить графический логотип, во вторых, чтобы печать была кириллицей, ну и чтобы на маленькой этикетке размером 2х3 см все это выглядело прилично.

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

Собственно сам перловый скрипт (zebraconv.pl) выглядит так:

Шаблон сидит в переменной $template. Длинная строчка под тегом GFA содержала описание рисунка логотипа, и для удобства чтения кода я ее укоротил (пропавшая часть была на месте троеточия). Как вы наверное догадались, конструкции типа <— —> это placeholders, т.е. местоблюстители для переменных, которые будут подставлены из csv файла.

Скрипт работает так. На его вход поступает трехстрочный csv файл, который в цикле while разбивается на строки и заносится в список @str. С помощью выражения поиска/замены (три строчки содержащие конструкцию вида =~ s/ищем placeholder/данные для замены/) в переменную $template попадают данные из csv файла: наименование товара, цена и штрихкод.

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

Как я уже говорил, обработать шаблон можно более изящно, вообще не используя цикл, или даже обойтись такими программами как sed или awk. Для меня главное было быстро получить результат. Скрипт работает, теперь нужно привязать все это к правой клавише мыши.

Ubuntu desktop: контекстное меню

Как вызвать свой скрипт и скормить ему файл, кликнув на файле правой клавишей мышки? В недрах системы есть каталог /usr/share/applications, где живут файлы с расширением .desktop. Они как раз и отвечают за попадание в контекстное меню.

Берем любой файл за образец и сохраняем его в этом каталоге под именем zebra.desktop:

Запись Name содержит строку, которую будет показывать меню Убунты. Самая главная запись это Exec: она показывает путь к нашему главному скрипту zebraconv.sh. Параметр %f будет содержать имя файла.

Я добавил MimeType для ods файлов, чтобы меню срабатывало только на ods файлы и не светило на всех остальных. Предолжение Terminal=true подразумевает, что скрипт будет запускаться в окне терминала (что нам и нужно).

Перегружаемся, ищем наш ods файл, кликаем правой клавишей мыши… и ничего не происходит. Почему? Есть маленькая засада: чтобы все это работало, нужно помимо всего прочего, чтобы наш скрипт был прописан в главном меню системы. Для этого идем в Приложения -> Системные утилиты -> Параметры -> Главное меню и создаем в любом месте элемент со ссылкой на полный путь нашего скрипта. После этого все заработает.

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

ToDo: сделать обработку ошибок.

Нейронный автокодер / Neural Autoencoder: отбрасывая лишнее

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

В примере с дядюшкой Ляо мы использовали метод главных компонент PCA, чтобы абстрагироваться от нетвердой походки нашего персонажа и попытаться выяснить главное: куда собственно он направляется. Это конечно не единственный метод удаления избыточной информации: в области нейроподобных сетей сходную функцию несут такие интересные устройства, как автокодеры (Autoencoder).

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

Бутылочное горлышко

Автокодер — это нейронная сеть, которая выглядит следующим образом. Слева как обычно подаются входные данные, справа — выход сети. Соответственно, присутствует входной слой (input layer) и выходной слой (output layer). Размерность выходного слоя точно такая же как и входного. Внутренние слои, которые по традиции называют скрытыми — hidden layers (вот еще одно название, сбивающее с толку) представлены всего одним слоем.

Нейронный автокодер, Neural Autoencoder

Нейронный автокодер / Neural Autoencoder Layer L1: входной слой Layer L2: скрытый слой Layer L3: выходной слой

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

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

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

Есть что терять

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

Говоря другими словами, автокодер сжимает входную информацию, исходя из своего представления о том, что главное и второстепенное в этой информации.

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

\| x \| ^{2} = \sum_{i=1}^{100} x_{i} ^{2} \leq 1

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

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

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

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

Неслучайное в случайном

Вот тут и наступает самый интересный момент. На рисунке ниже (позаимствованном из той же замечательной статьи) показано, какие закономерности увидел автокодер во входных данных.

Результат работы нейронного автокодера

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

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

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

Офшорная радиолокация

В разработке отечественных радиоэлектронных систем вплоть до 90-х годов было принято вести разработку всех компонентов самостоятельно. Антенна, мачта, источники питания — под каждое направление на предприятии были соответствующие секторы и отделы. С ростом сложности изделий одновременно росла роль специализации. Появились небольшие компании, которые фокусировались на высокотехнологичных компонентах: малошумящие СВЧ усилители, процессорные модули, модули АЦП/ЦАП вплоть до тех же источников питания. Со временем на ведущем предприятии — разработчике непрофильные функциональные подразделения исчезали, уступая место более компетентным и гибким внешним поставщикам решений и компонентов.

Так в конторе, где я поднимал новый радиопеленгатор, исчез отдел который занимался источниками питания, а также исчезли сектор разрабатывающий микро — ЭВМ и группа специализирующаяся на проводных модемах. Зато появились программисты, работающие под FreeBSD, возникла Linux — культура и задняя часть шкафов и блоков перестала напоминать кросс АТС со своей мощной кабельной разводкой.

Глубокая кооперация является самоочевидной для западных разработчиков, у которых нет никаких проблем с использованием ресурса многочисленных специализированных компаний, разбросанных по всему миру. Для серьезных заказчиков, в том числе военных (США), данная парадигма была зафиксирована под названием COTS. Какое — то время в отечественной разработке также начал приживаться такой выигрышный подход. Однако со временем в родных пенатах  вызрела очередная диалектическая спираль, возвращающая разработку целиком и полностью на отечественную почву. Этот процесс получил неудачное название «импортозамещения», а поскольку в глубинное импортозамещение никто не верил и похоже и не собирался ему следовать, использование иностраных компонентов начало маскироваться под перебитые шильдики, измененную «на отечественную» документацию на изделия, неимеющие_аналогов_в_мире.

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

Только для членов клуба

Отечественных мэтров, работающих в области разработки РЛС, можно сосчитать по пальцам одной руки. Это легко объяснимо: радиолокатор вбирает в себя все современные технологии, ему посвящена львиная доля исследований по теории обнаружения сигналов. Можно сказать так, что разработчики РЛС — это элита современного радиоэлектронного мира. И поэтому когда на этом рынке появляется новый игрок, он сразу приковывает к себе внимание: откуда, зачем, почему? Может какая-то команда покинула известную радиолокационную контору и решила организовать свою фирму? Или разработчики компонентов — составных частей решили, что пора взяться за изделие целиком, как вариант.

В любом случае, разработка РЛС — это на самом деле школа, которая существует не один десяток лет. И когда в этот клуб постучалась новая российская фирма (назовем ее так — компания А), сразу возникли все эти вопросы: и про школу, и заделы, и про опыт работы. И тут, забегая вперед, выяснились интересные вещи. Оказывается, чтобы успешно работать на российском рынке, всех этих инженерных премудростей — опыта работы, технической истории, заделов — иметь не обязательно. Что действительно важно это иметь хорошую историю отношений с заказчиком. С этим проблем как раз таки не было: компания А поставляла средства управления воздушным движением, такие как радиопеленгаторы, вторичные радиолокаторы, маяки DVOR, системы связи и системы ILS/DME. Но в продуктовой линейке компании А был небольшой, но существенный пробел: отсутствовал первичный аэродромный обзорный радилокатор S-диапазона: АОРЛ.

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

Приобретение технологий или торгово — закупочная деятельность?

Заголовок немного режет глаз: благородное понятие «технологии» соседствует с фразой, которая вызывает ассоциации с колхозным рынком и торговлей овощами и фруктами 🙂 . На самом деле и то и другое просто разные модели построения бизнеса.

В первом варианте технологии приобретаются, усваиваются и становятся частью собственного процесса разработки. Часто приобретение идет рука об руку с наймом носителей этих технологий. Это позволяет продолжать разработку с более высокого уровня и хранить собственные ноу-хау. Так, например, за время моей работы в системном телекоммуникационном интеграторе лучшей в классе решений Fault Management была небольшая компания Micromuse. Она была приобретена IBM и ее продукт был включен в линейку ИБМовских решений Tivoli. Специалисты Micromuse также перешли в IBM: помню, как искрили взаимоотношения между новой креативной командой и солидным древним менеджментом IBM. В конце концов, все притерлось.

Во втором варианте, нацеленном на производство и продажу, полноценную разработку сохранить не удается. В конце — концов команда инженеров — разработчиков схлопывается до одного человека, который и сопровождает эту систему. В корпоративной терминологии этот человек по факту является Product Manager’ом: решает текущие вопросы с производством, отвечает на вопросы в процессе развертывания и эксплуатации, согласует замены. Развивать продукт он уже не в состоянии.

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

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

Наша компания А пошла по торгово — закупочному пути. До сих пор все работало отлично, если говорить о существующих продуктах: так, по средствам связи разработка была заказана и приобретена у маленькой специализированной фирмы; вторичная локация появилась благодаря приобретению НИИ, который работал в этой области, заодно и приплюсовали 50 лет истории («50 лет на рынке радиоэлектронных разработок» — звучит здорово и на сайте и в рекламной брошюре, не правда ли?). ILS/DME были разработаны в другой маленькой компании — тут даже разработку выкупать не пришлось, достаточно было переманить ключевых специалистов, а разработка уже автоматом пришла вместе с ними. Средства управления воздушным трафиком — купили другую небольшую компанию программистов. Радиопеленгатор вообще разрабатывала внешняя команда.

Ну в общем так и есть: торгово — закупочный кооператив в чистом виде )

Единственное с чем пришлось помучиться самим — это радиомаяк DVOR. Приобрести разработку было не у кого, поэтому маяк делали с нуля по Thales’овским описаниям, что заняло 10 лет с лишним. Да и разработку эту завершенной назвать трудно: вибраторы с пассивных заменялись на активные, образцы менялись от поставки к поставке, своих передатчиков не было, а покупные выходили из строя, не шла заявленная дальность действия: в общем единственный опыт собственной разработки оказался неудачным.

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

Италия — страна локаторов

В ходе этого проекта я провел большое количество времени в Риме. Каждый раз когда меня встречали в аэропорту, уже в машине мы начинали дискуссию и споры по тому, как надо делать этот радиолокатор. Я до сих пор с удовольствием вспоминаю эту часть своей работы, которая так разительно отличалась от торгово — закупочной суеты в конторе. Подозреваю что собственно сама разработка так и не была понята конторой до конца («что там локатор делать — в книжках все давно разжевано» — эта буквальная цитата одного из топов компании А красной нитью проходила через весь проект 🙂 ). В проекте я получил уникальный опыт в европейской команде профессионалов, в которой было интересно все: используемые технологии управления, разработки, взаимоотношений. В короткие сроки мы разработали прототип аэродромного обзорного радиолокатора S-диапазона, учитывающий компромиссы стоимости и сроков, создали схему кооперации и логистики по комплектующим, определили источники узконаправленных технологий… но я несколько забежал вперед.

Фирма с которой я работал в проекте была действительно небольшой, и область деятельности у нее была несколько иной. Но это только на первый взгляд. Создатель этой маленькой компании, будучи разработчиком радиолокационной техники в Selex’е, прошел все ступени до топ — менеджера, после чего удалился от корпоративной суеты, купил здание в Риме и основал свою компанию. Его команда — тоже инженеры Selex’а с большим опытом разработки. Коллеги босса, или друзья (в Италии трудно отделить коллег от друзей) которые являются профессионалами в антенной локационной технике, теперь также возглавляют маленькую симпатичную компанию, которая поставляет спутниковые антенны и оборудование к ним. В общем, я попал в такой профессиональный сгусток знаний и технологий по радиолокационной технике, которая была воплощена в большом количестве поставляемых изделий, как гражданских, так и военных для разных стран мира.

Философия проекта

Применимо ли понятие философии к проекту? Безусловно, если мы принимаем базовые принципы и подходы, по которым будем строить наш проект. Какие принципы — такие сроки, бюджет и реализация. В результате многочисленных жарких споров и дискуссий, которые проходили в большой светлой комнате, окна которой выходили на via Tiburtina, под чашечку крепкого итальянского кофе было решено идти следующим путем:

  • АОРЛ должен обеспечивать дальность 80 NM при ЭПР 5 м2 , вероятности обнаружения 80% и вероятности ложной тревоги 10-6;
  • радиолокатор будет использовать как режим одночастотных, так и многочастотных импульсов, во втором случае используется две или более частоты из 10 возможных в диапазоне 200 МГц. Для многочастотного режима первый импульс длительностью 10 мкс используется для зондирования целей на коротком расстоянии — 8 NM или 15 км (Short Range Pulse), остальные длительностью 100 мкс — для обнаружения целей на большой дальности — вплоть до 80 NM (Long Range Pulse).
  • антенна локатора как наиболее критичный узел будет собственной разработки. Типовые компоненты СВЧ тракта, такие как ответвители, ограничители, вращпереход, малошумящие усилители будут покупными в соответствии с идеологией COTS. Там, где компоненты требуют дополнительного специфицирования — будут разработаны заказные спецификации;
  • пьедестал вместе с устройством юстировки и электромеханическим приводом — также собственной разработки;
  • антенна будет выполнена со смещенным вниз облучателем, чтобы не затенять рефлектор и уменьшить уровень боковых лепестков. Неизбежное усложнение конструкции будет компенсировано технологичностью реализации и точным выдерживанием профиля рефлектора с использованием разрабатываемой технологической остнастки;
  • антенна будет формировать два луча: главный — на передачу и прием, и вспомогательный — только на прием. Вспомогательный отличается от главного измененной диаграммой в вертикальной плоскости (расположена выше), что позволяет подавить переотражения от земли для близко расположенных целей и обеспечить лучшее обнаружения целей, расположенных высоко в ближней зоне. Локатор будет позволять работать с режимом главного, вспомогательного луча или используя их попеременно;
  • ряд узлов, которые являются хорошо известными в реализации, но которые требуют ресурсы, для ускорения проекта приобретаются готовыми и в процессе разработки заменяются на узлы собственной разработки. Под это определение попала вся синтезирующая часть локатора: генератор опорных колебаний STALO, генератор waveforms, синтезаторы опорных частот. Эти устройства были представлены покупными стандартными компонентами из линейки National Instruments LabView, что позволило на первом этапе сосредоточиться на задачах обработки сигнала используя тот факт, что опорные сигналы и последовательности формируются с метрологической точностью;
  • передающий тракт — с использованием твердотельных усилительных 2 КВт модулей своей разработки, исключающие полный отказ передающего тракта при отказе одного из выходных СВЧ транзисторов модуля (техника Graceful Degradation);
  • для тракта обработки сигнала была принята платформа VPX, которая по своим характеристикам позволяет организовать высокоскоростной параллельный обмен между модулями и платами. Но самое главное: VPX стандартизирует форм — фактор этих модулей, под который выпускается большая номенклатура плат, и не только протоколирует обмен по шине, но и предусматривает для этой шины готовые интерфейсные элементы на базе ПЛИС с разъемами. Таким образом, приобретая плату VPX с установленной ПЛИС, задача шинного обмена полностью переходит в плоскость работы с драйвером шины, что существенно облегчает и сокращает разработку;
  • принято принципиальное решение делать только один перенос частоты из S-диапазона 2.6 — 3.0 ГГц на промежуточную частоту 640 МГц. Реализовать такой однократный перенос позволяют высокопроизводительные покупные модули АЦП, которые с помощью мезонинной архитектуры будут устанавливаться на платы VPX.

Разгон и торможение

Когда находишься в едином философском поле, дальше продвигаться уже гораздо проще 🙂 В ходе проекта были разработаны функциональные схемы всех узлов, а также определены перечни всех покупных узлов. Была полностью разработана конструкторская документация на антенну и пьедестал. Оставался открытым важный вопрос разработки программного обеспечения, и поскольку контора решила создать экономию по этой статье бюджета, со временем в проекте стало нарастать финансовое напряжение. Изначально это напряжение незримо присутствовало благодаря тому, что весь бюджет итальянской части проекта по сумме соответствовал стоимости только одного серийного радиолокатора! Другими словами, первое же поставленное изделие отбивало стоимость всей разработки. Трудно сказать, что было этому причиной: то ли итальянская фирма рассчитывала на дальнейшую разработку (на подходе был вторичный радиолокатор и современная антенна для него), то ли сыграли необоснованные надежды на дальнейшее участие в проекте — бюджет проекта составлял очень скромную величину.

Претендовать на интеллектуальную собственность или хотя бы на авторство разработки итальянцы не могли: платежи по главным контрактам на эскизно — технический проект контора проводила с офшорных безымянных фирм. Дальше — больше: контора оказалась не в состоянии разрабатывать начинку функциональных узлов, как это было предусмотрено контрактом: от радиотракта до ПО на ПЛИС и пыталась переложить разработку на итальянцев. Но самый торт произошел когда пошли санкции на поставку хайтек оборудования и возникло пресловутое импортозамещение. Это полностью противоречило идеологии разработки, основанной на COTS компонентах; и контора не мудрствуя лукаво, сделала следующий шаг: вменила в обязанность исполнителя предоставить КД на эти покупные компоненты с тем, чтобы иметь возможность производить их самостоятельно. Не знаю, где итальянцы могли достать документацию например на такой сложный узел как вращпереход, и где и как контора собиралась его производить, но все эти события собранные в кучу привели к одному: отношения начали портиться и контора решила продолжать этот проект самостоятельно.

Итальянская компания приступила к работе в далеком 2012 году и выдала результаты, включая полную КД на антенну к весне 2013 года. Антенну изготовили на специализированном заводе в Неаполе и привезли в РФ, но не тестировали: так и не был создан требуемый полигон. Работы по остальной части РЛС идут еле-еле. С начала работы прошло уже 5 лет, а опытного образца до сих пор нет. Ну ничего, DVOR делали лет 10 с лишним, почему локатор должен получиться быстрее?

Проект получился слишком объемным, чтобы можно было его переварить в торгово — закупочной схеме. Как ни крути, а без специалистов не обойтись — а их как раз таки нет. Сказанное совсем не означает, что у изделия нет коммерческой перспективы: главное чтобы антенна крутилась на кузове — «вот это я понимаю — локатор!» (прав был главный инженер итальянской фирмы, когда говорил про stupid rotation piece of metal), поэтому можно легко продать заказчику первый экземпляр и потом доводить его до ума на позиции. В случае с первым DVOR так и было.

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

  • малошумящие СВЧ усилители;
  • мощные и надежные СВЧ транзисторы;
  • вращпереходы, ограничители мощности;
  • высокоскоростные АЦП — более 100 млн. выборок в секунду (на которые подозрительные буржуи заставляют оформлять документы конечного пользователя);
  • производительные DSP процессоры, специально разработанные для радиолокационных приложений;
  • модули и компоненты VPX.

Веселые картинки

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

PSR, Primary Radar Antenna, S-band Radar, Антенна первичного радиолокатора, Аэродромный обзорный радиолокатор S-диапазона, АОРЛ

Опытный образец антенны первичного радиолокатора S-диапазона перед отправкой в РФ. Антенна изготовлена и собрана на заводе в Неаполе. Конструкторская документация разработана итальянской стороной.

На рисунке выше — красавица антенна, разработанная в рамках проекта. Конструкторская документация разрабатывалась итальянцами в Pro Engineer далее портировалась в Solid Works для того чтобы с ней могли работать в конторе.

Далее, на рисунке функциональная схема приемного тракта радиолокатора. Принятые сигналы с основного и вспомогательного канала промежуточной частоты 640 МГц оцифровываются в 2-х АЦП модуля DDC, которые располагаются на FMC соединителе платы VPX 3U. С помощью быстродействующей ПЛИС производится цифровой перенос двух входных сигналов целей на цифровую промежуточную частоту. На этой же плате происходит сжатие входных импульсов.

В сигнальном процессоре SP реализован алгоритм MTD: Moving Target Detection, или как его называют в отечественной литературе — СДЦ, селекция движущихся целей. Основу сигнального процессора составляет банк цифровых доплеровских фильтров.

В процессоре RP происходит обнаружение целей с заданными вероятностями и выделение координатной информации.

 

Radar Data Processing, PSR, Primary Radar, S-band Radar, Первичный радиолокатор, Аэродромный обзорный радиолокатор S-диапазона, АОРЛ

Тракт обработки радиолокатора состоит из 4-х VPX модулей:
DDC, Digital Downconverter: цифровой перенос частоты;
SP, Signal Processor: сигнальный процессор;
CB, Control Board: плата контроля;
RP, Radar Processor: обнаружитель целей и plot extractor

На этом рисунке показан фрагмент схемы, иллюстрирующей прохождение основного и вспомогательного приемного сигнала. Развязка приемных цепей от мощных выходов усилителей производится циркулятором. Кроме этого, на входе каждого из каналов стоит быстродействующий ограничитель мощности, защищающий входы малошумящих усилителей от проникновения мощного импульса. Сами усилители имеют коэффициент усиления 30 дБ и уровень собственного шума 0.7 дБ. Последний параметр имеет ключевое значение: чем ниже уровень шума, тем меньшую мощность требуется излучать в эфир.

Radar Data Processing, PSR, Primary Radar, S-band Radar, Первичный радиолокатор, Аэродромный обзорный радиолокатор S-диапазона, АОРЛ

СВЧ тракт АОРЛ. Циркулятор обеспечивает развязку передающих цепей, используются малошумящие усилители

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

Radar Data Processing, PSR, Primary Radar, S-band Radar, Первичный радиолокатор, Аэродромный обзорный радиолокатор S-диапазона, АОРЛ

Результаты моделирования антенной системы АОРЛ S-диапазона

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

Псевдокогерентная РЛС / Coherent-on-receive: обработка сигнала

РЛС, Псевдокогерентный радиолокатор, Псевдокогерентный радар, Coherent-on-receive, Coherent oscillator, COHO

Радиолокатор П-10

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

Древние РЛС метровых и дециметровых диапазонов монструозных размеров, такие как например П-10, начало разработки которых теряется в 50-х годах прошлого столетия, должны были занять почетное место в соответствующих музеях компаний — разработчиков и производителей. Вместе с этими комплексами можно было забыть и про магнетроны с конскими излучаемыми мощностями — несколько десятков кВт и фазовую настабильность этих магнетронов. Однако, с развитием stealth технологий радионевидимости летательных аппаратов стало очевидным, что невидимость обеспечивается как раз в частотных диапазонах современных РЛС, а в метровых диапазонах старых локаторов «невидимые» цели видны. Это породило повторный всплеск интереса к старым РЛС; в частности некоторые из них проходят модернизацию и находят своих заказчиков.

Помимо упомянутых преимуществ, у метровых РЛС есть еще одно: относительная неуязвимость для антирадарного вооружения, поскольку антенна пассивной головки самонаведения (ГСН) ракеты быстро теряет свою эффективность в нижней части диапазона: в отличие от наземной метровой РЛС с большой антенной системой, ГСН не может себе позволить иметь такие размеры.

Поскольку РЛС данного типа как правило содержат магнетрон в передающем тракте, который не поддерживает внешнюю синхронизацию и работает на «плавающей» частоте (точнее, на частоте на которой произойдет самосинхронизация магнетрона), нужны специальные методы для поддержания когерентности тракта. Когерентный тракт, как известно, позволяет выделить доплеровское смещение частоты в отраженном сигнале, что обуславливает эффективность селекции движущихся целей (СДЦ).

Coherent-on-receive, или псевдо — когерентный радиолокатор

Для решения этой задачи в традиционных метровых РЛС использовали следующий трюк. Поскольку магнетрон излучает импульс на нестабильной частоте, надо было сделать «снимок» этого импульса, или сохранить его в памяти. Естественно, в те времена (1950 годы!) ни о какой оцифровке и речи не было, и реализация могла быть только аналоговой. На рисунке ниже приведена принципиальная электрическая схема такого тракта («по материалам зарубежной печати», естественно). Видно, что по сравнению с ламповой техникой П-10 мы наблюдаем транзисторные каскады плюс логические элементы, что показывает некий прогресс в технологиях. Но сама реализация — точно такая же, как и в ламповом варианте.

Прежде чем обратить внимание непосредственно на схему, обрисуем общую идею метода. При формировании излучаемого импульса, помимо отправки в антенно — фидерный тракт, он синхронизирует когерентный генератор (естественно, с необходимым ослаблением). В зарубежной литературе такой генератор носит название COHO (Coherent Oscillator). Генератор имеет собственную частоту колебаний, лежащую в диапазоне частотных отклонений магнетрона, но после окончания синхронизирующего импульса ему приходится определенное время «раскачиваться» на частоте импульса синхронизации, и что важнее — с сохранением фазовой привязки. Естественно, со временем генератор уйдет на собственную частоту и фаза разбежится; достаточно лишь чтобы это произошло уже после того, как вернется импульс, отраженный от цели. При поступлении отраженного импульса генератор будет выполнять роль опорного для фазового детектора, который уже будет выделять доплеровское смещение.

Такая «ненастоящая» когерентность у нас именуется псевдокогерентностью, а в зарубежной литературе эту технику приема именуют «coherent — on — receive».

Теперь — к схеме. Тракт основного сигнала я выделил жирной линией.

РЛС, Псевдокогерентный радиолокатор, Псевдокогерентный радар, Coherent-on-receive, Coherent oscillator, COHO

Приемный тракт РЛС с когерентным генератором (кликните для увеличения)

Перед поступлением на вход схемы, зондирующий импульс магнетрона (для нас он уже синхронизирующий) переносится на промежуточную частоту (ПЧ) 30 МГц и попадает на вход разветвителя DC1. С верхнего по схеме выхода разветвителя сигнал ПЧ через линию задержки поступает на вход усилителя Q1. Линия задержки нужна для того, чтобы успела сработать логика запуска COHO. Эта логика реализована на нижней части схемы и начинает свою работу также с поступления импульса ПЧ. Присутствие импульса обнаруживается с помощью амплитудного детектора Q7 и далее в логическом блоке формируется ряд временных последовательностей для управления запуском генератора. Как работают эти последовательности — буду рассказывать в при изложении работы основного тракта, для чего возвращаемся к тому, на чем остановились — на линии задержки.

С выхода линии задержки импульс ПЧ поступает на вход усилителя Q1, который как раз предназначен для раскачки генератора, реализованного на транзисторе Q3, этим синхронизирующим импульсом. Как видно по схеме, усилитель Q1 — управляемый со стороны эмиттерной цепи, которая нагружает один из выходов логического блока. Логическая цепь управления должна пропустить к генератору не весь зондирующий импульс, а только его часть, которая соответствует относительно стабильной фазе магнетрона. Эта логика, как и последующая, является фиксированной — временные соотношения жестко заданы RC цепочками одновибраторов логического блока.

С выхода Q1 синхронизирующий импульс поступает на собственно COHO генератор Q3, задающая цепь которого выполнена на основе параллельного колебательного контура с настроечной цепью конденсаторов. Здесь мы наблюдаем второе вмешательство логического блока в работу тракта, на этот раз воздействие производится на генератор через ключ Q8. Посредством ключа логический блок отпирает генератор в тот момент времени, когда создаются наиболее благоприятные условия для синхронизации. При этом заметим, что ключ Q8 в открытом состоянии (соответствующем блокировке генератора) демпфирует колебательный контур, что обеспечивает «стирание» колебаний предыдущего импульса.

С этого момента генератор COHO непрерывно работает в фазе с импульсом, который был сформирован магнетроном. Его выход через цепь эмиттерных повторителей Q4, Q5 (чтобы не нагружать схему генератора) поступает на выход устройства.

Теперь, к моменту прихода отраженного от цели импульса, у нас будет недолговечный, но вполне рабочий источник «когерентных» колебаний.

Очевидно, что импульс цели также будет перенесен на частоту 30 МГц, где за дело примется уже фазовый детектор СДЦ.

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

Цифровой тракт Coherent-on-receive: ADC + FPGA + ARM

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

Coherent-on-receive prototype, COHO digital implementation

Прототип тракта Coherent-on-receive

Плата содержит два канала АЦП (ADC) и два канала ЦАП (DAC). Частота дискретизации и формирования — 125 МГц. Управление записью/считыванием производит ПЛИС/FPGA  с соответствующим API, логика работы приложений реализована на процессоре ARM, также находящемся на плате.

Двумя входами и выходами я распорядился следующим образом. Первый выход имитирует опорный радиоимпульс 30 МГц: это аналог синхронизирующего выхода магнетрона. Второй выход имитирует аналогичный радиоимпульс, задержанный относительно опорного: это аналог импульса, отраженного от цели. Задержка формируется программным способом в тракте передачи импульса на выход.

Оба импульса подаются на входы 2-х канального АЦП с помощью кабелей, которые хорошо видны на фото, и начиная с этого момента у нас работает Coherent-on-receive, или псевдокогерентный тракт обработки. Конечно, шлейфовые ВЧ кабели можно было сделать покороче и поприличнее, но использовал те которые у меня были.

Входной тракт обработки не использует никакой «внутренней» информации о времени формирования импульсов и работает строго независимо от передающей части.

С частотой выборки 125 Msamples/s на каждый период входной частоты ПЧ 30 МГц приходится 4 отсчета, что в общем то вполне достаточно  для полноценного воспроизведения импульса. Я не использовал фильтры и усилители для полноты картины — это все будет уже в реальном блоке обработки. В приложении для ARM, которое я написал на Си (один день на код и неделю разбираться как работает синхронизация), опорный импульс обнаруживается пороговой схемой, после чего начинает работать внутренний счетчик отсчетов. Производится полная запись опорного импульса, и далее — импульса цели, который поступает с задержкой.

Как видно, в нашем модернизированном варианте зондирующий импульс запоминается буквально, без кавычек, причем быстродействие платы позволяет это сделать в реальном времени. Точнее, быстродействие обеспечивает FPGA, которая работает строго  синхронно с преобразователями ADC/DAC через кольцевой буфер, а доступ к этому буферу уже получает асинхронная часть платы — процессор ARM.

Накопленные отчеты отправляются на host компьютер по IP сети, где приложением на Python’е выполняется квадратурная корреляционная обработка импульса цели и визуализируются данные. Вот как выглядит работа платы:

РЛС, Псевдокогерентный радиолокатор, Псевдокогерентный радар, Coherent-on-receive, Coherent oscillator, COHO

Зондирующий импульс и импульс цели в псевдокогерентной обработке

На диаграмме слева, показаны сигналы на двух входах АЦП платы. Ширина зондирующего и соответственно отраженного импульса соответствует 1 микросекунде. Поскольку частота ПЧ составляет 30 МГц, каждый радиоимпульс содержит около 30 периодов этой частоты. Частота выборки — 4 отсчета на период. Красным цветом показан зондирующий импульс. Он выглядит более коротким; это связано с задержкой работы триггера, который определяет начало этого опорного импульса. Будем считать, что мы вырезали часть времени, на которой работа магнетрона нестабильна. Импульс цели показан зеленым цветом, он приходит с задержкой около 0.5 мкс.

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

ToDo

Более полная имитация системы должна предусматривать генерацию импульсов с различными временными сдвигами, а также частотным доплеровским смещением, и должна включать банк доплеровских фильтров. В общем, те необходимые для радара компоненты вплоть до индикатора воздушной обстановки. Такая логика модернизации старых РЛС — замена функциональных модулей — сильно отличается от принятой в настоящее время, когда вместо лампы пытаются установить более современные полупроводниковые компоненты 🙂 А впрочем кто знает — может с точки зрения ресурсоемкости и бюджетовместительности такой подход является более оптимальным.

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

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