Стабилизация квадрокоптера на заданном удалении от объекта

Дипломная работа - Физика

Другие дипломы по предмету Физика

?чно эффективным является пропорционально дифференциальный алгоритм. Суть его в том, что для того чтобы стабилизировать тело в точке О сила должна состоять из двух составляющих:

составляющей пропорциональной отклонению от точки стабилизации с некоторым коэффициентом

составляющей пропорциональной с некоторым коэффициентом производной от отклонения,

где коэффициенты и определяются экспериментально.

Кроме того необходимо компенсировать внешнюю силу. Таким образом, требуемая сила должна быть равна:

 

 

Таким образом, необходимо чтобы суммарная сила тяги роторов квадрокоптера равнялась вектору . Так как сила тяги роторов всегда направлена по нормали к плоскости квадрокоптера, необходимо повернуть плоскость квадрокоптера так, чтобы нормальный к ней вектор был направлен вдоль . То есть решить задачу стабилизации квадрокоптера по углу.

 

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>