UAV autonomous swarm formation rotation control method based on simulated migratory bird evolutionary snowdrift game

Abstract

A UAV autonomous swarm formation rotation control method based on a simulated migratory bird evolutionary snowdrift game includes steps of: Step 1: initializing; Step 2: determining flight mode based on a migratory bird evolutionary snowdrift game; Step 3: determining the leader and its position relative to corresponding wing UAV; Step 4: running UAV model; and Step 5: determining whether to end simulation. The present invention is to provide a distributed UAV autonomous swarm formation rotation control method, so as to improve robustness and adaptability of the UAV in autonomous swarm formation rotation, thus effectively improving long-range mission execution capability of the UAV.

Claims

1. A UAV (Unmanned Aerial Vehicle) autonomous swarm formation rotation control method based on a simulated migratory bird evolutionary snowdrift game, comprising steps of: Step 1: initializing: randomly generating initial states of N UAVs, comprising a position P.sup.i, a horizontal speed V.sup.i, and a heading angle ?.sup.i, wherein i is a UAV index, P.sup.i=(X.sup.i, Y.sup.i), X.sup.i and Y.sup.i are respectively a horizontal coordinate and a vertical coordinate of the UAV i in a ground coordinate system; setting an index of a leader of each of the UAVs to N.sub.lead.sup.i=0, setting a current simulation time to t=0, setting a simulation counter to n=1, setting a rotation counter to Count=1, and setting a game counter to n.sub.1=0; wherein only when no UAV j satisfies X.sup.j?X.sup.i and Y.sup.j?Y.sup.i, a flight mode identifier Flag.sub.lead.sup.i(n) of the UAV i is 1, to strategy S.sup.d(n) of the UAV i is 1, and a reverse strategy S.sub.r.sup.d(n) of the UAV i is 0; otherwise, the flight mode identifier Flag.sub.lead.sup.i(n) is 0, the strategy S.sup.d(n) is 0, and the reverse strategy S.sub.r.sup.i(n) is 1; Step 2: determining a flight mode based on a migratory bird evolutionary snowdrift game: wherein if the simulation counter n>1 and the Count is less than a maximum limit Count.sub.max of the rotation counter, then the rotation counter is increased by one, and the strategy, the reverse strategy and the flight mode identifier remain unchanged, which are Count=Count+1, S.sup.i(n)=S.sup.i(n?1), S.sub.r.sup.i(n)=S.sub.r.sup.i(n?1), Flag.sub.lead.sup.i(n)=Flag.sub.lead.sup.i(n?1), and a Step 3 is executed; wherein if Count=Count.sub.max, then the rotation counter is set to one, a neighbor strategy set S.sub.n.sup.i of the UAV i is cleared, and the game counter is increased by one, which are Count=1, S.sub.n.sup.i=?, n.sub.1=n.sub.1+1; only when no UAV j satisfies X.sup.j?X.sup.i and Y.sup.j?Y.sup.i, the strategy S.sup.i(n) is 0, the reverse strategy S.sub.r.sup.i(n) is 1, a memory strategy S.sub.m.sup.i(n.sub.1) of the UAV i is 0, and the flight mode identifier Flag.sub.lead.sup.i(n) is 0, then a Step 4 is executed; otherwise, a swarm consisting of the N UAVs is treated as a migratory bird flock, wherein a UAV i is a migratory bird i , a leader N.sub.lead.sup.j of the UAV i is a leader N.sub.lead.sup.i of the migratory bird i , the strategy S.sup.i(n) and the reverse strategy S.sub.r.sup.i(n) of the UAV i are respectively a strategy S.sup.i(n) and a reverse strategy S.sub.r.sup.i(n) of the migratory bird i in an evolutionary snowdrift game; wherein if there is a migratory bird j satisfies N.sub.lead.sup.j=i, the strategy of a migratory bird j is stored in a neighbor strategy set of the migratory bird i, which is S.sup.j(n) ?S.sub.n.sup.i, if the migratory bird i has a leader, which is N.sub.lead.sup.i?0, the strategy of the migratory bird N.sub.lead.sup.i is stored in the neighbor strategy set of the migratory bird i, which is S.sub.lead.sup.N(n) ?S.sub.n.sup.i, a real snowdrift game payoff B.sup.i of the migratory bird i is calculated according to the strategy S.sup.i(n) and a neighbor strategy S.sub.n.sup.i of the migratory bird i: B i = { 1 + r 1 , if .Math. .Math. S i ? ( n ) = 0 , 1 ? S n i 1 , if .Math. .Math. S i ? ( n ) = 1 , 1 .Math. S n i 1 - r 2 , if .Math. .Math. S i ? ( n ) = 1 , 1 ? S n i 0 , if .Math. .Math. S i ? ( n ) = 0 , 1 .Math. S n i ( 1 ) wherein r.sub.1 is a benefit coefficient of a non-cooperator encountering cooperators, r.sub.2 is a cost coefficient of a cooperator encountering cooperators; virtual snowdrift game payoff of the migratory bird i is calculated according to the reverse strategy S.sub.r.sup.i(n) and the neighbor strategy S.sub.n.sup.i of the migratory bird i: B r i = { 1 + r 1 , if .Math. .Math. S r i ? ( n ) = 0 , 1 ? S n i 1 , if .Math. .Math. S r i ? ( n ) = 1 , 1 .Math. S n i 1 - r 2 , if .Math. .Math. S r i ? ( n ) = 1 , 1 ? S n i 0 , if .Math. .Math. S r i ? ( n ) = 0 , 1 .Math. S n i ( 2 ) calculating the memory strategy S.sub.m.sup.i(n.sub.1) of the migratory bird i according to the real snowdrift game payoff B.sup.i and the virtual snowdrift game payoff B.sub.r.sup.i of the migratory bird i: S m i ? ( n 1 ) = { S i ? ( n ) , if .Math. .Math. B r i ? B i S r i ? ( n ) , if .Math. .Math. B r i > B i ( 3 ) generating a selection probability p.sub.g of snowdrift game strategies based on the memory strategy S.sub.m.sup.i, of the migratory bird i: p g = { .Math. k = 1 n 1 .Math. .Math. S m i ? ( k ) n 1 , if .Math. .Math. n 1 < L m .Math. k = n 1 - L m + 1 n 1 .Math. .Math. S m i ? ( k ) L m , if .Math. .Math. n 1 ? L m ( 4 ) wherein L.sub.m is a memory length of the snowdrift game; a random number rand is randomly generated, and the strategy S.sup.d (n) and the reverse strategy S.sub.r.sup.i(n) of the migratory bird i are generated according to the selection probability p.sub.g of the snowdrift game strategies of the migratory bird i: S i ? ( n ) = { 1 , if .Math. .Math. rand < p g 0 , if .Math. .Math. rand ? p g ( 5 ) S r i ? ( n ) = { 0 , if .Math. .Math. rand < p g 1 , if .Math. .Math. rand ? p g ( 6 ) updating the flight mode identifier Flag.sub.lead.sup.i(n) of the UAV i based on the strategy S.sup.i(n) of the migratory bird i: Flag lead i ? ( n ) = { 1 , if .Math. .Math. S i ? ( n ) = 1 0 , if .Math. .Math. S i ? ( n ) = 0 ( 7 ) Step 3: determining the leader and a position thereof relative to a corresponding wing UAV: wherein if the flight mode identifier Flag.sub.lead.sup.i(n) is 0, the UAV i is in a wing UAV mode, which selects a nearest front UAV as the leader; if there are more than one options, the UAV i selects a UAV with a smallest index as the leader; which means only when X.sup.j>X.sup.i and there is no UAV j satisfies X.sup.j>X.sup.i and R.sup.ij<R.sup.ij, or satisfies X.sup.j>X.sup.j, R.sup.ij=R.sup.ij and j<j, there is N.sub.lead.sup.i=j, wherein R.sup.ij=?{square root over ((X.sup.i?X.sup.j).sup.2+(Y.sup.i?Y.sup.j).sup.2)} is a distance between the UAV i and the UAV j; if there is no front UAV, the UAV i in the wing UAV mode selects a nearest UAV as the leader; if there are more than one options, the UAV selects the UAV with the smallest index as the leader; which means only when there is no UAV j satisfies X.sup.j>X.sup.j and there is no UAV j satisfies R.sup.ij<R.sup.ij, or satisifies R.sup.ij=R.sup.ij and j<j, there is N.sub.lead.sup.i=j, according to current positions of the UAV i and a corresponding leader N.sub.lead.sup.i, an expected forward position x.sup.i and an expected lateral position y.sup.i of the corresponding leader N.sub.lead.sup.i relative to the UAV i are calculated: x _ i = x exp ( 8 ) y _ i = { y exp , if .Math. .Math. Y i ? Y N lead i - y exp , if .Math. .Math. Y i < Y N lead i ( 9 ) wherein x.sub.exp and y.sub.exp are respectively an expected forward distance and an expected lateral distance, Y.sup.Ni.sup.lead is a vertical coordinate of the leader of the UAV i in the ground coordinate system; Step 4: running a UAV model: wherein if the flight mode identifier Flag.sub.lead.sup.i(n) is 1, the UAV i is in a leading UAV mode; a UAV state at a next simulation time is obtained according to the leading UAV model: { X . i = V i .Math. .Math. cos .Math. .Math. ? i .Math. Y . i = V i .Math. .Math. sin .Math. .Math. ? i .Math. V . i = - 1 ? V .Math. V i + 1 ? V .Math. V L C ? . i = - 1 ? ? .Math. ? i + 1 ? ? .Math. ? L C .Math. ( 10 ) wherein {dot over (X)}.sup.i, {dot over (Y)}.sup.i, {dot over (V)}.sup.i and {dot over (?)}.sup.i are respectively first-order differentials of the horizontal coordinate, the vertical coordinate, the speed, and the heading angle of the UAV i in the ground coordinate system; ?.sub.V and ?.sub.? are respectively time constants of a Mach-hold autopilot and a heading-hold autopilot; the Mach-hold autopilot control input V.sub.L, of the leading UAV is V.sub.exp, and a heading-hold autopilot control input ?.sub.L.sub.c of the leading UAV is ?.sub.exp, V.sub.exp and ?.sub.exp are respectively an expected horizontal speed and an expected heading angle of the leading UAV; if the flight mode identifier Flag.sub.lead.sup.i(n) is 0, the UAV state at next simulation time is obtained according to a wing UAV model: { [ X i Y i ] = [ X N lead i Y N lead i ] - [ cos .Math. .Math. ? i sin .Math. .Math. ? i sin .Math. .Math. ? i - cos .Math. .Math. ? i ] ? [ x i y i ] x . i = - y _ i ? ? .Math. ? i - V i + V N lead i + y _ i ? ? .Math. ? W C .Math. y . i = ( x _ i ? ? - V i ) .Math. ? i + V i .Math. ? i - x _ i ? ? .Math. ? W C .Math. V . i = - 1 ? V .Math. V i + 1 ? V .Math. V W C .Math. ? . i = - 1 ? ? .Math. ? i + 1 ? ? .Math. ? W C .Math. ( 11 ) wherein X.sup.Ni.sup.lead and V.sup.Ni.sup.lead are respectively a horizontal coordinate and a speed of the leader of the UAV i in the ground coordinate system, x.sup.i and y.sup.i are respectively a horizontal coordinate and a vertical coordinate of the UAV N.sub.lead.sup.i in an aircraft-body coordinate system of the UAV i ; the Mach-hold autopilot control input of the wing UAV is V Wc = k x p .Math. e x + k x I .Math. ? 0 t .Math. e x .Math. dt + k x D .Math. de x dt , .Math. and a heading-hold autopilot control input of the wing UAV is ? Wc = k y p .Math. e y + k y I .Math. ? 0 t .Math. e y .Math. dt + k y D .Math. de y dt , (k.sub.x.sub.p, k.sub.x.sub.I, k.sub.x.sub.D) and (k.sub.y.sub.p, k.sub.y.sub.I, k.sub.y.sub.D) are respectively PID (Proportional Integral Derivative) control parameters of a forward channel and a lateral channel, e.sub.x=k.sub.x(x.sup.i?x.sup.i)+k.sub.V(V.sup.Ni.sup.lead?V.sup.i) is an error of the forward channel, e.sub.y=k.sub.y(y.sup.i?y.sup.i)+k.sub.104 (?.sup.Ni.sup.lead??.sup.i) is an error of the lateral channel, k.sub.x, k.sub.V, k.sub.y and k.sub.? are respectively a forward error control gain, a speed error control gain, a lateral error control gain and a heading error control gain, ?.sup.Ki.sup.lead is the heading angle of the leader of the UAV i; and Step 5: determining whether to end simulation: wherein a simulation time is t=t+ts, and is is a sampling time; if t is greater than a maximum simulation time T.sub.max, the simulation ends; then a UAV swarm flight trajectory, UAV swarm formations at each rotation time, a UAV swarm horizontal speed curve and a UAV swarm heading angle curve are drawn; otherwise, the simulation returns to the Step 2.

Description

BRIEF DESCRIPTION OF THE DRAWINGS

[0030] FIG. 1 is a flow chart of UAV autonomous swarm formation rotation control based on a simulated migratory bird evolutionary snowdrift game.

[0031] FIG. 2 shows a UAV swarm flight trajectory.

[0032] FIG. 3 shows a UAV swarm formation at t=3s.

[0033] FIG. 4 shows a UAV swarm formation at t=6s.

[0034] FIG. 5 shows a UAV swarm formation at t=9s.

[0035] FIG. 6 shows a UAV swarm formation at t=12s.

[0036] FIG. 7 shows a UAV swarm horizontal speed curve.

[0037] FIG. 8 shows UAV swarm heading angle curve.

ELEMENT REFERENCE

[0038] tsimulation time; nsimulation counter Countrotation counter; iUAV index; Count.sub.maxrotation counter maximum limit; Flag.sub.lead.sup.i(n)flight mode identifier of UAV i when simulation counter is n; Nthe number of UAVs; T.sub.maxmaximum simulation time; tssampling time.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

[0039] Referring to FIGS. 1-8, effectiveness of the present invention is verified by an embodiment of a UAV autonomous swarm formation rotation control. An experimental computer is configured as Intel Core i7-6700HQ processor with 2.60 Ghz frequency, 16G memory, and MATLAB 2014a version software. The method comprises steps of:

[0040] Step 1: initializing:

[0041] randomly generating initial states of 5 UAVs, comprising positions P.sup.1 to P.sup.5 of (12.5926 m, 7.1515 m), (13.1907 m, 3.2101 m), (1.4969 m, ?3.1140 m), (3.0873 m, 3.5804 m) and (0.5687 m, ?5.9005 m) , a horizontal speed V.sup.i of 42 m/s and a heading angle ?.sup.i of 0, wherein i=1,2, . . . , 5; setting the index of the leader of each UAV to N.sub.lead.sup.i=0, setting current simulation time to t=0, setting a simulation counter to n=1, setting a rotation counter to Count=1, and setting a game counter to n.sub.1=0, wherein i=1,2, . . . , 5, in the embodiment, only when no UAV j satisfies X.sup.j?X.sup.2=13.1907 m and Y.sup.j?Y.sup.2=3.2101 m, the flight mode identifier Flag.sub.lead.sup.2(n) is 1, the strategy S.sup.2(n) is 1, and the reverse strategy S.sub.r.sup.2(n) is 0; otherwise, the flight mode identifiers Flag.sub.lead.sup.i(n) of the UAVs 1 and 3-5 are 0, the strategy S.sup.i(n) is 0, and the reverse strategy S.sub.r.sup.i(n) is 1, wherein i=1,3,4,5;

[0042] Step 2: determining flight mode based on a migratory bird evolutionary to snowdrift game:

[0043] wherein if the simulation counter n>1 and the Count is less than a maximum limit Counts.sub.max=300 of the rotation counter, then the rotation counter is increased by one, and the strategy, the reverse strategy and the flight mode identifier remain unchanged, which are Count=Count+1, S.sup.i(n)=S.sup.i(n?1), S.sub.r.sup.i(n)=S.sub.r.sup.i(n?1), Flag.sub.lead.sup.i(n)=Flag.sub.lead.sup.i(n?1), and a Step 3 is executed; w/herein i=1,2, . . . , 5; if Count=300, then the rotation counter is set to one, the neighbor strategy set S.sub.n.sup.i of UAV i is cleared, and the game counter is increased by one, which are Count=1, S.sub.n.sup.i=?, n.sub.1=n.sub.1+1; only when no UAV j satisfies X.sup.j?X.sup.iand Y.sup.j?Y.sup.i, the strategy S.sup.i(n) is 0, the reverse strategy S.sub.i.sup.d(n) is 1, the memory strategy S.sub.m.sup.i(n.sub.1) of UAV i is 0, and the flight mode identifier Flag.sub.lead.sup.i(n) is 0, then a Step 4 is executed; otherwise, a swarm consisting of the N UAVs is treated as a migratory bird flock, wherein a UAV i is a migratory bird i, the leader of the N.sub.lead.sup.j of the UAV i is the leader N.sub.lead.sup.j of the migratory bird i, the strategy S.sup.s(n) and the reverse strategy S.sub.r.sup.j(n) of the UAV i are respectively the strategy S.sup.d(n) and the reverse strategy S.sub.r.sup.i(n) of the migratory bird i in an evolutionary snowdrift game; wherein if there is a migratory bird j satisfies N.sub.lead.sup.j=i, the strategy of the migratory bird j is stored in a neighbor strategy set of the migratory bird i, which is S.sup.j(n) ?S.sub.n.sup.i, if the migratory bird i has a leader, which is N.sub.lead.sup.j16 0, the strategy of the migratory bird N.sub.lead.sup.i is stored in the neighbor strategy set of the migratory bird i, which is S.sup.Ni.sup.lead (n) ?S.sub.n.sup.i, real snowdrift game payoff B.sup.i of the migratory bird i is calculated with an equation (1) according to the strategy S.sup.i(n) and the neighbor strategy S.sub.n.sup.i of the migratory bird i; wherein a benefit r.sub.i coefficient of a non-cooperator encountering cooperators is 0.5, a cost coefficient r.sub.2 of a cooperator encountering cooperators is 0.2; virtual snowdrift game payoff B.sub.r.sup.i of the migratory bird i is calculated with an equation (2) according to the reverse strategy S.sub.r.sup.i(n) and the neighbor strategy S.sub.n.sup.i of the migratory bird i; the memory strategy S.sub.m.sup.i(n.sub.1) of the migratory bird i is calculated with an equation (3) according to the real snowdrift game payoff B.sup.i and the virtual snowdrift game payoff B.sub.r.sup.i of the migratory bird i; and a selection probability p.sub.g of snowdrift game strategies is calculated with an equation (4) based on the memory strategy S.sub.m.sup.j of the migratory bird i; wherein L.sub.m=2 is the memory length of the snowdrift game; a random number rand is randomly generated, and the strategy S.sup.i(n) and the reverse strategy S.sub.r.sup.i(n) of the migratory bird i are generated with equations (5) and (6) according to the selection probability p.sub.g of the snowdrift game strategies of the migratory bird i; and the flight mode identifier Flag.sub.lead.sup.i(n) of the UAV i is updated with an equation (7) based on the strategy S.sup.i (n) of the migratory bird i:

[0044] Step 3: determining the leader and its position relative to corresponding wing UAV:

[0045] wherein if the flight mode identifier Flag.sub.lead.sup.i(n) is 0, the UAV i is in a wing UAV mode, which selects a nearest front UAV as the leader; if there are more than one options, the UAV i selects a UAV with a smallest index as the leader; which means only when X.sup.j>X.sup.i and there is no UAV j satisfies X.sup.j>X.sup.i and R.sup.ij<R.sup.ij, or satisfies X.sup.j>X.sup.i, R.sup.ij=R.sup.ij and j<j, there is N.sub.lead.sup.i=j, wherein R.sup.ij=?{square root over ((X.sup.i?X.sup.j).sup.2+(Y.sup.i?Y.sup.j).sup.2)} is the distance between the UAV i and the UAV j; if there is no front UAV, the UAV i in the wing UAV mode selects a nearest UAV as the leader; if there are more than one options the UAV i selects the UAV with the smallest index as the leader; which means only when there is no UAV j satisfies X.sup.j>X.sup.i and there is no UAV j satisfies R.sup.ij<R.sup.ij, or satisfies and R.sup.ij=R.sup.ij and j<j, there is N.sub.lead.sup.i=j, according to current positions of the UAV i and the corresponding lead N.sub.lead.sup.i, an expected forward position x.sup.i and an expected lateral position y.sup.i of the corresponding leader N.sub.lead.sup.i relative to the UAV i are calculated with equations (8) and (9); wherein the forward expected distance x.sub.exp is 3.92 m and the lateral expected distance y.sub.exp is 1.54 m;

[0046] Step 4: finning UAV model:

[0047] wherein if the flight mode identifier Flag.sub.lead.sup.i(n) is 1, the UAV i is in a leading UAV mode; the UAV state at a next simulation time is obtained with an equation (10) according to a leading UAV model; wherein ?.sub.r=10 s and ??=1.5 s are respectively time constants of a Mach-hold autopilot and a heading-hold autopilot: V.sub.exp=42 m/s and ?.sub.exp=0 are respectively the expected horizontal speed and the expected heading angle of the leading UAV; if the flight mode identifier Flag.sub.lead.sup.i(n) is 0, the UAV state at next simulation time is obtained with an equation (11) according to a wing UAV model; wherein (k.sub.x.sub.p, k.sub.x.sub.I, k.sub.x.sub.D)=(50,50,0.1) and (k.sub.y.sub.p, k.sub.y.sub.I, k.sub.y.sub.D)=(1,0.4,0) are respectively PID control parameters of a forward channel and a lateral channel; k.sub.i=?15, k.sub.V=5, k.sub.V=4.5 and k.sub.?=50 are respectively a forward error control gain, a speed error control gain, a lateral error control gain and a heading error control gain; and

[0048] Step 5: determining whether to end simulation:

[0049] wherein the simulation time is t=t+ts, and ts=0.01 s is a sampling time; if t is greater than a maximum simulation time T.sub.max=12 s , the simulation ends; then simulation results are drawn; otherwise, the simulation returns to the Step 2. FIG. 2 shows an overall UAV swarm flight trajectory. FIGS. 3-6 show UAV swarm formations at t=3 s, 6 s, 9 s, 12 s. FIGS. 7 and 8 show an overall UAV swarm horizontal speed curve and an overall UAV swarm heading angle curve. According to UAV simulation verification, it is proven that with the UAV autonomous swarm formation rotation control method based on the simulated migratory bird evolutionary snowdrift game of the present invention, the UAV swarm can realize autonomous formation rotation.