DYNAMO語言
正文
一種專門為系統動力學設計的仿真語言,屬於連續系統仿真語言。系統動力學的建模採用四種基本模型和時滯組合成複雜模型,用以描述社會、經濟等具有信息反饋的複雜系統。利用這種複雜模型進行計算機仿真就可研究各種控制因素對系統穩定性或發展趨勢的影響,並能根據仿真運行的結果提出建議,以便重新調整系統或改變方針政策。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變數)來表示。 而流率又決定於流位和其他因素。所以一個複雜系統實質上是由一系列信息反饋環交織在一起組成的。這就使得現實世界中許多無法用精確的數學函式描述的複雜系統的非線性大系統也能用計算機進行仿真。
系統動力學在研究系統結構時,只分析相關要素的直接關係,對於複雜的間接關係則看作是由簡單關係的串並聯組成的。這樣對一個個反饋環進行跟蹤,就可以比較真實地反映系統的結構。在進行仿真研究時採用時間步進法,根據前一時刻的系統狀態估計下一時刻的系統狀態,表示系統的動態變化過程。如果系統是穩定的,當時間步長取得足夠小時,仿真系統與真實系統的誤差保持在允許範圍內。
![DYNAMO語言](/img/7/ea3/nBnauM3X4ITN1gjMwMzMxgDM5ETMwADMwADMwADMwADMxAzLzEzL4IzLt92YucmbvRWdo5Cd0FmL0E2LvoDc0RHa.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.)