連續(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ù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

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

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論