Стабилизация квадрокоптера на заданном удалении от объекта
Дипломная работа - Физика
Другие дипломы по предмету Физика
?чно эффективным является пропорционально дифференциальный алгоритм. Суть его в том, что для того чтобы стабилизировать тело в точке О сила должна состоять из двух составляющих:
составляющей пропорциональной отклонению от точки стабилизации с некоторым коэффициентом
составляющей пропорциональной с некоторым коэффициентом производной от отклонения,
где коэффициенты и определяются экспериментально.
Кроме того необходимо компенсировать внешнюю силу. Таким образом, требуемая сила должна быть равна:
Таким образом, необходимо чтобы суммарная сила тяги роторов квадрокоптера равнялась вектору . Так как сила тяги роторов всегда направлена по нормали к плоскости квадрокоптера, необходимо повернуть плоскость квадрокоптера так, чтобы нормальный к ней вектор был направлен вдоль . То есть решить задачу стабилизации квадрокоптера по углу.
3.2 Стабилизация квадрокоптера по углу
Положение квадрокоптера относительно связанной системы координат удобно определять с помощью трех углов поворота относительно осей подвижной СК. Требуемые значения углов, на которые необходимо повернуть квадрокоптер относительно каждой из осей нормальной системы координат, вычисляются по следующим формулам:
Где , и - повороты вокруг осей OX, OY и OZ соответственно.
При этом направление вектора нормали определяется двумя углами, а именно поворотом вокруг осей OX и OY. Уравнениями (2.3.12) определяются текущие значения этих углов: и соответственно. Таким образом, задача сводится к тому, чтобы стабилизировать плоскость квадрокоптера углам и . Эту задачу тоже удобно решать пропорционально-дифференциальным алгоритмом. Углы поворота определяются составляющими вектора по осям OX и OY соответственно. Таким образом, в качестве управляющего воздействия для стабилизации по углу можно рассматривать разность векторов и спроецированную на плоскость OYZ, а для - разность векторов и спроецированную на плоскость OXZ. Тогда для стабилизации по углу пропорциональной составляющей будет разность между и , взятая с коэффициентом , а дифференциальной - составляющая по оси OX вектора , определенного по формуле (2.3.11), взятая с коэффициентом . Аналогично для стабилизации по углу . Величину проекции вектора на плоскость OYZ можно найти, умножив значение его длинны на косинус угла между вектором нормали и плоскостью. Этот значение этого косинуса равно . Аналогично можно найти проекцию на плоскость OXZ. Таким образом, окончательно имеем:
Суммарная сила тяги должна плавно меняться от некоторого начального значения до требуемого , тогда
,
где и начальные значения углов и соответственно.
Для того чтобы наблюдать за объектом нам необходимо чтобы камеры были направлены на него. Камеры будут направлены на объект, если у векторов и компоненты по оси OY и OX соответственно будут стремиться к нулю. Этого можно достичь, управляя вращением в плоскости квадрокоптера. В этом случае в роли управляющего воздействия будет разность между суммами тяг роторов вращающихся по часовой стрелке и роторов вращающихся против часовой стрелки. В качестве пропорциональной составляющей мы возьмем значение сумму значений и , домноженную на коэффициент , а в качестве дифференциальной производную от этой суммы, домноженную на коэффициент . Таким образом, получаем:
Уравнения (3.2.4), (3.2.5), (3.2.7) и (3.2.8) составляют систему из четырех уравнений с четырьмя неизвестными, решив ее можно получить выражения для тяг на каждом роторе. Таким образом:
Так как неизвестен реактивный момент квадрокоптера данный алгоритм не будет реализовывать стабилизацию квадрокоптера по направлению. Поэтому в данном алгоритме примем .
4.Программная реализация модели квадрокоптера и пример работы
.1 Программная реализация модели квадрокоптера
Модель реализована на языке MatLab и состоит из трех подпрограмм:
)Основная программа рассчитывает радиус вектор из точки стабилизации до центра масс квадрокоптера и выводит графики зависимости координат центра масс квадрокоптера в неподвижной СК от времени.
)Блок вычисления текущего значения тяги - подпрограмма, которая на основе рассчитанной требуемой силы тяги вычисляет силы тяги на каждом роторе и вычисляет значения суммарной силы тяги в определенные моменты времени
)Блок расчета силы внешнего воздействия - подпрограмма, вычисляющая значение силы внешнего воздействия в конкретный момент времени. Третья подпрограмма просто представляет собой вектор функцию от времени. На первых двух подпрограммах остановимся подробней.
Рис. 4.1.1. Блок схема основной программы
В блоке инициализация переменных задается начальное значение времени и начальные значения скорости , радиус вектора центра масс квадрокоптера и начальные значение суммарной тяги роторов в неподвижной СК, а также значения начальные угловой скорости и углов поворота квадрокоптера в подвижной СК. Внутри цикла в первом блоке вычисляется значения внешней возмущающей силы в моменты времени , и и заносятся в переменные , и . В следующем блоке по формуле (2.3.1) вычисляются значения ускорения в моменты времени , и :
Затем с помощью интегрирования от нуля до текущего значения времени вычисляются текущие значения скорости и радиус-?/p>