Системная модель однопозиционной радиолокационной системы с одной целью
Данная модель демонстрирует работу простой однопозиционной радиолокационной системы.
Особенность модели в том, что передатчик и приемник радара не содержат антенную решетку. Таким образом, антенна эквивалентна простому изотропному элементу.
В качестве зондирующего сигнала используется последовательность прямоугольных импульсов, которые усиливаются в передатчике.
Далее с выхода передатчика сигнал распространяется к цели через свободное пространство. Отраженный сигнал поступает на приёмник.
Приёмник усиливает сигнал, а также добавляет собственные шумы.
В качестве блока обработки применяется согласованный фильтр, а потери при распространении компенсируются за счет регулировки усиления.
Заключительным этапом обработки является некогерентное накопление. Схема работы модели представлена на рисунке ниже.
Цифровая обработка состоит из следующих элементов:
Далее подключим библиотеки и файлы с функциями, которые понадобятся нам в процессе обработки данных, записанных с модели, и в процессе инициализации параметров модели.
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
Опираясь на структурную схему, мы разработали модель радара, показанную на рисунке ниже.
Произведем запуск модели через пользовательскую функцию.
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…
Обратите внимание: на приёмнике сигнал имеет температурные шумы.
Откроем результаты и построим пик.
file_Rectangular_out = reduce(hcat, results["Y"].value)
R = metersPerSample .* (0:size(file_Rectangular_out, 1) - 1) .+ rangeOffset
plot( R,file_Rectangular_out[:,2] )
Вывод
Мы рассмотрели работу простой однопозиционной радиолокационной системы. На итоговом графике выхода интегратора видно, что система нашла пик, то есть смогла детектировать объект на расстоянии 2000 метров. Это означает, что данный метод радиолокации работает корректно.