Спроектировать движение летательного аппарата на Python
Суть модели отслеживание ЛА. То есть определение координат ЛА и затем построение траектории его движения . Для этого надо задать матрицу 2048Х2048пикс (стандартная ЦМ). Задать модель движения ЛА в пространстве этой матрицы.На окошках входа задать длительность обзора, количество периодов обзора. Задать начальные значения скорости и ускорения ЛА, которые могут изменяться во время его движения. Задать уровень шума ЦМ рандомно в каждой точке. Пределы значений из фото. Смысл в том, что ЦМ имеет свой шум Uш. А ЛА имеет свой сигнал (яркость U). И в каждом обзоре мы определяем местоположение ЛА, как координаты i,j самой яркой точки на ЦМ, которая выше по номиналу чем Uш матрицы в этой точке. Так же на основании трех обзоров и определения координат мы делаем прогноз положения ЛА на ЦМ для следующего момента времени (Тобз), и определяем размер зоны допоиска (строба). Так как Uш неодинаков на всем пространстве матрицы, то возможны ошибки, так как система принимает Uш в какой либо точке за положение ЛА (то есть ложное определение). Предсказание положения ЛА и делается для того, что бы исключить ложное определение координат. Далее сравниваем прогнозное значение положение изображения ЛА на ЦМ, с вновь определенным. Если значения координат близки, то мы принимаем полученные координаты. И продолжаем отслеживать ЛА. Если координаты прогноза и вновь определенного положения сильно разнятся, то мы осуществляем допоиск ЛА, в предсказанной области. То есть как будто ЛА реально летает и за ним следит цифровая камера, определяя координаты его изображения на своей матрице. Конечно же ЛА может маневрировать, на он не может мгновенно перескакивать на другой конец ЦМ. Выходом модели будут, таблица1 с номерами обзоров,скоростью ЛА и координатами ЛА в моменты времени обзоров. Условно прошло 100 обзоров у нас получилось 100 точек (i,j) как на фото. График (траектория) (i,j) как на фото. Масштабный график как на фото в системе (Тобз,i,j), Значения Nложное,Nверное,Nдопоиска. И вывод координат в таблицу1 после каждого обзора, то есть обзор прошел есть определенные координаты признаны верными, то сразу отобразились в таблицу1. Еще у меня уточнение, после каждого перезапуска программы (модели) траектория будет другой.
Длительность обзора и количеством периодов обзора:
Тобз - это время в течение которого просматривается ЦМ. Количество периодов - это количество точек траектории записанных в таблице. То есть сколько раз система определила координаты. К примеру я задаю во входных данных. Тобз = 1 с. Это означает что программа анализирует ЦМ в течении 1 с.Задаю Nобз = 100, это значит что будет построено 100 точек траектории, и 100 значений координат в таблице1. Если 10 то 10.
Уровень шума:
Каждый элемент матрицы имеет рандомное значение шума, которое гасит свет ЛА. при каждой итерации я должен выводить предполагаемую точку нахождения ЛА [i, j] на ЦМ, основываясь на самой яркой точке, верно? если яркость ЛА меньше, чем шум на данной точке, что необходимо делать?
Да по самой яркой точке, то есть физически это разница в амплитуды полезного и амплитуды сигнала и шума матрицы. Изначально полагается, что мы уже провели нормировку шума матрицы и полезного сигнала. Что бы не усложнять модель. Если случилось так, что сигнал шума больше, чем полезный сигнал то произойдет ложное определение координат ЛА. К примеру предыдущие снятые координаты Сn (2,3), а система определяет следующую точку как Сn+1(26,32). То логично, что ЛА не мог так отклониться. Значит надо искать где то недалеко от предыдущих координат с учетом скорости и курса. Предлагаю определить зону "допоиска" как 12Х12 пикселей, с упреждением на количество пикселей которые ЛА должен был пройти за время Тобз.
мне главное чтобы ЛА двигался по какой либо траектории приближенной к реальности. Например в один цикл по одной траектории, а в другой цикл при других входных параметрах по другой траектории. Может быть модель движения ЛА задать какой то другой формулой или системой уравнений. (это в зависимости, что реально можно запрограмировать). т.е. с точки зрения физики движущийся ЛА, как бы "зажигает" пиксели на ЦМ, и поэтому мы можем его позиционировать, а как это прописать в коде программы я не сильно представляю.
количество пикселей пройденное за Тобз: Пример Vла=10пиксей/Тобз, а Тобз = 1с. Это значит про ЛА успеет пройти 10 пикселей за обзор в котором принято ложное рещение, и еще 10 за следующий. А это значит что искать его надо на том же курсе толькос упреждением 20 пикселей. В зоне 12х12 пикселей, так же по самой яркой отметке.
Программа заканчивается, если ЛА доходит до конца матрицы. Это означает, что мы задали Nобз = 2048 то есть максимально возможное. Но так она заканчивается когда было сделано Nобз заданное во входных данных. Ели заданно 10 то 10 точек построили и все. Если заданно 100 то 100 точек и конец. И т.д.