版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
PAGEPAGE3魚群行為的建模與仿真摘要本文主要對人工魚的集群行為,對天敵的有效躲避,和在集群中部分個體獲得食物信息的情況下,整個魚類集群的運動行為進行了研究。并利用MATLAB工具進行了模擬仿真。針對問題一,我們對魚類的集群運動主要提出了聚集、和鄰居速度匹配、避免碰撞三個原則。基于這三個原則建立了魚類單個個體的自治模型,每個個體通過相互作用,使集群形成。本文對三個原則的具體實現(xiàn)進行了分析和假設(shè)。得到了計算機模擬仿真下的魚類集群圖形。針對問題二,在模型一的基礎(chǔ)上,我們增加了魚群有效逃避天敵的規(guī)則。并利用MATLAB進行在天敵存在的情況下,魚類集群行為的運動特征,并且得出了較好的仿真結(jié)果。針對問題三,我們建立了魚群覓食過程中的信息交流機制,得出了在部分人工魚知悉食物信息的情況下,整個魚群的運動狀態(tài)的仿真結(jié)果。關(guān)鍵詞:集群運動模擬仿真?zhèn)€體自治一、問題的提出在動物界,大量集結(jié)成群進行移動或者覓食的例子并不少見,這種現(xiàn)象在食草動物、鳥、魚和昆蟲中都存在。這些動物群在運動過程中具有很明顯的特征:群中的個體聚集性很強,運動方向、速度具有一致性。通過數(shù)學模型來模擬動物群的集群運動行為以及探索動物群中的信息傳遞機制一直是仿生學領(lǐng)域的一項重要內(nèi)容。根據(jù)相關(guān)資料,建立數(shù)學模型刻畫動物集群運動、躲避威脅等行為,解決如下問題:問題一:建立數(shù)學模型模擬動物的集群運動。問題二:建立數(shù)學模型刻畫魚群躲避黑鰭礁鯊魚的運動行為。問題三:假定動物群中有一部分個體是信息豐富者(如掌握食物源位置信息,掌握遷徙路線信息),請建模分析它們對于群運動行為的影響,解釋群運動方向決策如何達成。二、基本假設(shè)1、假設(shè)除視覺外其他感官在第一問中的影響忽略,如嗅覺,聽覺;2、假設(shè)每條魚體型、感知能力相同;3、假設(shè)魚群在集群運動中沒有死亡;4、假設(shè)魚的反應(yīng)速度很快,改變速度所需時間非常短;5、假設(shè)魚遇到邊界,以反射的方向反彈。三、定義符號說明符號說明二維體系中人工魚的初始坐標人工魚的速度二維體系中人工魚速度方向與橫軸的夾角人工魚聚集的中心坐標在感知范圍內(nèi)鄰居的個數(shù)三維體系中人工魚的初始坐標三維體系中人工魚游動的方向人工魚的能量狀態(tài)人工魚的饑餓系數(shù)四、問題的分析及模型的建立、求解4.1對于問題一4.1.1問題的分析關(guān)于集群行為的研究,大致可以分為三個階段:第一階段是生物學家做了大量研究,發(fā)現(xiàn)了許多生物群體特有的動態(tài)行為;第二階段是實驗物理學家和計算機專家做了許多實驗和仿真,用模擬仿生的方法證明這種生物群體現(xiàn)象可以由個體的簡單行為規(guī)律獲得;第三階段就是利用數(shù)學對群集行為進行嚴格建模及分析。動物的群體行為是相當于個體行為而言的。群體行為決定著個體行為的方向,個體行為是群體行為的體現(xiàn)。群體是由個體構(gòu)成的,因此,群體行為離不開個體行為但群體行為并不是個體行為的簡單相加。所以我們在研究魚群集體行為的過程中,首先對群體中單個魚的行為做出研究,然后再從內(nèi)部影響和外部作用兩方面入手,分析魚群的群集行為。對群集行為的研究主要有三種方法。第一種是歐拉法,在歐拉法中,一個群體的模型中的每個個體成員不作為單個實體進行研究,而是通過密度概念將整個群體作為一個連續(xù)集描述,歐拉法有一個明顯的缺點就是忽略了個體的特性。第二種是拉格朗日法,拉格朗日法基本的描述就是每個個體各自的運動方程。第三類方法就是基于仿真的建模方法,基于仿真的群集模型無需建立像描述群體分布的費克方程或描述各種吸引力/排斥力作用的牛頓運動方程,而是通過群體中的個體建立模擬實際生物個體動態(tài)行為的行為規(guī)則來研究群集行為。基于個體自治的魚類集群模型我們所進行的魚群集群行為的仿真模型由三部分構(gòu)成:(1)環(huán)境。(2)個體。(3)行為規(guī)則。環(huán)境是個體生存的空間,個體在環(huán)境中活動,利用環(huán)境中的資源來進行生存。個體的綜合構(gòu)成了研究的群體對象。個體的演化過程由其行為規(guī)則控制,行為規(guī)則則是決定了個體與個體之間、個體與環(huán)境之間相互作用的方式。任意時刻個體在環(huán)境中都有一個確定的位置并且由其所占據(jù)的方位來確定。(一)環(huán)境的描述首先對二維的魚群世界進行仿真,環(huán)境應(yīng)為一個二維的有限平面區(qū)域,使用反射型邊界,當魚游到邊界以后按照鏡子反射的方式反彈回來。我們可以把環(huán)境描述成為一個寬為width,長為length的二維世界,如下圖圖1:個體及其所處環(huán)境因為計算機僅僅能處理離散的信息,所以環(huán)境也是一個離散的世界。我們用計算機屏幕上一系列運動的點代替魚個體,給它們設(shè)置坐標、速度等參數(shù),就可以把現(xiàn)實中的魚映射到虛擬環(huán)境中來。所有個體在該環(huán)境中游動。描述個體的位置和方向如下:(1)其中為速度方向和橫軸方向的夾角。(2)其中,為魚的初始坐標位置,為一段時間后,魚的坐標位置。(二)個體描述對個體魚的建模是仿真的核心與關(guān)鍵。把每條魚看成一個人能夠自主決策的Agent,他們會根據(jù)自己的觀察來感知周圍的環(huán)境,并按照一定的規(guī)則決策。魚類個體之間的交互是由其視覺范圍的大小決定的。個體的視覺范圍是半徑為r角度為300度的一個扇形。圖2:魚類的視覺范圍主體之間的交互作用是局部的,只能發(fā)生在所定義的鄰域內(nèi)。個體具有以下屬性:(1)位置:個體位置由一組坐標(x,y)表示;(2)感知范圍:個體所能感知的范圍。個體的感知范圍取決于所定義鄰域半徑的大小,感知范圍越大,表明該個體與環(huán)境和其他個體的作用越強。(3)碰撞距離:個體之間的最短距離。當個體之間的距離小于該值時,個體將朝著遠離的方向游動。(4)初速度:仿真開始時,賦予每個個體的速度值,大小相等,方向相同。(5)最大速度:魚類在游動時所能達到的極限速度。(6)加速度:個體受到外界干擾時,對個體行為的改變,表現(xiàn)為的速度的改變。(7)反彈速度:個體到邊界時反彈回來的速度。(三)規(guī)則描述人工魚的基本行為主要包括:(1)避開障礙物。(2)游向目標。(3)追逐目標。(4)離開。(5)閑逛。(6)逃逸。(7)集群。個體的行為規(guī)則主要表現(xiàn)為群體游動時的游動規(guī)則,游動規(guī)則主要包括:[1]聚集規(guī)則(盡量靠近鄰居)[2]速度匹配(盡量與鄰居的運動方向一致)[3]避免碰撞(盡量避免與群體內(nèi)部和群體外部的障礙發(fā)生碰撞)在這里我們定義鄰居為如果兩個個體之間的距離小于某個給定的值,則它們互為鄰居。每條人工魚下一刻游動的方向都要受這三個因素和當前魚的游動方向的影響,將這四個方向的平均作為人工魚下一刻游動的方向如下圖。圖3:人工魚下一刻的游動方向然而四個因素對魚群的影響力的大小不同,根據(jù)它們對人工魚下一刻運動方向影響的大小進行賦權(quán),則人工魚下一刻的運動方向(與二維區(qū)域橫軸的夾角)(3)(4)下面分別對四條游動準則分別進行描述:(1)聚集性。每個個體都有向鄰居中心靠攏的特性,鄰居中心為感知范圍內(nèi)所有個體所在位置的平均值。(5)當前狀態(tài)下的人工魚相對中心位置的方向為(6)其中,為魚群靠攏的中心,為人工魚當前所在位置。(2)速度匹配人工魚要與鄰域內(nèi)的魚保持游動時速度大小和方向一致,速度和方向為鄰域內(nèi)的均值,則(7)(8)為鄰域內(nèi)第條魚的位置,為鄰域內(nèi)第條魚的速度。(3)避免碰撞為了避免魚群之間的碰撞。在人工魚進入危險距離后,若即將與一條魚碰撞,設(shè)為,那么人工魚就以與運動的方向垂直的方向進行規(guī)避。若是即將與兩條魚碰撞,分別設(shè)為。則人工魚就以與運動的合成方向相垂直的方向進行規(guī)避。當有條時,同樣以與條魚運動合成方向的垂直方向進行規(guī)避。如下圖:人工魚的運動人工魚的運動合成方向規(guī)避方向圖4:避免碰撞的規(guī)避圖在三維狀態(tài)下,我們采取相同的準則,進行模擬仿真。環(huán)境應(yīng)為一塊有限的三維區(qū)域,我們選定作為人工魚的位置,用它游動方向和軸,軸和軸的夾角作為人工魚游動的方向。聚集性的方向為人工魚和魚群中心的方向向量。速度匹配的方向為鄰居所有魚的夾角的均值。避免碰撞仍然采用合成的方法。4.1.3模型的求解通過MATLAB仿真模擬,得到在二維條件下,初始狀態(tài)的魚群,如下圖:圖5:魚群初始狀態(tài)在模型一的規(guī)則下,魚群的聚群行為圖6:二維魚群集群應(yīng)用二維的規(guī)則,同樣可以得到在三維狀態(tài)下的模擬成果圖7:魚群三維初始狀態(tài)三維集群之后的狀態(tài),如下圖圖8:三維魚群的集群4.2對于問題二4.2.1問題的分析在問題一的分析和模型的建立求解過程中,我們并沒有考慮人工魚群在食物鏈中受到天敵威脅的情況。魚類在海洋中有效的躲避天敵也是魚類運動中的一項規(guī)則。所以我們在第一問的基礎(chǔ)之上建立魚類的躲避規(guī)則,重新仿真魚類集群運動。4.2.2模型的建立在游動規(guī)則的基礎(chǔ)上加入躲避天敵這項規(guī)則,進一步完善模型。人工魚下一刻的運動狀態(tài)和方向也要受到天敵的影響。[4]躲避天敵人工魚在遭遇黑鰭礁鯊魚時,迅速以與相對黑鰭礁鯊魚相反的方向逃離。(9)其中,為人工魚所在的位置,為天敵所在的位置,為人工魚遭遇天敵時逃離的方向與橫軸的夾角。在三維的狀態(tài)中,人工魚相對黑鰭礁鯊魚的向量。求出和軸,軸,軸的夾角,從而確定人工魚的逃離方向。模型的求解利用MATLAB編程模擬仿真在二維狀態(tài)下人工魚在黑鰭礁鯊魚進入的初始狀態(tài)下的運動情況,如下圖:圖9:黑鰭礁鯊魚進入的初始狀態(tài)(注:·表示人工魚,o表示黑鰭礁鯊魚)黑鰭礁鯊魚游動T時刻,人工魚對它的躲避行為,如下圖:圖10:魚群對黑鰭礁鯊魚的躲避行為(注:·表示人工魚,o表示黑鰭礁鯊魚)利用MATLAB編程模擬仿真在三維狀態(tài)下人工魚在黑鰭礁鯊魚進入的初始狀態(tài)下的運動情況,如下圖:圖11:加入黑鰭礁鯊魚的初始狀態(tài)(注:·表示人工魚,o表示黑鰭礁鯊魚)黑鰭礁鯊魚游動T時刻,人工魚對它的躲避行為,如下圖:圖12:魚群對黑鰭礁鯊魚的躲避行為(注:·表示人工魚,o表示黑鰭礁鯊魚)4.3對于問題三4.3.1問題的分析在問題一和問題二的解決過程中,我們并未考慮人工魚的能量系統(tǒng),都是在假設(shè)人工魚不會在能量消耗下自然死亡的情況下進行模擬仿真的。在問題三中,由于要解決對于尋求食物狀態(tài)下,集群的決策形成。因此我們考慮引入人工魚的能量消耗系統(tǒng),綜合人工魚的能量狀態(tài)來形成對于食物信息的合理決策。4.3.2模型的建立首先定義個體在能量系統(tǒng)中的各個要素:(a)能量值個體能量的多少由獲得的資源量來衡量,每個仿真周期內(nèi)個體都要消耗一定的能量,能量值的變化由新陳代謝率決定。當個體的能量值小于或等于0時,該個體死亡。(b)新陳代謝率一個仿真周期個體所消耗的能量值。能量是維持個體在虛擬世界中生存的基本因素。(c)最大能量:個體所能擁有能量的最大值。當個體的能量值達到該值時,停止覓食。(d)初始能量仿真開始時,個體所擁有的能量值。在獲得食物信息的情況下,在集群中知道食物信息的個體行為發(fā)生改變,表現(xiàn)為朝著食物的方向加速游動,(10)為初始速度,為時刻的速度,為獲知食物信息的時刻,為當前時刻。影響人工魚的運動狀態(tài)的因素除了食物信息之外還有人工魚自身的能量狀態(tài)。我們用饑餓系數(shù)來表示人工魚當前的能量狀態(tài)。(11)其中表示人工魚的初始狀態(tài)能量,即時刻的能量。T表示發(fā)現(xiàn)食物信息的時刻。表示人工魚單位時間消耗的能量。表示人工魚能量的滿值狀態(tài)。(12)所以如果人工魚處于饑餓狀態(tài),并且接收到食物信息,就會以尾追的狀態(tài)去尋求食物。[5]尾追魚群中的單個人工魚會向擁有食物信息的人工靠近,去尋找食物,則魚群運動的方向是:(13)其中,為人工魚當前所在位置。為知道食物信息的人工魚的位置。如果人工魚沒有處于饑餓狀態(tài),就會按照問題一和問題二中的規(guī)則進行游動。在三維狀態(tài)下,人工魚相對知悉食物信息的魚的向量坐標是,求出相對于軸,軸,軸的夾角,從而確定人工魚的逃離方向。模型的求解利用MATLAB編程模擬仿真在獲得食物位置時,人工魚群運動的初始狀,如下圖:圖13:知悉食物初始狀態(tài)的運動情況(注:·點表示人工魚,eq\o\ac(○,+)表示食物的位置)在T時刻,人工魚相對食物的運動狀態(tài),如下圖:圖14:T時刻運動情況(注:·點表示人工魚,eq\o\ac(○,+)表示食物的位置)五、結(jié)果分析本文通過建立魚群行為仿真模型,基于集群規(guī)則,對魚群集群,躲避天敵以及覓食行為進行了二維圖像仿真,通過模型的進一步分析,又將模型推廣至三維,通過設(shè)置不同的仿真參數(shù),利用計算機的仿真模擬魚類個體之間的相互作用,最終達到集群形成的效果,較為真實的模擬了自然環(huán)境中魚類的集群行為。六、模型的評價與改進模型的優(yōu)點:(1)基于仿真的群集模型可以為個體如何完成群集行為提供一個明確的視覺過程。(2)我們在解決問題的過程中同時對二維和三維進行了仿真,并且得出了合理的結(jié)果。模型的缺點:(1)個體可能存在有很多不同的行為規(guī)則,都能夠使得群體實現(xiàn)相同的集結(jié)行為,也就是說并不能從群體仿真實驗中的涌現(xiàn)結(jié)果推論出確切的個體行為。(2)實際智能個體的行為可能是非常復雜的,在仿真中也難以復制。個體的簡單規(guī)則可以使得群體涌現(xiàn)與實際生物界中相似的群體行為,但缺乏理論分析的手段,而且也不能保證現(xiàn)實生物系統(tǒng)就是遵循這樣的簡單規(guī)則。(3)我們對于魚類活動的原則考慮比較少,行為準則略顯粗糙。參考文獻:[1]江道平尹怡欣等,群體中Agent基于內(nèi)部狀態(tài)的行為選擇,系統(tǒng)仿真學報,2009年01月;[2]趙建曾建朝,魚群集群行為的建模與仿真,太遠科技大學學報,2009年02月;[3]班曉娟寧淑榮等,人工魚高級自組織行為研究,自動化學報,2008年10月;[4]陳世明,群集行為的建模與控制方法綜述,華東交通大學電氣與電子工程學院,2006年09月附錄第一問程序:%實現(xiàn)功能:模擬魚群的集群,避敵,覓食行為,進行動畫演示clear;clc;N=50;%魚的數(shù)量50,Rn=1500;%領(lǐng)域半徑VV=30;%初始速度3.0,%a=3;%加速度0.3,Vsi=18;%反彈速度0.8,%魚的活動范圍XRange=[-10000,10000];YRange=[-10000,10000];ZRange=[-10000,10000];VRan=[-5*pi/6,5*pi/6];%(1)隨機產(chǎn)生魚的位置PF(x,y)為位置集fori=1:NPZ(i,1)=XRange(1)+(XRange(2)-XRange(1))*rand;%X坐標PZ(i,2)=YRange(1)+(YRange(2)-YRange(1))*rand;%Y坐標PZ(i,3)=ZRange(1)+(ZRange(2)-ZRange(1))*rand;%Z坐標PF(i,1)=PZ(i,1);PF(i,2)=PZ(i,2);PF(i,3)=PZ(i,3);VZ(i,1)=2*pi*rand;%alphaX速度方向VZ(i,2)=2*pi*rand;%betaY速度方向VZ(i,3)=2*pi*rand;%gamaZ速度方向VF(i,1)=VZ(i,1);VF(i,2)=VZ(i,2);VF(i,3)=VZ(i,3);VZ(i,4)=VV;%gamaZ速度大小VF(i,4)=VZ(i,4);endlam=[0.10.30.30.3];%(2)判斷一條魚和其他魚之間的距離%如果<Rmin則避免碰撞;若>Rmin,<Rmax保持速度相同;若>Rmax,<Rvis則加速追尾;%(2)搜索視野范圍內(nèi)的魚,并統(tǒng)計個數(shù)while1fori=1:Ncn=0;alsum=0;besum=0;gasum=0;forj=1:Nif(i~=j)&&sqrt((PZ(i,1)-PZ(j,1))^2+(PZ(i,2)-PZ(j,2))^2+(PZ(i,3)-PZ(j,3))^2)<=Rncn=cn+1;alsum=alsum+VZ(i,1);besum=besum+VZ(i,2);gasum=gasum+VZ(i,3);endendifcn~=0alsum=alsum/cn;besum=besum/cn;gasum=gasum/cn;VF(i,1)=alsum;VF(i,2)=besum;VF(i,3)=gasum;endPF(i,1)=PZ(i,1)+VF(i,4)*cos(VF(i,1));PF(i,2)=PZ(i,2)+VF(i,4)*cos(VF(i,2));PF(i,3)=PZ(i,3)+VF(i,4)*cos(VF(i,3));%是否越界ifPF(i,1)<XRange(1)||PF(i,1)>XRange(2)VF(i,1)=VF(i,1)+pi;endifPF(i,2)<YRange(1)||PF(i,2)>YRange(2)VF(i,2)=VF(i,2)+pi;endifPF(i,3)<ZRange(1)||PF(i,3)>ZRange(2)VF(i,3)=VF(i,3)+pi;endPF(i,1)=PZ(i,1)+VF(i,4)*cos(VF(i,1));PF(i,2)=PZ(i,2)+VF(i,4)*cos(VF(i,2));PF(i,3)=PZ(i,3)+VF(i,4)*cos(VF(i,3));endTU1=plot3(PZ(:,1),PZ(:,2),PZ(:,3),'.');%更新魚的狀態(tài)fori=1:NPZ(i,1)=PF(i,1);PZ(i,2)=PF(i,2);PZ(i,3)=PF(i,3);VZ(i,1)=VF(i,1);VZ(i,2)=VF(i,2);VZ(i,3)=VF(i,3);endset(TU1,'xdata',PZ(:,1),'ydata',PZ(:,2),'zdata',PZ(:,3));drawnow;axis([XRange,YRange,ZRange]);gridon;pause(0.01);end第二問程序:%實現(xiàn)功能:模擬魚群的集群,避敵,覓食行為,進行動畫演示clear;clc;N=50;%魚的數(shù)量,Rn=1500;%領(lǐng)域半徑VV=30;%初始速度,a=3;%加速度,Vsi=18;%反彈速度,%魚的活動范圍XRange=[-10000,10000];YRange=[-10000,10000];ZRange=[-10000,10000];VRan=[-5*pi/6,5*pi/6];%(1)隨機產(chǎn)生魚的位置PF(x,y)為位置集fori=1:NPZ(i,1)=XRange(1)+(XRange(2)-XRange(1))*rand;%X坐標PZ(i,2)=YRange(1)+(YRange(2)-YRange(1))*rand;%Y坐標PZ(i,3)=ZRange(1)+(ZRange(2)-ZRange(1))*rand;%Z坐標PF(i,1)=PZ(i,1);PF(i,2)=PZ(i,2);PF(i,3)=PZ(i,3);VZ(i,1)=2*pi*rand;%alphaX速度方向VZ(i,2)=2*pi*rand;%betaY速度方向VZ(i,3)=2*pi*rand;%gamaZ速度方向VF(i,1)=VZ(i,1);VF(i,2)=VZ(i,2);VF(i,3)=VZ(i,3);VZ(i,4)=VV;%gamaZ速度大小VF(i,4)=VZ(i,4);endfori=1:4%鯊魚初狀態(tài);SZ(1)=XRange(1)+(XRange(2)-XRange(1))*rand;%X坐標SZ(2)=YRange(1)+(YRange(2)-YRange(1))*rand;%Y坐標SZ(3)=ZRange(1)+(ZRange(2)-ZRange(1))*rand;%Z坐標SF(1)=SZ(1);SF(2)=SZ(2);SF(3)=SZ(3);SVZ(1)=2*pi*rand;%alphaX速度方向SVZ(2)=2*pi*rand;%betaY速度方向SVZ(3)=2*pi*rand;%gamaZ速度方向SVF(1)=SVZ(1);SVF(2)=SVZ(2);SVF(3)=SVZ(3);SVZ(4)=VV;SVF(4)=SVZ(4);endlam=[0.10.30.30.3];%(2)判斷一條魚和其他魚之間的距離%如果<Rmin則避免碰撞;若>Rmin,<Rmax保持速度相同;若>Rmax,<Rvis則加速追尾;%(2)搜索視野范圍內(nèi)的魚,并統(tǒng)計個數(shù)while1fori=1:Ncn=0;alsum=0;besum=0;gasum=0;forj=1:Nif(i~=j)&&sqrt((PZ(i,1)-PZ(j,1))^2+(PZ(i,2)-PZ(j,2))^2+(PZ(i,3)-PZ(j,3))^2)<=Rncn=cn+1;alsum=alsum+VZ(i,1);besum=besum+VZ(i,2);gasum=gasum+VZ(i,3);endendifcn~=0&&sqrt((SZ(1)-PZ(i,1))^2+(SZ(2)-PZ(i,2))^2+(SZ(3)-PZ(i,3))^2)>=Rnalsum=alsum/cn;besum=besum/cn;gasum=gasum/cn;VF(i,1)=alsum;VF(i,2)=besum;VF(i,3)=gasum;endddd=sqrt((SZ(1)-PZ(i,1))^2+(SZ(2)-PZ(i,2))^2+(SZ(3)-PZ(i,3))^2);ifddd<=RnVF(i,1)=pi+acos((SZ(1)-PZ(i,1))/ddd);VF(i,2)=pi+acos((SZ(2)-PZ(i,2))/ddd);VF(i,3)=pi+acos((SZ(3)-PZ(i,3))/ddd);VF(i,4)=VZ(i,4)+a;ifVF(i,4)>VmaxVF(i,4)=Vmax;endendPF(i,1)=PZ(i,1)+VF(i,4)*cos(VF(i,1));PF(i,2)=PZ(i,2)+VF(i,4)*cos(VF(i,2));PF(i,3)=PZ(i,3)+VF(i,4)*cos(VF(i,3));%是否越界ifPF(i,1)<XRange(1)||PF(i,1)>XRange(2)VF(i,1)=VF(i,1)+pi;endifPF(i,2)<YRange(1)||PF(i,2)>YRange(2)VF(i,2)=VF(i,2)+pi;endifPF(i,3)<ZRange(1)||PF(i,3)>ZRange(2)VF(i,3)=VF(i,3)+pi;endPF(i,1)=PZ(i,1)+VF(i,4)*cos(VF(i,1));PF(i,2)=PZ(i,2)+VF(i,4)*cos(VF(i,2));PF(i,3)=PZ(i,3)+VF(i,4)*cos(VF(i,3));end%鯊魚下一時刻狀態(tài)SF(1)=SZ(1)+SVF(4)*cos(SVF(1));SF(2)=SZ(2)+SVF(4)*cos(SVF(2));SF(3)=SZ(3)+SVF(4)*cos(SVF(3));ifSF(1)<XRange(1)||SF(1)>XRange(2)SVF(1)=SVF(1)+pi;endifSF(2)<YRange(1)||SF(2)>YRange(2)SVF(2)=SVF(2)+pi;endifSF(3)<ZRange(1)||SF(3)>ZRange(2)SVF(3)=SVF(3)+pi;endSF(1)=SZ(1)+SVF(4)*cos(SVF(1));SF(2)=SZ(2)+SVF(4)*cos(SVF(2));SF(3)=SZ(3)+SVF(4)*cos(SVF(3));TU1=plot3(PZ(:,1),PZ(:,2),PZ(:,3),'.');T2=plot3(SZ(1),SZ(2),SZ(3),'ro');%更新魚的狀態(tài)fori=1:NPZ(i,1)=PF(i,1);PZ(i,2)=PF(i,2);PZ(i,3)=PF(i,3);VZ(i,1)=VF(i,1);VZ(i,2)=VF(i,2);VZ(i,3)=VF(i,3);VZ(i,4)=VF(i,4);endSZ(1)=SF(1);SZ(2)=SF(2);SZ(3)=SF(3);SVZ(1)=SVF(1);SVZ(2)=SVF(2);SVZ(3)=SVF(3);set(T2,'xdata',SZ(1),'ydata',SZ(2),'zdata',SZ(3));set(TU1,'xdata',PZ(:,1),'ydata',PZ(:,2),'zdata',PZ(:,3));drawnow;axis([XRange,YRange,ZRange]);gridon;pause(0.01);end第三問程序:%實現(xiàn)功能:模擬魚群的集群,避敵,覓食行為,進行動畫演示clear;clc;N=100;%魚的數(shù)量,Rn=30000;%領(lǐng)域半徑VV=1100;%初始速度,a=10;%加速度,Vsi=100;%反彈速度,Vmax=VV+60;%魚的活動范圍XRange=[-10000,10000];YRange=[-10000,10000];ZRange=[-10000,10000];VRan=[-5*pi/6,5*pi/6];%(1)隨機產(chǎn)生魚的位置PF(x,y)為位置集fori=1:NPZ(i,1)=XRange(1)+(XRange(2)-XRange(1))*rand;%X坐標PZ(i,2)=YRange(1)+(YRange(2)-YRange(1))*rand;%Y坐標PZ(i,3)=ZRange(1)+(ZRange(2)-ZRange(1))*rand;%Z坐標PF(i,1)=PZ(i,1);PF(i,2)=PZ(i,2);PF(i,3)=PZ(i,3);VZ(i,1)=2*pi*rand;%alphaX速度方向VZ(i,2)=2*pi*rand;%betaY速度方向VZ(i,3)=2*pi*rand;%gamaZ速度方向VF(i,1)=VZ(i,1);VF(i,2)=VZ(i,2);VF(i,3)=VZ(i,3);VZ(i,4)=VV;%gamaZ速度大小VF(i,4)=VZ(i,4);endfori=1:4%食物位置;SZ(1)=XRange(1)+(XRange(2)-XRange(1))*0.82;%X坐標SZ(2)=YRange(1)+(YRange(2)-YRange(1))*0.455;%Y坐標SZ(3)=ZRange(1)+(ZRange(2)-ZRange(1))*0.5421;%Z坐標endlam=[0.10.30.30.3];%(2)判斷一條魚和其他魚之間的距離%如果<Rmin則避免碰撞;若>Rmin,<Rmax保持速度相同;若>Rmax,<Rvis則加速追尾;%(2)搜索視野范圍內(nèi)的魚,并統(tǒng)計個數(shù)while1T2=plot3(SZ(1),SZ(2),SZ(3),'r+');holdon;T3=plot3(SZ(1),SZ(2),SZ(3),'ro');holdon;fori=1:Ncn=0;alsum=0;besum=0;gasum=0;forj=1:Nif(i~=j)&&sqrt((PZ(i,1)-PZ(j,1)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 妊娠合并心功能不全的藥物治療與母乳喂養(yǎng)的平衡策略
- 采動脈血操作試題及答案
- 2026疾病控制考試題目及答案
- 頭頸部腫瘤免疫治療的PD-L1表達譜
- 教育基礎(chǔ)考試大題及答案
- 尚德考試及答案嗎
- 多組學數(shù)據(jù)與電子病歷的協(xié)同分析模型
- 2025年中職第二學年(食品營養(yǎng)與檢測)食品成分檢測專項試題及答案
- 2025年高職(無人機應(yīng)用技術(shù))無人機測繪試題及答案
- 2025-2030中國器官芯片行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 醫(yī)院醫(yī)療保險費用審核制度
- 村衛(wèi)生室醫(yī)療質(zhì)量相關(guān)管理制度
- 非遺傳承人激勵機制探索-深度研究
- 中小學校園中匹克球推廣策略與實踐研究
- 2024年世界職業(yè)院校技能大賽高職組“體育活動設(shè)計與實施組”賽項考試題庫(含答案)
- 高中地理選擇性必修一(湘教版)期末檢測卷02(原卷版)
- 滬教版九年級化學上冊(上海版)全套講義
- 三角函數(shù)圖像變化課件
- 《內(nèi)存條知識培訓》課件
- 人教版(2024)七年級地理期末復習必背考點提綱
評論
0/150
提交評論