-
大小: 5KB文件類型: .rar金幣: 2下載: 1 次發(fā)布日期: 2021-05-12
- 語言: Matlab
- 標(biāo)簽: vicsek??multi-agent??
資源簡介
vicsek模型的matlab仿真,有動態(tài)作圖的展示。研究速度一致性對多智能體協(xié)同的影響。

代碼片段和文件信息
%%?vicsek模型仿真程序
%?參考論文:Novel?type?of?phase?transition?in?a?system?of?self-driven?particles[J].?Physical?Review?Letters?1995?
%?作者:寧子安
%?時間:2019.8.31
%%?注釋說明
%?全局變量:
%?Main_Params,全局變量,所有的選項和選填參數(shù)
%?Agent_State,保存所有agent的狀態(tài)量、歷史狀態(tài)量(用于時延的仿真)
%?Agent_Noise,這個變量一開始定義之后,就不再變化了。所有的不確定性定義,包括內(nèi)部和外部噪聲,時延,最大加速度,最大速度等慣性因素,底層控制的調(diào)節(jié)時間
%?Algorithm_Command,算法的輸出命令
%?Visual_State,畫圖的變量
%?函數(shù)功能說明:
%?agent_creation,輸入:Main_Params,輸出:Agent_State,功能:根據(jù)Main_Params提供的要求,創(chuàng)建agents,并且初始化他們的狀態(tài)
%?agent_update,輸入:Main_Params、Agent_State、Agent_Noise、Algorithm_Command,輸出:Agent_State,功能:根據(jù)算法計算出的命令,根據(jù)指定的系統(tǒng)階數(shù),更新agent狀態(tài),并且添加噪聲等不確定性
%
%?algorithm,使用算法得出控制指令。輸入:Main_Params、Agent_State。輸出:Algorithm_Command
%
%?visual_creation?創(chuàng)建環(huán)境,輸出:Visual_State
%?visual_clean,清空畫圖,輸入:Visual_State,輸出:Visual_State
%?visual_plot_agent,畫出所有的agent,輸入:Visual_StateAgent_StateMain_Params,k_iters輸出:Visual_State
clear?all
close?all
clc
addpath(‘./agent‘);
addpath(‘./algorithm‘);
addpath(‘./visual‘);
%%?global?parameter\switch
%?數(shù)組定義
Main_Params=[];?%?global?parameters
%?Agent_State=[];?%?保存所有agent的狀態(tài)量包含實際狀態(tài)和測量的狀態(tài)(內(nèi)部噪聲)
Agent_Noise=[];?%?所有的不確定性定義
Algorithm_Command=[];?%?算法輸出的命令,包含是速度命令還是加速度命令,三個方向的命令。
%?Visual_State=[];?%?畫圖的變量
%?初始化
Main_Params.total_steps?=?200;?%?總的循環(huán)次數(shù)
Main_Params.delta_t?=?1;?%?step?time
Main_Params.agent_number?=?300;?%?無人機數(shù)量
Main_Params.agent_creation_size?=?5;?%?創(chuàng)建無人機的限制區(qū)域大小。如果是圓形就是半徑;如果是正方形,就是邊長;
Main_Params.agent_radius?=?1;?%?鄰域范圍
Main_Params.visual_agent_color?=?[0?0?0];?%?畫圖時,箭頭的填充顏色.[1?1?0]黃色
Main_Params.agent_velocity_scale?=?0.03;?%?agent的固定速度大小
Main_Params.visual_last_N_steps?=?0.12;?%?最后顯示的步數(shù)跟
Main_Params.visual_arrow_scale?=?0.02;
Agent_Noise.outside_direction_Noise?=?2;?%?外部噪聲,對速度方向的噪聲;均勻分布(-a/2a/2)
%%?
Agent_State?=?agent_creation(Main_Params);
Visual_State?=?visual_creation(Main_Params);
for?k_iters?=?1?:?Main_Params.total_steps
????Visual_State?=?visual_clean(Visual_State);
????Visual_State?=?visual_plot_agent(Visual_StateAgent_StateMain_Paramsk_iters);
????Algorithm_Command?=?algorithm(Main_ParamsAgent_State);
????Agent_State?=?agent_update(Main_Params?Agent_State?Agent_Noise?Algorithm_Command);
????
????pause(0.01);
????
end
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件????????416??2019-09-10?11:22??vicsek\agent\agent_creation.m
?????文件????????519??2019-09-09?19:19??vicsek\agent\agent_update.m
?????文件????????971??2019-09-09?20:00??vicsek\algorithm\algorithm.m
?????文件???????2724??2019-09-11?18:11??vicsek\main.m
?????文件????????112??2019-09-09?18:06??vicsek\visual\visual_clean.m
?????文件????????885??2019-09-10?11:23??vicsek\visual\visual_creation.m
?????文件???????3402??2019-09-10?11:16??vicsek\visual\visual_plot_agent.m
?????目錄??????????0??2019-09-09?18:59??vicsek\agent
?????目錄??????????0??2019-09-09?20:04??vicsek\algorithm
?????目錄??????????0??2019-09-10?11:24??vicsek\visual
?????目錄??????????0??2019-09-11?18:45??vicsek
-----------?---------??----------?-----??----
?????????????????9029????????????????????11
評論
共有 條評論