簡(jiǎn)史
仿真語(yǔ)言是隨著數(shù)字計(jì)算機(jī)的發(fā)展而發(fā)展起來(lái)的。在連續(xù)系統(tǒng)仿真方面,1955年出現(xiàn)第一個(gè)框圖式仿真語(yǔ)言,稱(chēng)為數(shù)字模擬仿真語(yǔ)言 DAS(英文 DigitalAnalog Simulator的縮寫(xiě))。這種仿真軟件配有一整套對(duì)應(yīng)于模擬計(jì)算機(jī)中各種標(biāo)準(zhǔn)運(yùn)算部件的程序模塊,用這種仿真語(yǔ)言編寫(xiě)的源程序分為結(jié)構(gòu)、參數(shù)和控制三部分,分別用來(lái)指定程序模塊間的連接、模塊的參數(shù)和模塊的運(yùn)行方式。用戶(hù)書(shū)寫(xiě)源程序語(yǔ)句的順序則是任意的。源程序經(jīng)編譯程序翻譯成機(jī)器碼,或經(jīng)解釋程序解釋后執(zhí)行。因?yàn)樵闯绦虻木幹品椒ㄅc模擬計(jì)算機(jī)的編排方式相類(lèi)似,所以很受仿真界的歡迎,盛行于1955~1965年間。但模型的表達(dá)內(nèi)容要受預(yù)先編制好的模塊類(lèi)型的限制。DAS語(yǔ)言吸取了早期許多仿真語(yǔ)言的特點(diǎn),在仿真語(yǔ)言的發(fā)展中起過(guò)重要的作用。60年代初還在 DAS語(yǔ)言的基礎(chǔ)上作了改進(jìn),出現(xiàn)改進(jìn)型數(shù)字模擬仿真語(yǔ)言 MIDAS(英文 Modified Digital Analog Simulator的縮寫(xiě))。1959年出現(xiàn)系統(tǒng)動(dòng)力學(xué)建模語(yǔ)言DYNAMO(英文 DynamicModels的縮寫(xiě))。1967年美國(guó)計(jì)算機(jī)仿真學(xué)會(huì)提出一種兼有框圖表示功能的面向方程的仿真語(yǔ)言,稱(chēng)為連續(xù)系統(tǒng)仿真語(yǔ)言CSSL(英文Continuous System SimulationLanguage的縮寫(xiě)),成為連續(xù)系統(tǒng)仿真語(yǔ)言的規(guī)范。此后又出現(xiàn)了許多符合CSSL規(guī)范的仿真語(yǔ)言。其中應(yīng)用較廣的有連續(xù)系統(tǒng)建模語(yǔ)言CSMP(英文Continuous SystemModeling Program的縮寫(xiě))和微分分析器置換語(yǔ)言 DARE(英文Differential Analyzer Replacen ent的縮寫(xiě))。由于近代公式翻譯語(yǔ)言 FORTRAN的編譯程序?qū)δ承┬⌒陀?jì)算機(jī)也能產(chǎn)生高效率的目標(biāo)代碼,所以面向方程的仿真語(yǔ)言都是先翻譯成FORTRAN語(yǔ)言,再通過(guò)編譯程序生成目標(biāo)代碼?,F(xiàn)在符合CSSL規(guī)范的仿真語(yǔ)言有許多版本。
在離散系統(tǒng)仿真方面,1959年出現(xiàn)第一個(gè)離散系統(tǒng)仿真程序包MONTECONE。1961年提出進(jìn)程型仿真語(yǔ)言──通用系統(tǒng)仿真語(yǔ)言GPSS(英文General Purpose SystemsSimulator的縮寫(xiě))。1963年出現(xiàn)事件型仿真語(yǔ)言 SIMS-CRIPT。1967年又提出另一種進(jìn)程型仿真語(yǔ)言SIMULA67。后來(lái)又出現(xiàn)另一種事件型仿真語(yǔ)言:一般活動(dòng)仿真語(yǔ)言GASP(英文General Activity Simulation Program的縮寫(xiě))。70年代以后,仿真語(yǔ)言開(kāi)始向多功能的方向發(fā)展。在離散系統(tǒng)仿真語(yǔ)言中引入連續(xù)系統(tǒng)仿真語(yǔ)言, 產(chǎn)生混合系統(tǒng)仿真語(yǔ)言。 其中應(yīng)用最廣的是GASP語(yǔ)言的兩個(gè)新版本GASPⅣ和GASP-PL/1, 和交替建模仿真語(yǔ)言SLAM(英文Simulation Language for Alternative Modeling的縮寫(xiě))?;旌戏抡嬲Z(yǔ)言 HL1(英文Hybrid Language 1的縮寫(xiě))可用于設(shè)計(jì)并行計(jì)算模塊的程序,適用于高速仿真和實(shí)時(shí)仿真。將仿真語(yǔ)言與控制系統(tǒng)計(jì)算機(jī)輔助設(shè)計(jì)軟件包配合使用,使計(jì)算機(jī)仿真系統(tǒng)成為控制系統(tǒng)設(shè)計(jì)研究的有力工具。近年來(lái)出現(xiàn)的仿真軟件系統(tǒng)和仿真專(zhuān)家系統(tǒng)進(jìn)一步擴(kuò)展了仿真語(yǔ)言的功能,成為仿真語(yǔ)言發(fā)展的新方向。
分類(lèi)仿真語(yǔ)言按被仿真系統(tǒng)的特點(diǎn)分為連續(xù)系統(tǒng)仿真語(yǔ)言、離散系統(tǒng)仿真語(yǔ)言和連續(xù)離散混合系統(tǒng)仿真語(yǔ)言1。按數(shù)學(xué)模型的型式分為面向框圖的仿真語(yǔ)言和面向方程的仿真語(yǔ)言。按運(yùn)行方式分為交互式仿真語(yǔ)言和批處理式仿真語(yǔ)言。
組成仿真語(yǔ)言是一類(lèi)重要的仿真軟件,市售商品均以文本和軟磁盤(pán)的形式提供。它由以下四個(gè)部分組成:①模型定義語(yǔ)言:用以定義模型和仿真實(shí)驗(yàn)的語(yǔ)言。②翻譯程序(用于連續(xù)系統(tǒng)仿真)或處理程序(用于離散系統(tǒng)仿真):翻譯程序是將用模型定義語(yǔ)言書(shū)寫(xiě)的源程序翻譯成宿主語(yǔ)言。處理程序是將源程序連接實(shí)用程序庫(kù)和運(yùn)行支持程序,形成機(jī)器碼。③實(shí)用程序庫(kù):包括算法、專(zhuān)用函數(shù)、隨機(jī)采樣函數(shù)、各種框圖和繪圖程序。④運(yùn)行控制程序:供用戶(hù)以人機(jī)交互的方式控制仿真運(yùn)行、改變參數(shù)、收集數(shù)據(jù)和顯示數(shù)據(jù)的程序。
特點(diǎn)仿真語(yǔ)言不同于一般通用的高級(jí)語(yǔ)言,具有以下幾個(gè)特點(diǎn):①仿真語(yǔ)言使用戶(hù)可以采用習(xí)慣的表達(dá)方式來(lái)描述仿真模型。②仿真語(yǔ)言具有良好的并行性。在實(shí)際的連續(xù)系統(tǒng)中,過(guò)程都是并行發(fā)生的,而一般數(shù)字計(jì)算機(jī)都是串行計(jì)算的。因此,用仿真語(yǔ)言編寫(xiě)的源程序都有自動(dòng)分選排序的功能,通過(guò)編譯程序?qū)⒃闯绦蚺帕谐烧_的計(jì)算順序,供計(jì)算機(jī)按順序進(jìn)行計(jì)算。③仿真語(yǔ)言與順序性的通用編程語(yǔ)言(如 FORTRAN語(yǔ)言)有兼容性,以擴(kuò)展仿真語(yǔ)言的功能。④仿真語(yǔ)言備有多種積分方法可供用戶(hù)選用。⑤仿真語(yǔ)言配有常用輸入和輸出子程序。⑥用仿真語(yǔ)言編制的源程序,便于實(shí)現(xiàn)多次運(yùn)行仿真的研究。⑦用仿真語(yǔ)言編制的源程序,在程序運(yùn)行的不同階段,可給出診斷程序錯(cuò)誤的信息,幫助用戶(hù)查找程序錯(cuò)誤。2