官术网_书友最值得收藏!

1.6 數(shù)字仿真軟件簡(jiǎn)介

1.6.1 數(shù)字仿真軟件的主要功能與基本結(jié)構(gòu)

在控制系統(tǒng)的分析設(shè)計(jì)過(guò)程中,經(jīng)常采用的是狀態(tài)空間模型、系統(tǒng)的傳遞函數(shù)或者系統(tǒng)的結(jié)構(gòu)圖模型,研究在給定輸入作用下系統(tǒng)的動(dòng)態(tài)響應(yīng)。這3種類型的模型在控制系統(tǒng)計(jì)算機(jī)仿真中都會(huì)用到。許多數(shù)字仿真算法是面向微分方程或者狀態(tài)方程的。開(kāi)展仿真研究時(shí),必須將傳遞函數(shù)模型或者系統(tǒng)結(jié)構(gòu)圖轉(zhuǎn)換成狀態(tài)空間模型,然后才能使用第2章中介紹的數(shù)字仿真算法,將其轉(zhuǎn)化為數(shù)字仿真模型并完成仿真計(jì)算。對(duì)于一個(gè)復(fù)雜的控制系統(tǒng),要讓用戶自己去完成數(shù)學(xué)模型的轉(zhuǎn)換和二次模型化是非常困難的,也是不現(xiàn)實(shí)的。一般而言,對(duì)系統(tǒng)進(jìn)行仿真研究的工程技術(shù)人員并不一定熟悉計(jì)算數(shù)學(xué)和計(jì)算機(jī)程序的編制,他們主要關(guān)心的是所研究的系統(tǒng)本身,而不希望在仿真模型的準(zhǔn)備及程序的編制上花費(fèi)許多時(shí)間。為了使系統(tǒng)分析人員或工程技術(shù)人員能夠?qū)P闹轮镜匮芯亢涂疾橄到y(tǒng)本身,而不必在仿真模型準(zhǔn)備和程序編制上花費(fèi)大量的時(shí)間,最好能將原系統(tǒng)模型及仿真要求直接輸送給計(jì)算機(jī),由機(jī)器轉(zhuǎn)換成規(guī)定的(或標(biāo)準(zhǔn)的)數(shù)學(xué)模型,并自動(dòng)安排計(jì)算次序、選擇仿真算法、規(guī)定輸出格式等。一旦啟動(dòng)后,仿真過(guò)程就可以自動(dòng)進(jìn)行。各類仿真通用及專用軟件就是為此目的而建立的。

1.數(shù)字仿真軟件的主要功能

雖然各種類型的仿真軟件在使用形式、用戶界面等方面大相徑庭,但歸納起來(lái),它們都具有如下的主要功能:

●能將使用者輸入的系統(tǒng)模型及參數(shù)轉(zhuǎn)換成規(guī)定的(或標(biāo)準(zhǔn)的)數(shù)學(xué)模型;

●能給使用者提供一種或多種積分算法,以便將數(shù)學(xué)模型轉(zhuǎn)換成仿真模型;

●能顯示、打印仿真結(jié)果,繪制圖形等;

●能提供多次仿真運(yùn)行的控制,以便研究參數(shù)變化對(duì)系統(tǒng)性能的影響和進(jìn)行優(yōu)化設(shè)計(jì)、統(tǒng)計(jì)等工作。

2.數(shù)字仿真軟件的基本結(jié)構(gòu)

數(shù)字仿真軟件的基本結(jié)構(gòu)如圖1.10所示。

圖1.10 仿真軟件基本結(jié)構(gòu)

主控模塊是仿真軟件的最上層,由它進(jìn)行仿真邏輯控制,調(diào)用、安排下面各功能模塊工作,完成對(duì)仿真過(guò)程的控制。

輸入模塊負(fù)責(zé)輸入系統(tǒng)的數(shù)學(xué)模型,設(shè)置及修改仿真用參數(shù)(計(jì)算步長(zhǎng)、打印間隔、仿真時(shí)間等)等。

運(yùn)行模塊負(fù)責(zé)仿真運(yùn)算,調(diào)用積分子程序完成各步計(jì)算,同時(shí)將結(jié)果存儲(chǔ)在數(shù)組或數(shù)據(jù)文件中,以便在仿真結(jié)束后按輸出要求制表或繪圖,并根據(jù)設(shè)定的條件,終止仿真運(yùn)行。運(yùn)行模塊是整個(gè)仿真軟件的核心,對(duì)仿真計(jì)算的精度和速度影響很大。

輸出模塊負(fù)責(zé)將存放在輸出文件中的仿真結(jié)果,按用戶要求在各種輸出設(shè)備上輸出。

控制系統(tǒng)的仿真軟件由于所采用的系統(tǒng)數(shù)學(xué)模型形式不同,可以分為面向微分方程或面向系統(tǒng)結(jié)構(gòu)圖等幾種。前者以微分方程(或傳遞函數(shù))的形式給出原系統(tǒng)的數(shù)學(xué)模型,后者以系統(tǒng)結(jié)構(gòu)圖的形式給出原系統(tǒng)的數(shù)學(xué)模型。無(wú)論原來(lái)系統(tǒng)數(shù)學(xué)模型是以什么形式給出的,最后都必須轉(zhuǎn)化成一階微分方程組(即狀態(tài)空間模型)的形式,才能用數(shù)值積分法完成仿真求解,這是一個(gè)由外部模型到內(nèi)部模型的轉(zhuǎn)換問(wèn)題。

3.仿真程序與仿真語(yǔ)言

早期的仿真軟件是仿真程序,是針對(duì)某類問(wèn)題或某種仿真方法編制的專用程序,是仿真軟件的初級(jí)形式。例如,CSS仿真程序就是專門(mén)解決連續(xù)系統(tǒng)仿真問(wèn)題的。仿真程序通常采用人機(jī)對(duì)話方式輸入必要的參數(shù),具有使用簡(jiǎn)單、修改及擴(kuò)充方便、易于普及推廣等優(yōu)點(diǎn)。但仿真程序的功能比較簡(jiǎn)單,一般只能處理仿真的一些基本問(wèn)題,不能對(duì)復(fù)雜系統(tǒng)進(jìn)行有效的仿真。

仿真語(yǔ)言是一種直接用于解決仿真問(wèn)題的專用高級(jí)語(yǔ)言,是仿真軟件的高級(jí)形式。它是在某一種程序設(shè)計(jì)語(yǔ)言的基礎(chǔ)上編制的,其成熟期在20世紀(jì)的70年代至80年代。例如,ACSL,DARE-P,CSSLIV,SLAM和MIMIC就是當(dāng)時(shí)比較流行的數(shù)字仿真語(yǔ)言。使用者可以通過(guò)一些專用語(yǔ)句,把微分方程或系統(tǒng)結(jié)構(gòu)圖輸入到計(jì)算機(jī)中,由仿真語(yǔ)言中的“翻譯模塊”將它們翻譯成機(jī)器的匯編語(yǔ)言或某種程序設(shè)計(jì)語(yǔ)言,并自動(dòng)編譯、裝配、執(zhí)行,從而使得用戶更多地?cái)[脫對(duì)程序的熟悉和了解。仿真語(yǔ)言比仿真程序功能更全面,使用起來(lái)更方便。體現(xiàn)在:模型輸入靈活方便;提供多種仿真算法;可以修改參數(shù);提供多次重復(fù)運(yùn)行的控制功能。然而,由于要求用戶能按仿真語(yǔ)言的格式去編寫(xiě)仿真源程序,因此對(duì)于一般工程技術(shù)人員而言,使用起來(lái)仍然感到不是很方便。

近20多年來(lái),隨著計(jì)算機(jī)技術(shù)的飛速發(fā)展,控制系統(tǒng)計(jì)算機(jī)仿真與輔助設(shè)計(jì)軟件也取得了巨大的進(jìn)步,突出的表現(xiàn)是廣泛的可視化操作和軟件的高度集成化。1984年由Math Works公司推出的MATLAB就是這樣的一個(gè)軟件。尤其是1993年問(wèn)世的Simulink,這個(gè)集成在MATLAB中的動(dòng)態(tài)系統(tǒng)建模及仿真工具,使得MATLAB集可靠的數(shù)值運(yùn)算(尤其是矩陣運(yùn)算)、圖像圖形顯示和處理、高水平的圖形界面設(shè)計(jì)功能于一身,并提供與其他高級(jí)程序設(shè)計(jì)語(yǔ)言的接口,因此成為控制系統(tǒng)研究人員必備的工具。目前,MATLAB/Simulink已可以在多種機(jī)型上運(yùn)行,用MATLAB/Simulink設(shè)計(jì)的仿真模型具有良好的可移植性。

采用MATLAB/Simulink進(jìn)行仿真研究,模型的搭建和仿真運(yùn)行都是可視化操作。對(duì)于不習(xí)慣編程處理控制系統(tǒng)仿真的一般工程技術(shù)人員,甚至不需要編寫(xiě)一行代碼就可以完成相當(dāng)復(fù)雜的控制系統(tǒng)的模型構(gòu)建和仿真。MATLAB/Simulink已有了多種版本。考慮到成熟性和流行性,本書(shū)采用的是MATLAB R2007b(即MATLAB7.5版)/Simulink7.0。

1.6.2 MATLAB/Simulink仿真環(huán)境

1.MATLAB簡(jiǎn)介

MATLAB是一種解釋性的程序設(shè)計(jì)語(yǔ)言,用戶既可以在MATLAB環(huán)境下直接輸入指令,也可以用MATLAB語(yǔ)言編寫(xiě)應(yīng)用程序,由MATLAB負(fù)責(zé)解釋執(zhí)行并給出結(jié)果。MAT-LAB是一個(gè)龐大的軟件,要在本節(jié)中詳細(xì)地介紹它是不可能的,有關(guān)MATLAB的各種技術(shù)細(xì)節(jié)可以通過(guò)聯(lián)機(jī)幫助指令help和技術(shù)手冊(cè)來(lái)獲取。

在Windows環(huán)境下,啟動(dòng)MATLAB后,就打開(kāi)了一個(gè)MATLAB操作桌面(Desktop),如圖1.11所示。

圖1.11 MATLAB R2007b的操作桌面

在圖1.11所示的操作桌面上層鋪放著3個(gè)最常用的界面:指令窗、當(dāng)前目錄瀏覽器和歷史指令窗;在桌面的下方有一個(gè)“開(kāi)始按鈕”;還有一個(gè)只能看到“窗名”的工作空間瀏覽器。

2.控制系統(tǒng)工具箱簡(jiǎn)介

控制系統(tǒng)工具箱(ControlSystem Toolbox)是MATLAB中專門(mén)針對(duì)控制系統(tǒng)工程分析設(shè)計(jì)的函數(shù)和工具的集合。該工具箱采用M文件形式(以.m為后綴的文件),提供了非常豐富的算法程序。它主要用于反饋控制系統(tǒng)的建模、分析和設(shè)計(jì),所涉及的領(lǐng)域涵蓋經(jīng)典控制理論和現(xiàn)代控制理論的大部分內(nèi)容,包括根軌跡、極點(diǎn)配置和LQG(線性二次最優(yōu))控制器設(shè)計(jì)等。另外,還提供了友好的圖形界面環(huán)境(GUI),大大地簡(jiǎn)化了控制系統(tǒng)的分析和設(shè)計(jì)過(guò)程。

我們將在后續(xù)的內(nèi)容中介紹相關(guān)的控制系統(tǒng)工具箱中的函數(shù)和使用方式。

3.Simulink仿真環(huán)境

Simulink是MATLAB下的數(shù)字仿真工具,其文件類型為.mdl,是一個(gè)用來(lái)對(duì)動(dòng)態(tài)系統(tǒng)進(jìn)行建模、仿真和分析的集成環(huán)境。它支持連續(xù)、離散及兩者混合的線性和非線性系統(tǒng)仿真,也支持具有多種采樣速率的多速率系統(tǒng)仿真。Simulink提供了用鼠標(biāo)“畫(huà)出”系統(tǒng)框圖的方式,可以進(jìn)行圖形建模,具有直觀、方便、靈活的優(yōu)點(diǎn)。

在MATLAB的指令窗運(yùn)行指令 simulink 或者單擊MATLAB操作桌面中的Simulink圖標(biāo),便打開(kāi)Simulink模塊庫(kù)瀏覽器(Simulink LibraryBrowser)窗口,如圖1.12所示。其中,窗口的右邊是Simulink模塊庫(kù)的各個(gè)子庫(kù)圖標(biāo),雙擊對(duì)應(yīng)的子庫(kù)圖標(biāo),就會(huì)打開(kāi)該子庫(kù)。

圖1.12 Simulink模塊庫(kù)瀏覽器

單擊“新建”圖標(biāo),就打開(kāi)一個(gè)名為untitled的空白模型窗口,如圖1.13所示。

利用Simulink對(duì)控制系統(tǒng)進(jìn)行仿真研究的步驟如下:根據(jù)給定的數(shù)學(xué)模型,從Simulink模塊庫(kù)的各個(gè)子庫(kù)中選擇相應(yīng)的模塊,并按住鼠標(biāo)左鍵將它們拖入模型窗口;雙擊選擇的模塊,設(shè)置需要的參數(shù);對(duì)各模塊進(jìn)行連接,構(gòu)成需要的系統(tǒng)模型;運(yùn)行模型,得到仿真結(jié)果。

【例1.2】 利用Simulink對(duì)例1.1中的質(zhì)量-彈簧-阻尼器系統(tǒng)進(jìn)行仿真研究。

【解】 首先將描述該系統(tǒng)輸入、輸出關(guān)系的數(shù)學(xué)模型式(1.3)改寫(xiě)成傳遞函數(shù)形式

根據(jù)式(1.28),從Simulink模塊庫(kù)的信號(hào)源子庫(kù)(Sources)中選擇Step模塊,拖入模型窗口,雙擊該模塊,設(shè)置參數(shù)Step time為0;從Simulink模塊庫(kù)的連續(xù)模塊子庫(kù)(Continuous)中選擇TranferFcn模塊,拖入模型窗中,雙擊該模塊,設(shè)置參數(shù)Numerator為[1],Denominator為[1 f 4];從Simulink模塊庫(kù)的接收器子庫(kù)(Sinks)中,選擇Scope模塊,拖入模型窗口。

圖1.13 Simulink的新建模型窗口

各模塊外側(cè)的“>”和“<”分別表示信號(hào)的輸入和輸出。為了連接兩個(gè)模塊,單擊輸入或輸出端口,當(dāng)光標(biāo)變?yōu)椤?”形狀時(shí),拖動(dòng)“+”光標(biāo)到另一個(gè)端口,然后釋放鼠標(biāo),則帶箭頭的連線表示信號(hào)的流向。

按照以上操作并完成保存后(文件名為exam1_2.mdl)得到的Simulink模型如圖1.14所示。

圖1.14 質(zhì)量-彈簧-阻尼器系統(tǒng)的Simulink模型

在MATLAB的指令窗中運(yùn)行指令

        >>f=5

其中,>>為MATLAB的提示符。然后單擊模型窗中“仿真啟動(dòng)”圖標(biāo),即開(kāi)始仿真。經(jīng)過(guò)短暫的仿真過(guò)程后,雙擊Scope模塊,可以看到類似于圖1.6(a)的響應(yīng)曲線。同樣,取f=7.5,f=2.5和f=4進(jìn)行3次試驗(yàn),分別得到3條類似于圖1.6(b)、(c)、(d)的響應(yīng)曲線。這樣就完成了與編程實(shí)現(xiàn)類似的仿真研究。

關(guān)于Simulink的使用詳情將在后續(xù)內(nèi)容中結(jié)合具體應(yīng)用例題加以介紹。

主站蜘蛛池模板: 阳曲县| 濮阳市| 连云港市| 博爱县| 阿图什市| 岳阳县| 白河县| 台前县| 南宁市| 凌海市| 大石桥市| 柳州市| 全州县| 冕宁县| 涞源县| 当涂县| 临江市| 察隅县| 吉木萨尔县| 普宁市| 桃园县| 海淀区| 柳河县| 吉木乃县| 桐梓县| 高清| 山丹县| 包头市| 吕梁市| 冀州市| 商洛市| 五大连池市| 垣曲县| 鄂托克前旗| 孟村| 山阳县| 东乡县| 元氏县| 双柏县| 呼和浩特市| 闽清县|