Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Основы оптимизации в радиотехнических системах. Практикум

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
2 Мб
Скачать
☆
№
Аналитическое
Погреш-
Область опре-
1
 
 
⋅
⋅
+
⋅
⋅
−=
2
2
1
1
x3
)x3(sin
x3
)x3(sin
z
0,01
x1∈[–5, 5]
2
2
11
2
22
z (x 10 cos(2
π 0,25 x ))
(x 10 cos(2 π 0,25 x ))
20
= − ⋅ ⋅⋅ ⋅ +
+ − ⋅ ⋅⋅ ⋅ + +
0,01
x1∈[–5, 5]
3
22
12
22
12
22
12
22
12
22
12
1
z
1,5 (x 10) (x 10)
1
2,2 (x 15) (x 15)
1
2,4 (x 5) (x 5)
1
2,6 (x 15) (x 5)
1
2,6 (x 5) (x 15)
=−+
 
+− +−
++
+− +−
++
+−+ −
++
+− +−
+
 
+−+ −
0,01
x1∈[0, 20]
4
22
12
22
12
22
12
1
z
1,4 (x 5) (x 8)
1
1,8 (x 15) (x 15)
1
2,0 (x 16) (x 4)
=−+
 
+−+ −
++
+− +−
+
 
+− +−
0,01
x1∈[0, 20]

Варианты заданий приведены в таблице.

Варианты заданий
Таблица
вари-
анта
выражение
функции
ность
деления
функции
x2∈[–5, 5]
x2∈[–5, 5]
x2∈[0, 20]
51
x2∈[0, 20]
Контрольные вопросы
1. Приведите последовательность команд на языке Matlab, необхо­димую для реализации алгоритма случайного поиска глобального мини­мума функции в программной среде Matlab. Поясните назначение каждой приведенной команды.
2. Дайте определение терминам «глобальный экстремум функции», «локальный экстремум функции».
3. Что означают термины «формализуемая задача» и «не формали- зуемая задача»? Что понимается под формализуемостью задачи поиска экстремума функции?
4. В чем заключается сущность поиска глобального экстремума функции методом мультистарта?
5. Перечислите известные вам методы поиска глобального экстре- мума функции и кратко изложите их суть.
6. В чем заключается сущность методов случайного поиска? Чем от- личается направленный случайный поиск от ненаправленного?
7. Что означает термин «машинное обучение»? Что такое обучение технической системы «с учителем» и «без учителя»?
8. Как выбираются начальные точки поиска экстремума функции при использовании метода мультистарта?
9. Приведите последовательность действий при выполнении поиска глобального экстремума функции методом мультистарта.
10. Назовите основные достоинства и недостатки метода мульти- старта. Какие ограничения имеет данный метод?
11. В каких случаях методы поиска локальных экстремумов много­мерных функций могут быть использованы для поиска глобальных экс­тремумов?
52
П РАКТИЧЕСКАЯ РАБОТА № 4
ОПРЕДЕЛЕНИЕ МЕСТОПОЛОЖЕНИЯ ИСТОЧНИКА СИГ НАЛА
Цель работы
Изучение алгоритма поиска источника сигнала с помощью всена-
правленного приемника с использованием градиента значений мощности.
Задание к работе
1. Изучить алгоритм поиска источника сигнала с помощью всена-
правленного приемника.
2. Разработать ПО, вычисляющее координаты источника сигнала.
3. Выполнить поиск источника сигнала с использованием заданной
выборки значений мощности сигнала.
4. Сделать выводы по результатам работы.
Пояснения к работе
Задача определения местоположения радиопередающего устройства может решаться в целях обнаружения нелегальных средств связи на ре­жимных объектах, а также устройств, использующих зарезервированные государственными органами радиочастоты. Во многих случаях возникает необходимость обнаруживать радиопередающие устройства, мощность которых превышает максимально разрешенные в регламентирующих до­кументах значения.
В самом общем виде задача определения местоположения источника сигнала может быть сформулирована следующим образом. В некоторой географической точке находится радиопередающее устройство (РПДУ), формирующее радиосигналы. Всенаправленное радиоприемное устройст­во (РПУ) измеряет значения мощности сигнала в различных точках про­странства и производит регистрацию измеренных значений. На основе значений мощности требуется определить географическое положение РПДУ.
Таким образом, входными данными алгоритма нахождения координат РПДУ является набор географических координат точек, в которых зафик­сирована передача данных, а также набор значений мощности сигнала.
53
qrqrqr
/p lv ∆=
rqqr
ppp −=∆
rq
qr
AA −=l
Входные данные алгоритма можно представить в виде кусочно-заданной функции двух переменных P = f(x, y) = f(a), где x и y – значения плоских географических координат, м; P – среднее значение мощности, дБм. Зада­ча определения координат РПДУ может быть сведена к поиску прибли­женного значения a**, соответствующего глобальному максимуму функ­ции P = f(x, y). Задачу предлагается решать в плоскости прямоугольных координат. Предполагается, что для части географических точек возмож­но определить направление, в котором мощность сигнала возрастает. Точ­ка пересечения продолжений этих векторов должна находиться вблизи ис­точника сигнала, что показано на рис. 4.1 [33].
Рис. 4.1 Рис. 4.2
В результате может быть получено S точек Aq = (xq, yq), q = 1, 2, … S, описывающих траекторию движения РПУ. Каждой точке траектории бу­дет соответствовать измеренное усредненное значение мощности.
Для определения направления возрастания мощности сигнала (гради­ента) необходимо выполнить следующие действия.
1. Из каждой точки Aq провести отрезок до каждой точки Ar, r = 1, 2,
… S, q≠r.
2. Для каждого отрезка AqAr вычислить значение отношения
и Ar;
, где
– евклидово расстояние между точками Aq и Ar.
– разность значений мощности в точках Aq
54
3. Для каждой точки Aq среди отрезков AqAr выбрать отрезок Gq, об-
ладающий наибольшим значением vqr.
4. Определить точки Dqr пересечения продолжений отрезков Gq и Gr,
q≠r (рис. 4.2).
5. Сохранить точки Dqr, удовлетворяющие следующим условиям: – угол пересечения отрезков отличается от углов 180° и 360° не менее
чем на некоторое значение α;
– точка пересечения лежит на продолжениях отрезков и не принадле-
жит ни одному из отрезков;
– точка пересечения лежит на продолжении отрезка в направлении
усиления сигнала.
На рис. 4.2 точки D12 и D34 образованы пересечениями векторов в на­правлении увеличения мощности принимаемого сигнала, точка D23 обра­зована пересечением векторов в направлении уменьшения мощности. Та­ким образом, точка D23 не удовлетворяет перечисленным условиям и должна быть удалена. Предположим, что угол φ, образованный пересече­нием векторов G5 и G1 в точке D15, меньше угла α. Тогда точка D15 также не удовлетворяет данным условиям и подлежит удалению. Результат про­иллюстрирован рис. 4.3.
Рис. 4.3 Рис. 4.4
55
6. Вычислить приближенные значения координат источника сигнала
как среднее арифметическое координат оставшихся точек. На рис. 4.4 по- казана точка C, каждая координата которой вычислена как среднее ариф­метическое соответствующих координат точек D12 и D34. Точка C пред­ставляет собой приближенное решение a** задачи поиска глобального максимума мощности.
Данный алгоритм накладывает ограничения на траекторию движения регистрирующего оборудования: траектория не должна единожды охва­тывать место нахождения РПДУ. В таком случае точки пересечения гра­диентов оказываются на большом расстоянии от источника излучения. На рис. 4.5 векторы Gq и Gr пересекаются в точке Dqr, удаленной от С0 – точ­ки положения РПДУ.
Рис. 4.5 Рис. 4.6
Повысить качество определения местоположения источника сигнала в таком случае может совершение повторного обхода по траектории со схожей формой, но меньшего или большего диаметра. Траектория, содер­жащая участок повторного обхода, представлена на рис. 4.6.
Из изложенного выше видно, что описываемый метод может быть применен для обнаружения положения источника сигнала, но требует от оператора правильно выбрать маршрут и осуществить подбор порогового значения α минимального угла пересечения градиентов.
56
Ход работы
1. Запустить программную среду Matlab, установить текущую папку «X:\…\Komplex_MO\Lab4», где X – условное обозначение литеры диска. Поле для установки текущей папки показано на рис. 4.7;
Рис. 4.7
2. В текстовом редакторе среды Matlab создать новый файл и сохра­нить его под именем angle.m на жестком диске ПК в папке X:\…\Komplex_MO\Lab4;
3. В файле angle.m поместить заголовок файла-функции:
function a = angle(line)
%--------------------------------------------
% Функция вычисляет угол наклона линии. % Диапазон возвращаемых значений 0-360. % Угол отсчитывается против часовой % стрелки от положительной половины % оси x.
4. В файле angle.m поместить следующий программный код (после имеющегося кода):
dx = line(3) - line(1); dy = line(4) - line(2); theta = atan2(-dy, dx) * 360.0 / (2 * pi); if(theta < 0) theta_normalized = theta + 360; else theta_normalized = theta; end; a = theta_normalized;
57
5. Cохранить изменения файла angle.m;
6. В текстовом редакторе среды Matlab создать новый файл и сохра-
нить его под именем angleAccepted.m на жестком диске ПК в папке
X:\…\Komplex_MO\Lab4;
7. В файле angleAccepted.m поместить заголовок файла-функции:
function ok = angleAccepted(line1, line2, minimumAngle)
%--------------------------------------------
% Функция сравнивает угол между двумя линиями % с минимальным заданным.
8. В файле angleAccepted.m поместить следующий программный код
(после имеющегося кода):
a = angleTo(line1, line2); % line1.angleTo(line2); ok = (~ (a < minimumAngle)) &&... (~ (a > (360 - minimumAngle))) && ... (~ ((a > (180 - minimumAngle)) && ... (a < (180 + minimumAngle))));
9. Cохранить изменения файла angleAccepted.m;
10. В текстовом редакторе среды Matlab создать новый файл и сохра-
нить его под именем angleTo.m на жестком диске ПК в папке
X:\…\Komplex_MO\Lab4;
11. В файле angleTo.m поместить заголовок файла-функции:
function a = angleTo(line1, line2)
%--------------------------------------------
% Функция вычисляет угол между двумя линиями, % заданными по двум точкам. % Диапазон возвращаемых значений 0-360. % Возвращаемое значение - угол, на который % нужно повернуть первую линию % до совмещения со второй.
58
12. В файле angleTo.m поместить следующий программный код (по-
сле имеющегося кода):
a1 = angle(line1); a2 = angle(line2); delta = a2 - a1; if(delta < 0) delta_normalized = delta + 360; else delta_normalized = delta; end; a = delta_normalized;
13. Сохранить изменения файла angleTo.m;
14. В текстовом редакторе среды Matlab создать новый файл и сохра-
нить его под именем averagePoint.m на жестком диске ПК в папке
X:\…\Komplex_MO\Lab4;
15. В файле averagePoint.m поместить заголовок файла-функции:
function c = averagePoint(points)
% Функция усредняет значения координат x,y % для массива точек
16. В файле averagePoint.m поместить следующий программный код
(после имеющегося кода):
c = zeros(1, 2); size = length(points); if(size > 1) x = 0; y = 0; for i = 1 : size x = x + points(i, 1); y = y + points(i, 2); end; x = x / size; y = y / size; c = [x y]; elseif(size == 0) c = points; end;
59
17. Сохранить изменения файла averagePoint.m;
18. В текстовом редакторе среды Matlab создать новый файл и сохра-
нить его под именем fillTrace.m на жестком диске ПК в папке
X:\…\Komplex_MO\Lab4;
19. В файле fillTrace.m поместить заголовок файла-функции:
function trace = fillTrace(Xc, Yc, dBmc, width)
%--------------------------------------------
% Функция заполняет матрицу, описывающую % траекторию движения РПУ в форме острого угла.
%--------------------------------------------
20. В файле fillTrace.m поместить следующий программный код (по-
сле имеющегося кода):
% Количество промежутков в каждом отрезке gridCount = 80; % Количество точек в каждом отрезке pointCount = gridCount + 1; % Два отрезка trace1 = zeros(pointCount, 2); trace2 = zeros(pointCount, 2); % Верхний левый угол траектории
yHorizontal = 30; xLeft = Xc - (width / 2);
% Отрезок 1 for i = 1 : pointCount
x = (i - 1) * width / (gridCount) + xLeft; y = yHorizontal; p = dBmc - realsqrt((x - Xc).^2 + (y - Yc).^2); trace1(i, 1 : 3) = [x, y, p]; end;
% Отрезок 2 for i = 1 : pointCount
x = (pointCount - i) * width / (gridCount) + xLeft; y = yHorizontal - (width - x) * 0.1; p = dBmc - realsqrt((x - Xc).^2 + (y - Yc).^2); trace2(i, 1 : 3) = [x, y, p]; end;
% Соединяем отрезки trace = [trace1;trace2];
60
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]