Документация Engee

Системная модель однопозиционной радиолокационной системы с одной целью

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

Особенность модели в том, что передатчик и приемник радара не содержат антенную решетку. Таким образом, антенна эквивалентна простому изотропному элементу.

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

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

Приёмник усиливает сигнал, а также добавляет собственные шумы.

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

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

shem_1.jpg

Цифровая обработка состоит из следующих элементов:

shem_2.jpg

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

using Plots
cd( @__DIR__ )
# Подгрузка функции инициализации модели
include( "initParamRadar.jl" )
calcParams (generic function with 1 method)

Инициализация параметров модели.

propSpeed,fc,pulseBw,prf,
    fs,txGain,peakPower,
    matchingCoeff,metersPerSample,
    rangeOffset,rangeLoss,referenceLoss,
    target1Rcs,target1Pos,target1Vel,
    radar_pos,radar_vel,gain,
    lossFactor,referenceTemperature,
    maxRange,numPulseInt,
    rangeGates,pulseWidth = calcParams();
0.005299727455167158

Опираясь на структурную схему, мы разработали модель радара, показанную на рисунке ниже. image_2.png

Произведем запуск модели через пользовательскую функцию.

modelName = "MonostaticRadar";
model = modelName in [m.name for m in engee.get_all_models()] ? engee.open( modelName ) : engee.load( "$(@__DIR__)/$(modelName).engee");
results =  engee.run( modelName )
Dict{String, DataFrame} with 1 entry:
  "Y" => 10×2 DataFrame…

Обратите внимание: на приёмнике сигнал имеет температурные шумы.

image.png

Откроем результаты и построим пик.

file_Rectangular_out = reduce(hcat, results["Y"].value)

R = metersPerSample .* (0:size(file_Rectangular_out, 1) - 1) .+ rangeOffset

plot( R,file_Rectangular_out[:,2] )

interactive-scripts/images/radars_Monostatic_Radar_model/2d7f32710897e158184745ffcfba93dfa238dc45

Вывод

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

Блоки, использованные в примере