Автор работы: Пользователь скрыл имя, 29 Мая 2013 в 22:10, курсовая работа
Unmanned aerial vehicles (UAV) are widely used today. The investigation of optimal methods of collision avoidance will allow decreasing the probability of conflicts between UAVs and maintain the required safety level. The mixed-integer linear programming method is quite simple and useful for this purpose. It can be easily implemented not only in UAVs, but also in new systems of collision avoidance.
LIST OF ACRONYMS…………………………………………………………..….5
INTRODUCTION………………………………………………………..………….6
PROBLEM FORMULATION………………………………………………….8
Trajectory Design………………………………………………..8
Task Allocation…………………………………………………10
RECEDING HORIZON CONTROL USING MIXED-INTEGER LINEAR PROGRAMMING……………………………………………………………..11
Overview of the Receding Horizon Controller………………....11
Model of Aircraft Dynamics……………………………..……..12
Discrete Time System…………………………..…12
Speed Constraints…………….…………………..13
Minimum Turning Radius………………….…….16
Collision Avoidance Constraints………………………………..16
Obstacle Avoidance………….……………………17
Vehicle Avoidance……………………..…………18
Plan beyond the Planning Horizon……………………………..19
Target Visit..……………………………………………………21
Cost Function……………………………………………………23
SOFTWARE……………………………………………………………………26
MODELING AND ITS RESULTS.……..……………………………………27
Annotation……………………………………………………...27
Text of the program…………………………………………….29
Obtained graphical representations of work done………………35
CONCLUSIONS………………………………………………………………..…..40
REFERENCES…………………………………………………………………..…41
c = c + AMPLmatrix(fid,'obst',obst);
end
% defining of number of waypoints
nTarget = size(xT,1);
c = c + AMPLscalarint(fid,'nTarget',
% defining of fuel penalty
FP=0.001/(nVeh*max(Amax)*T);
c = c + AMPLscalar(fid,'FP',FP);
% defining of individual completion time penalty
ITP=0.01/nVeh;
c = c + AMPLscalar(fid,'ITP',ITP);
% big M for logical relaxations
bigM=1000;
c = c + AMPLscalarint(fid,'bigM',bigM)
% defining of initial states
State0 = x0;
c = c + AMPLmatrix(fid,'State0',
% defining of target points
StateF = xT';
c = c + AMPLmatrix(fid,'StateF',
% defining of circle approximation for speed limit
c = c + AMPLscalarint(fid,'Ncs',Ncs);
c = c + AMPLscalar(fid,'Crs',1);
% defining of speed limits
spdlimit=zeros(nVeh,2,Ncs);
for vv=[1:nVeh],
Crs = Vmax(vv)*cos(0.5*alphas);
for ii=[1:Ncs],
spdlimit(vv,1,ii)=(1/Crs)*sin(
spdlimit(vv,2,ii)=(1/Crs)*cos(
end
end
c = c + AMPLmtrx3d(fid,'spdlimit',
% defining of circle approximation for acceleration limit
c = c + AMPLscalarint(fid,'Ncf',Ncf);
c = c + AMPLscalar(fid,'Crf',1);
% defining of force limits
frclimit = zeros(nVeh,2,Ncf);
for vv=[1:nVeh],
Crf=Amax(vv)*cos(0.5*alphaf);
for ii=[1:Ncf],
frclimit(:,1,ii)=(1/Crf)*sin(
frclimit(:,2,ii)=(1/Crf)*cos(
end
end
c = c + AMPLmtrx3d(fid,'frclimit',
% check for terminal region parameters
if isempty(targetBox)
targetBox = zeros(nTarget,2);
end
c = c + AMPLmatrix(fid,'TargBox', targetBox');
% target region penalty
if isempty(targetPenalty)
targetPenalty = zeros(nTarget,2);
end
c = c + AMPLmatrix(fid,'TargPen', targetPenalty');
% capability matrix
if isempty(capab)
capab = ones(nVeh,nTarget);
end
c = c + AMPLmatrix(fid,'capab', capab);
% avoidance box
if isempty(vehBox)
vehBox = zeros(nVeh,1);
end
c = c + AMPLvector(fid,'VehBox', vehBox);
% finished writing data file
fclose(fid);
% run AMPL
!ampl Trajectory.run
% load data files
load XOPT.dat
load FTOPT.dat
% plotting
close all
figure
hold on
% parameters
nVeh = length(FTOPT);
nStep = size(XOPT,1)/nVeh;
% plot obstacles
for ii = 1:size(obst,1),
plot(obst(ii,[1 4 3 1 1]),obst(ii,[2 2 4 3 2]),'linewidth',5)
end
% plot targets
StateF=xT';
for ii=[1:size(StateF,2)],
plot(StateF(1,ii),StateF(2,ii)
text(StateF(1,ii),StateF(2,ii)
end
plotcols=['ro';'co';'bo';'go']
% shows only the segment before reaching the goal
for nn=[1:nVeh],
tF=FTOPT(nn);
pRng=[(nStep*(nn-1) + 1):(nStep*(nn-1) + 1 + tF)] ;
plot(XOPT(pRng,1), XOPT(pRng,2), ...
plotcols(nn,:),'markersize',3,
text(XOPT(pRng(1),1)-.2, XOPT(pRng(1),2)-.3,['Initial position']);
end
axis equal %specifying of equal axis on the graph
On the figures 4-2 to 4-12 the results of modeling are presented. During the modeling different initial data were used: speed of UAV, its turn rate, number of final positions, number of obstacles that must be overcome and various geometry of the obstacles. Unfortunately, because of usage of student version of AMPL CPLEX program module it was impossible to represent all possibilities of the program.
Figure 4-2: One obstacle and one final position.
Figure 4-3: One obstacle and two final positions.
Figure 4-4: One obstacle and two final positions.
Figure 4-5: Two obstacles and one final position.
Figure 4-6, 4-7: The same initial and final positions, different turn rate and speed
Figure 4-8, 4-9: The same initial and final positions but different trajectory because of different turn rates.
Figure 4-10: Final position between two obstacles.
Figure 4-11, 4-12: Obstacles of different geometry.
CONCLUSIONS
The selection of the goal is expressed in MILP form using binary variables that include other logical constraints such as collision avoidance. The point mass model captures the essential features of the aircraft dynamics such as speed and minimum turning radius constraints. The detailed analysis also clarified the effect of the time discretization. The non-convex minimum speed constraints have also been added to the problem to better capture the vehicle behavior in highly constrained environments. The effect on the computation time was also examined.
Experiments have been presented to demonstrate the use of Mixed-Integer Linear Programming for on-line replanning to control vehicles in the presence of dynamic uncertainty.
This initial set of experiments will be extended to involve more complicated scenarios. This work will include the distribution of the MILP planning process across multiple computers and transition to a greater number and variation of vehicles.
REFERENCES