簡介
AnyLogic是一個專業虛擬原型環境,用於設計包括離散,連續和混合行為的複雜系統。AnyLogic幫助你快速地構建被設計系統的仿真模型(虛擬原型)和系統的外圍環境,包括物理設備和操作人員。使用AnyLogic,用戶並不需要另外再學習什麼語言或圖形語言。AnyLogic所有的建模技術都是以UML-RT,Java和微分方程(若用戶想要為連續行為建模)為基礎的,這些也是目前大多數先進用戶所熟悉的技術。如果你比較喜歡快速的“拖-拉式”建模,AnyLogic也提供一系列針對不同領域的專業庫。
AnyLogic的動態仿真具有獨創的結構,用戶可以通過模型的層次結構,以模組化的方式快速地構建複雜互動式動態仿真。AnyLogic的動態仿真是100%Java的,因此可以通過Internet訪問並在Web頁上顯示。
AnyLogic獨特的核心技術和領先的用戶接口使其成為設計大型複雜系統的理想工具,因為構建物理原型進行試驗代價高昂,耗時太長,有時還不一定成功。
1、什麼是AnyLogic
AnyLogic提供客戶獨特的仿真方法,即在任何Java支持的平台,或是Web頁上運行模型仿真。AnyLogic是唯一可以創建真實動態模型的可視化工具,即帶有動態發展結構及組件間互相聯絡的動態模型。
建模語言
AnyLogic強大而靈活,並提供多種建模方法:基於UML語言的面向對象的建模方法
基於方圖的流程圖建模方法
Statecharts(狀態機),分為普通的和混合的
微分和代數方程
用Java建模
AnyLogic的建模語言是UML-RT的擴展。UML-RT在許多複雜大系統的建模設計中被證明是一組最佳設計方法的集合。構建AnyLogic模型的主要方圖是活動對象。
活動對象有其內部結構和行為,可以任意向下封裝其他對象。設計AnyLogic模型,實際上就是設計活動對象的類並定義它們之間的關係。運行時模型可看作活動對象瞬間展開的層次。
(活動對象圖)
活動對象通過邊界對象與周圍互動作用,如:連線埠(用於離散交流)或變數(用於連續交流)。
離散建模
AnyLogic的離散建模結構包括對象間通訊層的信息傳遞機制,狀態圖和位於對象內部行為層上的各種基本數據單元(如時鐘和事件)。
(AnyLogic的連線埠和信息傳遞)
信息通過連線埠傳送和接收。連線埠是雙向的,並且接收的信息有可能在連線埠排成佇列。信息一經傳送,就在連線埠所有的外部連線通道上廣播。接收的信息可能被儲存在佇列中,也可能沿著內部連線通道前進。連線埠的預設行為可以任意修改。
對象內部的行為如果簡單,可以用時鐘來定義,但如果事件和時間順序較為複雜的話就用狀態圖來定義。
(AnyLogic的狀態圖)
AnyLogic支持UML中的狀態圖,包括複合狀態,分枝,歷史狀態等等。信息,各種事件,條件和延時都可以觸髮狀態圖中的轉移。
(AnyLogic中的靜態時鐘和動態時鐘)
AnyLogic中有靜態時鐘和動態時鐘之分,後者是用來確定由多個對象和信息組成的多個事件的時間進度。
AnyLogic的仿真器執行離散事件的仿真,並保留仿真的順序和原子數。同時發生的事件仿真時的順序是隨機的。
連續建模
在AnyLogic中,離散邏輯關係用狀態圖,事件,時鐘和信息來描述,而連續過程則用微分方程表示不斷變化的變數。這些變數可以放在活動對象的外面與其他對象連線。
(AnyLogic中的變數和方程)
AnyLogic支持一般的微分方程,代數方程以及兩者的結合。方程中的變數類型可以是標量或矢量。仿真器的多種數學計算方法可以處理簡單或複雜的系統,此外用戶還可以使用外部的數學庫檔案。
(AnyLogic的數學計算方法)
仿真器自動檢查方程的正確性,調整計算方法,監測並打斷數學循環。
混合建模
事實上,我們周圍的世界是混合的,時間連續的過程中又包含離散的事件。在許多真實的系統中,這兩種類型的行為相互依賴,這就需要在仿真建模時使用特殊的方法。傳統的工具往往只支持完全離散或完全連續的建模,也有的工具將兩者結合,但笨拙不易使用。
AnyLogic是唯一一款創新開發混合建模的商用仿真工具。它的離散建模和連續建模能力都非常強,尤其是當兩種行為緊密結合的時候。
(AnyLogic的混合狀態圖)
AnyLogic混合建模最顯著的特點體現在混合狀態圖上。在混合狀態圖中,用戶可以將方程與圖中的狀態圖結合起來,狀態的轉移可以引發連續行為的改變。用戶也可以在連續變化的變數上定義條件,觸髮狀態的轉移,這樣,連續的過程就能驅動離散的邏輯關係了。
AnyLogic將UML加以簡單擴展,自然地將兩種類型的行為結合在一起,因此,所建的混合系統模型簡潔而高效。
先進的建模技術
AnyLogic模型的可視化圖形是由Java編寫的,用戶可方便地定義對象,連線埠,信息,時鐘等的功能;並且在模型的任一層次,都可直接在模型編輯器中添加Java代碼。有了Java,再加上面向對象的模型圖,用戶便可以得心應手地構建任何複雜棘手的模型了。
(AnyLogic可以方便地構建普通拓撲結構的系統)
規則結構的系統
假設需要對一些有規則結構的系統建模,如網,托,鏈,環等,用戶只需複製一些對象,定義對象的個數作為參量,然後用Java語句將對象連線起來即可。
動態變化結構的系統
如果被設計系統中的對象或對象的連線被限定了生命周期,(即隨著系統的發展被創建和刪除),那么用戶就需要在適當的時候調用“創建/處理或連線/斷開”等功能。
(AnyLogic的信息傳遞)
定製信息傳遞
用戶可通過定義信息傳遞的方式使AnyLogic的信息智慧型化,如在信息中包裝另一條信息,或是忽略連線埠的預設行為,改變信息傳遞的語法。例如,如果用戶需要建一個信息傳遞的模型,並且在廣播時註明地址,他只需要在信息類中定義目的域,並在連線埠寫上簡單的代碼。
增加Java模組
如果用戶覺得直接用Java寫算法比畫狀態圖更方便的話,那也可以。手寫的Java模組與模型中其他部分並行運行。
總之,用戶可以添加任何Java編寫的類,在模型中豐富現有的Java控制與庫。用戶也可以設計模型與物理設備的網路通訊,也可以通過JNI訪問其他語言編寫的代碼。
動畫仿真
AnyLogic獨創的技術使得用戶能夠快速地在模型編輯器中創建互動的二維動畫仿真,但這種動畫仿真與模型是相互獨立的。
(動畫仿真的內容與模型的對象)
用戶可以將單獨的活動對象圖與活動對象的類連線起來,將封裝的對象圖放入容器對象圖中。創建模型的時候再把這些對象圖組裝起來。這樣,圖形的利用效率就很高。
動畫仿真包括一些基本圖形,各種形狀的指示器和圖表,另外,添加的互動部分,如按鍵,滾動條,編輯區域等,使用戶可以在模型仿真時進行操作。設計較為複雜的動畫仿真時,可運用AnyLogic提供的多個API自定義動畫。
AnyLogic的動畫仿真和它的模型一樣,100%Java,用戶在模型中執行Applet程式,即可在瀏覽器上顯示動畫仿真。
跨平台仿真和網上仿真
AnyLogic模型是100%Java的,因此它們可以在任何支持Java的平台上運行。需要的話,模型可以通過TCP與遠端Windows顯示器相連線。
(AnyLogic模型是如何運行的)
此外,用戶還可以將模型放入Applet程式中。Applet顯示互動的動畫仿真和一個用於開啟,關閉和重啟模型仿真的控制臺。Applet使用的仿真器大小不超過300K,載入用戶計算機後可被所有模型共享。
框架結構
AnyLogic的框架結構包括隨機的模型輸入條件,對經過統計的輸出結果進行收集,分析和表示,參數變化機制,與資料庫的接口,電子數據表,數據存儲,工具箱的最佳化和豐富的API。
隨機建模
AnyLogic的模型可以是隨機或確定的。AnyLogic默認標準的Java隨機生成的號碼,用戶也可自行插入號碼。在AnyLogic軟體包中,有超過35種的功能分類。
資料庫
AnyLogic的資料庫幫助用戶收集,顯示和分析模型執行過程中的數據。資料庫包括可帶有時間標識的標量和矢量。每個數據集都有一組包括平均值,方差,最小值,最大值,confidenceintervals等的統計數據。AnyLogic的模型瀏覽器支持不同的數據集表示方法,如,曲線圖,柱狀圖和甘特圖等。
與外部數據存儲連線
AnyLogic模型可與資料庫,電子數據表和其他檔案協同工作。例如,用戶可以從資料庫中摘取模型中定義的參數,並輸入到電子數據表中。
最佳化
AnyLogic的最最佳化工具箱包括簡單的最小值查找,牛頓和隨機查找等。AnyLogic同時提供與外部最佳化軟體的接口。使用AnyLogic的API,用戶可以自行寫入仿真的控制語句,改變參數的值,或執行一個定製的最佳化算法。
其他特性庫
AnyLogic的庫包括:對象類,動畫仿真,信息類,以及為某些特殊套用領域或模型開發的Java模組。有了庫,不同模型的對象可以得到很好的重複利用。AnyLogic自帶了許多庫檔案,用戶以此為基礎,可以方便的創建自己的模型。用戶在AnyLogic中正確開發針對某一領域的庫檔案,以後建模就非常方便。
模型編輯器
AnyLogic的模型編輯器是最先進的Windows用戶界面。它包括為用戶定製的視窗,工具條,色彩選擇,圖形,拖拽式操作,視圖縮放,句法加亮顯示等。工作區間提供整個項目的目錄樹。編輯器還快速檢查類型,參數和圖表句法的正確性,一旦發現錯誤就加亮顯示。編輯器還生成HTML或XML格式的報告,其中包括圖表,要素和代碼等。
模型瀏覽器/調試器
AnyLogic還包括一個可視化模型瀏覽器/調試器,特徵為:
模型的遠端或近端TCP連線
運行模型時的多種選項
使用模型探測器做導航,可以訪問任何對象
結構和狀態圖的快速動畫顯示
圖形化的斷點,日誌和視窗
統計數據的表示(柱狀圖,甘特圖,曲線圖)
事件瀏覽器
運行時改變變數和參數的值
支持HLA的分散式仿真
AnyLogic支持HLA這種描述仿真分布和協同工作的標準結構。AnyLogic的JavaHLA模組通過特定的接口與仿真器通訊,從而與AnyLogic的仿真或任意一個模型呈分散式結構協同工作。
系統要求
AnyLogic4.1編輯器和瀏覽器
MicrosoftWindowsNT4,2000,98,orMillennium
Java2PlatformSEv1.3.1,
RAM64MB(128MBrecommended)
HDDspace20MB
Videomode800x600orbetter
Mouse
AnyLogic包含了下列標準資料庫:
TheEnterpriseLibrary標準庫
主要式設計支援製造業,供應鏈,後勤資源,醫療等領域之離散事件模擬。使用企業資料庫物件可以建立現實方面之實體模型(交易,客戶,產品,零件,車輛等等),流程(典型的作業流程,包含等待,延遲,資源利用),以及資源。此流程是明確地以流程圖方式顯示。
ThePedestrianLibrary行人庫
致力於模擬行人潮在一個“物理”環境。可以讓你建立一個行人密集地在一個建築物(如:火車站,安全檢查等等)或街道(大量的行人)上。模型支援統計收集如不同區域之行人之密度。也接受服務點之效能負載估算假設。估算呆在特定區域的時間長度,及檢查潛在內部幾何的問題-如新增太多障礙物的影響-以及其他套用。在模型建立以型兂料庫,行人可以在連續空間移動,反應不同型式之障礙物(如牆壁,不同的區域)如同其他行人斑。行人的模擬的互動是複雜行為之代理人,但是Anylogic的行人資料庫提供了一個高階使用接口,可以很快建立行人模型的流程圖風格。
TheRailLibrary軌道庫
支援任何複雜及任何大小的鐵路調車建模,模擬,視覺化作業。鐵路調車模型可以結合離散事件或代理人基礎,用以模擬裝貨及卸貨,資源配置,維護及商業流程及其他運輸活動。除了這些標準資料,使用者可以根據自己的需求來自行建立自己的資料庫及配置。