UAV autonomous swarm formation rotation control method based on simulated migratory bird evolutionary snowdrift game
20190033893 ยท 2019-01-31
Assignee
Inventors
- Haibin Duan (Beijing, CN)
- Huaxin Qiu (Beijing, CN)
- Yimin Deng (Beijing, CN)
- Chen Wei (Beijing, CN)
- Mengzhen Huo (Beijing, CN)
- Pei LI (Beijing, CN)
- Daifeng Zhang (Beijing, CN)
- Qing Yang (Beijing, CN)
- Yankai Shen (Beijing, CN)
- Xiaobin Xu (Beijing, CN)
- Long Xin (Beijing, CN)
- Rui Zhou (Beijing, CN)
Cpc classification
B64U2201/102
PERFORMING OPERATIONS; TRANSPORTING
B64U2201/10
PERFORMING OPERATIONS; TRANSPORTING
B64U2101/05
PERFORMING OPERATIONS; TRANSPORTING
International classification
G05D1/10
PHYSICS
G05D1/00
PHYSICS
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:
Description
BRIEF DESCRIPTION OF THE DRAWINGS
[0030]
[0031]
[0032]
[0033]
[0034]
[0035]
[0036]
[0037]
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
[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.
[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
[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.
[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.