Выделить слова: 


Патент США №

9146557

Автор(ы)

Ahmed и др.

Дата выдачи

29 сентября 2015 г.


Adaptive control method for unmanned vehicle with slung load



РЕФЕРАТ

The adaptive control method for an unmanned vehicle with a slung load utilizes a feedback linearization controller (FLC) to perform vertical take off, hovering and landing of an unmanned aerial vehicle with a slung load, such as a quadrotor drone or the like. The controller includes a double loop architecture, where the overall controller includes an inner loop having an inner controller which is responsible for controlling the attitude angles and the altitude, and an outer loop having an outer controller responsible for providing the inner loop inner controller with the desired angle values. States, such as including roll, pitch, yaw and/or altitude, are selected as outputs and the feedback linearization technique is used.


Авторы:

Ghufran Ahmed (Dammam, SA), Sami El Ferik (Dhahran, SA)

Патентообладатель:

ИмяГородШтатСтранаТип

KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS

Dhahran

N/A

SA

Заявитель:

KING FAHD UNIVERSITY OF PETROLEUM AND MINERALS (Dhahran, SA)

ID семейства патентов

54149586

Номер заявки:

14/260,096

Дата регистрации:

23 апреля 2014 г.

Класс патентной классификации США:

1/1

Класс совместной патентной классификации:

G05D 1/0858 (20130101); B64C 19/00 (20130101); G05D 1/08 (20130101); G05D 1/0825 (20130101); G05D 1/0816 (20130101); G05D 1/085 (20130101); G05D 1/0808 (20130101); G05D 1/10 (20130101); B64C 39/024 (20130101); G05B 13/04 (20130101); G05D 1/101 (20130101); B64C 17/00 (20130101); B64D 1/22 (20130101); B64C 2201/00 (20130101); B64C 2201/024 (20130101); B64C 2201/14 (20130101); B64C 2201/128 (20130101)

Класс международной патентной классификации (МПК):

B64C 19/00 (20060101); G05D 1/00 (20060101); B64D 9/00 (20060101); B64C 39/02 (20060101); G05D 1/10 (20060101); B64C 17/00 (20060101); G05D 1/08 (20060101); B64B 1/20 (20060101); B64D 1/22 (20060101)

Область поиска:

;701/3,4,10 ;703/2,6,8 ;700/28-32,47-50 ;244/8,17.11,177,181,75.1 ;706/2,14,16,905,913

Использованные источники

[Referenced By]

Патентные документы США

4741501May 1988Clelford et al.
5428543June 1995Gold et al.
6189836February 2001Gold et al.
6516309February 2003Eberhart et al.
6532454March 2003Werbos
7194397March 2007Bush
7370829May 2008Badre-Alam et al.
8104720January 2012Hirvonen et al.
8185259May 2012Omar
8190307May 2012Omar
8532846September 2013Tollenaere et al.
2007/0299794December 2007El-Damhougy
2009/0033259February 2009Cesario et al.
2010/0279255November 2010Williams, II
2011/0084162April 2011Goossen et al.
2012/0072075March 2012Choe et al.
2012/0095621April 2012Zhu et al.
2013/0054054February 2013Tollenaere et al.

Зарубежные патентные документы

1 901 153Mar 2008EP
201102821Nov 2011IN

Другие источники


Nodland et al., "Neural Network-Based Optimal Adaptive Output Feedback Control of a Helicopter UAV," IEEE Transactions on Neural Networks and Learning Systems, vol. 24, No. 7, Jul. 2013, pp. 1061-1073 (date of publication: Mar. 26, 2013). cited by applicant .
Lee et al., "Design of a Neural Network Controller for a Slung-Load System Lifted by 1 Quad-Rotor," Journal of Automation and Control Engineering, vol. 3, No. 1, Feb. 2015, pp. 9-14, retrieved on Mar. 15, 2014. cited by applicant.

Главный эксперт: Frejd; Russell
Уполномоченный, доверенный или фирма: Litman; Richard C.


ФОРМУЛА ИЗОБРЕТЕНИЯ



We claim:

1. An adaptive control method for an unmanned vehicle with a slung load, comprising the steps of: establishing a feedback linear controller, such that f(x)=M.sub.b({umlaut over (x)}.sub.a.sub.d+.LAMBDA. .sub.x.sub.a)+C.sub.b({dot over (x)}.sub.a.sub.d+.LAMBDA.e.sub.x.sub.a)+D.sub.b{dot over (x)}.sub.a+G.sub.b, wherein f(x) is a control dynamics input for an unmanned aerial vehicle, x.sub.a.sub.d is a vector representing roll, pitch, yaw and altitude for the unmanned aerial vehicle based on a corresponding trajectory, M.sub.b is an inertia matrix associated with the unmanned aerial vehicle, C.sub.b is a centrifugal force and coriolis force matrix associated with the unmanned aerial vehicle, D.sub.b is a drag force matrix associated with the unmanned aerial vehicle, and G.sub.b is a gravitational vector, {dot over (x)}.sub.a being a velocity vector such that .phi..theta..psi. ##EQU00040## where .phi. represents a roll angle of the unmanned aerial vehicle, .theta. represents a pitch angle of the unmanned aerial vehicle, .psi. represents a yaw angle of the unmanned aerial vehicle, and z represents an altitude of the unmanned aerial vehicle, e.sub.x.sub.a representing control error, and .LAMBDA. being a positive definite constant matrix such that y= .sub.x.sub.a+.LAMBDA.e.sub.x.sub.a, where y is a filtered tracking error, and x is a vector defined as .times..times..times..times. ##EQU00041## where T is a period of a periodic orbit of the slung load; establishing a two level neural network such that f(x)=W.sup.T.sigma.(V.sup.Tx)+.epsilon., where W and V are neural network weights, .sigma. represents the sigmoid function, and .epsilon. being a known bound; calculating a neural network estimate of f(x), {circumflex over (f)}(x), as {circumflex over (f)}(x)= .sup.T.sigma.({circumflex over (V)}.sup.Tx), where and {circumflex over (V)} are actual values of the neural network weights W and V, respectively, given by a tuning algorithm; transmitting a control input .tau. for the unmanned aerial vehicle as .tau.= .sup.T.sigma.({circumflex over (V)}.sup.Tx)+K.sub.vy, where K.sub.v is a feedforward gain, for controlling flight of the unmanned aerial vehicle; and transmitting additional anti-swing control input to the unmanned aerial vehicle to correct for a slung load as x.sub.cor=K.sub.xcL.phi..sub.L(t-.tau..sub.xc) and y.sub.cor=K.sub.ycL.phi..sub.L(t-.tau..sub.yc), wherein x.sub.cor and y.sub.cor are additional longitudinal and lateral displacements, respectively, K.sub.xc and K.sub.yc are, respectively, longitudinal and lateral feedback gains, L is a load cable length, .phi..sub.L is a load angle in an x-z plane, t is time, and .tau..sub.xc and .tau..sub.yc are, respectively, longitudinal and lateral time delays introduced in the feedback of the load angle.

2. The adaptive control method for an unmanned vehicle with a slung load as recited in claim 1, wherein the tuning algorithm comprises calculating and {circumflex over (V)}, respectively, as {circumflex over ({dot over (W)})}=F{circumflex over (.sigma.)}y.sup.T and {circumflex over ({dot over (V)})}=Gx({circumflex over (.sigma.)}'.sup.T y).sup.T, where F and G are each positive definite matrices representing design parameters.

3. The adaptive control method for an unmanned vehicle with a slung load as recited in claim 2, wherein K.sub.xc=K.sub.yc=0.4L, and .tau..sub.xc=.tau..sub.yc=0.32T.sub.L, where T.sub.L is a period of oscillation of the slung load.

4. A computer software product that includes a non-transitory storage medium readable by a processor, the non-transitory storage medium having stored thereon a set of instructions for performing adaptive control for an unmanned vehicle with a slung load, the instructions comprising: (a) a first set of instructions which, when loaded into main memory and executed by the processor, causes the processor to establish a feedback linear controller, such that f(x)=M.sub.b({umlaut over (x)}.sub.a.sub.d+.LAMBDA. .sub.x.sub.a)+C.sub.b({dot over (x)}.sub.a.sub.d+.LAMBDA.e.sub.x.sub.a)+D.sub.b{dot over (x)}.sub.a+G.sub.b, wherein f(x) is a control dynamics input for an unmanned aerial vehicle, x.sub.a.sub.d is a vector representing roll, pitch, yaw and altitude for the unmanned aerial vehicle based on a corresponding trajectory, M.sub.b is an inertia matrix associated with the unmanned aerial vehicle, C.sub.b is a centrifugal force and coriolis force matrix associated with the unmanned aerial vehicle, D.sub.b is a drag force matrix associated with the unmanned aerial vehicle, and G.sub.b is a gravitational vector, {dot over (x)}.sub.a being a velocity vector such that .phi..theta..psi. ##EQU00042## where .phi. represents a roll angle of the unmanned aerial vehicle, .theta. represents a pitch angle of the unmanned aerial vehicle, .psi. represents a yaw angle of the unmanned aerial vehicle, and z represents an altitude of the unmanned aerial vehicle, e.sub.x.sub.a representing control error, and .LAMBDA. being a positive definite constant matrix such that y= .sub.x.sub.a+.LAMBDA.e.sub.x.sub.a, where y is a filtered tracking error, and x is a vector defined as .times..times..times..times. ##EQU00043## where T is a period of a periodic orbit of the slung load; (b) a second set of instructions which, when loaded into main memory and executed by the processor, causes the processor to establish a two level neural network such that f(x)=W.sup.T.sigma.(V.sup.Tx)+.epsilon., where W and V are neural network weights, .sigma. represents the sigmoid function, and .epsilon. being a known bound; (c) a third set of instructions which, when loaded into main memory and executed by the processor, causes the processor to calculate a neural network estimate of f(x), {circumflex over (f)}(x), as {circumflex over (f)}(x)= .sup.T.sigma.({circumflex over (V)}.sup.Tx), where and {circumflex over (V)} are actual values of the neural network weights W and V, respectively, given by a tuning algorithm; (d) a fourth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to transmit a control input .tau. for the unmanned aerial vehicle as .tau.= .sup.T.sigma.({circumflex over (V)}.sup.Tx)+K.sub.vy, where K.sub.v is a feedforward gain, for controlling flight of the unmanned aerial vehicle; and (e) a fifth set of instructions which, when loaded into main memory and executed by the processor, causes the processor to transmit additional anti-swing control input to the unmanned aerial vehicle to correct for a slung load as x.sub.cor=K.sub.xcL.phi..sub.L(t-.tau..sub.xc) and y.sub.cor=K.sub.ycL.phi..sub.L(t-.tau..sub.yc), wherein x.sub.cor and y.sub.cor are additional longitudinal and lateral displacements, respectively, K.sub.xc and K.sub.yc are, respectively, longitudinal and lateral feedback gains, L is a load cable length, .tau..sub.L is a load angle in an x-z plane, t is time, and .tau..sub.xc and .tau..sub.yc are, respectively, longitudinal and lateral time delays introduced in the feedback of the load angle.

5. The computer software product as recited in claim 4, wherein the third set of instructions further comprises calculating and {circumflex over (V)}, respectively, as {circumflex over ({dot over (W)})}=F{circumflex over (.sigma.)}y.sup.T and {circumflex over ({dot over (V)})}=Gx({circumflex over (.sigma.)}'.sup.T y).sup.T, where F and G are each positive definite matrices representing design parameters.

6. The computer software product as recited in claim 5, wherein K.sub.xc=K.sub.yc=0.4L, and .tau..sub.xc=.tau..sub.yc=0.32T.sub.L, where T.sub.L is a period of oscillation of the slung load.


ОПИСАНИЕ




ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ



1. Field of the Invention

The present invention relates to control for aerial vehicles, and particularly to an adaptive control method for aerial vehicles carrying slung, or suspended, loads. (u, v, w)

2. Description of the Related Art

FIGS. 4 and 5 illustrate an exemplary aerial vehicle 102. In relation to discussing the aerial vehicle 102 with reference to FIGS. 4 and 5, the symbols, letters, characters and references used are for purposes of the background description of the related art only, and the meaning or use of such same or similar symbols, letters, characters and references may differ as otherwise described in the specification. The aerial vehicle 102 is modeled as a rigid body with six degrees of freedom. The twelve aerial vehicle states include translational velocities (u, v, w) angular velocities (p, q, r), Euler angles (.PHI., .theta., .phi.) and the aerial vehicle 102's position (x, y, z). An external load is modeled as a point mass that behaves like a spherical pendulum suspended from a single point. The cable for the external load is assumed to be inelastic and with no mass. The geometry and the relevant coordinate systems are shown in FIG. 4. The unit vectors i.sub.H, j.sub.H, k.sub.H of the "hook" coordinate system always remain parallel to those of the body axis system of aerial vehicle 102. The position of the load is described by the two angles .PHI..sub.L and .theta..sub.L, where .theta..sub.L is load angle in the x-z plane, and where .PHI..sub.L is the load oscillation angle out of the x-z plane. Therefore, the position vector R.sub.L of the load with respect to the suspension point is given by: R.sub.L=L cos(.theta..sub.L)sin(.PHI..sub.L)i.sub.H+L sin(.theta..sub.L)j.sub.H+L cos(.theta..sub.L)cos(.PHI..sub.L)k.sub.H. (1)

The position vector R.sub.H of the hook with respect to the aerial vehicle 102's center of gravity (e.g.) is given by: R.sub.H=x.sub.Hi.sub.H+y.sub.Hj.sub.H+z.sub.Hk.sub.H. (2) The absolute velocity V.sub.L of the load is given by: V.sub.L=V.sub.cg+{dot over (R)}+.OMEGA..times.R, (3) where V.sub.cg is the absolute velocity of the center of mass of the aerial vehicle 102, R=R.sub.L+R.sub.H is the position vector of the load with respect to the center of mass of the aerial vehicle 102, and Q=pi.sub.H+qj.sub.H+rk.sub.H is the angular velocity of the aerial vehicle 102. The absolute acceleration a.sub.L of the load is: a.sub.L={dot over (V)}.sub.L+.OMEGA..times.V.sub.L. (4) The unit vector in the direction of the gravity force is given by: K.sub.g=-sin(.theta.)i.sub.H+sin(.PHI.)cos(.theta.)j.sub.H+cos(.phi.)cos(- .theta.)k.sub.H. (5) Beside the gravity, there is an aerodynamic force applied on the point mass load. Since the analysis in the background description is restricted to the aerial vehicle 102's motion near hover, the aerodynamics loads on the load will be neglected.

The equations of motion of the load are written by enforcing moment equilibrium about the suspension point, that is, in matrix form: R.sub.L.times.(-m.sub.La.sub.L+m.sub.Lgk.sub.g)=0. (6) The above equation gives three scalar equations of second order, only the equations in the x and y directions are retained, which represent the equations of motion of the load.

The suspended load introduces additional terms in the rigid body force and moment equations of motion of the aerial vehicle 102, namely load forces and load dynamics. The force and moment loads, F.sub.HL and M.sub.HL, are shown in FIG. 5. The force that the load exerts on the aerial vehicle 102 is given by: F.sub.HL=-m.sub.La.sub.L+m.sub.Lgk.sub.g. (7) The additional moment M.sub.HL is therefore given by: M.sub.HL=R.sub.H.times.F.sub.HL. (8) The above equations give highly nonlinear expressions. These equations cannot be used for stability analysis. Therefore, they must be linearized around the trim condition. To be able to perform the linearization process, the trim values of the aerial vehicle 102 and the load must be determined.

The obtained equations are nonlinear and complicated. For design purposes, these equations are linearized about the hovering conditions. Near hover, the forward speed is nearly zero (i.e., u.sub.0=0). Assuming that the aerial vehicle 102's roll angle is also zero, even with the effect of the load on the aerial vehicle 102 (i.e., .PHI..sub.0=0) simplifies the analysis. At this condition, the load trim equations give the following trim values: .theta..sub.Lo0 and .PHI..sub.Lo=-.theta..sub.o. (9) Imposing the above results to the linearized load equations obtains the following equations of motion for the load: g.theta..sub.L-g cos(.theta..sub.o).phi.+y.sub.h{dot over (q)}+{dot over (V)}+L{umlaut over (.theta.)}.sub.L=0. (10) L{umlaut over (.PHI.)}.sub.L+g.PHI..sub.L+g.theta.+(x.sub.h-L sin(.theta..sub.o))cos(.theta..sub.o){dot over (p)}+z.sub.h sin(.theta..sub.o){dot over (r)}+L cos(.theta..sub.o)sin(.theta..sub.o){dot over (r)}+cos (.theta..sub.o){dot over (U)}+sin(.theta..sub.o){dot over (W)}=0. (11) The forces exerted by the load on the aerial vehicle 102 are: F.sub.x=m.sub.L(-g cos[.theta..sub.O].theta.-xh{dot over (p)}+L sin[.theta..sub.o]{dot over (p)}-{dot over (U)}[t]-L cos[.theta..sub.o]{umlaut over (.PHI.)}.sub.L), F.sub.y=m.sub.L(g cos[.theta..sub.o].PHI.-y.sub.h{dot over (q)}-{dot over (V)}-L{umlaut over (.theta.)}.sub.L) and F.sub.z=m.sub.L(-g sin[.theta..sub.o].theta.-(z.sub.h+L cos[.theta..sub.o]){dot over (r)}-{dot over (W)}-L sin[.theta..sub.o]{umlaut over (.PHI.)}.sub.L). (12) The moments in the x-y-z directions are: .phi.

.function..times..times..times..function..theta..times..theta..times..tim- es..times..function..theta..times..phi..times..times..times..function..the- ta..times..times..times..times..times..times..theta..times..times..times..- function..theta..times..phi..times..times..function..times..times..times..- function..theta..times..theta..times..times..times..function..theta..times- ..times..theta..times..times..times..times..times..times..function..theta.- .times..times..times..times..times..times..function..theta..times..times..- times..times..times..times..times..function..theta..times..phi..times..tim- es..times..function..theta..times..phi..times..times..times..times..functi- on..times..times..times..function..theta..times..theta..times..times..time- s..function..theta..times..phi..times..times..times..times..times..functio- n..theta..times..times..times..times..times..times..times..times..theta..t- imes..times..times..function..theta..times..phi. ##EQU00001##

These equations are linear and can be formulated in a state space form. If the load state vector is defined as x.sub.L=[{dot over (.PHI.)}.sub.L {dot over (.theta.)}.sub.L .PHI..sub.L .theta..sub.L ].sup.T, the load equations in state space can be written as: E.sub.L{dot over (x)}=A.sub.Lx, (14) where x is the state vector for the load and the aerial vehicle 102 (i.e., x=[x.sub.H x.sub.L]). Similarly, the effect of the load on the aerial vehicle 102 force terms can be written also as:

.times..times. ##EQU00002##

The linearized equations of motion of the aerial vehicle 102 and the load can be written in the following state space forms:

.times..times..times..times..eta. ##EQU00003## A great deal of effort has been made for modeling the slung load and studying its effect on dynamics of aerial vehicles. Examples of automatic control for vehicles, such as helicopters, with slung loads include a single-cable dynamic model developed using a straightforward application of Lagrange equations, and an expanded version of this model, which includes two tandem cables. However, such a formulation was based on the Newton-Euler equations of motion for small perturbations separated into longitudinal and lateral sets. The disadvantage was that aerodynamic forces on the cables and the load were neglected, as were the helicopter rotor dynamic modes.

Such work, though promising, is not only based on classical control techniques, but is difficult to apply to modem unmanned aerial vehicles, such as quadrotor drones and the like. It would be desirable to provide an anti-swing controller for a quadrotor aerial vehicle slung load system near hover flight. Such a controller should be based on time-delayed feedback of the load swing angles. The output from such a controller would be additional displacements that are added to the vehicle trajectory in the longitudinal and lateral directions, for example.

Thus, an adaptive control method for an unmanned vehicle with a slung load addressing the aforementioned problems is desired.


СУЩНОСТЬ ИЗОБРЕТЕНИЯ



In the present adaptive control method for an unmanned vehicle with a slung load, a feedback linearization controller (FLC) is used to perform vertical take off, hovering and landing of an unmanned vehicle with a slung load, such as a quadrotor drone or the like. To achieve hover condition, the attitude angles and the position have to be stabilized. The outputs of the controller are the set of variables (x, y, z, .phi., .theta., .psi.), where x, y and z are three-dimensional Cartesian coordinates, .phi. represents roll, .theta. represents pitch, and .psi. represents yaw. However, selecting all six outputs makes the system under-actuated, as there are only four inputs. Additionally, a coupling problem also exists, thus the output vector in the present method is selected to simply be (.phi., .theta., .psi., z), where the Cartesian z-coordinate represents altitude. Thus, the present control method involves double loop architecture, where the overall controller includes an inner loop having an inner controller which is responsible for controlling the attitude angles and the altitude, and an outer loop having an outer controller responsible for providing the inner controller of the inner loop with the desired angle values. The inner controller of the inner loop needs to be much faster than the outer controller of the outer loop in order to achieve stability. These four states (.phi., .theta., .psi., z), or three states (.phi., .theta., z), are selected as outputs and the feedback linearization technique is used.

As will be described in greater detail below, the inner controller of the inner loop utilizes a two layer neural network. Essentially, as will be described in greater detail below, the overall adaptive control method includes the following steps:

(a) establishing a feedback linear controller, such that f(x)=M.sub.b({umlaut over (x)}.sub.a.sub.d+.LAMBDA. .sub.x.sub.a) C.sub.b({dot over (x)}.sub.a.sub.d+.LAMBDA.e.sub.x.sub.a)+D.sub.b{dot over (x)}.sub.a+G.sub.b, where f(x) is a control dynamics input for an unmanned aerial vehicle, x.sub.a.sub.d is a vector representing roll, pitch, yaw and altitude for the unmanned aerial vehicle based on a corresponding trajectory, M.sub.b is an inertia matrix associated with the unmanned aerial vehicle, C.sub.b is a centrifugal force and coriolis force matrix associated with the unmanned aerial vehicle, D.sub.b is a drag force matrix associated with the unmanned aerial vehicle, and G.sub.b is a gravitational vector, {dot over (x)}.sub.a being a velocity vector such that

.phi..theta..psi. ##EQU00004## where .phi. represents a roll angle of the unmanned aerial vehicle, .theta. represents a pitch angle of the unmanned aerial vehicle, .psi. represents a yaw angle of the unmanned aerial vehicle, and z represents an altitude of the unmanned aerial vehicle, e.sub.x.sub.a representing control error, and .LAMBDA. being a positive definite constant matrix such that y= .sub.x.sub.a+.LAMBDA.e.sub.x.sub.a, where y is a filtered tracking error, and x is a vector defined as x=[e.sub.x.sub.a.sup.Te.sub.x.sub.a.sup.Tx.sub.a.sub.d.sup.T{dot over (x)}.sub.a.sub.d.sup.T{umlaut over (x)}.sub.a.sub.d.sup.T].sup.T, where T is a period of a periodic orbit of the slung load;

(b) establishing a two level neural network such that f(x)=W.sup.T.sigma.(V.sup.Tx)+.epsilon., where W and V are neural network weights, .sigma. represents the sigmoid function, and .epsilon. being a known bound;

(c) calculating a neural network estimate of f(x), {circumflex over (f)}(x), as {circumflex over (f)}(x)= .sup.T.sigma.({circumflex over (V)}.sup.Tx), where and {circumflex over (V)} are actual values of the neural network weights W and V, respectively, given by a tuning algorithm;

(d) providing a control input .tau. for the unmanned aerial vehicle as .tau.= .sup.T.sigma.({circumflex over (V)}.sup.Tx)+K.sub.vy, where K.sub.v is a feedforward gain; and

(e) providing additional anti-swing control input to the unmanned aerial vehicle to correct for a slung load as x.sub.cor=K.sub.xcL.phi..sub.L(t-.tau..sub.xc) and y.sub.cor=K.sub.ycL.phi..sub.L(t-.tau..sub.yc), wherein x.sub.cor and y.sub.cor are additional longitudinal and lateral displacements, respectively, K.sub.xc and K.sub.yc are, respectively, longitudinal and lateral feedback gains, L is a load cable length, .phi..sub.L is a load angle in an x-z plane, t is time, and .tau..sub.xc and .tau..sub.yc are, respectively, longitudinal and lateral time delays introduced in the feedback of the load angle.

These and other features of the present invention will become readily apparent upon further review of the following specification.


КРАТКОЕ ОПИСАНИЕ РИСУНКОВ



FIG. 1 is a block diagram illustrating an overview of an embodiment of an adaptive control method for an unmanned aerial vehicle (UAV) with a slung load according to the present invention.

FIG. 2 diagrammatically illustrates an embodiment of a neural network (NN) architecture used in embodiments of an adaptive control method for an unmanned aerial vehicle with a slung load according to the present invention.

FIG. 3 is a block diagram illustrating system components for implementing embodiments of an adaptive control method for an unmanned aerial vehicle with a slung load according to the present invention.

FIG. 4 diagrammatically illustrates an exemplary aircraft for modeling dynamics of an aerial vehicle with a slung load.

FIG. 5 diagrammatically illustrates the exemplary aircraft of FIG. 4 for modeling dynamics of an aerial vehicle with a slung load.

Unless otherwise indicated, similar reference characters denote corresponding features consistently throughout the attached drawings.


ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНЫХ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ



In the present method, a feedback linearization controller (FLC) is used to perform vertical take off, hovering and landing of an unmanned vehicle with a slung load, such as a quadrotor drone or the like. To achieve hover condition, the attitude angles and the position have to be stabilized. The outputs of the controller are the set of variables (x, y, z, .phi., .theta., .psi.), where x, y and z are three-dimensional Cartesian coordinates, .phi. represents roll, .theta. represents pitch, and .psi. represents yaw. However, selecting all six outputs makes the system under-actuated, as there are only four inputs. Additionally, a coupling problem also exists, thus the output vector in the present method is selected to simply be (.phi., .theta., .psi., z), where the Cartesian z-coordinate represents altitude. Additionally, it should be noted that the drag and gyroscopic terms cannot be neglected, and are each considered in order to achieve complete stability. Thus, the present control method involves double loop architecture, as illustrated in FIG. 1, where the overall controller 10 includes an inner loop having an inner controller 12, which is responsible for controlling the attitude angles and the altitude, and an outer loop having an outer controller 14 is responsible for providing the inner controller 12 with the desired angle values. The inner controller 12 needs to be much faster than the outer controller 14 in order to achieve stability. These four states (.phi., .theta., .psi., z), or three states (.phi., .theta., z), are selected as outputs and the feedback linearization technique is used. It should be noted that Newton's notation for time derivatives is used herein. For example, {dot over (.phi.)} represents

d.phi.d ##EQU00005## where t is time, and {umlaut over (.phi.)} represents

d.times..phi.d ##EQU00006##

In the following, the position of the body frame of an unmanned aerial vehicle (UAV) 104, such as a quadrotor or the like, with respect to the frame of the Earth is denoted by the vector .xi.=[x,y,z].sup.T, and the orientation in angular position of the body frame with respect to the Earth frame is denoted by .eta.=[100 ,.theta.,.psi.].sup.T, which represent pitch, roll and yaw, respectively. The translational and rotational movement of the quadrotor with respect to the Earth inertial frame can be described by using the combined vector .xi. and .eta.; i.e., q=[.xi..sup.T.eta..sup.T].sup.T.

For the system, the inertia matrix is given by

##EQU00007## and the transformation matrix is given by

.eta..times..times..theta..times..times..phi..times..times..phi..times..t- imes..theta..times..times..phi..times..times..phi..times..times..times..ti- mes..theta. ##EQU00008## A matrix is defined such that M.sub..eta.=W.sup..eta..sup.TIW or

.eta..times..times..times..theta..times..times..phi..times..times..phi..t- imes..times..times..phi..times..times..times..times..phi..times..times..ti- mes..times..theta..times..times..times..theta..times..times..times..phi..t- imes..times..times..times..phi..times..times..times..times..theta..times..- times..theta..times..times..phi..times..times..times..theta..times..times.- .PHI..times..times..times..theta. ##EQU00009## where the following convention is used: S(.) and C(.) represent the sine and cosine functions, respectively.

Further, in what follows, F.sub..xi. and .tau..sub..eta. represent the translational forces and the torques, respectively. The drag is represented by the matrices D.sub..eta. and D.sub..xi., where k.sub.t is the translational drag and k.sub.r is the rotational drag, such that

.eta..times. ##EQU00010## and

.xi..times. ##EQU00011##

The translational dynamics for the system, discounting the slung load, which will be addressed in detail below, are described by M.sub..xi.{umlaut over (.xi.)}+G.sub..xi.+D.sub..xi.{dot over (.xi.)}=R.sub.BIuA.sub.1, where M.sub..xi. is a mass term, such that

.xi. ##EQU00012## and G.sub..xi. is a gravitational term, such that

.xi..times..times. ##EQU00013## and A.sub.1 is used for simplification, where

##EQU00014## Similarly, these equations can be used for the rotational dynamics, such that M.sub..eta.{umlaut over (.eta.)}+C.sub..eta.(.eta.,{dot over (.eta.)}){dot over (.eta.)}+D.sub..eta.{dot over (.eta.)}=.tau..sub..eta., where

.eta..function..eta..eta. ##EQU00015## where c.sub.11=0; c.sub.12=(I.sub.yy-I.sub.zz)({dot over (.theta.)}C.phi.S.phi.+{dot over (.psi.)}S.sup.2.phi.C.theta.)+(I.sub.zz-I.sub.yy){dot over (.psi.)}C.sup.2.phi.C.theta.-I.sub.xx{dot over (.psi.)}C.theta.; c.sub.13=(I.sub.zz-I.sub.yy){dot over (.psi.)}C.phi.S.phi.C.sup.2.theta.; c.sub.21=(I.sub.zz-I.sub.yy)({dot over (.theta.)}C.phi.S.phi.+{dot over (.psi.)}S.sup.2.phi.C.theta.)+(I.sub.yy-I.sub.zz){dot over (.psi.)}C.sup.2.phi.C.theta.+I.sub.xx{dot over (.psi.)}C.theta.; c.sub.22=(I.sub.zz-I.sub.yy){dot over (.phi.)}C.phi.S.phi.; c.sub.23=-I.sub.xx{dot over (.psi.)}S.phi..theta.C.theta.+I.sub.yy{dot over (.psi.)}S.sup.2.phi.C.theta.S.theta.+I.sub.yy.psi.C.sup.2.PHI.S.thet- a.C.theta.; c.sub.31=(I.sub.yy-I.sub.zz){dot over (.psi.)}C.phi.S.phi.C.sup.2.theta.-I.sub.xx{dot over (.theta.)}C.theta.; c.sub.32=(I.sub.zz-I.sub.yy)({dot over (.theta.)}C.phi.S.phi.S.theta.+{dot over (.psi.)}S.sup.2.phi.C.theta.)+(I.sub.yy-I.sub.zz){dot over (.phi.)}C.sup.2.phi.C.theta.+I.sub.xx{dot over (.psi.)}S.theta.C.theta.-I.sub.yy{dot over (.psi.)}S.sup.2.phi.S.theta.C.theta.-I.sub.zz{dot over (.psi.)}C.sup.2.phi.S.theta.C.theta.; and c.sub.33=(I.sub.yy-I.sub.zz){dot over (.phi.)}C.phi.S.phi.C.sup.2.theta.-I.sub.yy{dot over (.theta.)}S.sup.2.phi.S.theta.C.theta.-I.sub.zz{dot over (.theta.)}C.sup.2.phi.S.theta.C.theta.+I.sub.xx{dot over (.theta.)}C.theta.S.theta.. Combining the rotational and translational matrices yields the overall dynamic equation M{umlaut over (q)}+C{dot over (q)}+D{dot over (q)}+G=.tau., where M is the inertia matrix, C is the matrix containing the centrifugal and Coriolis terms, D represents the drag term and G is the gravitational matrix.

For ease of understanding, the dynamics may also be represented in the space state format, where p, q and r represent the angular velocities, such that: {dot over (.PHI.)}=p+q sin .phi. tan .theta.+r cos .phi. tan .theta.; {dot over (.theta.)}=q cos .phi.-r sin .phi.;

.psi..times..times..times..times..phi..times..times..times..times..phi..t- imes..times..theta. ##EQU00016##

.function..times..times..times..times..OMEGA..tau. ##EQU00017##

.function..times..times..times..times..OMEGA..tau. ##EQU00018##

.function..times..tau. ##EQU00019## {dot over (x)}=v.sub.x; {dot over (y)}=v.sub.y; =v.sub.z;

.times..times..phi..times..times..times..times..theta..times..times..time- s..times..psi..times..times..phi..times..times..times..times..psi..times..- times. ##EQU00020##

.times..times..phi..times..times..times..times..theta..times..times..time- s..times..psi..times..times..phi..times..times..times..times..psi..times..- times. ##EQU00021##

.times..times..times..times..phi..times..times..times..times..theta..time- s..times..times..times. ##EQU00022##

As will be described in greater detail below, the inner loop inner controller 12 utilizes a two layer neural network. Essentially, as will be described in greater detail below, the overall adaptive control method includes the following steps:

(a) establishing a feedback linear controller, such that f(x)=M.sub.b({umlaut over (x)}.sub.a.sub.d+.LAMBDA. .sub.x.sub.a)+C.sub.b({dot over (x)}.sub.a.sub.d+.LAMBDA.e.sub.x.sub.a)+D.sub.b{dot over (x)}.sub.a+G.sub.b, where f(x) is a control dynamics input for an unmanned aerial vehicle, x.sub.a.sub.d is a vector representing desired roll, pitch, yaw and altitude for the unmanned aerial vehicle based on a desired corresponding trajectory, M.sub.b is an inertia matrix associated with the unmanned aerial vehicle, C.sub.b is a centrifugal force and coriolis force matrix associated with the unmanned aerial vehicle, D.sub.b is a drag force matrix associated with the unmanned aerial vehicle, and G.sub.b is a gravitational vector, {dot over (x)}.sub.a being a velocity vector such that

.phi..theta..psi. ##EQU00023## where .phi. represents a roll angle of the unmanned aerial vehicle, .theta. represents a pitch angle of the unmanned aerial vehicle, .psi. represents a yaw angle of the unmanned aerial vehicle, and z represents an altitude of the unmanned aerial vehicle, e.sub.x.sub.a representing control error, and .LAMBDA. being a positive definite constant matrix such that y= .sub.x.sub.a+.LAMBDA.e.sub.x.sub.a, where y is a filtered tracking error, and x is a vector defined as

.times..times..times..times. ##EQU00024## where T is a period of a periodic orbit of the slung load;

(b) establishing a two level neural network such that f(x)=W.sup.T.sigma.(V.sup.Tx)+.epsilon., where W and V are neural network weights, .sigma. represents the sigmoid function, and .epsilon. being a known bound;

(c) calculating a neural network estimate of f(x), {circumflex over (f)}(x), as {circumflex over (f)}(x)= .sup.T.sigma.({circumflex over (V)}.sup.Tx), where and {circumflex over (V)} are actual values of the neural network weights W and V, respectively, given by a tuning algorithm;

(d) providing a control input .tau. for the unmanned aerial vehicle as .tau.= .sup.T.sigma.({circumflex over (V)}.sup.Tx)+K.sub.vy, where K.sub.v is a feedforward gain; and

(e) providing additional anti-swing control input to the unmanned aerial vehicle to correct for a slung load as x.sub.cor=K.sub.xcL.phi..sub.L(t-.tau..sub.xc) and y.sub.cor=K.sub.ycL.phi..sub.L(t-.tau..sub.yc), wherein x.sub.cor and y.sub.cor are additional longitudinal and lateral displacements, respectively, K.sub.xc and K.sub.yc are, respectively, longitudinal and lateral feedback gains, L is a load cable length, .phi..sub.L is a load angle in an x-z plane, t is time, and .tau..sub.xc and .tau..sub.yc are, respectively, longitudinal and lateral time delays introduced in the feedback of the load angle.

For the inner loop inner controller 12, a subsystem of the state variables (.phi., .theta., .psi., p, q, r, z, ) is considered, where p, q and r are vehicle angular velocities and is the time rate of change of altitude. The dynamics of these can be expressed as: {dot over (x)}=f( x)+h( x)u.sub.h. (17) The dynamics of the selected outputs are:

.phi..theta..psi..times..times..times..times..phi..times..times..times..t- imes..theta..times..times..times..times..phi..times..times..times..times..- theta..times..times..times..times..phi..times..times..times..times..phi..t- imes..times..theta..function..times..times..times..times..phi..times..time- s..times..times..phi. ##EQU00025## It can be seen that the dynamic of the selected state variables is independent of u.sub.h, and this is helpful in computing the second derivative. This is denoted as:

.function..times..times..times..times..phi..times..times..times..times..t- heta..times..times..times..times..phi..times..times..times..times..theta..- times..times..times..times..phi..times..times..times..times..phi..times..t- imes..theta..function..times..times..times..times..phi..times..times..time- s..times..phi. ##EQU00026## Computing the second derivative of the outputs yields:

d.function.d.differential..function..differential..times..differential..f- unction..differential..times..function..differential..function..differenti- al..times..function..times. ##EQU00027## The Jacobian matrix is defined as:

.function..differential..function..differential. ##EQU00028## Substitution of the Jacobian into equation (20) yields: {umlaut over (x)}.sub.a=J( x)f( x)+J( x)h( x)u.sub.h. (22)

Letting .phi..sub.d, .theta..sub.d, .psi..sub.d and z.sub.d be the desired outputs, denoted as x.sub.a.sub.d, then the error is defined as: e.sub..phi.=.phi.-.phi..sub.d (23) e.sub..theta.=.theta.-.theta..sub.d (24) e.sub..psi.=.psi.-.psi..sub.d (25) e.sub.z=z-z.sub.d. (26) The control inputs can be written as:

.tau..tau..tau..function..times..function..times..function..times..functi- on..function..times..function..function..times..times. ##EQU00029## where Kp.sub.i and Kd.sub.i are positive, so that the error dynamics can be written as a stable second order dynamics. The desired values .psi..sub.d and z.sub.d are selected as per the choice of the specific mission. However, the desired values .psi..sub.d and .theta..sub.d are given to the inner loop inner controller 12 by the outer loop outer controller 14, so that the position x and y are also stabilized.

To estimate the gyroscopic torque term, the propeller speeds must be estimated. These are given by the following relation of the inputs with the propeller speeds:

.tau..tau..tau..function. ##EQU00030## The propeller speeds are then estimated by inverting the matrix and taking a square root. After this, .OMEGA. is estimated as: .OMEGA.=.OMEGA..sub.1.OMEGA..sub.2+.OMEGA..sub.3-.OMEGA..sub.4. (29) This aids in estimating the gyroscopic torque and, thus, the controller stabilizes the quadrotor with these torques acting on it. This may also be written as a set of dynamic equations of selected outputs x.sub.a: M.sub.x.sub.a{umlaut over (x)}.sub.a+C.sub.x.sub.a{dot over (x)}.sub.a+D.sub.x.sub.a{dot over (x)}.sub.a+G=B.sub.x.sub.a.tau..sub.x.sub.a, (30) where

.times..times..phi..times..times..times..times..theta. ##EQU00031## Pre-multiplying both sides of the above by the inverse of the input matrix B.sub.x.sub.a, the equation now becomes: M.sub.b{umlaut over (x)}.sub.a+C.sub.b{dot over (x)}.sub.a+D.sub.b{dot over (x)}.sub.a+G.sub.b=.tau..sub.x.sub.a, (32) where M.sub.b=B.sub.x.sub.aM.sub.x.sub.a, C.sub.b=B.sub.x.sub.aC.sub.x.sub.a, D.sub.b=B.sub.x.sub.aD.sub.x.sub.a and G.sub.b=B.sub.x.sub.aG. The filtered tracking error is defined as: y= .sub.x.sub.a+.LAMBDA.e.sub.x.sub.a, (33) where .LAMBDA. is a positive definite constant matrix. Then, the FLC is given by: .tau..sub.x.sub.a=K.sub.vy+M.sub.b({umlaut over (x)}.sub.a+.LAMBDA. .sub.x.sub.a)+C.sub.b({dot over (x)}.sub.a+.LAMBDA.e.sub.x.sub.a)+D.sub.b{dot over (x)}.sub.a+G.sub.b, (34) where K.sub.v is a positive diagonal design matrix. As long as the filtered error y is bounded, the error remains bounded.

For the outer loop outer controller 14, the motion of the quadrotor in the horizontal direction is due to the horizontal components of the thrust forces. The roll and pitch angles are important for the horizontal components of the thrust forces and, therefore, to reach a desired position for x and y, desired values of .phi..sub.d and .theta..sub.d are to be generated by the outer loop. Further, the inner loop inner controller 12 must be much faster than the outer loop outer controller 14 for the overall control structure to be stable. Considering a subsystem of the states (x, y, {dot over (x)}, {dot over (y)}) and letting .phi..sub.d and .theta..sub.d be small angles, then:

.phi..theta..function..psi..psi..psi..psi..times..times..times..times..ti- mes..times..times. ##EQU00032## where Kd.sub.0 and Kp.sub.0 are both positive constants and give a stable second order error dynamics for the horizontal displacement. These desired values of .phi..sub.d and .theta..sub.d are the desired inputs to the inner controller. Therefore, the inner controller 12 stabilizes the quadrotor at a desired altitude and yaw angle and then the outer loop outer controller 14 stabilizes it to a desired location in the x and y directions.

A two-layered neural network (NN) is used for function approximation. The advantage of this two layered NN is that it does not require any pre-selection of a basis set. Further, the restriction of linearity in parameters is overcome. The first layer weights allow the NN to train its own basis set for the system non-linearities. These weights are tuned by different algorithms, but the algorithm used in the present method is back propagation with a modified tuning algorithm. No preliminary offline training is required in this type of NN and, further, the problem of net weight initialization is not a matter of concern in this approach. The initial weight updates are selected as zero. While the weights are trained online in real time, the proportional derivative (PD) tracking loop carries out its tracking, keeping the error small. When the NN gets trained, the tracking error reduces. The modification in the tuning algorithm is done to improve robustness to disturbances and estimation errors.

The architecture of the neural network used in the present method is show in FIG. 2, where .sigma.(.) is the activation function, and can any one of a hard limit, a linear threshold, a hyperbolic tangent, a radial basis function, etc., and V and W are the weights of the respective layers. The activation function is selected depending upon different applications. The purpose of the activation function is to model the behavior of the cell where there is no output below a certain value of the argument of .sigma.(.) and the output takes a specified magnitude above that value. A general class of monotonously, non-decreasing functions taking on bounded values at +.infin. and -.infin. is known as the sigmoid function, given as

.sigma..function. ##EQU00033## It is possible to construct the NN with multiple hidden layers, however the computational load increases with the number of hidden layers and the number of neurons. A simple NN with two layers can form the most the complex decisions for classifications. Thus, a two layer NN is sufficient to perform all the estimations in many applications. The use of additional layers will only complicate and increase the computational load, which is undesirable. Thus, a two layer NN is selected to increase the speed of computation.

The unmanned aerial vehicle (UAV) 104 inner loop inner controller 12 can be described by: M.sub.b{umlaut over (x)}.sub.a+C.sub.b{dot over (x)}.sub.a+D.sub.b{dot over (x)}.sub.a+G.sub.b=.tau.. (36) The tracking error and the filtered tracking error are defined by e.sub.x.sub.a=x.sub.a.sub.d-x.sub.ay= .sub.x.sub.a+.LAMBDA.e.sub.x.sub.a, thus the dynamics, in terms of the filtered error, can be expressed as: M.sub.b{dot over (y)}=-C.sub.by+f(x)-.tau., (37) where the unknown nonlinear UAV dynamics are defined as: f(x)=M.sub.b({umlaut over (x)}.sub.a.sub.d+.LAMBDA. .sub.x.sub.a)+C.sub.b({dot over (x)}.sub.a.sub.d+.LAMBDA.e.sub.x.sub.a)+D.sub.b{dot over (x)}.sub.a+G.sub.b. (38) Here, the vector x can be defined as:

.times..times..times..times. ##EQU00034## According to the universal approximation property of NNs, there is a two layer NN such that: f(x)=W.sup.T.sigma.(V.sup.Tx)+.epsilon., (40) with the approximation error bounded on a compact set by: .parallel..epsilon..parallel.<.epsilon..sub.N, (41) with the .epsilon. a known bound. W and V are the ideal weights which provide good approximation to f(x) and they are unknown. All that is needed is that they exist and there is also no restriction that they have to be unique. Defining the matrix with the neural network weights as:

##EQU00035## then the number of hidden layer neurons is selected by running trials until a good performance is achieved. In a simulation performed, the number of neurons was selected as 10, for example.

It is assumed that on any compact subset of R.sup.n, the ideal NN weights are bounded so that: .parallel.Z.parallel..ltoreq.Z.sub.B, (43) where Z.sub.B is known. Letting an NN estimate of f(x) be given by f(x)= .sup.T.sigma.({circumflex over (V)}.sup.Tx) (44) with and {circumflex over (V)} being the actual values of the NN weights given by the tuning algorithm, then these are estimates of the ideal weights, and the weight deviation or weight estimation error is defined as: {tilde over (V)}=V-{circumflex over (V)} (45a) {tilde over (W)}=W- (45b) {tilde over (Z)}=Z-{circumflex over (Z)}. (45c) The linearity in parameters restriction is overcome by providing tuning algorithms which appear in a non-linear fashion. The hidden layer output error for a given x is given by: {tilde over (.sigma.)}=.sigma.-{circumflex over (.sigma.)}=.sigma.(V.sup.Tx)-.sigma.({circumflex over (V)}.sup.Tx). (46) The Taylor series expansion of .sigma.(x) for a given x can be written as: .sigma.(V.sup.Tx)=.sigma.({circumflex over (V)}.sup.Tx)+.sigma.'({circumflex over (V)}.sup.Tx){tilde over (V)}.sup.Tx+0({tilde over (V)}.sup.Tx).sup.2, (47) where

.sigma.'.function.d.sigma..function.d ##EQU00036## {tilde over (.sigma.)}={circumflex over (.sigma.)}'{tilde over (V)}.sup.Tx+0({tilde over (V)}.sup.Tx).sup.2 (49)

and O(z).sup.2 denotes terms of second order. This equation is very important, since the non-linear term in {tilde over (V)} is replaced by a linear term and higher order terms. This allows derivation of the tuning algorithm for {tilde over (V)}. The control input is now selected as: .tau.= .sup.T.sigma.({circumflex over (V)}.sup.Tx)+K.sub.vy, (50) where K.sub.v is the feedforward gain, which is selected by the designer. The NN weight tuning algorithms are given by: {circumflex over ({dot over (W)})}=F{circumflex over (.sigma.)}y.sup.T and (51) {circumflex over ({dot over (V)})}=Gx({circumflex over (.sigma.)}'.sup.T y).sup.T, (52) where the design parameters F and G are positive definite matrices.

Letting the desired trajectory be bounded by a known bound, and the NN weights also bounded by a known assumption and with the weight tuning algorithms provided above with any constant matrices F=F.sup.T>0 and G=G.sup.T>0, then the filtered error y(t) and the NN weight estimates {circumflex over (V)} and are uniformly ultimately bounded. Moreover, the tracking error can be kept very small by proper selection of K.sub.v.

The conversion of the NN estimates to the actual angular velocity of the rotor (i.e., the input) is performed as: a) provide the error and reference trajectory and its derivatives; b) provide the weights V and W in the layers of the NN to form f(x); c) update the weights online to give {circumflex over (f)}(x), where {circumflex over (f)}(x) is the estimate of the dynamics, which is used to obtain the torques .tau., which are related to the lifting forces f.sub.i of the propellers; and d) the f.sub.i values are related to the angular speed.

Time-delayed feedback control, or time-delay autosynchronization, constructs a control value from the difference of the present state of a given system to its delayed value, i.e., s(t)-s(t-.tau..sub.cor). By proper selection of the time delay .tau..sub.cor, the control value vanishes if the state to be stabilized converges. Thus, this method is noninvasive. This feedback scheme is easy to implement in an experimental setup and numerical calculation. It is capable of stabilizing fixed points as well as periodic orbits, even if the dynamics are very fast. Also, from a mathematical perspective, it is an appealing instrument, since the corresponding equations fall in the class of delay differential equations.

A very minimal knowledge of the system is required. The only quantity of the system that needs to be known is the period T of the periodic orbit of the slung load, which determines the choice of the time delay. Instead of time-delayed feedback, it is tempting to use proportional feedback, where the control is given by the difference of the current state to the desired state, however this is a complicated process and is numerically exhaustive. Time-delayed feedback has been successfully employed in the context of chaos control, for example.

The time-delayed feedback gives a correction trajectory which adds to the reference trajectory. This correction trajectory is given by the equations: x.sub.cor=K.sub.xcL.phi..sub.L(t-.tau..sub.xc) and (53) y.sub.cor=K.sub.ycL.theta..sub.L(t-.tau..sub.yc). (54) These two trajectories act as anti-trajectories to the load angles, and these are added to the reference tracking trajectories of the UAV 104. This helps in stabilizing the load angles. The parameters are K.sub.xc, K.sub.yc, .tau..sub.xc and .tau..sub.yc. The feedback gain and the time delay are selected accordingly to stabilize the angles as fast as possible. The optimal values of these can, however, be selected by using optimization algorithms. The values of the gains are selected as K.sub.xc=K.sub.yc=0.4L, and the time delay is selected as .tau..sub.xc=.tau..sub.yc=0.32T.sub.L, where T.sub.L is given by

.times..times..pi. ##EQU00037## and is the period of oscillation of the suspended load.

With regard to fault tolerant control, a case of failure of one rotor is considered. An assumption is made that a Fault Detection and Isolation (FDI) module is present, which detects and isolates the faults whenever they occur. For example, if rotor #2 fails and there is no lifting force provided by it, then the quadrotor is left with only three rotors to provide the thrust and movement. The rotor on the same axis (which is rotor #4) is controlled until the pitch angle becomes zero. This leaves the quadrotor with only two rotors spinning in one direction, thus making the quadrotor rotate about its vertical axis or in the yaw angle. This is acceptable because the other attitude angles and the altitude are stabilized. The outputs will be (x, y, z, .phi., .theta.). The angle .psi. is the yaw angle and it is compromised in the control strategy, so it will not be considered as the output. The control method involves a double loop architecture, where the inner loop inner controller 12 is responsible to control the attitude angles .phi. and .theta. and the altitude z, and the outer loop outer controller 14 is responsible for providing the inner loop inner controller 12 with the desired angle values .phi..sub.d and .theta..sub.d. Three states (.phi., .theta., z) are selected as outputs, and feedback linearization is used. Below, the convention .omicron..sub.f represents a fault condition. The input vector is:

.tau..tau. ##EQU00038## The above procedure, which was developed for normal operation, is used, except that the angle is not controlled and the input .tau..sub.p is calculated as:

.tau..times..tau. ##EQU00039##

It should be understood that the calculations and sets of instructions can be performed by any suitable computer system, such as that diagrammatically shown in FIG. 3. Data and instructions for embodiments of adaptive control for an unmanned vehicle with a slung load, such as for the UAV 104 with a slung load, is/are entered into a controller 100, such as the overall controller 10 including the inner controller 12 and the outer controller 14, via any suitable type of interface 116, and can be stored in memory 112, which can be any suitable type of computer readable and programmable memory and is desirably a non-transitory, computer readable storage medium. Calculations are performed by a processor 114, which can be any suitable type of computer processor and can be displayed to a user on a display 118, which can be any suitable type of computer display or other type of suitable display, such as a light emitting diode (LED) display.

The processor 114 can be associated with, or incorporated into, any suitable type of computing device, for example, a personal computer, a programmable logic controller (PLC) or an application specific integrated circuit (ASIC), for example. The display 118, the processor 114, the memory 112 and any associated computer readable recording media are in communication with one another by any suitable type of data bus, as is well known in the art.

Examples of computer-readable recording media include non-transitory storage media, a magnetic recording apparatus, an optical disk, a magneto-optical disk, and/or a semiconductor memory (for example, RAM, ROM, etc.). Examples of magnetic recording apparatus that can be used in addition to the memory 112, or in place of the memory 112, include a hard disk device (HDD), a flexible disk (FD), and a magnetic tape (MT). Examples of the optical disk include a DVD (Digital Versatile Disc), a DVD-RAM, a CD-ROM (Compact Disc-Read Only Memory), and a CD-R (Recordable)/RW. It should be understood that non-transitory computer-readable storage media include all computer-readable media, with the sole exception being a transitory, propagating signal.

It is to be understood that the present invention is not limited to the embodiments described above, but encompasses any and all embodiments within the scope of the following claims.

* * * * *


Яндекс.Метрика