matlab及機電系統(tǒng)仿真講稿20150425_第1頁
matlab及機電系統(tǒng)仿真講稿20150425_第2頁
matlab及機電系統(tǒng)仿真講稿20150425_第3頁
matlab及機電系統(tǒng)仿真講稿20150425_第4頁
matlab及機電系統(tǒng)仿真講稿20150425_第5頁
已閱讀5頁,還剩26頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、講稿第一章 MATLAB基礎1.1 MATLAB環(huán)境1.2 MATLAB主菜單:1. File1)New 主要:M-file,function M-file 默認存放路徑:c:2)open 默認路徑:c: ,可以改變當前路徑:Current Direcory 右邊小點,上層文件夾返回上層文件夾3) close command window 慎用 如果某個窗口不慎關閉,菜單項desktop layout-default可恢復默認設置4) Import Data 少用5) Save workspace As 保存工作空間中的數(shù)據(jù)6) Set path 少用 7) Prefence 少用8) Pag

2、e setup 頁面設置9) Print 打印2. Edit 恢復/重做;copy,cut,paste;選擇,刪除;尋找;清除窗口及工作空間內(nèi)容。3. Debug 調(diào)試4. Desktop MATLAB桌面。包括命令窗口操作;桌面布置;選擇要打開的窗口;5. Window 6. Help1.3 工具欄MATLAB工具欄,提供常用命令的快捷方式。其中: 進入Simulink模擬環(huán)境。1.3.3 命令窗口(command)是MATLAB的主要工作區(qū),人機對話的主要環(huán)境。在此運行各種命令,可以得到相應結果。如窗口右上角符號:undock,使命令窗口成為一個獨立窗口,在獨立窗口右上角有一個,可以使命令

3、窗口回到主界面:最小化命令窗口:最大化命令窗口:關閉命令窗口,要重新顯示,菜單desktop下打開在>>后逐行輸入命令,按回車鍵后就可立即得到執(zhí)行??梢酝ㄟ^反復按鍵盤的箭頭鍵,實現(xiàn)指令回調(diào)和編輯,進行新的計算y2=2*cos(0.3*pi)/(1+sqrt(5);1.4 工作空間(workspace)暫時存放命令或程序運行的結果以及程序或命令中出現(xiàn)的常數(shù)和變量的一個空間。1. 查看工作空間:WhoWhos2. 清除空間中的變量和數(shù)據(jù)Clear3. 保存空間中的數(shù)據(jù)和變量File菜單中 save workspace as 命令保存也可以通過工作空間瀏覽器進行操作:(1) 刪除部分內(nèi)存

4、變量(2) 刪除全部內(nèi)存變量(3) 選中變量,進行顯示??梢赃x擇多種顯示方法。例:輸入以下指令,觀察運算結果 clear;x=-8:0.5:8;y=x'X=ones(size(y)*x;Y=y*ones(size(x);R=sqrt(X.2+Y.2)+eps;Z=sin(R)./R;mesh(X,Y,Z);%建立三維網(wǎng)格colormap(hot)% colormap著色,hot從黑到紅到黃到白xlabel('x');ylabel('y');zlabel('z') 1.5 MATLAB常用命令表格 1 MATLAB常用命令命令命令說明命令命

5、令說明cd顯示或改變當前工作目錄Load加載指定文件的變量dir顯示當前目錄或指定目錄下的文件Diary日志文件命令clc清除命令窗口中的所有顯示內(nèi)容!調(diào)用DOS命令home將光標移至命令窗口的最左上角exit退出MATLAB 70clf清除圖形窗口quit退出MATLAB 70type顯示文件內(nèi)容pack收存內(nèi)存碎片clear清理當前工作空間變量,慎用!hold圖形保持開關echo工作窗信息顯示開關path顯示搜索目錄disp顯示變量或文字內(nèi)容save保存內(nèi)存變量到指定文件1.6 快捷鍵1. 在命令窗口(Command Window)中:1) 【上、下鍵】切換到之前、之后的命令,可以重復按多

6、次來達到你想要的命令2) clc清除命令窗口顯示的語句,此命令并不清空當前工作區(qū)的變量,僅僅是把屏幕上顯示出來的語句清除掉3) clear這個才是清空當前工作區(qū)的變量命令,常用語句clear all來完成4) 【Tab】鍵在command窗口,輸入一個命令的前幾個字符,然后按tab鍵,會彈出前面含這幾個字符的所有命令,找到你要的命令,回車,就可以自動完成。目前討論結果是:matlab6.5版本中,如果候選命令超過100個,則不顯示。而在matlab7以后版本中,則沒有這個限制,均可正常提示5) 【Ctrl+C】(或【CtrlBreak】)在matlab程序運行過程中,可能由于程序編寫的失誤,導

7、致程序不停的運行,在命令窗口輸入“Ctrl+C”可以將運行的程序停下來,而不需要將整個Matlab程序關掉。不過進行此操作的前提是能夠激活切換到命令窗口才行,1.7 交互輸入 Input 提示用戶輸入Keyboard像底稿文件一樣使用鍵盤輸入menu產(chǎn)生由用戶輸入選擇的菜單pause等待用戶響應uimenu建立用戶界面菜單uicontrol建立用戶界面控制Input指令格式user_entry = input('prompt') 提示輸入數(shù)值例子:p=input('輸入極對數(shù)p=')運行結果:輸入極對數(shù)p=3p = 3例2 user_entry = input(

8、'prompt', 's') 提示輸入字符串reply = input('Do you want more? Y/N Y: ', 's');if isempty(reply) reply = 'Y'End若鍵入“Y”,則reply =字符串“Y"。若鍵入“N”,則reply =字符串“N"。若直接回車,則reply =空字符串” “,然后reply =字符串“Y”。Pause 注意這里沒有任何提示1.8調(diào)試: 斷點等設置斷點刪除斷點繼續(xù)執(zhí)行改變局部工作空間的內(nèi)容列出調(diào)用者列出所有斷點執(zhí)行一條或多

9、條語句帶行號列出M文件改變局部工作空間的內(nèi)容退出調(diào)試狀態(tài)第二章MATLAB計算基礎MATLAB的計算主要是數(shù)組和矩陣的計算,并且定義的數(shù)值元素是復數(shù),這是MATLAB的重要特點。2.1 常量和變量(1) 常量 實數(shù)和復數(shù),1. 常量可以是十進制數(shù),也可以是其他數(shù)制。2. 復數(shù) 虛數(shù)的單位為i或j,復數(shù)生成語句為Z=a+bi,如z=3+4j;z=r*exp(q*i),其中r為復數(shù)的模,q為復數(shù)的幅角(弧度) a=53*pi/180,z=5*exp(a*i)3. MATLAB常數(shù)的存儲格式為16位長型格式,數(shù)值的有效范圍為10-30810308(2) 變量MATLAB變量的命名規(guī)則:1) 以英文字

10、母開始,即首字符必須是英文的26個字母之一2) 可以由英文字母、數(shù)字和下劃線組成,MATLAB區(qū)分大小寫3) 變量名長度不超過31個字符長度4) 如果在變量名前添加了關鍵詞“global”該變量就變成了全局變量。全局變量不僅在主程序中起作用,而且在函數(shù)和子程序中起作用。定義全局變量必須在主程序的首行。表格 2 MATLAB預定義變量表變量名預定義ans默認變量名。分配最新計算的而又沒有給定名稱的表達式的值。當在命令窗口中輸入表達式而不賦值給任何變量時,在命令窗口中會自動創(chuàng)建變量ans,并將表達式的運算結果賦給該變量。但是變量ans僅保留最近一次的計算結果eps相對誤差。返回機器精度,定義了1與

11、最接近可代表的浮點數(shù)之間的差,在一些命令中也用做偏差。可重新定義,但不能由clear命令恢復。MATLAB70為22204e016realmax最大正實數(shù)。返回計算機能處理的最大浮點數(shù)。MATLAB7.0為1.7977e+308。realmin最小正實數(shù)。返回計算機能處理的最小的非零浮點數(shù)。MATLAB7.0為2.22e-308pi即。若eps足夠小,則用16位十進制數(shù)表達其精度Inf/inf無窮大。定義為,即當分母或除數(shù)為0時返回inf,不中斷執(zhí)行而繼續(xù)運算Nan(NaN)不定值。定義為“Not a number”,即未定式0/0或¥/¥。i/j虛數(shù)單位??梢詾閕和j定義

12、其他值但不再是預定義常數(shù)nargin給出一個函數(shù)調(diào)用過程中實際輸入的參數(shù)的個數(shù)nargout給出一個函數(shù)調(diào)用過程中實際輸出的參數(shù)的個數(shù)computer給出本臺計算機的基本信息version給出MATLAB的版本信息2.2 數(shù)值顯示格式缺省情況下,當結果是整數(shù),將它作為整數(shù)顯示;當是實數(shù),以帶4位小數(shù)的浮點格式精度近似顯示;當結果中的有效數(shù)字超出了這一范圍,以類似于科學計算器的科學計數(shù)法近似顯示。輸出格式不影響計算的精度。2.3 注釋和標點 同一行多個命令用逗號分開,%號后所有文字為注釋(綠色)。2.4 簡單數(shù)組、矩陣的表示和賦值數(shù)組:按一定次序排列的數(shù)矩陣:m*n個數(shù),按m行和n列排列而成的表

13、數(shù)組可以是一維的,也可以是n維的所以一維數(shù)組可以看成1行多列的矩陣,n維數(shù)組就是矩陣了。單個的數(shù)和標量可看成是1*1的矩陣,所以數(shù)和數(shù)組都可以看成矩陣。1. 一維數(shù)組的表示和賦值。元素之間用空格或逗號分隔都可。X=1 2 3 4 5Y=7 8 9 1+2i 3+4iZ=1,2,3,a,b,c,變量名需先賦值P=pi,2*pi,1.3*sqrt(3),(1+2)/5*42. n維數(shù)組的表示和賦值 洪乃剛每行的元素之間用空格或逗號分隔;行與行之間用分號或回車鍵分隔。1 A=1 2 3;4 5 6;7 8 92 A=1 2 3 4 5 6 7 8 9結果都是 A = 1 2 3 4 5 6 7 8

14、9數(shù)組元素可以是表達式:B=1,2,3;a,b (a+b)/2,需先賦值a=5,b=6,B=1,2,3;a,b (a+b)/2a = 5b = 6B = 1.0000 2.0000 3.00005.0000 6.0000 5.50002.5 MATLAB算術運算表格 3 MATLAB算術運算符算術運算符說明算術運算符說明+加-減*矩陣乘*數(shù)組乘矩陣乘方數(shù)組乘方矩陣左除或反斜杠/矩陣右除或斜杠或數(shù)組左除/數(shù)組右除矩陣轉(zhuǎn)置。數(shù)組轉(zhuǎn)置kron張量積1. 矩陣轉(zhuǎn)置a=1 2 3;4 5 6;7 8 9b=a運行結果a = 1 2 3 4 5 6 7 8 9b = 1 4 7 2 5 8 3 6 9對實

15、數(shù)矩陣,符號實現(xiàn)轉(zhuǎn)置,對復數(shù)矩陣,完成共軛轉(zhuǎn)置a=1+2j 2-3j ; 4+5j 5-6jb=a運行結果a = 1.0000 + 2.0000i 2.0000 - 3.0000i 4.0000 + 5.0000i 5.0000 - 6.0000ib = 1.0000 - 2.0000i 4.0000 - 5.0000i 2.0000 + 3.0000i 5.0000 + 6.0000i2. 矩陣加減(1) 兩矩陣加減 對應元素進行加減A=1 2 3;4 5 6;7 8 9B=1,4,7;8 9 10;11 12 13C=a+b a=1,b=2,c=a+b(2) 矩陣與標量加減X=-1 0 2

16、Y=X-1運行結果X = -1 0 2Y = -2 -1 13. 矩陣乘法(1) 兩矩陣相乘,內(nèi)維要相同 X=2 3 4 5 1 2 2 1Y=0 1 1 1 1 0 0 0 1 1 0 0 Z=X*Y運行結果X = 2 3 4 5 1 2 2 1Y = 0 1 1 1 1 0 0 0 1 1 0 0Z = 8 5 6 3 3 3數(shù)值可以看成是1*1矩陣:X=23;Y=33;Z=X*YThe resultZ = 759(2) 矩陣與標量相乘,矩陣數(shù)乘A=2 3 4 5 1 2 2 1B=A*2The resultB = 4 6 8 10 2 4 4 2(3) 向量積(數(shù)積)X=-1 0 2 %

17、 轉(zhuǎn)置后為列向量Y=-2 -1 1 %Z=X*Y4. 矩陣除法Ab=inv(a)*b inv-矩陣求逆B/a=b*inv(a)。一般情況下,x=ab(左除)是方程a*x=b的解;x=a/b(右除)是x*a=b的解A=1 2 3;4 2 6;7 4 9B=4;1;2C=ab(左除)The resultC = -1.5000 2.00000.5000單個數(shù)據(jù)相除A=3,b=2C=AbD=a/bA =3,b = 2, C = 0.6667, D =1.5000矩陣和數(shù)組的區(qū)別:數(shù)值運算強調(diào)的是元素對元素運算,而矩陣運算則采用線性代數(shù)的運算方式表格 4 常用數(shù)組運算和矩陣操作運算數(shù)組運算矩陣運算操作功

18、能描述操作功能描述A+B對應元素相加A+B同數(shù)組運算A-B對應元素相減A-B同數(shù)組運算S.*B標量s分別與B中元素的積S*B同數(shù)組運算A.*B對應元素相乘A*B內(nèi)維相同的矩陣相乘S./AA中元素左除sS/A矩陣左除sA./BB中元素左除A中元素A/B矩陣A右除矩陣BB.A上行A的另一種表達式BA矩陣B右除矩陣A,(與上一行意義不同)A.SS為整數(shù)時,A中元素自乘s次ASS為整數(shù)時,且A為方陣時,A自乘s次A.非共軛轉(zhuǎn)置A共軛轉(zhuǎn)置2.6 關系運算兩個元素之間的比較,關系運算結果只可能是0,0表示該關系式不成立,1表示該關系式成立關系運算符說明關系運算符說明=等于=不等于小于大于=小于或等于=大于

19、或等于例A = 2 7 6;9 0 5;3 0.5 6B = 8 7 0;3 2 5;4 -1 7A = Bans = 0 1 0 0 0 1 0 0 0注意=和=的不同比較結果也能用在數(shù)學運算中A=1 2 3 4 5 6 7 8 9B=8 7 6 5 4 3 2 1 0Tf=(A=B)Tf=B-(A>2)The resultA = 1 2 3 4 5 6 7 8 9B = 8 7 6 5 4 3 2 1 0Tf = 0 0 0 0 0 0 0 0 0Tf = 8 7 5 4 3 2 1 0 -12.7 邏輯運算邏輯運算A=0A=1B=0B=1B=0B=1A&B0001A|B01

20、11A1100xor(A,B)01102.8 向量和矩陣操作向量是組成矩陣的基本元素之一。我們可以把它看成是一維數(shù)組1 向量的產(chǎn)生A1=1 2 3 4 5 得 A1=1 2 3 4 5A2=7;8;9 A2=789A3=A2 %轉(zhuǎn)置,行向量和列向量之間的轉(zhuǎn)換。A3=7 8 9冒號:用于產(chǎn)生等差元素的向量,其格式為n:s:m表示產(chǎn)生從n到m,步長為s的一系列值。當s缺省時,步長為1。步長既可為正也可為負,也可以是小數(shù)。例,x=1:5,y=6:-1:2, z=-pi:pi/2:pi運行結果:>> x=1:5,y=6:-1:2,z=-pi:pi/2:pix = 1 2 3 4 5y =

21、6 5 4 3 2z = -3.1416 -1.5708 0 1.5708 3.1416MATLAB還提供兩個產(chǎn)生向量的函數(shù):Linspace:產(chǎn)生一個線性增長的向量Logspace:產(chǎn)生一個等對數(shù)增量的向量二 向量的四則運算(1) 向量與常數(shù)的運算 向量中每一個元素與常數(shù)做加減乘除B2=linspace(0,10,5) %在0和10之間生成5個數(shù)B3=(b2*5+2)/5(2) 向量之間的加減法運算 向量中每一個元素與另一個元素中對應的元素進行加減運算>> A1=1 2 3 4 5B1=0:2:20C1=A1+B1A1 = 1 2 3 4 5B1 = 0 2 4 6 8 10 1

22、2 14 16 18 20? Error using => plusMatrix dimensions must agree.>> a1=1 2 3 4 5 6,b2=2:2:12,c1=b2+a1a1 = 1 2 3 4 5 6b2 = 2 4 6 8 10 12c1 = 3 6 9 12 15 18Matlab7.0中也提供了向量的點積dot和矢積運算cross>> x1=2 9 8 7,x2=6 5 1 4,y=dot(x1,x2)x1 = 2 9 8 7x2 = 6 5 1 4y =93>> x3=12 20 30 18 5,y=dot(x1,

23、x3)x3 = 12 20 30 18 5? Error using => dot at 30A and B must be same size.> x1=2 9 8 7,x2=6 5 1 4,y1=cross(x1,x2)x1 = 2 9 8 7x2 = 6 5 1 4? Error using => cross at 37A and B must have at least one dimension of length 3.不僅維數(shù)相同,而且要是三維。>> x1=2 9 8,x2=6 5 1,y1=cross(x1,x2)x1 = 2 9 8x2 = 6 5

24、 1y1 = -31 46 -44三 下標利用下標可訪問矩陣中的元素,例:A=1 2 3;4 5 6;7 8 9B=1 2 C=A(3,2) %取A矩陣中3行2列的元素d=A(2:3,1:2) %取A矩陣中2-3行,1-2列中的元素構成d矩陣運行結果A = 1 2 3 4 5 6 7 8 9B = 1 2C = 8d = 4 5 7 8如果在某下標位置只有一個:號,則表示取對應的所有行或列。例, 在上述計算的基礎上,執(zhí)行 e=A(1:2,:) %取1-2行,所有列構成e矩陣。e = 1 2 3 4 5 62.9 MATLAB特殊運算符標點說明標點說明:冒號,具有多種應用功能%百分號,注釋標記;

25、分號,區(qū)分行及取消運行結果顯示!感嘆號,調(diào)用操作系統(tǒng)運算,逗號,區(qū)分列及函數(shù)分隔符=等號,賦值標記()括號,指定運算優(yōu)先級單引號,字符串的標識符方括號,定義矩陣.小數(shù)點及對象域訪問大括號,構造單元數(shù)組續(xù)行符號以下洪乃剛第三章 程序設計基礎MATLAB程序的基本結構% 說明清除命令定義變量逐行執(zhí)行的命令。 循環(huán)和轉(zhuǎn)移 逐行執(zhí)行的命令 End逐行執(zhí)行的命令。3.1 表達式、表達式語句和賦值語句1. 表達式由運算符連接的常量、變量和函數(shù)就構成了MATLAB的表達式算術表達式,函數(shù),關系,邏輯等2. 表達式語句單個表達式就是表達式語句。一行可以只有一個表達式語句,可以有多個表達式語句,這時語句間用分號

26、和逗號分隔。語句以回車行結束。以分號;結束的語句結束后不顯示運行結果,以逗號和回車鍵結束的語句執(zhí)行后即顯示運行結果。如果一條語句需要占用多行,這時需要使用連續(xù)符“.”3. 賦值語句將表達式賦予變量就是賦值語句。例如A=3+7*8X=10*sin(2*pi*f*t)3.2 MATLAB常用函數(shù)絕對值,三角函數(shù),指數(shù)函數(shù),對數(shù),復數(shù),取整函數(shù)數(shù)學含義函數(shù)數(shù)學含義abs(x)求x的絕對值,即x,若x是復數(shù),即求x的模csc(x)求x的余割函數(shù),x為弧度sign(x)求x的符號,x為正得1,x為負得-1,x為零得0asin(x)求x的反正弦數(shù),即sixsqrt(x)求x的平方根,即acos(x)求x的

27、反余切函數(shù),coxexp(x)求x的指數(shù)函數(shù),即atan(x)求x的反正切函數(shù),taxlog(x)求x的自然對數(shù),即lnxacot(x)求x的反余切函數(shù),coxlog10(x)求x的常用對數(shù),即lgxasec(x)求x的反正割函數(shù),sexlog2(x)求x的以2為底的對數(shù),即loxacsc(x)求x的反余割函數(shù),csxsin(x)求x的正弦函數(shù),x為弧度Round(x)求最接近x的整數(shù)cos(x)求x的余弦函數(shù),x為弧度rem(x,y)求整除x/y的余數(shù)tan(x)求x的正切函數(shù),x為弧度real(z)求復數(shù)z的實部cot(x)求x的余切函數(shù),x為弧度Imag(z)求復數(shù)z的虛部sec(x)求

28、x的正割函數(shù),x為弧度conj(z)求復數(shù)z的共軛,即求括號中可以是表達式更復雜的函數(shù)可以編程實現(xiàn),稱為函數(shù)文件3.3 流程控制語句If(表達式),語句組A, else 語句組B,endIf(表達式),語句組A, end1. if語句表達式語句組AIf假(0)真(1)表達式語句組AIf假(0)else真(1)語句組BIf(表達式1),語句組A, elseif(表達式2),語句組B,else 語句組C, end表達式1語句組AIf假(0)elseif真(1)語句組B語句組C表達式2假(0)else真(1)2. While循環(huán)語句表達式語句組AWhile假(0)真(1)循環(huán)結束While (表達式

29、),語句組,end3. For循環(huán)語句For k=初值:增量:終止值語句組endK達終值否?語句組A否(0)是(1)循環(huán)結束K=初值K+增量-KFor語句將循環(huán)體中的語句組循環(huán)執(zhí)行N次,每執(zhí)行一次,k就增加一個增量,所以循環(huán)次數(shù)為N=1+(終值-初值)/增量當k值等于終值后,循環(huán)結束,程序轉(zhuǎn)向end以后的語句。For語句可以嵌套使用。在循環(huán)執(zhí)行(for,while)中,如果滿足一定條件需要跳出循環(huán),可以使用break命令終止循環(huán)。例for n=1:10X(n)=sin(n*pi/10)end避免使用for循環(huán),用向量化操作n=1:10;x=sin(n*pi/10)可得同樣結果。4. Switc

30、h-case語句 多分支語句語句格式Switch 表達式(標量或字符串) Case值1語句組ACase值2語句組BCase值3語句組COtherwise語句組NEnd當表達式的值(字符串)與某個case值相同,就執(zhí)行該case值下的語句組,如果與任何一個case值都不同,就執(zhí)行otherwise后的語句組N。程序暫停:pause,等待任意鍵3.4 腳本文件和m函數(shù)文件 通過命令窗口難以實現(xiàn)復雜功能。這時可以文件形式完成。它由一系列MATLAB語句構成。該文件的后綴為.m。由于M文件是文本文件,可以用各種文本編輯m文件可分為兩類:腳本文件和函數(shù)文件1. 腳本文件腳本(script):由一系列MA

31、TLAB語句構成。相當于主程序。當調(diào)用一個腳本文件時,MATLAB自動執(zhí)行一系列語句,并不交互等待鍵盤的輸入??墒褂霉ぷ骺臻g中的全局變量。腳本文件中的變量都保存在工作區(qū)中。注意容易與其它操作產(chǎn)生的變量混淆執(zhí)行:在命令窗口,鍵入腳本文件名,則自動執(zhí)行在編輯editor窗口,點擊執(zhí)行鈕,即可執(zhí)行,在該窗口還可以進行程序調(diào)試。在腳本文件中,有一些很有用的交互輸入命令: l Input指令格式user_entry = input('prompt') 提示輸入數(shù)值例子:p=input('輸入極對數(shù)p=')運行結果:輸入極對數(shù)p=3p = 3例2 user_entry =

32、input('prompt', 's') 提示輸入字符串reply = input('Do you want more? Y/N Y: ', 's');if isempty(reply) reply = 'Y'End若鍵入“Y”,則reply =字符串“Y"。若鍵入“N”,則reply =字符串“N"。若直接回車,則reply =空字符串” “,然后reply =字符串“Y”。l Pause 注意這里沒有任何提示,直至用戶按任意鍵,程序繼續(xù)執(zhí)行。l Echo可使命令在屏幕上顯示l Keyboar

33、d 與input類似,可等待輸入多行命令,并將鍵盤輸入的內(nèi)容作為一個腳本文件來處理,當鍵入return命令后,繼續(xù)執(zhí)行腳本文件中的命令。2. 函數(shù)文件函數(shù)文件的第一行必須包含關鍵字function函數(shù)文件與底稿文件的區(qū)別:函數(shù)文件可以傳遞參數(shù),底稿文件不行函數(shù)文件中定義及使用的變量都是局部變量,只在本函數(shù)的工作區(qū)中有效,一旦退出該函數(shù),即為無效變量。即函數(shù)文件對用戶而言是透明的。而底稿文件中定義和使用的都是全局變量,在退出文件后仍為有效變量。函數(shù)文件格式Function x,y,z=sphere(theta,phi,rho),函數(shù)文件可以返回多個值。函數(shù)文件mean.m文件:function

34、y=mean(x)%MEAN average or meanvalue,取平均值%for vectors,MEAN(x) returns mean value%for matriaces,MEAN(x) returns a row vector%containing the mean value of each columnm,n=size(x);if m=1 m=n;endy=sum(x)/m;這個文件新定義了一個函數(shù)mean。與文件名相同函數(shù)文件說明:1 文件第一行說明了該函數(shù)的名稱、輸入?yún)?shù)、輸出參數(shù)。如果沒有這一行的說明該文件就是腳本文件2 %后的是注釋說明,不會被執(zhí)行。文件前面的幾行

35、構成了M文件的幫助信息,當鍵入help mean時就會顯示。3 變量m, n, y為局部變量,當mean執(zhí)行完畢,這些變量也隨之消失(如果這些變量在執(zhí)行mean之前就已經(jīng)存在,則它在mean執(zhí)行之后仍保持原值。4 在調(diào)用函數(shù)文件時,傳遞的參數(shù)名稱不一定與與函數(shù)文件中定義的參數(shù)名稱相同。在上例中,我們使用變量z而不是x來傳遞參數(shù),這并不會影響程序的正常運行,事實上,z的值只是被傳遞(或者說被拷貝到了mean函數(shù)的局部變量x中。引用該函數(shù):>> Z=1:99;M=mean(Z)%分號換成逗號,則顯示整個Z數(shù)組。M =50 當函數(shù)文件到達文件終點,或者碰到return命令,則結束執(zhí)行和返

36、回。Return命令提供了結束函數(shù)的一個簡單的方法,不必達到文件的終點。注意:文件名就是函數(shù)名,函數(shù)名不能和函數(shù)文件中的變量名重合。3.5 全局變量一般由M文件定義的變量都為全局變量,這些變量只在該函數(shù)內(nèi)有效,它們與其它函數(shù)內(nèi)的變量,以及基本空間中的變量是相互獨立的。但是,如果在函數(shù)或基本空間中,表明了某個變量為全局變量,那么它就可以為其它函數(shù)所共享。Global m, 則m為全局變量。任何時候都應盡量避免使用全局變量。第四章 MATLAB繪圖功能 表1-8 常用的繪圖命令4.1 直角坐標中的二維曲線單條曲線1. Plot(A)。A是一維數(shù)組的變量名,例2. Plot(A,B) 畫二維數(shù)組A和

37、B的曲線。,以數(shù)組A為x軸,B為y軸。例,(其中t=0:0.2:6*pi,是對x進行向量化操作。)4.2多條曲線的繪制多條曲線1. plot(x1,y1,x2,y2,x3,y3,.xn,yn)2. plot(x1,y1),hold,plot(x2,y2)在同一張圖上畫上另一條曲線3. plotyyt=0:0.1:4*pi;y1=10*sin(t);y2=8*cos(t);y4=50*y1;%figure (1)plot(t,y1,t,y2,t,y4)%figure(2)plotyy(t,y4,t,y2)4. subplot 利用subplot可在同一窗口中顯示多個圖形,也可在同一紙上打印出多個

38、圖形命令格式為Subplot(m,n,p)將圖形窗口分割為m*n個子窗口,并置第p個窗口為當前圖形窗口。窗口編號從左到右,從上到下。t=0:0.1:4*pi;y1=10*sin(t);y2=8*cos(t);y4=50*y1;subplot(2,2,1)plot(t,y1)subplot(2,2,2)plot(t,y2)subplot(2,2,3)plot(t,y4)5. fplot 采用該函數(shù),可以繪出更精確的曲線,因為fplot能自適應的對函數(shù)進行采樣,以更好的表示圖形。前面的polt只是等間隔采樣,而fplot可在最大函數(shù)變化率處集中采樣,從而提高精度。為了采用fplot函數(shù),需先建立一

39、個函數(shù)文件,如fofx.mfunction y=fofx(x)y=cos(tan(pi*x);Fplot函數(shù)的格式為 Fplot(函數(shù)名,區(qū)間,容差)本例中采用Fplot(fofx,0 1,1e-4)6. figure 可建立多個圖形窗口。figure 打開一個新的圖形窗口figure(n) 使第n個圖形窗口為當前窗口4.3 曲線的線型和顏色表1-9t=0:0.1:4*pi;y1=10*sin(t);y2=8*cos(t);plot(t,y1,ok,t,y2,*g)單引號內(nèi)應是紫色。4.4 MATLAB的圖形窗口在圖形窗口可以進行下列設置1. 設置圖形畫面參數(shù)Edit-Figure Prope

40、rty2. 設置標題和坐標軸物理量等 Edit-Axes property3. 在圖形上添加箭頭、線段和文字 Insert-.4.5 電力電子電路波形圖的繪制作為例子 %單相半波不控整流電路,已知交流電源電壓為220V,負載電阻為2歐姆。%畫出交流電源電壓,整流輸出電壓和電流的波形V=220;R=2;dth=pi/360;th=0:dth:2*pi;vs=V*sqrt(2)*sin(th); % supply voltage waveform%figure(1); %多圖形窗口plot(th,vs)%xlabel('th')%必須在plot之后,%ylabel('vs&

41、#39;)%title('supply voltage')%grid on%hold onud=vs.*(vs>=0);%figure(2);%plot(th,ud)id=ud/R;%figure(3);%plot(th,id)%figure(4);%plot(th,vs,th,ud,th,id)%多條曲線%figure(5)%plotyy(th,ud,th,id)%兩種y軸比例%figure(6)plot(th,vs),hold%保持曲線plot(th,ud,th,id)處理:1. 變成黑色:菜單-edit-Figure Properties-點選要編輯的曲線,進行編輯

42、:PlotType圖型(波形,條形圖,階梯圖等)line曲線顏色,粗細,線型,maker數(shù)據(jù)點標示等。More Properties出現(xiàn)一個表格,可以在表格內(nèi)進行設置。2. 加柵格:菜單-edit-Figure Properties,點擊坐標軸,grid3. 插入文字:菜單-insert4. 加坐標軸axes標簽label和名稱title: x-:電角度/rad,x limits:0 to 2*pi,auto去勾選。顯示一個周波,ticks:location:坐標值3.14,6.28;label:pi,2pi y-label:us/V ud/V id/A title:單相半波不控整流電路則顯示

43、圖1-19也可以菜單view-properties editor進行編輯。也可以用命令控制,圖形可以分圖顯示4.6 電機機械特性圖形的繪制包括復數(shù)運算,for循環(huán),if結構,圖形hold,坐標標簽由電機學可知,電磁轉(zhuǎn)矩表達式為 nph為定子繞組相數(shù),s為轉(zhuǎn)差率,由于轉(zhuǎn)速n的單位為轉(zhuǎn)/每分鐘,程序中n用rpm(r/min)表示。電機等效電路,轉(zhuǎn)子方參數(shù)已折算到定子方。用戴維南定理簡化后,得其中,A three-phase, 230V, 12kW, four-pole, wound-rotor, induction motor has the following parameters expres

44、sed in /phase.一臺3相,230V,12kW,4極,線繞式轉(zhuǎn)子的感應電動機,具有下列每相參數(shù),單位為W。% R1=0.095, X1=0.680, X2=0.672 ,Xm=18.7% Useing MATLAB plot the eletromechnical mechanical torque Tmech as a function of totor speed in r/min for R2=0.1,0.2,0.5,1.0and 1.5clc %清命令窗口clear %清從內(nèi)存中清除變量和函數(shù)% Here are the motor parametersV1=230/sqrt

45、(3) %line voltagenph =3 %phase numberpoles=4 %polesfe=60 %frequency R1=0.095X1=0.680X2=0.672Xm=18.7 %Calculate the synchronous speedomegas = 4*pi*fe/poles %ns=120*fe/poles %Calculate stator Theven equivalentZ1eq = j*Xm*(R1+j*X1)/(R1+j*(X1+Xm) R1eq =real(Z1eq)X1eq=imag(Z1eq)V1eq=abs(V1+j*Xm/(R1+j*(X1

46、+Xm) % Here is the loop over rotor tesistanceFor m=1:5 %必須用for循環(huán),因為這里不是構成向量。 if m=1 R2=0.1 elseif m=2 R2=0.2 elseif m=3 R2 = 0.5 elseif m=4 R2 = 1.0 else R2=1.5 end % Here is the loop over slip for n=1:200 s(n) = n/200; %slip rpm(n)=ns*(1-s(n); I2=abs(V1eq/(Z1eq+j*X2+R2/s(n) ; Tmech(n) = nph*I22*R2/

47、(s(n)*omegas); end% Now plotplot(rpm,Tmech) if m=1 hold end pauseendholdxlabel('rpm')ylabel('Tmech')這里第一個for循環(huán)是for m=1:5 % if m=1 R2=0.1 elseif m=2 R2=0.2 elseif m=3 R2 = 0.5 elseif m=4 R2 = 1.0 else R2=1.5 end y=R2+2end運行結果R2 = 0.1000y = 2.1000R2 = 0.2000y = 2.2000R2 = 0.5000y = 2.5

48、000R2 = 1y = 3R2 = 1.5000y = 3.5000第5章 Simulink環(huán)境和模型庫對照一下5.1 系統(tǒng)仿真環(huán)境特點1) 以調(diào)用模塊代替程序的編寫2) 系統(tǒng)方框圖畫完,設置了仿真參數(shù),即可啟動仿真3) 系統(tǒng)運行狀態(tài)和結果可以通過波形和曲線觀察4) 系統(tǒng)仿真數(shù)據(jù)可以保存5) 如果系統(tǒng)方框圖繪制不完整或仿真過程中出現(xiàn)計算不收斂的情況,會給出一定的出錯提示信息,但這些提示不一定準確,這是軟件還不夠完備的地方。6) 以框圖形式仿真控制系統(tǒng)是simulink的最早功能,后來在simulink的基礎上又開發(fā)了數(shù)字信號處理,通信系統(tǒng),電力系統(tǒng),模糊控制等許多模型庫,但simulink的窗口界面是其它工具箱共有的平臺。7) MATLAB6.5以后模塊以電路接口替代了原先的信號接口,將信號與電路分開。5.1.1si

溫馨提示

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

評論

0/150

提交評論