系統動力學及DYNAMO語言_第1頁
系統動力學及DYNAMO語言_第2頁
系統動力學及DYNAMO語言_第3頁
系統動力學及DYNAMO語言_第4頁
系統動力學及DYNAMO語言_第5頁
已閱讀5頁,還剩36頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

1、第二章系統動力學及DYNAMO語言本章將著重講述系統動力學的建模思想與建模過程。20世紀40年代,費雷斯特(Forrester)創立系統動力學時,稱之為“工業動力學”,當時它主要是用于解決企業中出現的一些和經營管理有關的問題。例如,產量和雇用的不穩定性,一國經濟發展中的波動與蕭條,以及股票市場上的漲落等現象。費雷斯特在系統原理中講到,經濟學已經確立了在工業系統內的許多基本關系,但這些關系多數是用文字的和定性的方式描述的。“工業動力學”正是將經濟學所觀察到的復雜法則條理化的一種工具。20世紀70年代,費雷斯特的系統原理和“工業動力學”的研究方法得到了普遍的應用:解決經營管理中的規劃問題;解決城市

2、的蕭條和衰退問題;認識有限的正在減少的自然資源中出現的指數增長的含義;甚至包括對糖尿病理論的檢驗(醫學)和人與人之間相互作用的關系(心理學)。因此,“工業動力學”很快就改用了“系統動力學”這一個更廣義的名稱。“系統”一詞,在本章的含義是代表適用范圍的廣泛性、問題的復雜性以及觀點的概括性即一種用于解決某一特定類型問題的系統的研究方法。應該強調的是,系統動力學著重研究的是某一類問題。系統動力學是研究某一類復雜系統問題的一種方法學,它以DYNAMO語言作為建模語言,這使得系統動力學的建模方法具有更為深刻的實際意義。DYNAMO語言的名字是由dynamic(動態)和model兩詞的詞頭合并而成,表明了

3、其預期的用途:模擬真實世界系統,使得它們隨時間變化的動態行為能用計算機來跟蹤、模擬。系統動力學把現實生活中的復雜系統映射成系統動力學流圖,DYNAMO語言則把系統流圖模型送入計算機并計算出數字結果。21 系統動力學概述系統動力學的基本思想是充分認識系統中的反饋和動態性,并按一定的規則逐步的建立系統動力學的結構模式。動態性,是指系統所包含的量具有隨時間而變化的特征。比如,企業雇用員工的變動、股票市場上股票價格和交易額的波動、城市中稅收和生活標準的變化、甚至糖尿病的血糖指標的變化,這些都是動態問題。它們可以用變量隨時間變化的圖形來表示。系統動力學中的動態性,不是隨機的不穩定的動態性,而是可以預期的

4、,有一定規律的動態性。同時,某個變動經常在時間上表現出一定的延遲。從這個意義上,也可以說系統動力學的兩個基本觀點是:反饋和延遲。21.1節中討論有關反饋的問題。222中討論關于延遲的問題。211 反饋系統【 反饋系統的概念 】簡而言之,“反饋”是指信息的傳送和返回 Wiener(1961),P96。“反饋”一詞的重點是在“返回”上。反饋的概念是普遍存在的。以取暖系統產生熱量溫暖房間為例,屋內一個和它相連的探測器將室溫的信息返回給取暖系統,以此來控制系統的開關,因此也控制了屋內的溫度。室溫探測器是反饋裝置,它和爐子、管道、抽風機一起組成了一個反饋系統。當將上述反饋系統用圖來表示時(如圖2.1),

5、就成了因果關系圖。其中室溫、熱風調節可稱為“元素”或“節點”,從室溫到熱風調節以及從熱風調節到室溫的帶箭頭的弧,可以稱為“影響關系”或“有向線段”。熱風調節室 溫圖2.1室溫控制的因果關系圖室溫高,則熱風量應減小,可在室溫對熱風調節影響的箭頭上加一個負號。反之,熱風量大,則室溫增加,可在熱風調節對室溫影響的箭頭上加一個正號。從整體上看,室溫影響熱風量,熱風量又影響了室溫。從室溫回到了室溫,這就是一個反饋關系。另一方面,這些互相影響是相互制約的。因為溫度高,則熱風量減小,使室溫降低。反之,室溫低,則增大熱風量,使室溫升高。這種關系稱為負反饋。圖2.2中用一個帶負號的環來表示,這個環稱為負反饋環,

6、此處,負反饋環的目的是使室溫接近恒定的溫度。熱風調節 室 溫(-)+圖2.2室溫控制的負反饋環相反,正反饋環總是加大環內的偏差或擾動,它具有不平衡、不斷增長的特性。例如在人口系統中,人口數增加了,每年所出生的人就增加,這就使人口數按指數規律很快的增長下去。這樣,從“人口數”到“每年出生的人”又返回到“人口數”之間就存在一個正反饋(如圖2.3)。增強而不是抵消環中某個元素的變化是所有正反饋環的共同特征。 +每年出生的人口人 口(+)+圖2.3人口增長的正反饋環負反饋環的穩定性與正反饋環的不穩定性的這兩個特征的區別,可以通過一個正確和錯誤地安裝電熱毯控制的故事來加以說明。一對夫婦有兩條電熱毯,兩條

7、毯子分別裝有兩個獨立的溫度調節裝置:一個是丈夫的,一個是妻子的。正確連接時,應該構成兩個獨立的負反饋系統,各自控制著自己那一塊毯子的溫度,使每個人都得到滿足,如圖2.4A。但是這對夫婦卻把兩塊毯子的溫度調節裝置裝錯了。丈夫的溫度調節裝置接到了妻子的一端,妻子的卻接到了丈夫的一端。結果就出現了如圖2.4B所示的令人討厭的正反饋。妻子覺得冷,就將她的控制器溫度調高,致使丈夫一邊的溫度過高。丈夫卻覺得熱,于是將他的控制器溫度調低,從而使的妻子一端的溫度變低。因此,妻子再次把裝置溫度調高,如此下去,形成一種戲劇性的局面。丈夫的期望溫度丈夫的溫度丈夫的調節裝置妻子的溫度 (-)妻子的期望溫度(-) 妻子

8、的調節裝置圖2.4A正確的連接兩個負反饋環丈夫的溫度丈夫的期望溫度丈夫的調節裝置 (+)妻子的溫度妻子的調節裝置妻子的期望溫度圖2.4錯誤的連接一個正反饋環【 開環思維 】不用反饋的概念來研究問題,往往稱為開環思維。例如,我們發現一個問題后,通常要先思考一番,確定一個處理問題的方案,然后按此方案行動,并認為解決問題的過程到此為止。這一模式,可以用圖2.5中實線箭頭表示的問題方案行動的序列來表示,這是一個開環思維。然而,這一模式忽略了一點:我們的行動會改變系統的狀態(圖2.5中用虛線箭頭表示)。同時,在實施行動方案的過程中,我們可能對問題也會有新的理解,做出新的定義或發現一些必須解決的新問題。這

9、樣,問題方案行動又返回問題的序列,是一個反饋觀點解決問題的模式。在系統動力學中的應該用反饋的觀點,即閉環地考慮問題,而非開環地考慮問題。這一點希望讀者能在具體建模過程中著重注意并細心體會。問題方案行動圖2.5開環思維與反饋觀點作解決問題的比較系統動力學的反饋觀點有一個潛在的假設:系統都是反饋系統,要解決這些系統中的復雜問題,就得逐個找出反饋結構與觀察到的疑難問題之間的關系。但人們面臨復雜問題時,卻總是希望能將其歸于過于簡化了的負反饋系統中,利用單一的針鋒相對的行動對系統加以有效控制。事實上,現實中的系統通常情況下并不是依照直接的因果關系連接而成的,而是非線性的、動態的和層次的。與大多數人所期望

10、的恰恰相反,只在很少的情況下,我們對于復雜系統中的問題才可能只采取相應的單一行動就可以解決。例如,多建公路與立交橋并不一定就能夠緩解交通擁擠,反而有可能刺激消費者購車的需求,進一步加重交通擁擠的情況。由此可見,反饋觀點經常夸大反饋行為的某一影響,而忽略了其他影響,因而,完全依照反饋觀點建立的模型很容易陷入簡單片面的因果決定陷阱。也正是由此,建立在反饋觀點之上的系統動力學與DYNAMO建模方法,不能不分場合地濫用,只有在諸多變量之間的關系可以比較確鑿的認識時,系統動力學的建模方法才可能發揮較大的作用。表2.1 日常生活中常見的“反饋問題”與其“對策”問 題對 策交通擁擠多建公路和立交橋犯罪率升高

11、專項嚴打和多雇用警察城市貧民增加多建經濟實用房汽車尾氣污染安裝尾氣過濾器農作物病蟲害多用殺蟲劑體溫升高吃退燒藥本書的最后一章中還將進一步討論與此相關的問題。212 系統動力學概述系統動力學主要研究復雜問題的反饋過程。系統動力學認為,動態行為是系統結構的一個結果,反饋結構是導致事物隨時間變化的根源。系統動力學認為,系統外的作用力并非是導致問題的根源。庫存不會因為消費者周期性的改變訂單而波動;生產廠家的生產情況也不會因為消費者的偏好改變而改變。從系統動力學的觀點來看,這些系統行動的根源在系統內部。實際上,內部觀點就是把外部的作用力包括在系統內部的反饋系統模型里。因此消費者的訂單和偏好,就成了生產系

12、統的內生變量,成了系統反饋結構的一部分。用系統動力學的觀點來研究一個問題,大致可以分為以下幾個階段:1. 問題的識別和定義2. 系統的概念化3. 模型格式化(模型的建立)4. 模型行為的分析(計算機模擬)5. 策略分析6. 模型的使用或執行每個階段的起點和終點和整個過程的起點和終點都是對這一系統及其問題的不斷深入的理解。因此,它是一個環,或者網,而不是線性的序列。一個循環之后又可以開始新的一個循環。可以不斷反復迭代。圖2.6給出了這些階段的一個可能的執行進程。策略的執行對一個系統的認識問題的定義策略分析計算機模擬系統的概念化模型的建立 圖2.6系統動力學建模研究步驟系統動力學研究所得出的策略建

13、議,不僅來自模型的最終計算結果,而且還來自模擬過程中通過各階段迭代所得到的認識。系統動力學研究最終應該能夠提出切實可行的策略建議。因為模型只是達到目的的工具,最終的目的是提高對現實世界的認識,增加對客觀規律的理解。本章各節將大致按照DYNAMO系統動力學建模的各個階段來組織,需要提醒讀者注意的是,不要因為本章各節的線性排列順序而忽略了系統動力學模擬研究所具有的迭代和循環的特征。22 流圖與系統概念化無論是對于初學者還是經驗豐富的建模者,系統概念化階段都是系統動力學中最困難的階段之一。概念化階段的兩大準則是:(1)明確建模目的;(2)研究問題,而不是研究整個系統。這兩點是建模取得成功的先決條件。

14、明確了研究的問題和建模目的,就好像佩帶了一副濾色鏡,可以濾去不必要的細節,集中精力研究反饋系統中的主要方面。它們使系統動力學的應用者和DYNAMO的建模者,不必為了研究某個事物而去考慮所有的事物。在系統動力學模型的概念化時,還須記住:要用動態的觀點和極力尋找因果關系的反饋環的方法來研究復雜的系統。與“濾色鏡”相似,這兩個特征就好比是建模者的透鏡,它們使得人們清晰的看到應當留在模型中的事物。而使另外一些不應該留在模型中的另一些事物變得模糊不清。221 動態問題的定義一般總要先用一個或多個隨時間變化的變量來表示系統動力學所研究的問題中的系統狀態,這些變量又往往用圖形來表示。這些圖形的建立過程,稱為

15、動態思維的過程,它是模式化的前提和基礎。此時并不需要具體的數據或意義明確的函數,只需反映出變量變化的大體趨勢和狀態即可。因為研究者所關心的,是變量隨時間變化的趨勢,而非具體的變化數值。這些隨時間變化的圖形,即參考行為方式,是建模的參考和依據,也是檢驗一個系統動力學模型有效性的標準之一。建立參考方式是系統動力學研究取得成功的一個必要條件。要作出變量隨時間變化的圖形,首先要識別系統中那些與待研究問題緊密相關的變量;隨后要確定研究的時間范圍。繪出隨時間變化的變量圖形后,即使正規模型尚未建立,我們也可以由此來獲得一些關于系統的認識。圖2.7列舉了一個在還沒有正規模型的情況下進行動態思維,既建立參考方式

16、的例子,其圖形代表廣告所產生的影響。該圖表現的是一產品典型的生命周期,反映了盈利、銷售量與廣告費用之間的聯系。時間產品引進市場增長 市場成熟銷售下降銷售量曲線作為銷售百分比的廣告曲線盈利曲線圖2.7產品廣告及其生命周期有時也會出現這樣的情況,問題提出來了,但是卻沒有一個明確的參考方式。這是因為用戶在還沒有理解變量隨時間變化的大趨勢之前,就提出了有關策略變化可能導致的結果之類的問題。富有經驗的建模者常常列出一些可能的策略及其可能產生的影響。這樣的一組策略列表有時能代替一個清晰的動態觀點。需要指出一點,在沒有參考方式的情況下,要建立一個正規的系統動力學模型是困難的。因此,建模者至少應該在初學建模時

17、盡量避免這樣做。222 反饋結構的表示一旦識別了問題,確定了主要變量并定義了參考方式,建模者的任務便是要找出主要變量與其它變量之間的聯系,既相互影響或稱因果關系。接著,要順著因果鏈尋找反饋結構,一旦因果鏈自行相連成環,就找到了反饋。在系統動力學建模或稱DYNAMO建模中,反饋結構的表達方式主要是圖解的形式。常見的圖有兩類,因果環圖和DYNAMO流圖。因果環圖主要用于模型概念化的前期階段以及后來為非技術性文獻所準備的關于模型結構的直觀描述;而所謂DYNAMO流圖,或稱速率/存量圖,則是對模型更詳細的描述。模型模式化的第一步通常是繪制因果環圖,其次是速率/存量的流圖,最后是建立起明確的反映圖示結構

18、的方程(即模型的格式化,見23、24節)。本小節將主要介紹有關流圖的內容。在此之前,首先對因果環圖進行一些必要的介紹。因果環圖中的每一個影響關系都有正負之分,根據影響關系的積累效果就可以知道該環的特性。如圖28,將酒倒入酒杯的決定會增加倒酒的速率,從而增加酒杯的存量,于是就減少了杯中酒的存量與期望存量的差距,從而削弱向酒杯中倒酒的決定傾向。很明顯,這一反饋環是自行削弱的,因而是個負反饋環,這保證了倒酒的動作最終將停止。杯中酒的存量倒酒的決定倒酒的速率差距期望的存量 + - + (-) + +圖28 反饋環的極性由這個例子可以歸納出下列兩條定理:l 反饋環為正,如果它有偶數個負因果鏈;l 反饋環

19、為負,如果它有奇數個負因果鏈。因此,反饋環的極性實際上是組成環的所有影響關系符號的代數和。最后需要提醒讀者的是,不要將開環誤認為是反饋環。如圖29就不是一個反饋環。海洛因價格上癮者與海洛因相關的犯罪維持習慣所需的錢每個上癮者的犯罪頻率 + + + -圖29海洛因價格與犯罪之間的關系:偽環現在我們開始關于系統動力學流圖的介紹。首先將本章開頭給出的室溫控制的例子,用流圖的形式表現出來,如圖210。室 溫熱風調節圖210室溫控制的流圖從圖中可見,因果關系的元素分別用流圖的元素來表示。“室溫”用矩形的“存量”表示,熱風調節用閥門型的“速率”來表示,表示影響關系的弧線用實線或虛線來表示。明確的講,這個系

20、統的目標是把室溫調節到某一個給定的溫度(附近),熱風的大小與給定溫度和室溫的溫差成正比,這樣,可以用更詳細的流圖211表示熱風調節室 溫 溫 差調節系數 給定溫度圖211室溫控制的更詳細的流圖為了清楚的表示室溫是如何影響熱風調節的,圖211把從室溫到熱風調節的虛線變成了3個元素,4條虛線。圖形排列的形式暗示影響關系的細節。溫差是一個新元素,它等于給定溫度減去室溫,用圓圈表示,稱為輔助變量。給定溫度也是一個新元素,用小圓圈加一斜線表示,稱為常量。調節系數是另一個新的常量元素。從調節系數到熱風調節的虛線及從溫差到熱風調節的虛線暗示熱風調節量與溫差成正比,其比例系數為調節系數。一般性的過程可以用圖2

21、12來概括。由信息確定如何控制信息從系統獲取信息控制控制作用指標圖212流圖的一般過程圖210和圖211稱為系統動力學流圖,簡稱為流圖。下面簡述流圖中的幾個基本概念(其符號見圖例),它們也是系統動力學中的基本概念。圖 例存量速率輔助變量函數常量信息鏈物流源或匯(1)存量(LEVEL),圖中的長方形,象一個水池,可稱為水平、存量、積累量、流位,它是系統的狀態,也就是系統的某個指標值。流圖中用水池的水位高低來模仿系統狀態值的大小。(2)速率(RATE),圖中的閥門形,可稱為決策函數、速度、速率、流率等。它控制著存量的變化。流圖用閥門模擬控制水位的高低的機制。(3)實線稱為實物流。實線連接“閥門”和

22、“水池”,模仿控制的通路。它要貫穿存量和速率,像是水流在其中穿行。(4)不規則的閉曲線稱為源或匯。源指實物的來源,匯指實物的去向,好比水的源泉和去向。它是系統之外的元素。(5)虛線稱為信息鏈,模仿信息傳遞的過程。它指向速率,表示根據什么信息控制速率。但不能從這條曲線看出具體控制方式的細節;比如,我們希望采用溫差比例方式進行調節,但圖211的信息鏈并不能說明這個問題。在本章23小節中,將具體講解如何用DYNAMO語言中的速率方程來進一步刻畫控制的細節。所以,圖211既可以表示溫差等比例調節,也可以表示溫差微分調節或混合調節等等。(6)圓稱為輔助變量,輔助表示流速變動的規律。(7)小圓加斜線稱為常

23、數,是系統中重要的參數。此外,還有幾個問題需要明確:第一,系統的動態變化是指系統狀態隨時間的變化,即自變量是時間。第二,系統的狀態可用系統的一組指標表示,一個指標是一個量,只有確定了單位才可用一個數值來表示一個量。例如,室溫是一個表示室內狀態的量,用作為單位,那么數值10表示室溫10的量。第三,控制指標的速率也具有相應的單位。它的單位應是每單位時間的單位系統狀態量。此例中時間單位如果是小時,那么調節室溫的風量單位應該是使室溫每小時升高1的風量。第四,圖形的結構要反映這些概念,用實線連接的速率和存量是相互依存和相互對應的。速率是指單位時間存量的變化,存量指速率的積累。因此設時間為t,存量為L,速

24、率為R,那么dL/dt=R或L=Rdt。為了計算出狀態值隨時間的變化,在從因果關系圖轉換成流圖時,必須用實物流把速率與其相對應的存量(狀態值)相連。實物流只能用在連接存量與速率,不能連接兩個存量或兩個速率。當然,速率與相應的存量相連不僅有上述一種形式。一個存量還可以對應多個與之有關的速率。第五,流圖中區分了實物和信息。存量是實物的積累;速率是事物隨時間變化的規律;實物流是實物積散的途徑;源和匯是實物的來源和去向。用信息控制速率變動的規律,信息來自系統外部變量或系統內部存量;信息流是從信息源到速率的路徑。【 反饋的形式 】上述簡單的系統內只有一個存量,稱為一階系統。一階系統有多種多樣的變化模式。

25、如圖213所示。 2 13圖213一階系統的反饋形式如果一階系統中有負反饋,稱為一階負反饋系統。前述的調溫系統是典型的一階負反饋系統。它的 反饋形式如圖213中曲線1所示。設初始室溫和與其溫度有一個差別,例如室溫低于期望值,由閥門控制熱風吹入,由于溫差大,命令多進熱風,結果室溫上升,溫差變小,進入的熱風漸漸減小,所以室溫上升就越來越慢。室溫緩慢接近期望溫度,但始終不可以到達期望溫度,只是差別越來越小。如果一階系統中有正反饋,此系統就稱為一階正反饋系統。細菌生長是一種典型的一階正反饋系統。假設細菌每小時繁殖一個,開始時有1個細菌,1小時候就有2個,2小時后有4個,3小時后有8個,4小時后有16個

26、,5小時后有32個其因果關系圖如圖214。細菌出生細 菌 + (+) +圖214細菌生長的因果關系圖其流圖見圖215。細菌出生細 菌 細菌出生率圖215細菌生長的流圖如果仔細考慮,細菌數量的動態描述還應作些補充。細菌除了通過繁殖增加外,還會死亡。因此細菌數量與細菌出生和細菌死亡之間呈現如圖216所示的因果關系。+ +細菌死亡細菌細菌出生 (+) () + 圖216考慮死亡的細菌生長因果關系圖轉換為系統流圖如圖217。細菌死亡細 菌細菌出生 細菌出生率細菌壽命圖217考慮死亡的細菌生長流圖本例中一個存量與兩個速率相對應,向內的箭頭表示細菌出生使細菌數量增加,向外的箭頭表示細菌死亡使細菌減少。這張

27、流圖中所有的量取值都是正的。顯然細菌的壽命的倒數是死亡率。當出生率大于死亡率時,細菌數量呈指數上升的趨勢,此系統是一階正反饋系統(變化形式如圖213中的曲線2);當出生率小于死亡率時,細菌數量呈指數下降的趨勢,此系統是一階負反饋系統。如果限定細菌生活在一個有限的空間里,當細菌生長到一定數量后就不能在無限增長下去,那么就會呈現一個先是指數上升然后又緩慢接近極值的趨勢。類似的情況很多,比如增加推銷員,產品銷售數量會增加,產品出售增多了,則有更多的錢雇用推銷員。開始推銷員數量增長很快,但人們購買這種商品的潛在需求逐漸降低,則這種正反饋就不能持續下去,推銷員或產品出售的數量就開始緩慢回落。它們的動態如

28、圖213中的曲線3。【 延遲 】系統動力學的另一個基本點是延遲。延遲也是普遍存在的,物理學認為“在宏觀的自然界中不存在突變”。一般來說,原因并非立即就能產生結果,往往某個原因經過了一段時間才能作用產生了效果。比如在調節室溫的過程中,空調機馬力加大以后,室溫不會馬上就上升。要經過一定的熱傳導的過程,熱量不斷積累,才會使室溫上升。其因果關系如圖218。熱量積累 + +熱風調節室溫增加()室溫 +圖218考慮延遲的室溫調節因果關系圖 把這個因果關系圖轉換成流圖。室溫是一個存量,室溫增加是對應的速率,它們用實物流相連。熱風調節是熱量積累,所以熱量積累是一個存量,熱風調節是使其增加的對應速率,它們也用實

29、物流相連。熱量積累使室溫增加,這是存量對速率的影響,它是一個信息鏈,用溫升時間常數輔助表示這個關系。最終的系統動力學流圖如圖219。熱風調節熱量積累室溫增加室溫 調節系數 溫升時間 溫 差給定溫度圖219考慮延遲的室溫調節流圖圖219所示的系統中有兩個存量,可以稱為二階系統。整個主環呈負反饋,稱為二階負反饋系統。其系統行為是很典型的,在這個系統中出現了延遲,熱風調節后并沒有立即引起室溫的增加,因而室溫發生了振蕩。類似地,訂貨以后,貨物需要在途中滯留,經過一段時間才會進入倉庫,變成庫存。所以增加訂貨速度后,庫存不是立即增加而是延遲一段時間才增加。這個延遲引起庫存值在期望庫存值附近振蕩。如圖220

30、。庫存進貨速度積存訂單訂貨速度 訂貨時間 時間延遲 差 值 期望庫存圖220訂貨庫存流圖在圖219中,使室溫變化變化的原因可以追溯出一條鏈。按照常識,室溫控制是由熱風調節引起的,但仔細研究,發現熱風調節引起了熱量積累,才使室溫增加,引起室溫變化。室溫慢慢地積累,所以調節熱風后,經過一段延遲才會有室溫變化。這種延遲引起了在某個時候,關小了熱風反而使室溫增加,或者開大熱風但室溫減小的違背常理的情況出現。在時間上,剛才的閥門打開引起現在的溫度升高;在空間上,空調機的熱風量加大引起了不是同一處的室內溫度上升。在現實社會中,我們經常可以發現有一些系統比上述的例子更復雜,組成元素更多,反饋環相互地交織在一

31、起,因而它們的動態規律就更不容易認識。當我們研究某個數量指標變化時,追源溯本,總可以找出一大串因果關系鏈。這樣初始原因和最終結果之間相隔大量元素,因而在時間上、空間上,因果之間可能相隔很遠,以至于僅靠經驗和細心觀察絕無發現的可能,原因與結果之間還會有違背常理的情況出現。系統動力學的建模思想給出了構筑系統動力學模型的概念模式,因而搭建起了用計算機模擬復雜系統的橋梁,它為發現和處理現實中這些復雜的具有延遲的因果關系提供了可能。223 系統概念化小結得到系統流圖是認識系統動態的關鍵一步。根據系統的原理,采用分析與綜合的辦法來認識系統,首先要根據系統的目標找出我們關心的對象,即確定系統的邊界;然后把系

32、統分解成其組成要素,在按照以上介紹的幾個原則找反饋環,認識延遲的存在,鑒別出存量和速率,找出實物流和信息流,并將他們正確的組合成一個有機的整體,形成具有系統動力學特定結構的流圖。流圖中相鄰的元素之間常常有典型的連接關系,例如,一階正反饋、一階負反饋、二階負反饋。這些反饋環進一步交織在一起形成一個網。在分析時常采用自頂向下的方法,抓實質、忽略次要成分,得到一個很粗的模式。這種粗糙的模式若不能滿足需求,則一步步地細化下去。例如,考慮室溫調節時,開始認為系統是個簡單的一階負反饋系統,它粗糙的反映了系統趨向期望溫度的模式;細化后看到了延遲,如果需要的話還可以進一步研究,比如可以對復雜的熱量積累進行更細

33、致的描述,表現出熱風先經過管道再加熱室內空氣,甚至室內不同地方的空氣溫度也不相同。那樣的話,系統結構就更加復雜,且能更細致地反映客觀實際。因而,系統流圖具有一個層次結構,可以通過逐步細化逐步的獲得越來越符合實際的系統流圖。23 從流圖到DYNAMO方程所謂模型格式化,是一個將上述流圖的模型結構編寫成DYNAMO方程的過程,也是一個由非正式的概念認識向正式的定量表達式轉換的過程。通過在計算機上運行DYNAMO方程確切地描述的模型可以模擬系統的動態行為。格式化不僅僅是概念化和結果分析之間的一個技術變換階段。并能提高對系統結構的認識。一個非正式的因果關系模型一旦編寫成方程,便顯得清晰明了,一目了然。

34、當然,這樣所得到的正規模型也并不能完全代表真實世界,從這一點上說,它是不精確的。但是,正規模型卻更為明確,因為它必須要為計算機所識別,并能突出地反映出所針對的問題的內在結構。所以,借助于模型格式化階段,建模者可以提高對系統結構的認識,建立起對實際情況符合得更好的DYNAMO模型,從而在發現和解決實際問題方面發揮更為現實的作用。在DYNAMO語言中,存量是一種變量,速率也是一種變量,要為每個變量制定一個變量名,這個變量名可以是漢語的(在漢化的DYNAMO中),也可以是英語的。再用圓點及其后的下標來表示修飾詞現在、過去、時點、時段。假設初始時刻系統狀態是已知的(這包括全部狀態值和流率值),就可以把

35、第一個時點的系統狀態求出來。因為第一個時點上的指標值=初始時刻指標值+DT*初始時刻該指標的總流速。同樣的,如果過去的指標值及速率值是已知的,那么有實物流所反映的關系就可以求出現在的指標值。現在的指標值=過去的指標值+DT*過去該指標值的總流速。一個計算復利的存錢系統如圖221所示。RAMMONEY CRATE 0.01圖221復利存錢系統流圖錢數的變化要用下邊的存量方程表示:錢.K=錢.J+DT*錢的增加速率.JK或MONEY.K=MONEY.J+DT*RAM.JK其中錢或MONEY為錢數的變量名,變量名由建模者任意規定,但它們應該有比較清晰明確的含義。錢的增加率或RAM是錢數變化的速率的變

36、量名。錢數等于過去的錢數加上流逝的時間乘以這段時間內的錢數增加的速率。對這個記復利的存錢系統,錢的增加速率是很明顯的。在DYNAMO中用一個速率方程表示:錢的增加速率.KL=錢.K*利率或RAM.KL=MONEY.K*CRATE除上述兩方程,還有表示錢的初值大小的方程及利率大小的方程。這樣,一個存錢系統的DYNAMO模型就構成了。它主要包括四個方程,每個方程錢都用一個字母標識方程的類別,即LMONEY.K=MONEY.J+DT*RAM.JKRRAM.KL=MONEY.K*CRATECCRATE=0.01NMONEY=100雖然方程中沒有明顯的指出一個量的單位,但是量的單位是事先約定的。方程中的

37、數值與約定好的單位結合,才能正確地反映量的大小。在這個存錢的系統中,我們約定錢用“元”作單位,時間用“月”作單位,利率是指每元錢存一個月會增加0.01元。從流圖轉化到DYNAMO方程并不困難。存量方程反映了存量總是總流速的積分的過程。存量方程很容易從流圖中得到,因為在流圖中已明顯地標出流入及流出的速率。速率方程反映了每個速率變動的規律,指向速率的信息鏈暗示了速率是由哪幾個變量決定的。但這些變量如何具體的構成流率方程,從流圖中上不可得出。例如錢數及利率決定了錢的增加,但錢數乘以利率是錢數的增加,并沒有明顯地表現在流圖里。相乘的關系是從對存錢系統的研究得到的,并由DYNAMO方程表示。因此,流圖只

38、能反映出速率與什么量有關系,只有速率方程才能完全地把速率與變量的具體關系描述出來。對于這個簡單的例子,DYNAMO方程沒有什么優越性,但對于越復雜的系統,其優越性就越顯著。24DYNAMO語言DYNAMO是一種計算機模擬建模語言,其特點是語法簡單,容易掌握。一個用DYNAMO語言編寫的程序,也就是一個針對某一問題的系統動力學模型,它反映了由于系統狀態變量之間的反饋作用,使系統的狀態連續地變化。上一節介紹了系統動力學的基本思想,從因果關系圖出發,建立了系統動力學的流圖,這是一種反映系統結構的模型。流圖模型很形象地用水流來模仿復雜系統。DYNAMO系統的狀態是用一組存量來表示系統的一組指標值。描述

39、“流”像水流似的從源通過“水管”流動著,經過閥門,閥門的開閉控制它的流速,使在貯槽中存儲的水位高低變化,以此模仿指標值大小的變化。在某些系統中,有幾條水管與一個貯槽相連,而這些水管中的水有的流入貯槽,還有的水管中的水是從貯槽中流出的。流入水管的流速的總和稱為流入速率,流出的流速的總和稱為流出速率。常常,一條水管模仿一種因素對指標所產生的影響。與一個指標對應的流速有一個以上表明多種因素都對這個指標產生影響。與同一個指標對應的這些流速的代數和稱為該指標的總流速。如前所述,指標是其總流速的積分(或稱累積),總流速是其指標的微分。在不會引起誤會的情況下,總流速可以簡稱為流速。若要表示系統動態變化,就要

40、確定一個時間軸,從初始時刻開始,均勻地劃分這個時間軸,每一個時間步長記為一個DT。如圖2.22所示。 DTt圖2.22時間步長如果把某個時點稱為K時刻或現在時刻,它的前一時點就稱為J時刻或過去時刻,它的后一時點就稱為L時刻或未來時刻,如圖2.23。 DTJ K L t過去 現在 未來圖2.23時刻與時段相應地,JK時段稱為過去時段,KL時段稱為未來時段。DYNAMO就是利用各個時點上的指標值(LEVEL值)和各個時段上的速率值(RATE值),來計算和表現系統的動態變化。看一個具體的例子,其中流入和流出率都是常量。假定我們每個月從一個倉庫中運走100單位的貨物,而從供應廠商處每月只能得到80單位

41、的貨物,那么,總流率就是-20單位,即倉庫的貨物以每月20單位的流速減少,它的動態行為是線性的,其隨時間變化的圖形將是一條遞減的直線。任何一個學過高中代數的同學都可以通過比算得出倉庫的變化,即經過的時間乘以庫存的恒定變化率:庫存量(現在)=庫存量(過去)+經過時間*恒定變化率但是,當影響倉庫的流入和流出量不再是常量而是在不斷變化時,情況就變得有趣了。只學過高中代數的同學只能在絕望中放棄,或等到他學習了微積分的知識后再來解答。但是即使在那個時候,他也可能無法獲得存量隨時間變化的精確方程,或者尷尬地發現這個函數是不可積的。在DYNAMO中,當訂單率和貨運率隨時間的變化而變化時,DYNAMO通過將連

42、續的時間分割為許多離散的時段,并假設在每個小的時段上,流率為常量,這樣就可以像只學過代數的同學那樣進行計算,其公式如下:庫存(現在)=庫存(上一時刻)+(經過的時段)*(假設的恒定總流率)或,用DYNAMO中的記號:INV.K=INV.J+DT*(SHPMTS.JK- ORDRCV.JK)INV.K=當前的庫存值;INV.J=一個時段前的庫存值;SHPMTS.JK =在過去時段上新進貨物數量的流率;ORDRCV.JK =在過去時段上接到的訂單數量的流率;當然,這樣得到的是近似值,但是,當計算的時段足夠小,并且流率的變化率不大時,計算出的結果將非常接近精確值。因此,DYNAMO是通過對系統模型進

43、行分段(每次一個DT)計算來模擬一個動態反饋系統的。對于簡單的系統,我們可以進行筆算,但是,如果系統略微復雜,而且計算間距DT相當小的話,我們對于這樣的計算就無能為力了,而這時使用計算機最為理想。事實上,能夠進行這類計算(用不同的表示方法)的計算機程序語言很多,比如FORTRAN、C+、DELPHI、JAVA等等。但是DYNAMO正是為了模擬動態反饋系統而設計的,它會是一個很好的工具。DYNAMO語言可以滿足那些不熟悉計算機的建模者和經驗豐富的程序員的不同需求。DYNAMO的所有語句可以歸為兩大類:一是變量描述語句,二是控制語句。組成語句的元素共有9種:(1)語句類型標識(2)變量名(3)時間

44、下標(4)等號(5)圓點(6)分隔符(7)函數(8)數值(9)運算符。本節將詳細介紹DYNAMO語言的基本內容。241語法元素(1)語句類型標識。DYNAMO模型的每一條語句最前邊都有一個語句類型標識。以此標識語句的類型。描述語句的類型標識為一個大寫字母。控制語句的類型標識是幾個大寫字母。例如,L、R、A、T、N、C是描述語句的類型標識。SPEC、PRINT、PLOT是控制語句的類型標識。(2)變量名。DYNAMO模型中有多種變量,我們已經熟悉的有存量、速率、輔助變量、常量。建模者編程時要為每一個變量起一個名字,這個名字應該易于記憶和理解。變量名的格式在不同的機器上有不同的規定。(3)時間下標

45、。有5種時間下標。J、K、L分別表示過去、現在、未來時點,JK、KL分別表示過去及未來時段。都用大寫字母。(4)等號(=)。用等號把變量及其定義聯系起來。(5)圓點()。用變量名加圓點加時間下標標識出變量在不同時期的值。(6)分隔符。不同機器分隔符不同,常用的分割符有兩種:逗號(,)及斜線(/)。(7)函數。DYNAMO中的函數多種多樣,前邊我們已經接觸到的有SIN、COS、NOISE、TABLE。其他的各函數及細節以后介紹。(8)數值。DYNAMO所允許使用的數值因機器而異。常用的有整數、浮點數及小數。整數一般限定在6位左右。DYNAMO的浮點數使用科學計數法,如23E3代表23000,12

46、E-2代表0.12,2.176E4代表21760等等。E前只允許包含6個以下的印刷符號,E后是整數,絕對值小于32,小數是一般意義下的小數。小數點前的0可要可不要。(9)運算符。有加(+)、減(-)、乘(*)、除(/)4種。其含義如同常規的運算符,用于進行算術運算。242 變量描述語句DYNAMO中的變量描述語句一共有8種。第一列是由一個字母組成的語句標識;空一格后是被描述的變量,然后是等號,等號的右邊是一個表達式。表達式詳細描述了變量如何變動的計算方式,作為變量的定義。變量和等號及表達式三者是緊緊相接的,稱為變量方程。空格是變量方程結束的標志,空格后的內容將作為注釋,不能進行計算。所以如果不

47、小心在鍵入變量方程時多鍵入空格,將會導致模型的錯誤。各種變量的意義和流圖圖例同時羅列如下:1) 存量方程,標識為L。存量方程把系統中存量的動態用積分的形式描繪出來。例如:LPLANT.K=PLANT.J+DT*(PIN.JK-POU.JK)就是一個存量方程的例子。一個存量方程要與把與一個存量有關的所有的速率都考慮到。與一個存量相連的實物流必然是一個或一個以上,其中有的進入該存量,有的離開該存量。在存量的括號里面應包括所有這些進入及出去的速率的代數和,否則就會有錯。對于存量方程,乘號(*)前的部分在格式上是固定的,因為一個存量的現在是要由同樣一個存量的過去值來求得。如果沒有遵守這個格式,DYNA

48、MO會認為出了語法錯誤。括號內的部分的格式是自由的,但一般都是所有與存量對應速率的代數和。2) 速率方程,標識為R。一個速率方程描述一個速率具體如何變動,用信息鏈指向速率的變量都會影響速率。速率方程應該包括所有這些變量,否則在語義上就會出錯。3) 輔助變量(AUXILIARY)方程,標識為A。一個輔助變量方程描述一個輔助變量具體如何變動。輔助變量輔助表達系統中復雜的因果關系。在前面某些簡單的模型中,根本沒有出現A方程。反之,在實用的復雜系統中輔助變量的數量要比其他變量大得多(見25小節的實例)。輔助變量的作用是輔助表達系統中的因果關系。一方面它可以把復雜的因果關系環中各個重要的概念分離出來,另

49、一方面還可以描述重要的外部變量。4) 初值方程,標識用N,它表示各種變量的初始值,所以在流圖中不會出現。只有存量必須給定初始值,其他變量的初值可以給定也可以不給定,因為其他變量在初始時刻的值可由該變量方程通過LEVEL變量的初始值計算出來。用N方程給定初值有兩種方式,一種是把數值直接賦給變量,作為初值,例如N植物=10000另一種是間接地為變量賦值,例如N植物=10000N食肉動物=0.1*植物這就意味著:N植物=10000N食肉動物=1000如果建模者不為R、A、S變量置初值,則編譯就把這些變量方程中的下標去掉,做為初值方程。函數的初值也同樣處理,把函數中自變量的下標去掉,再通過函數計算就得

50、到了函數的初值。如果建模者用N方程給R、A、S變量設了初值,那么機器應該比較上一句得到的初值與建模者用N方程設定的初值之間的差。如果不為0,機器應自動取舍,不同的編譯有不同的考慮。5) 常量(CONSTENT),標識為C,在流圖上用小圓上畫一斜線表示。有的數值在系統中起著比較重要的作用。這些數值標識系統特征,是重要的參數,反映了某個概念,有必要將它們特別明確起來,所以不是把這些數值直接寫在速率方程、輔助方程或初值方程中,而是為它們命名。再用常量方程去表示其具體數值的大小。例如在植物出生率的輔助方程A植物出生率.K=3+氣候影響.K+隨機噪音.K中,數值3是植物出生率的平均數,用一個常量方程表示

51、,概念上更清楚。如此,一個輔助方程可以由兩個方程來表示:A植物出生率.K=植物平均出生率+氣候影響.K+隨機噪音.KC植物平均出生率=3在前邊的章節中曾提到系統模型中有變量及參數之分。變量是隨某些量變化的函數,參數在同一次模擬運算中保持不變,在不同的模擬運算中才變化,DYNAMO中的C變量實質上就是系統模型的參數。6) 表變量方程,以T為標識,它沒有標準的流圖圖例。表變量方程是為了給出一個給定表函數的函數值。它的格式很固定:T某個表名=數,數,數有的機器上可以用“/”代替“,”作為兩個數的分隔符。有關表函數的內容將在244節中介紹。7) 補充變量,用S為標識。它不是獨立的變量,它的目的是為了保

52、留、計算某些量的函數值,以便統計、制表、制圖。例如,如果在一個模型中男人數、女人數分別是兩個存量,那么為了計算并顯示人口總數,可以引入補充變量。人口總數用S變量方程定義:S人口總量.K=男人數.K+女人數.K8) 列車變量,標識是B。列車變量用一變量名標記一組存貯單元,每個存貯單元稱為一個車廂,整個一組存貯單元組成為一個列車。車廂用于存貯數據,車廂中的初值用N或C語句賦予。車廂中所存貯的數據可以移動。有兩種移動方式:一種方式稱為直線列車,車廂直線串聯形成一個直線列車,數據從前一節車廂定時向后一節車廂傳送,最后一節車廂的值移動后就消失了;第二種方式稱為環形列車,車廂環形串聯首尾相接,形成環形列車,數據從前一個車廂定時向后一個車廂傳送,最后一節車廂的值又返送回第一個車廂。BBB=B

溫馨提示

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

評論

0/150

提交評論