中科大系統動力學課件02系統動力學建模語言DYNAMO基礎_第1頁
中科大系統動力學課件02系統動力學建模語言DYNAMO基礎_第2頁
中科大系統動力學課件02系統動力學建模語言DYNAMO基礎_第3頁
中科大系統動力學課件02系統動力學建模語言DYNAMO基礎_第4頁
中科大系統動力學課件02系統動力學建模語言DYNAMO基礎_第5頁
已閱讀5頁,還剩88頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

系統動力學

(SystemDynamics)主講:張學民(2)系統動力學建模語言DYNAMO基礎DYNAMO來源DYNAMO,取名來自DynamicModels(動態模型)的混合縮寫。顧名思義,DYNAMO命名的涵意在于建立真實系統的模型,藉助計算機進行系統結構、功能與動態行為的模擬。DYNAMO和系統動力學的關系,可追溯到50年代系統動力學發展的初期。DYNAMO的前身稱SIMPLE(SimulationofIndustrialManagementProblemswithLotsofEquation)DYNAMO描述動力學系統的基本原理以庫存系統為例,為簡單起見,考慮輸入、輸出速率為常數的情況。假定每月發貨與入庫各為100與80件,則庫存INV每月減少20件,其動態行為是線性的,以圖形表示就是隨時間變化的直線。可用數學式表達:

INV現在=INV過去十(時間間隔)x(純速率)若庫存量在5個月前為l200件,則:

INV現在=1200件+(5月)*(80件/月-100件/月)=1200+5*(-20)=1200-100=1100(件)當速率隨時間變化時,可以把連續的時間分割成小的時間間隔,并假定在各小間隔內速率是固定的,然后,藉助計算機逐段地一一加以計算。若計算的時間間隔足夠小,速率變動不大,則此結果將與從微分方程獲得的精確解(如果可能求得的話)十分接近。DYNAMO描述動力學系統的基本原理(續)在DYNAMO中,給變量帶上時間下標以區別在時間上的先后。英文字母K表示現在,J表示剛剛過去的那一時刻,L表示緊隨當前的未來的那一時刻。DT表示J與K或K與L之間的時間長度。DYNAMO描述動力學系統的基本原理(續)庫存方程可用DYNAMO表示如下:INV.K=INV.J+DT*(ORRE.JK-SH.JK)式中:

INV.K––––庫存現有量;INV.J––––DT前的庫存量;DT––––計算的時間間隔;

ORRE––––在JK間隔內收到的訂貨量SH––––在JK間隔內的發貨量。水平(狀態)變量與方程水平(狀態)變量:對輸入和輸出變量(或其中之一)進行積累的變量。在DYNAMO中計算水平(狀態)變量的方程稱為水平(狀態)變量方程。在DYNAMO模型中,以L為標志寫在第一列。例如:LLEVEL.K=LEVEL.J+DT*(INFLOW.JK-OUTFLOW.JK)式中:

LEVEL––––水平(狀態)變量;INFLOW––––輸入速率(變化率);OUTFLOW––––輸出速率(變化率);DT––––計算間隔(從J時刻到K時刻)。速率變量與方程在水平變量方程中代表輸入與輸出的變量稱為速率,它由速率方程求出。DYNAMO中,速率方程以R為標志。例如:RBIRTHS.KL=BRF*POP.K式中:

BIRTHS——出生率(人/年);

BRF——出生率系數(人/年);

POP——人口(人)。速率的值在DT時間內是不變的。進一步說,速率方程是在K時刻進行計算,而在自K至L的時間間隔(DT)中保持不變。速率的時間下標為KL。輔助變量與方程水平方程有著比較固定的格式,而速率方程無一定格式。因此建立速率方程式頗費功夫。可以說,構思與書寫模型的工作中,考慮與建立速率方程的份量占了很大的比例。在建立速率方程之前,若末先做好某些代數計算,把速率方程中必需的信息仔細加以考慮,那么將遇到很大的困難。這些附加的代數運算,在DYNAMO中稱為輔助方程,方程中的變量則稱為輔助變量。輔助方程以字母A為標志,例如:ADISC.K=R00M–TEA.KRCHNG.K=CONST*DISC.K式中:DISC——茶水與室溫度差(℃);ROOM——室溫度(℃);

TEA——茶水溫度(℃);CHNG——茶水的溫度變化率(℃/分)“CONST——介質傳熱系數(1/分)。表函數模型中往往需要用輔助變量描述某些變量間的非線性關系,顯然簡單地由其它變量進行代數組合的輔助變量已不能勝任。若所需非線性函數能以圖形給出,那么就能十分簡單地以DYNAMO的表函數表示。考慮一個企業建設的例子。企業建設BC是變化率,方程如下:RBC.KL=NCF*BS.K*ELBC.K

式中:BC——企業建設(個/年);NCF——額定建設系數(1/年);

BS——企業(個);ELBC——土地對企業建設的影響(無量綱)。表函數(續)討論輔助變量ELBC方程的建立問題。假定,ELBC為土地占用系數LF0的函數,LFO變化范圍為從零至1。當LPO=0時,表示土地未被占用,LFO=1則表示土地被全部占用。ELBC與LFO的非線性關系,可用圖表表示。表函數(續)LPO=0,土地未被占用LFO=1,土地被全部占用表函數(續)輔助變量的值用表函數給出,采用下示格式:AVAR.K=TABLE(表名,輸入變量,最小的X值,最大的X值,X的增量)T表名=Y0/Y1/Y2/…Yn式中,Y0,Y1,Y2…,Yn為特定n個點的Y坐標值。如前例:AELBC.K=TABLE(TELBC,LFO.K,0,l,0.1)TTELBC=1.3/1.28/1.25/1.22/1.18/1.1/1/0.7/0.3/0.1/0N方程N方程的主要用途是為水平方程賦予初始值。在模型程序中,N方程通常緊跟著水平方程。LINV.K=INV.J+(DT)*(ORRE.JK-SH.JK)NINV=1000上述方程表明庫存的初值為1000件,模擬應從INV=1000開始。C方程C方程的主要用途是為常數賦值。COPL=3DYNAMO方程小結至今已討論DYNAMO模型中的六種方程,每一種方程前都要用標志字符表示,如下:L水平方程R速率方程A輔助方程C賦值予常數T賦值予表函數中Y坐標N計算初始值L方程是積累(或稱積分)方程,R與A方程是代數運算方程,C,T與N語句為模型提供參數值。系統動力學模型中的符號系統動力學解決問題的主要步驟系統動力學解決問題的主要步驟大體可分為五步首先要用系統動力學的理論、原理和方法對研究對象進行系統分析其次進行系統的結構分析,劃分系統層次與子塊,確定總體的與局部的反饋機制第三步建立數學的、規范的模型第四步以系統動力學理論為指導藉助模型進行模擬與政策分析,可進一步剖析系統得到更多的信息,發現新的問題然后反過來再修改模型第五步檢驗評估模型系統動力學解決問題的主要步驟—系統分析系統分析是用系統動力學解決問題的第一步,其主要任務在于分析問題,剖析要因。調查收集有關系統的情況與統計數據了解用戶提出的要求、目的與明確所要解決的問題分析系統的基本問題與主要問題,基本矛盾與主要矛盾,變量與主要變量初步劃定系統的界限,并確定內生變量,外生變量,輸入量確定系統行為的參考模式系統動力學解決問題的主要步驟—系統的結構分析這一步主要任務在于處理系統信息,分析系統的反饋機制。分析系統總體的與局部的反饋機制劃分系統的層次與子塊分析系統的變量、變量間關系,定義變量(包括常數),確定變量的種類及主要變量確定回路及回路間的反饋耦合關系;初步確定系統的主回路及它們的性質;分析主回路隨時間轉移的可能性系統動力學解決問題的主要步驟—建立數學的規范模型建立數學的規范模型建立L,R,A,C諸方程確定與估計參數給所有N方程,C方程與表函數賦值系統動力學解決問題的主要步驟—模型模擬與政策分析模型模擬與政策分析以系統動力學的理論為指導進行模型模擬與政策分析,更深入地剖析系統尋找解決問題的決策,并盡可能付之實施,取得實踐結果,獲取更豐富的信息,發現新的矛盾與問題修改模型,包括結構與參數的修改。系統動力學解決問題的主要步驟—模型的檢驗與評估模型的檢驗與評估這一步驟的內容并不都是放在最后一齊來做的,其中相當一部分內容是在上述其他步驟中分散進行的系統動力學解決問題的主要步驟系統動力學解決問題的主要步驟系統動力學的建模工具–VenSimVensimOverviewVensimPersonalLearningEdition(VensimPLE)isavisualtoolthatallowsyoutoconceptualize,document,simulateandanalyzethesystemsyouworkwith.Itprovidesasimpleandflexiblewayofbuildingsimulationmodelsfromdiagramsconsistingofwords,arrows,boxes,pipesandcomments.VensimPLEmakestheconstructionofmodelsbasedoncausalloopandstockflowdiagramsfastandsimple.VensimPLEisamodelingtool.Therelationshipsyouenterbyconnectingwordswitharrowsarerecordedascausalconnections,andthisinformationisusedbytheEquationEditortohelpyouformacompletesimulationmodel.Youcandoanalysisofthemodelthroughoutthemodel-buildingprocess,lookingatthecausesandusesofavariable,andalsoattheloopsinvolvingthevariable.Whenyouhavecreatedasimulationmodel,VensimPLEletsyouthoroughlyexplorethedynamicbehaviorofthatmodel.www.vensim.comVensim運用–––創建水平變量創建水平變量Vensim運用–––創建速率變量創建速率變量Vensim運用–––創建因果關系創建因果關系Vensim運用–––創建方程式創建方程式Vensim運用–––創建變量的副本創建變量的副本Vensim運用–––刪除圖元刪除圖元Vensim運用–––創建常數、其他變量創建常數、其他變量Vensim運用–––創建常數、其他變量創建常數、其他變量Vensim運用–––創建注釋創建注釋Vensim運用–––字體Fontname,fontsize,boldface,italic,underline,strikethroughVensim運用–––字體顏色字體顏色Vensim運用–––邊框顏色邊框顏色Vensim運用–––邊框樣式邊框樣式Vensim運用–––文字位置文字位置Vensim運用–––箭線顏色箭線顏色Vensim運用–––箭線形式與粗細箭線形式與粗細Vensim運用–––箭線極性箭線極性Vensim運用–––文字置后文字置后Vensim運用–––結構分析工具TreeDiagramCausesTreeDiagramCauses-createatree-typegraphicalrepresentationofstructureassociatedwiththeworkbenchvariableshowingthecausesofthevariableVensim運用–––結構分析工具TreeDiagramCausesTreeDiagramCauses-createatree-typegraphicalrepresentationofstructureassociatedwiththeworkbenchvariableshowingthecausesofthevariableVensim運用–––結構分析工具TreeDiagramUsesTreeDiagramUses-createatree-typegraphicalrepresentationofstructureassociatedwiththeworkbenchvariableshowingtheusesofthevariableVensim運用–––結構分析工具TreeDiagramUsesTreeDiagramUses-createatree-typegraphicalrepresentationofstructureassociatedwiththeworkbenchvariableshowingtheusesofthevariableVensim運用–––結構分析工具DocumentDocument-reviewsformulas,definitions,andunitsofmeasureforthemodelVensim運用–––結構分析工具DocumentDocument-reviewsformulas,definitions,andunitsofmeasureforthemodelVensim運用–––結構分析工具LoopsLoops-displaysalistofallfeedbackloopspassingthroughtheworkbenchvariableVensim運用–––結構分析工具LoopsLoops-displaysalistofallfeedbackloopspassingthroughtheworkbenchvariableVensim運用–––結構分析工具UnitsCheckUnitsCheck-checksmodelformulasfortheconsistentuseofunitsofmeasurementVensim運用–––數據集分析工具StripGraphCausesStripGraphCauses-displayssimplegraphsinastrip,allowingyoutotracecausalitybyshowingthecausesofavariableVensim運用–––數據集分析工具StripGraphStripGraph-displaysasimplegraphoftheworkbenchvariableshowingbehaviorfortheloadeddatasetsVensim運用–––數據集分析工具StripGraphUsesStripGraphUses-displayssimplegraphsinastrip,allowingyoutotracecausalitybyshowingtheusesofavariableVensim運用–––數據集分析工具TableTable-generatesaread-onlytablefromwhichyoucanreviewvaluesforavariableVensim運用–––數據集分析工具RunsCompareRunsCompare-comparesallLookupTablesandConstantsinthefirstloadeddatasettothoseinthesecondloadeddatasetVensim運用–––數據集分析工具RunsCompareRunsCompare-comparesallLookupTablesandConstantsinthefirstloadeddatasettothoseinthesecondloadeddatasetVensim運用–––CustomGraph

Customgraphsallowyoutocustomizethecontentofagraph,toshowexactlythevariables,runs,andstyleofgraphyouwant.Vensim運用–––CustomGraph

Customgraphsallowyoutocustomizethecontentofagraph,toshowexactlythevariables,runs,andstyleofgraphyouwant.Vensim運用–––CustomGraph

Customgraphsallowyoutocustomizethecontentofagraph,toshowexactlythevariables,runs,andstyleofgraphyouwant.Vensim運用–––CustomGraph

Customgraphsallowyoutocustomizethecontentofagraph,toshowexactlythevariables,runs,andstyleofgraphyouwant.Vensim運用–––CustomGraph

Customgraphsallowyoutocustomizethecontentofagraph,toshowexactlythevariables,runs,andstyleofgraphyouwant.BuildingaSimulationModelUsingVensimVensimConventionsThePopulationModelWritingFormulasCheckingforModelSyntaxandUnitsErrorsSimulatingtheModelModelAnalysisVensimNamingConventionsLevelshaveinitialletterscapitalizedPopulationRatesandauxiliariesarealllowercasebirthsConstantsandLookupTablesareallcapitalsAVERAGELIFETIMEThePopulationModel(rabbit)AVERAGELIFETIMEBIRTHRATEdeathsbirthsPopulationFINALTIME:52TIMESTEP:0.25Units:weeksWritingFormulasAVERAGELIFETIME=25Units:weekBIRTHRATE=0.04Units:1/weekbirths=Population*BIRTHRATEUnits:rabbits/weekdeaths=Population/AVERAGELIFETIMEUnits:rabbits/weekPopulation=INTEG(births-deaths,500)Units:rabbitsWritingFormulasINTEG(rate,initialvalue)

Returnstheintegraloftherate.Therateisnumericallyintegrated.Theinitialvalueisthevalueofthevariablethatisbeingintegrated,atthestartofthesimulation.Restrictions:INTEGmustdirectlyfollowtheequalsign.ItsignalsVensimthatthevariableontheleft-handsideoftheequationisaLevelorStatevariable.INTEG(unit/time,unit)-->unitTheunitsoftheintegralmustbethesameastheunitsoftheinitialcondition.Theratemusthavethesameunits,dividedbytheunitsofTIME_STEP.ExamplesValidL=INTEG(R,0.0)L=INTEG(A,B)InvalidL=A+INTEG(R,0.0)L=INTEG(B,0.0)+1L=2.0*INTEG(R,0.0)+1.0INTEGmustfollowtheequalsign,anditcannotbepartofamorecomplexmathematicalexpression.Theseformulationsaremadevalidbydefininganauxiliaryvariabletoperformtheindicatedoperations,e.g.L=INTEG(R,0.0)aux=A+LCheckingforModelSyntaxandUnitsErrorsSimulatingtheModelModelAnalysis–––StripGraphandTablePopulationappearsunchangingfrom500rabbits

equilibriumModelAnalysis–––UnconstrainedGrowthChangesofbirthratefrom0.04to0.08cangenerateunconstrainedgrowth.Thisisoneofthesimplestpossibledynamicbehaviors,alsoknownasexponentialgrowth.Changeto0.08rabbit2ModelAnalysis–––UnconstrainedGrowth

Theanalysistoolswillactonbothdatasetsallowingcomparisonofbehaviorfromdifferentruns.ModelAnalysis–––UnconstrainedGrowthModelAnalysis–––ExponentialDecayChangesofAVERAGELIFETIMEfrom25to10cangenerateexponentialdecayinthepopulation.Thisisoneofthesimplestpossibledynamicbehaviors,alsoknownasexponentialdecay.Changeto10rabbit3ModelAnalysis–––ExponentialDecay

Theanalysistoolswillactonbothdatasetsallowingcomparisonofbehaviorfromdifferentruns.ModelAnalysis–––ExponentialDecayNonlinearRelationshipsThepopulationmodelpresentedinthepreviousisasimplemodelthatusesonlymultiplicationanddivisioninitsformulas.Whileaddition,subtraction,multiplicationanddivisionarethemostcommoncomponentsofformulas,sometimesitisnecessarytocapturedifferenttypesofrelationships.VensimPLEhasanumberoffunctionssuchasEXP(exponential)andLN(naturallogarithm)thatcanbehelpful.Mostofthetime,however,itismoreconvenienttomakeupfunctionswithcustomizedproperties.ThedevelopmentofLookupTablesisameansofcapturingnonlinearrelationships.NonlinearRelationships–––RabbitsLimitedByFoodResourceLet’sexamineasimulationmodelofgrowthinarabbitpopulationuntilithitsaresourceconstraint,inthiscaseafixedlandarearesultinginafixedfoodsupply.Rabbitscanmultiplyaslongassufficientfoodisavailable;whentherabbitpopulationapproachestheconstraint(carryingcapacity),thepopulationislimitedbyanincreaseinrabbitdeaths(frominsufficientfood).TherelationshipbetweenthecarryingcapacityandrabbitdeathsisdescribedbyanonlinearLookupTable.FINALTIME:10TIMESTEP:0.125UnitsforTime:YearNonlinearRelationships–––RabbitsLimitedByFoodResourceNonlinearRelationships–––RabbitsLimitedByFoodResourceINITIALRABBITPOPULATION=100Units:RabbitRABBITBIRTHRATE=1.1Units:1/YearAVERAGERABBITLIFE=2Units:Yearrabbitbirths=RabbitPopulation*RABBITBIRTHRATEUnits:Rabbit/Yearrabbitdeaths=(RabbitPopulation/AVERAGERABBITLIFE)*effectofcrowdingondeathsUnits:Rabbit/YearRabbitPopulation=INTEG(rabbitbirths–rabbitdeaths,INITIALRABBITPOPULATION)Units:RabbitNonlinearRelationships–––RabbitsLimitedByFoodResourceNowyouwilldefinethecarryingcapacity.Acertainareaofgrasslandexistsandeachrabbitrequiresanamountofgrasstoliveon.Dividingtheareaofgrasslandbytheareaofgrassrequiredperrabbitgivesthenumberofrabbitsthatcanliveonthatland.AREAOFGRASSLAND=20000Units:squareyardsGRASSREQUIREDPERRABBIT=10Units:squareyards/Rabbitcarryingcapacity=AREAOFGRASSLAND/GRASSREQUIREDPERRABBITUnits:RabbitRabbitcrowdingisdefinedastherabbitpopulationdividedbycarryingcapacity.Thismodelwillexpectthenumericalvaluetofallwithintherangefrom0(ifnorabbitsexist)to2(whenrabbitpopulationisdoublethecarryingcapacity).

rabbitcrowding=RabbitPopulation/carryingcapacityUnits:dmnlTheamountofrabbitcrowdingwillaffectthedeathrateofrabbits:highercrowdingimpliesahigherdeathrate.Tochangethedeathratebasedonrabbitcrowding,youwilluseagraphicalLookupTable.NonlinearRelationships–––TheEffectofCrowdingonDeathsIntheformulationofthismodelwehavesaidthatthemorecrowdeditis,themorerabbitswilldie.Inthinkingaboutthisitseemslikelythatalittlebitofcrowdingwillnotmaketomuchdifference,whereasalotofcrowdingwould.Extendingthistoanextreme,iftherabbitsweresocrowdedthattheyweresquishingeachotherwewouldnotexpectthemtoliveformorethanafewmoments.Whileyoucouldtrytofindafunctionthathasthisproperty,theLookupTableprovidesaneasiersolution.ALookupTableisanarbitraryfunction,onethatyoudefineasatableorgraph,thatdescribesarelationshipbetweenaninputandanoutput.TheLookupTableforthismodelallowsustodescribehowrabbitdeathschangewhentherabbitpopulationexceedsthecarryingcapacity.Anintermediateconcept,effectofcrowdingondeaths,willrelatetherabbitcrowdingtorabbitsdeathsthroughtheLookupTable.TheeffectofcrowdingondeathswilltaketheinputvaluesfromthevariablerabbitcrowdingandconvertthemtooutputvaluesbyusingtheLookupTable.NonlinearRelationships–––TheEffectofCrowdingonDeathsNonline

溫馨提示

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

評論

0/150

提交評論