一種專門為系統動力學設計的仿真語言,屬於連續系統仿真語言。系統動力學的建模採用四種基本模型和時滯組合成複雜模型,用以描述社會、經濟等具有資訊回饋的複雜系統。利用這種複雜模型進行電腦仿真就可研究各種控制因素對系統穩定性或發展趨勢的影響,並能根據仿真運行的結果提出建議,以便重新調整系統或改變方針政策。DYNAMO語言正是根據系統動力學建模思想而設計出來的面向用戶的仿真語言,即使沒有程式設計經驗的用戶也很容易學會使用這種語言。為瞭在電腦上執行用DYNAMO語語言編寫的仿真程序,已經設計出各種版本的DYNAMO軟件,以文本和軟磁盤的形式提供。
簡史 1958年美國麻省理工學院的R.K.貝內特研制出不用方程式的工業管理問題仿真軟件SIMPLE(Simula-tion of Industrial Management Problem with Lostof Equations), 它具有圖形輸出。1959年 P.福克斯和 A.L.皮尤,對 SIMPLE作瞭改進, 並改稱現名 DYNAMO。1962年J.W.福雷斯特建議放寬對模型初值的限制。1965年重新編寫瞭 DYNAMO編譯程序。早期的 DYNAMO編譯程序是用算法語言 ALGOL編寫的。後來改用公式翻譯語言FORTRAN編寫。DYNAMO軟件已有多種版本,適用於不同的機型和操作系統,從適用於IBM公司大型計算機的DYNAMOⅣ/370到適用於小型機的 Mini-DYNAMO和適用於微型機的MicroDYNAMO。
系統動力學建模 系統動力學的基本模型有四種:指數增長模型ẋ=kx,指數衰減模型ẋ=-kx,改進型指數增長模型ẋ=k( X-x),以及對數模型ẋ=kx(X-x)。這裡x是變量,ẋ是變量x對時間t的導數,表示變量的變化速率,X是變量x的極限值,k是比例系數。復雜的模型則可由上述基本模型加時滯等組合而成。系統動力學把被仿真的系統看作是信息反饋系統,利用可能收集到的經驗數據(即信息)來直觀地描述系統的結構。系統在每一瞬間的狀態用一組流位(在DYNAMO中稱為 LEVEL變量)來表示,狀態隨時間的變化則用流率(在DYNAMO中稱為RATE變量)來表示。而流率又決定於流位和其他因素。所以一個復雜系統實質上是由一系列信息反饋環交織在一起組成的。這就使得現實世界中許多無法用精確的數學函數描述的復雜系統的非線性大系統也能用計算機進行仿真。
系統動力學在研究系統結構時,隻分析相關要素的直接關系,對於復雜的間接關系則看作是由簡單關系的串並聯組成的。這樣對一個個反饋環進行跟蹤,就可以比較真實地反映系統的結構。在進行仿真研究時采用時間步進法,根據前一時刻的系統狀態估計下一時刻的系統狀態,表示系統的動態變化過程。如果系統是穩定的,當時間步長取得足夠小時,仿真系統與真實系統的誤差保持在允許范圍內。
![](/img3/47075.jpg)
從觀察系統到建立系統的流程圖是用DYNAMO語言編制仿真程序的關鍵。對於簡單的系統,很容易憑直覺就畫出系統的流程圖。一般可以根據系統分析,先找出實物流,再找出信息流。對於比較復雜的系統,可按下列步驟建模:①確定系統邊界。②找出因果關系和反饋環。③區分反饋環中LEVEL變量和RATE變量。④確定L方程和R方程的結構。
DYNAMO程序 DYNAMO程序中有兩類語句:一類是模型描述語句,用來描述流程圖中的元素和變量的初始狀態,模型描述語句的集合就組成瞭系統動力學模型。另一類是控制語句,用來控制仿真運行,如規定仿真過程的步長及輸出報告的內容和格式等。
模型描述語句共有八種,每種均以第一列的一個特定的字母為標識,指明這個語句描述的變量類型。從第三列起,書寫這一類型的變量方程。變量方程由變量名、時間下標、運算符號、各種標準函數、宏函數和數組成。其基本形式是:變量名。時間下標=表示式。變量名是由1~5個字母組成的字符串,由用戶自行規定。變量名後用時間下標表示變量在指定時刻進行計算,中間用句號隔開。方程中不允許有空格,否則就認為空格後的內容是註釋。
在DYNAMO語言中有11種控制語句。用DYNAMO語言編制仿真程序時,為瞭使模型更加簡潔,可以調用一系列標準函數和宏函數。各種版本的DYNAMO軟件均有常用的標準函數和宏函數。
參考書目
G.戈登著,楊金標譯:《系統仿真》,冶金工業出版社,北京,1982。(G.Gordon, System Simulation, Prentice-Hall, Englewood Cliffs, N.J., 1978.)