【无人机】多无人协同任务分配程序平台【含Matlab源码 301期】

一、简介

多无人协同任务分配程序仿真平台

二、源代码

unction GUIMultiUAV(action,Input)
%GUIMultiUAV - function builds the GUI and contains the callback function for it
%
%  Inputs:
%    (none)

%  Outputs:
%    (none)
%

%  AFRL/VACA
%  September 2000 - Created and Debugged - RAS



global g_Debug; 
if(~exist('g_Debug')),g_Debug=0;end;
if(g_Debug==1),disp('GUIMultiUAV.m');end; 

global g_isMonteCarloStop;
global g_isMonteCarloRun;
global g_OneTimeInitialization;
global g_CommunicationMemory;

if nargin <1,
	action = 'DrawFigure';
end

% add button names, callback function names and button colors to the following cell array to add buttons to the GUI
ButtonsStrings = {
     
	{
     'Xtreme Reinitilization'},{
     ['XtremeReinitialize;']},{
     ['[1.0 1.0 0.0]']}
	{
     'Run Simulation'},{
     ['GUIMultiUAV(''RunSimulation'');']},{
     ['[0.4 0.6 0.4]']}
	{
     'Run MonteCarlo'},{
     ['GUIMultiUAV(''RunMonteCarlo'');']},{
     ['[0.4 0.6 0.4]']}
	{
     'Stop MonteCarlo'},{
     ['GUIMultiUAV(''StopMonteCarlo'');']},{
     ['[0.6 0.4 0.4]']}
	{
     'Plot Vehicle Trajectories'},{
     ['GUIMultiUAV(''PlotResults'');']},{
     ['[0.6 0.6 0.4]']}
	{
     'Print Simulation Settings'},{
     ['PrintSimulationSettings']},{
     ['[0.6 0.6 0.4]']}
	{
     'Plot Comm Avg Data Rate'},{
     ['GUIMultiUAV(''CommPlot'');']},{
     ['[0.6 0.6 0.4]']}
	{
     'Save AVDS Data'},{
     ['GUIMultiUAV(''SaveAVDSData'')']},{
     ['[0.6 0.6 0.4]']}
	{
     'Edit Globals'},{
     ['GUIMultiUAV(''EditInitializeGlobals'');']},{
     ['[0.4 0.6 0.6]']}
	{
     'Edit MonteCarlo'},{
     ['GUIMultiUAV(''EditMonteCarlo'');']},{
     ['[0.4 0.6 0.6]']}
	{
     'Edit Simulation Functions'},{
     ['GUIMultiUAV(''EditSimulationFunctions'');']},{
     ['[0.4 0.6 0.6]']}
	{
     'Edit Create Structure'},{
     ['GUIMultiUAV(''EditCreateStructure'');']},{
     ['[0.4 0.6 0.6]']}
	{
     'Edit GUI'},{
     ['GUIMultiUAV(''EditGUI'');']},{
     ['[0.4 0.6 0.6]']}
	{
     'Run VehicleTest'},{
     ['GUIMultiUAV(''RunVehicleTest'');']},{
     ['[0.4 0.6 0.4]']}
	{
     'Open MultiUAV Main (Simulink)'},{
     ['GUIMultiUAV(''OpenMultiUAV'');']},{
     ['[0.5 0.4 0.6]']}
	{
     'Open MultiUAV Library (Simulink)'},{
     ['GUIMultiUAV(''OpenCooperativeLib'');']},{
     ['[0.5 0.4 0.6]']}
};
for(CountMessages=1:g_CommunicationMemory.NumberMessages),
	ButtonsStrings{
     end+1,1} = {
     ['Messages: ' g_CommunicationMemory.Messages{
     CountMessages}.Title]};
	MessageNumberString = num2str(CountMessages);
	ButtonsStrings{
     end,2} = {
     ['GUIMultiUAV(''ShowMessage'',',MessageNumberString,');']};
	ButtonsStrings{
     end,3} = {
     ['[0.8 0.7 0.5]']};
end;	%for(CountMessages=1:g_CommunicationMemory.NumberMessages)
%add some blank buttons for spacing
%ButtonsStrings{
     end+1,1} = {
     ''}; ButtonsStrings{
     end,2} = {
     ['']}; ButtonsStrings{
     end,3} = {
     ['[0.7 0.7 0.7]']};

% moved def here for convenience with adding blank buttons
ButtonsPerColumn = 14;

switch action
	
case 'ShowMessage',
	if(~isempty(g_CommunicationMemory.Messages{
     Input}.Data)),
		fprintf(strcat(g_CommunicationMemory.Messages{
     Input}.Title,' = \n'));
		disp(g_CommunicationMemory.Messages{
     Input}.Data(:,find(g_CommunicationMemory.Messages{
     Input}.Data(1,:)~=0)));
	else,
		fprintf('****** No Messages ******\n');
	end;
	
case 'PlotResults',
	PlotOutput('PlotData',0);

case 'CommPlot',
	CommPlot(0);
	
case 'RunSimulation',
	g_isMonteCarloRun=0;
	[t,x,y] = sim('MultiUAV');%运行simulink
	
case 'RunVehicleTest',
	[t,x,y] = sim('VehicleTest');
	
case 'SaveAVDSData',
	SaveAVDSData;
	
case 'EditInitializeGlobals',
	local_edit('InitializeGlobals.m');
	
case 'EditCreateStructure',
	local_edit('CreateStructure.m');
	
case 'EditMonteCarlo',
	local_edit('MonteCarloRuns.m');
	
case 'RunMonteCarlo',
    disp(sprintf('\n'));
    disp('Luke:  All right, I''ll give it a try.');
    disp('Yoda:  No.  Try not.  Do, or do not.  *shakes head*  There is no ''try''.');
    disp('Luke:  I don''t believe it!');
    disp('Yoda:  That is why you fail.');
    disp(sprintf(['Robot Us(es):\n\tEnable by uncommenting ''MonteCarloRuns;''' ...
		  ' under ''case RunMonteCarlo''\n\tin GUIMultiUAV.m.']));

	%MonteCarloRuns;
	
case 'StopMonteCarlo',
	disp('**************************************************************************************************')
	disp('*********** Monte Carlo simulation will stop at the end of the current simulation run. ***********')
	disp('**************************************************************************************************')
	g_isMonteCarloStop = 1;
	
case 'EditSimulationFunctions',
	local_edit('SimulationFunctions.m');
	
case 'OpenMultiUAV',
	open 'MultiUAV.mdl';
	
case 'OpenCooperativeLib',
	open 'cooperative.mdl';

case 'EditGUI',
	local_edit('GUIMultiUAV.m');
	
case 'DrawFigure',
	
	[NumberButtons,dummy]=size(ButtonsStrings);
	
	NumberColumns = fix((NumberButtons-1)/ButtonsPerColumn) + 1;
	ButtonWidth = 1/NumberColumns;
	if(NumberButtons > ButtonsPerColumn),
		ButtonHeight = 1/ButtonsPerColumn;
	else,
		ButtonHeight = 1/NumberButtons;
	end;
	
	GUIHeightIncrement = 0.025;
	GUIWidthIncrement = 0.15;
	if(NumberButtons > ButtonsPerColumn),
		GUIHeight = GUIHeightIncrement * ButtonsPerColumn;
	else,
		GUIHeight = GUIHeightIncrement * NumberButtons;
	end;
	GUIWidth = GUIWidthIncrement * NumberColumns;
	GUIPositionX = 0;
	GUIPositionY = 1 - (GUIHeight + GUIHeightIncrement);
	
	h0 = figure(32);
	clf;
	set(h0,'Color',[0.8 0.8 0.8], ...
		'Name','MultiUAV Simulation', ...
		'Units','normalized', ...
		'Position', [GUIPositionX GUIPositionY GUIWidth GUIHeight], ...
		'Tag','MultiUAVFig', ...
		'NumberTitle','off', ...
		'MenuBar','none', ...
		'ToolBar','none', ...
		'DefaultaxesCreateFcn','plotedit(gcbf,''promoteoverlay''); ');
	
	ButtonPositionX = 0;
	ButtonPositionY = 1 - ButtonHeight;
	CountColumnButtons = 1;
	for(CountButtons = 1:NumberButtons),
		h=uicontrol('Style', 'pushbutton', ...
			'Units','normalized', ...
			'Position', [ButtonPositionX ButtonPositionY ButtonWidth ButtonHeight], ...
			'String', ButtonsStrings{
     CountButtons,1},...
			'Callback',char(ButtonsStrings{
     CountButtons,2}), ...
			'BackgroundColor',str2num(char(ButtonsStrings{
     CountButtons,3})) ...
			);
		if(CountColumnButtons >= ButtonsPerColumn),
			CountColumnButtons = 1;
			ButtonPositionY = 1 - ButtonHeight;
			ButtonPositionX = ButtonPositionX + ButtonWidth;
		else,
			ButtonPositionY = ButtonPositionY - ButtonHeight;
			CountColumnButtons = CountColumnButtons + 1;
		end;
	end;	%for(CountButtons = 1:NumberButtons),
end

三、运行结果

【无人机】多无人协同任务分配程序平台【含Matlab源码 301期】_第1张图片

四、备注

完整代码或者代写添加QQ 1564658423
往期回顾>>>>>>
【预测模型】基于matlab粒子群的lssvm预测【含Matlab源码 103期】
【lSSVM预测】基于matlab鲸鱼优化算法之lSSVM数据预测【含Matlab源码 104期】
【lstm预测】基于matlab鲸鱼优化算法之改进的lstm预测【含Matlab源码 105期】
【SVM预测】基于matlab蝙蝠算法改进的SVM预测(一)【含Matlab源码 106期】
【SVM预测】基于matlab灰狼算法优化svm支持向量机预测【含Matlab源码 107期】
【预测模型】基于matlab BP神经网络的预测【含Matlab源码 108期】
【lssvm预测模型】基于蝙蝠算法改进的最小二乘支持向量机lssvm预测【Matlab 109期】
【lssvm预测】基于飞蛾扑火算法改进的最小二乘支持向量机lssvm预测【Matlab 110期】
【SVM预测】基于matlab蝙蝠算法之改进的SVM预测(二)【含Matlab源码 141期】
【lssvm预测】基于matlab飞蛾扑火算法之改进的最小二乘支持向量机lssvm预测【含Matlab源码 142期】
【ANN预测模型】基于matlab差分算法改进ANN网络预测【含Matlab源码 151期】
【预测模型】基于matlab RBF神经网络预测模型【含Matlab源码 177期】
【预测模型】基于matlab SVM回归预测算法来预测股票趋势【含Matlab源码 180期】
【预测模型】基于matlab BP神经网络之模型优化预测【含Matlab源码 221期】
【预测模型】基于matlab RLS算法的数据预测【含Matlab源码 222期】
【预测模型】基于matlab碳排放约束下的煤炭消费量优化预测【含Matlab源码 223期】
【路径规划】基于matlab A星和改进A星的路径规划【含Matlab源码 225期】
【TSP】基于matlab 改进的禁忌搜索算法之求解旅行商问题【含Matlab源码 241期】
【TSP】基于matlab 改进的蚁群算法之求解旅行商问题【含Matlab源码 242期】
【路径规划】基于matlab模拟退火算法之求解火灾巡逻最短路径【含Matlab源码 252期】
【三维路径规划】基于matlab 无人机三维空间的航迹规划【含Matlab源码 270期】
【路径规划】基于matlab分布式目标检测和跟踪的多无人机【含Matlab源码 289期】
【路径规划】基于matlab粒子群算法求解无人机最短路径【含Matlab源码 300期】

你可能感兴趣的:(matlab,路径规划)