Добавил:
ivanov666
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:Основы оптимизации в радиотехнических системах. Практикум
.pdf
№
Аналитическое
Погреш-
Область опре-
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
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]
