anylogic培訓案例說明harvest simulator豐收仿真模擬了三個不同在時使用的設備收割機谷物和卡車_第1頁
anylogic培訓案例說明harvest simulator豐收仿真模擬了三個不同在時使用的設備收割機谷物和卡車_第2頁
anylogic培訓案例說明harvest simulator豐收仿真模擬了三個不同在時使用的設備收割機谷物和卡車_第3頁
anylogic培訓案例說明harvest simulator豐收仿真模擬了三個不同在時使用的設備收割機谷物和卡車_第4頁
anylogic培訓案例說明harvest simulator豐收仿真模擬了三個不同在時使用的設備收割機谷物和卡車_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

豐收仿真模擬了三個不同在豐收時使用的設備(收割機、谷物車和卡車)豐收仿真設計用來解釋豐收作物相關的邏輯動態(tài)并使用戶能夠看到優(yōu)化設備之間的交互作用的復雜度。系統(tǒng)的容量設置如下:收割機-300英斗,谷物車-1000英斗,卡車-2500英斗。Agentbased方法進行建模。新建五個主動對象類,分別命名為、bine、Truck、StockClock3D,分別用來模擬谷物車、收割機、卡車、裝置和3D時鐘。其中的、bine、Truck在其main。將新建好的、bine、Truck、StockClock3Dmain界面中。并將stock命名為bin。InFlow、OutFlowVInitialdouble100、0、00,前三個變量的改變時處填入onchange()(該方法將在步驟e中定義,最后一個為空,四個為空(只有行為stock容量滿的時候和空的時候執(zhí)行的事情。if(InFlow>OutFlow)if(InFlow>OutFlow)V=}elseV=}onFull()動作,反之,當前容量為0,執(zhí)行onEmpty()動作。if(timer.isActive())doubleonchangeif(timer.isActive())V=}if(InFlow>OutFlow)timer.restart((Capacity-V)/(InFlow-OutFlow)}elseif(OutFlow>InFlow)timer.restart(V/(OutFlow-InFlow)}in=InFlow;out=OutFlow;if(if(v<0||v>Capacityerror("Thevaluespecifiedinsetv()isoutside[0,Capacity]range");V=v;if(InFlow>OutFlow)timer.restart((Capacity-V)/(InFlow-OutFlow)}elseif(OutFlow>InFlow)timer.restart(V/(OutFlow-InFlow)}if(if(timer.isActive())if(in>outreturnCapacity-timer.getRest()*(in-outreturntimer.getRest()*(out-in}return拖入七個參數(shù),分別命名為Velocity、Capacity、UnloadingRate、RowSpacing、HarvestDensity、Field和Parking,其中前五個類型選擇double,后兩個分別為ShapeRectangleShape,初始值分別為、、、、.01、空和空。七個變//statusoffieldfinalstaticintNOTSTARTED//statusoffieldfinalstaticintNOTSTARTED1; 、pleted和YDirection,類型分別為double、double和int,其中YDirection的初始值為NOTSTARTED。 Control中的StartedHarvesting處的觸發(fā)于選擇訊息,訊息類在Loading處的進入行為填入stock.set_InFlow(harvestRate());,退出行為處填入stock.set_InFlow(0);,分別將stock的流入速度設置為收割速入"STARTED_UNLOADING"、"EMPTY"、"FINISHED_UNLOADING"和"FINISHED_HARVESTING"行為處分別填入moveControl.fireEvent("RESUME");、main.cart.moveControl.fireEvent"COMBINE_EMPTY"在Unloadingstock.set_OutFlowUnloadingRate退出速度和0。WithCart的退出行為處填入doublex=Field.getX()+doublex=Field.getX()+RowSpacing/2;//halfwidthofcombinedoubley=Field.getY()+Field.getHeight();moveTo(x,y變遷選擇第二個并填入"ARRIVED",行為處填入://startingharvesitingfield//startingharvesitingfieldXCompleted=0;//norowscompletedYCompleted=Field.getHeight();//startingfromSouthYDirection=NORTH;//andgoingNorth controller pletedrowgoingNorthXCompleted+=RowSpacing;YCompleted=0;//makeU-jumpTo( pletedrowgoingNorthXCompleted+=RowSpacing;YCompleted=0;//makeU-jumpTo(getX()+RowSpacing,getY()//andwillgo pletedrowgoingSouthXCompleted+=RowSpacing;YCompleted=Field.getHeight();//makeU- pletedrowgoingSouthXCompleted+=RowSpacing;YCompleted=Field.getHeight();//makeU-jumpTo(jumpTo(getX()+RowSpacing,getY()//andwillgoNorthYDirection=NORTH;YDirection=if(main.checkBoxAuto.isSelected())main.cart.moveControl.fireEvent(" if(main.checkBoxAuto.isSelected())main.cart.moveControl.fireEvent(" transition8(指向歷史狀態(tài))String,觸發(fā)變遷選擇第二個并填入"RESUMETransition6(GoingToPark)的觸表示如果收割結束則回到起點。在GoingToPark處的進入行為填入狀態(tài))的觸發(fā)于選擇訊息,訊息類型為String,觸發(fā)變遷選擇第二個并填入"ARRIVED",行為處填入setRotation(0); if(moveControl.isStateActive(MoveHarvesting) if(moveControl.isStateActive(MoveHarvesting)returngetY()-harvestRatereturnVelocity*RowSpacing*HarvestDensity;表示收為0,onFull和onEmpty分別填 Control.fireEvent("FULL");Control.fireEvent("EMPTY"的類型為double,最后的類型為Shape,初始值分別是 、和空。該四 bine.isMoving() bine.isMoving())doublex bine.getTargetX()-doubley moveTo(x,y} bine.getY()利用狀態(tài)圖連接成如下圖樣子,來表示谷物車工作的邏輯狀態(tài)圖。其中if(main.checkBoxAuto.isSelected()if(main.checkBoxAuto.isSelected() art))moveControl.fireEvent( BINE"表示如果combine進入到MoveWaitCart的狀態(tài)則Cart發(fā)出" bine的進入行為中寫入//go//gotodoublex= bine.getX()-40;doubley= bine.getY();moveTo(x,y); //synchronizespeedwithcombine bine.getVelocity());//startmovingwith //restoreoriginalvelocitysetVelocity(Velocity); bine.UnloadingRatebine.harvestRate());退出行為處寫入stock.set_InFlow0Stock stock.set_InFlow(0);仍表示設置Stock的流入速度。Parking.getY());表示回到起點卸載。Unloading處的進入行為處寫入main.truck.moveControl.fireEvent"START_LOADINGstock.set_OutFlow(UnloadingRate);退出行為寫入stock.set_OutFlow(0);表示設置流出速度。 的變遷的行為處填入setRotation( bine.getRotation());,LoadingAndHarvest指向自身的變遷的行為處填入 JustHarvest的行為處填入 mand的變遷的行為處填入main.truck.moveControl.fireEvent("FINISHED_LOADING");。0,VInitial為0,onFull和onEmpty分別填入moveControl.fireEvent"FULL和moveControl.fireEvent("EMPTY");setVelocity(VelocitysetVelocity(VelocityjumpTo(Parking.getX(),Parking.getY()拖入一個函數(shù),命名為atField,返回類型選擇boolean,代碼為利用狀態(tài)圖繪制卡車狀態(tài)邏輯圖如下圖所示。其中AtField的退出行為填入main.cart.moveControl.fireEvent("TRUCK_ARRIVED");Loading出行為為stock.set_InFlow(0);,表示設置stock的流入速度。GoingToBinmoveToBin.getX()Bin.getY(,表示將卡車移動到最終儲藏罐。Unloading的進入行為處寫入stock.set_OutFlowUnloadingRate);main.bin.set_InFlowUnloadingRate);退出行為處寫入setRotationPI0,VInitial0,onFullonEmpty分別填入moveControl.fireEvent"FULL和moveControl.fireEvent("EMPTY");setVelocity(VelocitysetVelocity(VelocityjumpTo(Parking.getX(),Parking.getY()inth=inth=intintm=return(h<10?"0":"")+h+":"+(m<10?"0":"")returnreturngetDayOfMonth()+""+formatMonth(getMonth(),和1.011.01。第一行文本的動態(tài)的顏色處填入:getDayOfWeek()==SATURDAY||getDayOfWeek()==SUNDAY?red:steelBlue。中間的時針建立一個hourGroup,并在動態(tài)中的Z向旋轉弧度處填入((getHourOfDay()+getMinute()/60.)/12.)*2*PI,分針也建立一個minuteGroup,并在動態(tài)中的Z向旋轉,弧度處填入12,Z向旋轉弧度處填入index12*2*PI。初始值為newdouble[2000],表示將要收獲的谷物。 intinthrs=(int)(time()/hour()intmin=(int)((time()%hour())/minute() pleted.setText("Completedin"+hrs+"hours+min+"minutes");拖入一個文本,命名為文本pleted,文本處為空。拖入一個矩形,動態(tài)處的重復寫入Xunits.lengthX寫入XunitsindexY寫入Yunits[index]。從三維中拖入一個光,命名為light,光類型選擇平行光。再拖入一個機,命名為camera,X向旋轉寫入55,Z向旋轉為0。型選擇限制Z向0以上。HarvestDensityHarvestDensityCartVelocity10Capacity為1000,UnloadingRate為

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論