連續(xù)系統(tǒng)的數(shù)字仿真-1.ppt_第1頁
連續(xù)系統(tǒng)的數(shù)字仿真-1.ppt_第2頁
連續(xù)系統(tǒng)的數(shù)字仿真-1.ppt_第3頁
連續(xù)系統(tǒng)的數(shù)字仿真-1.ppt_第4頁
連續(xù)系統(tǒng)的數(shù)字仿真-1.ppt_第5頁
已閱讀5頁,還剩91頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1,計算機仿真與建模,廖勝輝 TEL:EMAIL: ,2,現(xiàn)代仿真技術與應用 章節(jié)安排,第一章 概述 第二章 系統(tǒng)的數(shù)學模型 第三章 連續(xù)系統(tǒng)的數(shù)字仿真 第四章 離散事件系統(tǒng)仿真 第六章 分布式交互仿真 第七章 可視化、多媒體、虛擬現(xiàn)實仿真,3,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1 數(shù)值積分法 3.2 離散相似法 3.5 控制系統(tǒng)仿真工具SIMULINK,4,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,5,數(shù)值積分法,離散相似法,間斷非線性系統(tǒng)仿真算法,分布參數(shù)的仿真算法,工程領域常見的連續(xù)系統(tǒng)的仿真算法:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,6,數(shù)值積分:是數(shù)值分析的基本問題,是微分方程初值問題的一種近似解法,其基本思想是將一階常微分方程(或方程組)轉化為差分方程(即微分方程的離散形式,便于編程實現(xiàn)),從而求其數(shù)值解; 系統(tǒng)仿真:在給定初始條件可用數(shù)值積分法求解定常連續(xù)系統(tǒng)在一定輸入作用下的變化過程。,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1 數(shù)值積分法,7,為t0, t內 f 下方的陰影面積,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1 數(shù)值積分法,基本原理:,分類:,(3-1),已知某系統(tǒng)的一階向量微分方程為:,8,數(shù)值積分法基本概念,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,計算yn+1只需用到y(tǒng)n的值,計算yn+1需用到y(tǒng)n ,yn-1 , yn-2 , yn-k的值,對不能自行啟動的方法,可分兩步走,第一步預估,第二步校正;因此精度高,但不適用于實時仿真。,計算yn+1時所用數(shù)據均已知,計算yn+1時需用到待求量yn+1,因此不能自啟動,常用的數(shù)值積分法:歐拉法、梯形法、四階龍格-庫塔法、亞當姆斯法,9,3.1.1 常用的積分法-歐拉法,一階微分方程為:,對式(3-1)在tk,tk+!區(qū)間上積分,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,(3-3),(3-4),(3-1),于是可以得到微分方程的數(shù)值解為:,(3-6),矩形近似及誤差,10,這種方法的幾何意義:,取k=0,1,2,N,從t0開始,逐點遞推求解t1時的y1, t2時的y2,直至tn時的yn,稱之為歐拉遞推公式。,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,(3-6),最簡單的數(shù)值積分法,只計算一次f(t, y)函數(shù)值,計算量小,但精度很低,不實用,常用來說明基本概念。當h很小時,造成的誤差是允許的。該算法具有一階精度。,就是把f(t,y)在區(qū)間tk,tk+1內的曲邊面積用矩形面積近似代替。,3.1.1 常用的積分法-歐拉法,單步法、顯示公式、能自啟動。,11,3.1.1 常用的積分法梯形法(改進歐拉法),對式(3-1)在tk,tk+!區(qū)間上積分,用梯形面積近似(3-3)的積分項,有:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,(3-3),梯形近似及誤差,(3-7),通過歐拉法計算出y(tk+1)的近似值: 代入原微分方程,計算fk+1的近似值 ,利用梯形公式求出修正后的yk+1,得到改進后的歐拉公式為:,12,幾何意義:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,計算兩次f(t, y)函數(shù)值,計算量增加,但精度有所提高。,就是把f(t,y)在區(qū)間tk,tk+1內的曲邊面積用梯形面積近似代替。,改進的歐拉法,隱式公式、不能自啟動、預估校正法。,13,3.1.1 常用的積分法梯形法,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,預估-校正法程序框圖,14,歐拉法,梯形法,回顧,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,最簡單的數(shù)值積分法,只計算一次f(t, y)函數(shù)值,計算量小,但精度很低,不實用,常用來說明基本概念。當h很小時,造成的誤差是允許的。該算法具有一階精度。,單步法、顯示公式、能自啟動。,計算兩次f(t, y)函數(shù)值,計算量增加,但精度有所提高。,隱式公式、不能自啟動、預估校正法。,數(shù)值積分法:,15,基本思想:在積分區(qū)間tn, tn+1內多預估幾個點的函數(shù)值,然后用其線性組合來代替函數(shù)的各階導數(shù),再與泰勒級數(shù)展開式中的各項對比確定其中的系數(shù),設y(t)為微分方程的解,將其在tk附近以h為變量展成泰勒級數(shù):,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1.1 常用的積分法龍格庫塔法,(3-9),(3-10),r為精度階次(使用k值的個數(shù)), , , wi為待定系數(shù),由精度確定,16,當r=1時,,當r=2時,取,3.1.1 常用的積分法龍格庫塔法,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,數(shù)值解與歐拉遞推公式一致。,數(shù)值解預估-校正公式一致。,17,r=3時,取,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1.1 常用的積分法龍格庫塔法,18,r=4時,取,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1.1 常用的積分法龍格庫塔法,19,各階龍格庫塔法的精度,理論上可以構造任意階數(shù)的龍格庫塔法 階數(shù)越高,精度越高,計算量越大 精度的階數(shù)與計算函數(shù)值 f 的次數(shù)之間并非等量增加的關系 對于大量的實際問題,四階方法已可滿足精度求,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,20,變步長方法,誤差式通常為,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,當估計誤差en大于最大允許誤差emax時,步長減半并重新積分再估計誤差;若步長小于步長下限hmin,則不再減半,以免增加仿真時間和舍入誤差; 當估計誤差en小于最小允許誤差emin時,步長加倍并重新積分再估計誤差;若步長大于步長上限hmin,則不再加倍,以免增加截斷誤差、減小數(shù)值穩(wěn)定性。,21,算法誤差,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1.3 算法誤差和穩(wěn)定性問題,截斷誤差,舍入誤差,截去高階無窮小項引入的誤差稱為r階精度,泰勒級數(shù)展開式,因計算機字長有限,數(shù)字不能完全精確表示而產生的誤差,與步長、數(shù)字系統(tǒng)、運算次序以及計算f(t, y)子程序的精度等多種因素有關,22,算法穩(wěn)定性問題,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1.3 算法誤差和穩(wěn)定性問題,測試方程:,代入測試方程有:,歐拉法:,23,算法穩(wěn)定性問題,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1.3 算法誤差和穩(wěn)定性問題,24,各階龍格庫塔法的穩(wěn)定域,將檢驗方程代入泰勒級數(shù)展開式可得穩(wěn)定條件 穩(wěn)定條件與計算步長和系統(tǒng)特征根都有關系,特征根越大,計算步長越小,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,25,計算步長的選擇,步長過大會增加截斷誤差,甚至出現(xiàn)不穩(wěn)定現(xiàn)象;步長過小會增加計算步數(shù),從而增大舍入誤差; 步長變化對誤差的影響與系統(tǒng)動態(tài)響應特性有關,響應越快對步長變化越敏感。,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,有些仿真可考慮采用變步長,經驗方法一:,經驗方法二:,26,已知常微分方程組,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1.5 病態(tài)系統(tǒng)(剛性(stiff)系統(tǒng))的仿真方法,定義:,(3-34),則有系統(tǒng)矩陣 (雅可比矩陣(Jacobi matrix),若 的特征值均具有負實部,那么當:,式(3-34)微分方程組稱為剛性方程,也稱病態(tài)方程,其描述的線性或非線性系統(tǒng)稱為病態(tài)系統(tǒng)。,(3-35),27,前面介紹的數(shù)值積分法進行求解時,仿真步長應該由系統(tǒng)的最小時間常數(shù)(相當于是最大特征值實部的倒數(shù))決定,而仿真時間由系統(tǒng)的最大時間常數(shù)(相當于最小特征值實部的倒數(shù))決定; 由定義可知,病態(tài)系統(tǒng)的時間常數(shù)( 1/ )差別很大; 那么對于病態(tài)系統(tǒng),如果采用前面介紹的數(shù)值積分法進行求解,計算步長只能取得很小,系統(tǒng)的過渡過程又很長,將導致仿真計算量大、舍入誤差累積大、數(shù)值解失真等; 目前已提出的剛性方程數(shù)值積分法有吉爾(Gear)法、特雷爾(Trernor)法、半隱式龍格庫塔法等,其中吉爾法被公認為是十分有效的方法。,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.1.5 病態(tài)系統(tǒng)(剛性(stiff)系統(tǒng))的仿真方法,28,吉爾法為隱式線性多步法,其形式為:,當k=1時,為隱式歐拉法:,3.1.5 病態(tài)系統(tǒng)的仿真方法吉爾法,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,(3-36),為待定系數(shù),1-6階吉爾法的系數(shù)如下表:,29,吉爾法的Stiff穩(wěn)定,一個方法如果在區(qū)域R1(Re(h)D)中是絕對穩(wěn)定的,而在區(qū)域R2(D Re(h) ,|Im(h)|)中是精確的,那么稱這種方法是stiff穩(wěn)定的。,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,隱式吉爾多步法是stiff穩(wěn)定的,但不能自行啟動,且變步長困難。其剛性穩(wěn)定區(qū)域如右圖所示:,30,定義Z向量,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,吉爾法的矢量形式,通過y的擬合多項式確定Z與Y之間的變換陣,以前一步y(tǒng)的各階導數(shù)代替前幾步的數(shù)據ym-1,ym-2,于是有單步多值法遞推公式。,P為Pascal矩陣;L為吉爾法系數(shù),由下表所示。,31,吉爾單步多值法L向量值,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,對于非線性病態(tài)系統(tǒng),采用吉爾法通常比一般變步長法節(jié)省大量仿真時間。 系統(tǒng)病態(tài)程度越高,非線性越強,吉爾法優(yōu)越性越明顯; 根據吉爾法編制的程序是通用的,既可以處理病態(tài)系統(tǒng),也可以有效的仿真非病態(tài)系統(tǒng),因此應用廣泛。,32,3.2 離散相似法,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,所謂離散相似法,就是將一個連續(xù)系統(tǒng)進行離散化處理,從而得到等價的系統(tǒng)離散模型,此種方法按系統(tǒng)的動態(tài)結構圖建立仿真模型。 計算過程中,按各典型環(huán)節(jié)離散相似模型,根據環(huán)節(jié)的輸入來計算環(huán)節(jié)的輸出。,33,3.2 .2典型環(huán)節(jié)的離散相似模型,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,1) 積分環(huán)節(jié),傳遞函數(shù):,狀態(tài)表達式:,離散狀態(tài)表達式:,P35,A=0,B=K,34,3.2 .2典型環(huán)節(jié)的離散相似模型,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,2) 比例-積分環(huán)節(jié),傳遞函數(shù):,狀態(tài)表達式:,離散狀態(tài)表達式:,P35,A=0,B=K,35,3.2 .2典型環(huán)節(jié)的離散相似模型,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3) 慣性環(huán)節(jié),傳遞函數(shù):,狀態(tài)表達式:,離散狀態(tài)表達式:,P35,A=-a,B=K,36,3.2 .2典型環(huán)節(jié)的離散相似模型,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,4) 比例-慣性環(huán)節(jié),傳遞函數(shù):,狀態(tài)表達式:,離散狀態(tài)表達式:,P35,A=-a, B=b-ak,37,3.2 .2典型環(huán)節(jié)的離散相似模型,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,5) 二階震蕩環(huán)節(jié),傳遞函數(shù):,狀態(tài)表達式: ( 可控標準型),u,+,x1 x2,38,算法誤差和穩(wěn)定性問題,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,截斷誤差:截去高階無窮小項引入的誤差稱為r階精度; 舍入誤差:因計算機字長有限,數(shù)字不能完全精確表示而產生的誤差;,回顧,歐拉法:單步法、顯示公式、能自啟動,計算量小,精度低。 梯形法:隱式公式、不能自啟動、預估校正法,計算量增加,但精度有所提高; 龍格庫塔法:理論上可以構造任意階數(shù)的龍格庫塔法,階數(shù)越高,精度越高,計算量越大;,數(shù)值積分法,仿真步長的選擇,39,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,回顧,病態(tài)系統(tǒng)的仿真方法,目前已提出的剛性方程數(shù)值積分法有吉爾(Gear)法、特雷爾(Trernor)法、半隱式龍格庫塔法等,其中吉爾法被公認為是十分有效的方法。,離散相似法,積分環(huán)節(jié)的離散相似模型的建立 比例-積分環(huán)節(jié)的離散相似模型的建立 慣性環(huán)節(jié)的離散相似模型的建立 比例-慣性環(huán)節(jié)的離散相似模型的建立,就是將一個連續(xù)系統(tǒng)進行離散化處理,從而得到等價的系統(tǒng)離散模型,此種方法按系統(tǒng)的動態(tài)結構圖建立仿真模型。,40,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.5 matlab與SIMULINK基礎,MATLAB是美國Math Works公司的軟件產品; 是一個高級的數(shù)值分析、處理與計算軟件; SIMULINK是基于模型化圖形組態(tài)的動態(tài)系統(tǒng)仿真軟件,是MATLAB的一個工具箱。,41,(1)具有豐富的數(shù)學功能,包括矩陣各種運算。如:正交變換、三角分解、特征值、常見的特殊矩陣等 包括各種特殊函數(shù)。如:貝塞爾函數(shù)、勒讓德函數(shù)、伽碼函數(shù)、貝塔函數(shù)、橢圓函數(shù)等。 包括各種數(shù)學運算功能。如:數(shù)值微分、數(shù)值積分、插值、求極值、方程求根、FFT 、常微分方程的數(shù)值解等。,(2)具有很好的圖視系統(tǒng),可方便地畫出兩維和三維圖形 高級圖形處理。如:色彩控制、句柄圖形、動畫。 圖形用戶界面GUI制作工具,可以制作用戶菜單和控件。使用者可以根據自己的需求編寫出滿意的圖形界面。,3.5 matlab與SIMULINK基礎,MATLAB語言的主要特點,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,42,(3)可以直接處理聲言和圖形文件。,(4)具有若干功能強大的應用工具箱。,(5)使用方便,具有很好的擴張功能。,聲言文件。如: WAV文件(例:wavread,sound等) 圖形文件。如: bmp 、gif 、 pcx 、tif 、jpeg等文件。,如:SIMULINK、COMM、DSP、 SIGNAL等16種工具箱。,(6)具有很好的幫助功能,使用MATLAB語言編寫的程序可以直接運行,無需編譯。 可以M文件轉變?yōu)楠毩⒂谄脚_的EXE可執(zhí)行文件。 MATLAB的應用接口程序API是MATLAB提供的十分重要的組件 ,由 一系列接口指令組成 。用戶就可在FORTRAN或C中 , 把MATLAB當作計算引擎使用 。,提供十分詳細的幫助文件(PDF 、HTML 、demo文件)。 聯(lián)機查詢指令:help指令(例:help elfun,help exp,help simulink),lookfor關鍵詞(例: lookfor fourier )。,MATLAB語言的主要特點,43,MATLAB界面,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,44,Matlab程序設計,MATLAB運用與簡單運算,MATLAB繪圖,數(shù)據處理,SIMULINK基礎,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.5 matlab與SIMULINK基礎,控制工具箱,45,簡單數(shù)學運算:,購買80個單位為0.89元的電阻,16個單位為12.2元的運放,25個單價1.82元的電容,共需多少錢,例子, 80*0.89+16*12.2+25*1.82 ans=331.900,或者,res= 80*0.89+16*12.2+25*1.82 res=331.900,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,46,變量與數(shù)值顯示格式:,變量規(guī)則,變量的名字必須以字母開頭(不超過一定的字符),之后可以使任意的字母、數(shù)字和下劃線。 變量名區(qū)分大小寫; Matlab 不支持漢字,漢字不能出現(xiàn)在變量名和文件名中,數(shù)值顯示常用格式,Long(16位)、bank(2個十進制位)、short(默認)、short e(5位加指數(shù))、long e(16位加指數(shù)),現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,47,MATLAB運用與簡單運算,轉置,矩陣運算:,a=1 2 ; 4 5 ; b=a b=1 4 2 5,乘方, a=1 2 ; 4 5 ; a2= 9 12 24 33, a=1 2 ; 4 5 ; a.2= 1 4 16 25,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,48,關系運算,邏輯運算,a=1:9; b=a4 b = 0 0 0 0 1 1 1 1 1,c=(a4)&(a7) c = 0 0 0 0 1 1 0 0 0,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,MATLAB運用與簡單運算,矩陣運算:,49,下標操作,a=1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 a(2:3,3:4) ans = 7 8 11 12,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,MATLAB運用與簡單運算,矩陣運算:,50,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,MATLAB運用與簡單運算,求解線性方程組:,A=10,3,1;2,-10,3;1,3,10; B=14,-5,14; Root=inv(A)*B%inv為求逆矩陣函數(shù),51,Matlab程序設計,MATLAB運用與簡單運算,MATLAB繪圖,數(shù)據處理,SIMULINK基礎,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.5 matlab與SIMULINK基礎,控制工具箱,52,MATLAB繪圖:,二維圖形,plot(x) plot(x,y); plot(x,y,參數(shù)); plot(x1,y1,參數(shù)1,x2,y2,參數(shù)2),現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,繪圖函數(shù)plot的幾種形式,x,y可以是向量或矩陣,參數(shù)為字符串,決定圖形顏色、線型及數(shù)據點的圖標。,53,MATLAB繪圖:,二維圖形,t=0:pi/100:pi*2; y1=sin(t); y2=sin(t-0.35); y3=sin(t-0.7); plot(t,y1,:,t,y2,t,y3,-); plot(t,y1,:r,t,y2,-g,t,y3,-b); plot(t,y1,:ro,t,y2,-gh,t,y3,-bx);,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,54,MATLAB繪圖:,二維圖形,x=0:0.01:pi*3; y=sin(x); plot(x,y) title(First Figure Example) xlabel(Time(s) ylabel(Value(v) grid on gtext(sinx) legend(sinx)/圖例注解,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,55,MATLAB繪圖:,二維圖形,axis(xmin xmax ymin ymax),現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,圖形坐標比例控制函數(shù),set(gca,xtick, 標示向量)/按標示向量設置x.y軸刻度標示 set(gca,xticklabel, 字符串1|字符串2)/按字符串設置x.y軸刻度標示,圖形坐標刻度標示函數(shù),x=0:0.05:7; y=sin(x); plot(x,y) axis(0 3*pi -2 2) set(gca,xtick,0 1.4 3.14 5 6.28) set(gca,yticklabel,-1|-0.5|zero|0.5|one),56,MATLAB繪圖:,二維圖形,hold:保持當前圖形 hold on:保持當前圖形及軸系的所有特性; hold off:解除hold on函數(shù),現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,圖形的保持,x=0:0.2:12; plot(x,sin(x),-); hold on plot(x,1.5*cos(x),:),57,MATLAB繪圖:,二維圖形,將繪圖區(qū)域劃分為m行n列區(qū)域,并指定p編號區(qū)域為當前繪圖區(qū)域,編號順序先上后下,先左后右。,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,圖形的分割,x=0:0.05:7; y1=sin(x) y2=1.5*cos(x); y3=sin(2*x); y4=5*cos(2*x) subplot(2,2,1) ;plot(x,y1);title(sin(x) subplot(2,2,2); plot(x,y2);title(cos(x) subplot(2,2,3); plot(x,y3);title(sin(2x) subplot(2,2,4); plot(x,y4);title(cos(2x),subplot(m,n,p):,58,三維圖形,x=-4:0.1:4; y=x; x,y=meshgrid(x,y); z = 3*(1-x).2.*exp(-(x.2) - (y+1).2) . - 10*(x/5 - x.3 - y.5).*exp(-x.2-y.2) . - 1/3*exp(-(x+1).2 - y.2); mesh(x,y,z),MATLAB繪圖:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,59,Matlab程序設計,MATLAB運用與簡單運算,MATLAB繪圖,數(shù)據處理,SIMULINK基礎,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.5 matlab與SIMULINK基礎,控制工具箱,60,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,M文件(腳本文件(Script File)和函數(shù)文件),對于一些比較簡單的問題 ,在指令窗中直接輸入指令計算 。 對于復雜計算,采用腳本文件(Script file)最為合適 。 MATLAB只是按文件所寫的指令執(zhí)行 。 腳本文件的構成比較簡單,只是一串按用戶意圖排列而成的(包括控制流向指令在內的)MATLAB指令集合。 腳本文件運行后 ,所產生的所有變量都駐留在 MATLAB基本工作空間(Base workspace)中。只要用戶不使用清除指令(clear), MATLAB指令窗不關閉,這些變量將一直保存在基本工作空間中。,腳本文件(Script File),61,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,M文件(腳本文件(Script File)和函數(shù)文件),菜單操作(FILENEWM-File)。 命令操作:在命令窗口輸入命令“edit” 。 命令按鈕操作(通過工具欄上的new m-file按鈕) 。,M文件建立,62,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,M文件(腳本文件(Script File)和函數(shù)文件),與腳本文件不同 ,函數(shù)文件猶如一個“黑箱”,把一些數(shù)據送進并經加工處理,再把結果送出來。 從形式上看 ,與腳本文件不同 ,函數(shù)文件的笫一行總是以 “function”引導的“函數(shù)申明行” 。 從運行上看 ,與腳本文件運行不同 ,每當函數(shù)文件運行, MATLAB就會專門為它開辟一個臨時工作空間,稱為函數(shù)工作空間( Function workspace) 。當執(zhí)行文件最后一條指令時 ,就結束該函數(shù)文件的運行,同時該臨時函數(shù)空間及其所有的中間變量就立即被清除。,函數(shù)文件,63,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,M文件(腳本文件(Script File)和函數(shù)文件),Function輸出形參表=函數(shù)名(輸入形參表) 函數(shù)體 return 函數(shù)文件不象M文件,不能直接運行,編輯完后直接存盤; 函數(shù)文件名: 通常是有函數(shù)名加上擴展名.m組成,函數(shù)文件名也可以與函數(shù)名不同。當兩者不同時,matlab將忽略函數(shù)名而確認函數(shù)文件名,調用時使用的是函數(shù)文件名; 函數(shù)文件也可以不使用return語句,被調函數(shù)執(zhí)行完后自動返回 。,函數(shù)文件結構,64,函數(shù)調用可以嵌套,一個函數(shù)可以調用別的函數(shù),甚至調用它自己 (遞歸調用)。,函數(shù)文件,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,例:有5個人坐在一起,問第五個人多大,說比第4個人大2歲,第四個人說比第三個人大2歲,第三個人說比第二個人大2歲,第二個人說比第一個人大2歲,第一個人說是12歲。問第5個人多大?,65,M文件的調試,編寫 M文件時,錯誤(Bug)在所難免。錯誤有兩種:語法(Syntax)錯誤和運行(Run-time)錯誤。 語法錯誤是指變量名、函數(shù)名的誤寫,標點符號的缺、漏等。對于這類錯誤,通常能在運行時發(fā)現(xiàn),終止執(zhí)行,并給出相應的錯誤原因以及所在行號。運行錯誤是算法本身引起的,發(fā)生在運行過程中。 相對語法錯誤而言,運行錯誤較難處理 。尤其是M函數(shù)文件,它一旦運行停止,其中間變量被刪除一空,錯誤很難查找。,有兩種調試方法:直接調試法和工具調試法。,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,66,直接調試法:可以用下面方法發(fā)現(xiàn)某些運行錯誤。,在M文件中,將某些語句后面的分號去掉, 迫使M文件輸出一些中間計算結果,以便發(fā)現(xiàn)可能的錯誤。 在適當?shù)奈恢茫砑语@示某些關鍵變量值的語句(包括使用 disp 在內)。 利用 echo 指令,使運行時在屏幕上逐行顯示文件內容。echo on 能顯示M腳本文件;echo FunNsme on 能顯示名為FunNsme 的M函數(shù)文件在原M腳本或函數(shù)文件的適當位置; 增添指令 keyboard 。 keyboard 語句可以設置程序的斷點 。 通過將原M函數(shù)文件的函數(shù)申明行注釋掉,可使一個中間變量難于觀察的M函數(shù)文件變?yōu)橐粋€所有變量都保留在基本工作空間中的M腳本文件。,M文件的調試,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,67,GUI 界面調試法:,MATLAB 5.x 版提供了一個基于GUI界面的調試。使用它,可以對函數(shù)進行調試。,Debug菜單的使用:,Continue:恢復程序運行至結束或另一個斷點 。,Single Step:單步執(zhí)行函數(shù)。,Step In:深入下層局部工作區(qū) 。,Quit Debugging:退出調試狀態(tài)。,Set/Clear Breakpoint:設置/清除光標處的斷點 。,Clear All Breakpoints:清除程序中的所有斷點 。,Stop if Error:運行至出錯或結束。,Stop if Warning:運行至警告消息或結束。,Stop if NaN of Inf:運行至運算結果出現(xiàn) NaN 或 Inf。,M文件的調試,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,68,例:給定三個數(shù)A,B,C,要求按由大到小的順序輸出,其中最大數(shù)放入A,最小數(shù)放入C中。,If-else-end,if expression1 commands1 elseif expression2 commands2 - else commands end,程序流程控制語句,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,69,For循環(huán),for 循環(huán)變量 = 表達式1 : 表達式2: 表達式3 command end,程序流程控制語句,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,例:有一數(shù)列 求這些項的和 。,初值,步長,終值,70,while循環(huán),while expression command end,程序流程控制語句,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,例:求1+2+3+100的和。,71,Continue語句,程序流程控制語句,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,例:把100到120之間的能被7整除的整數(shù)輸出。,用于控制循環(huán)的跳出。,72,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,例:邊沿濾波器設計,73,現(xiàn)代仿真技術與應用 matlab與SIMULINK基礎,例:邊沿濾波器設計,function y=FiltFunc1(x,windowsNum,sampleNum) varout=ones(sampleNum,1)*100000000; for i=1:sampleNum-windowsNum+1 average=mean(x(i:i+windowsNum-1); vartmp=std(x(i:i+windowsNum-1); for j=i:i+windowsNum-1, if(varout(j)vartmp) y(j)=average; varout(j)=vartmp; end end end,clc; clear; close all; len=200; flen=10; snr=1; a=zeros(1,len); for t =1:len if t100 a(t)=0; else a(t)=2; end end,z=awgn(a,snr,measured); t=1:1:60; c=FiltFunc1(z,flen,len); figure; plot(a,r); figure; plot(z,g); figure; plot(c,b);,74,Matlab程序設計,MATLAB運用與簡單運算,MATLAB繪圖,數(shù)據處理,SIMULINK基礎,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,3.5 matlab與SIMULINK基礎,控制工具箱,75,矩陣分解:,特征值分解,三角分解,奇異分解,v,d=eig(a,b),v,d=eig(a),l, u, p=lu(a),u,s,v=svd(a),MATLAB數(shù)據處理:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,76,多項式處理:,MATLAB數(shù)據處理:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,求多項式 根,77,曲線擬合,曲線擬合與插值:,x=0:0.1:1; y=-.447 1.978 3.28 6.16 7.08 7.34 7.66 9.56 9.48 9.30 11.2; p=polyfit(x,y,2); xi=0:0.01:1; yi=polyval(p,xi); plot(x,y,xi,yi),x,y為兩等長向量,x為采樣點,是采樣點函數(shù)值,代表次多項式,P 為2階多項式,MATLAB數(shù)據處理:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,求多項式P在自變量x=xi的值,78,曲線擬合:,MATLAB數(shù)據處理:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,例:用一個4次多項式在區(qū)間0,2 內擬函數(shù)cos(x)并繪曲線,79,曲線擬合與插值:,插值函數(shù),t=interpl (x, y, x0, 參數(shù)),MATLAB數(shù)據處理:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,x,y為兩等長向量,x為采樣點,是樣本值,x0描述欲插值的點,為向量或標量,線性插值主要參數(shù)說明表,例:用不同的插值方法計算sin(x)在x= /4時的值,80,X, Y=ode23(xfun, X0, Xn , y0)%二階、三階龍格-庫塔法,常微分方程數(shù)值解:,X, Y=ode45(xfun, X0, Xn , y0) %四階、五階龍格-庫塔法,MATLAB數(shù)據處理:,現(xiàn)代仿真技術與應用 第三章連續(xù)系統(tǒng)的數(shù)字仿真,初值問題在1,3區(qū)間內的數(shù)值解,求微分方程,先建立該方程的函數(shù)文件 function f=f(x,y) f=-3.*y+2*x; 在命令窗口輸入命令 X,Y =ode(f,1 3,2); X%轉置后顯示自變量一組采樣點 Y%轉置后,顯示與采樣點對應的一組數(shù)值解,解:,81,Matlab程序設計,MATLA

溫馨提示

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

評論

0/150

提交評論