西工大電氣系統(tǒng)仿真matlab的第一章課件_第1頁
西工大電氣系統(tǒng)仿真matlab的第一章課件_第2頁
西工大電氣系統(tǒng)仿真matlab的第一章課件_第3頁
西工大電氣系統(tǒng)仿真matlab的第一章課件_第4頁
西工大電氣系統(tǒng)仿真matlab的第一章課件_第5頁
已閱讀5頁,還剩121頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、電氣系統(tǒng)仿真2016.10仿真 仿真是通過對系統(tǒng)模型的實驗去研究一個存在或設(shè)計中的系統(tǒng)。系統(tǒng) A system is an object or collection of objects whose properties we want to study. _ 電氣系統(tǒng) _ 獨立電氣系統(tǒng) 電氣系統(tǒng)仿真計算機(jī)軟件 _MATLAB _Saber : Mast 語言 _ANSYS : Maxwell 2D/3D, Simplorer PExprt, RMxprt _Dymola: Modelica語言 課程性質(zhì):專業(yè)課 MATLAB簡介1. MATLAB的發(fā)展史2. MATLAB語言的主要特點3.

2、MATLAB與仿真4.教學(xué)與參考資料1. MATLAB的發(fā)展史MATLAB名字由MATrix和 LABoratory 兩詞的前三個字母組合而成。那是20世紀(jì)七十年代,時任美國新墨西哥大學(xué)計算機(jī)科學(xué)系主任的Cleve Moler出于減輕學(xué)生編程負(fù)擔(dān)的動機(jī),編寫了一個為線性代數(shù)的矩陣計算提供運算工具的軟件,此即用FORTRAN語言編寫的萌芽狀態(tài)的MATLAB。1984年由Little、Moler、Steve Bangert合作成立MathWorks公司,并把MATLAB正式推向市場。從這時起,MATLAB的內(nèi)核采用C語言編寫,而且除原有的數(shù)值計算能力外,還新增了數(shù)據(jù)圖視功能。2. MATLAB語言

3、的主要特點(1)具有豐富的數(shù)學(xué)功能包括矩陣各種運算。如:正交變換、三角分解、特征值、常見的特殊矩陣等。包括各種特殊函數(shù)。如:貝塞爾函數(shù)、勒讓德函數(shù)、伽碼函數(shù)、貝塔函數(shù)、橢圓函數(shù)等。包括各種數(shù)學(xué)運算功能。如:數(shù)值微分、數(shù)值積分、插值、求極值、方程求根、FFT 、常微分方程的數(shù)值解等。(2)具有很好的圖視系統(tǒng)(3)可以直接處理聲音和圖形文件。(4)具有若干功能強(qiáng)大的應(yīng)用工具箱。 Mathworks公司先后開發(fā)了許多工具包,世界上很多從事自動控制的專家在自己擅長的領(lǐng)域里編寫了具有特殊功能的工具包,諸如:控制系統(tǒng)工具箱(control system toolbox);信號處理工具箱(signal pr

4、ocessing toolbox);系統(tǒng)識別工具箱(system identification toolbox);魯棒控制工具箱(robust control toolbox);神經(jīng)網(wǎng)絡(luò)工具箱(neural network toolbox)等等。 還在不斷擴(kuò)充、豐富和完善。每一個工具箱都是該領(lǐng)域里的最權(quán)威、最先進(jìn)的計算與仿真軟件程序。2. MATLAB語言的主要特點3.教學(xué)與參考資料講課與上機(jī)試驗。相關(guān)網(wǎng)絡(luò)資源: 參考文獻(xiàn):MATLAB基礎(chǔ)與應(yīng)用簡明教程,教材?,F(xiàn)代控制工程(第4版),電子工業(yè)出版社,參考書。軟件的隨機(jī)幫助第1章 MATLAB入門 與基本運算第1章 MATLAB入門與基本運算1

5、.1 MATLAB環(huán)境默認(rèn)界面命令窗口:是MATLAB的重要組成部分,MATLAB系統(tǒng)在計算機(jī)里的存在,主要是以命令窗口形式體現(xiàn)的。在MATLAB命令窗口,使用者輸入命令、程序、點擊菜單項或工具欄按鈕,指揮MATLAB計算、仿真,其結(jié)果也都在命令窗口顯示。命令窗口是使用者和MATLAB 交互的地方。當(dāng)前目錄窗口:顯示MATLAB打開到當(dāng)前目錄,系統(tǒng)默認(rèn)目錄是MATLAB6p5work,即默認(rèn)存儲文件的地方。命令歷史窗口:在命令窗口用過的命令語句都會存儲在該窗口。 1.2 變量管理與工作空間1.2.1 建立數(shù)據(jù) MATLAB里的變量無需事先定義,一個程序的變量,以其名稱在語句命令中第一次合法出現(xiàn)

6、而定義。MATLAB變量名稱的命名規(guī)則: 變量名可以由英文字母、數(shù)字和下劃線組成。應(yīng)以英文字母開頭; 組成變量名的字符長度不大于31個,字母間不可留空格 ; MATLAB區(qū)分大小寫英語字母。 1.2 變量管理與工作空間MATLAB中 設(shè)置了一些特殊的變量與常量: ans或(ANS):缺省變量名,以應(yīng)答最近一次操作運算 結(jié)果; i或j:基本虛數(shù)單位 pi:圓周率 p(= 3.1415926.) eps:系統(tǒng)的浮點的相對誤差 inf(或INF):無窮大 nan(或NaN):代表不定值,例如0/0 realmax:系統(tǒng)所能表示的最大正實數(shù) realmin:系統(tǒng)所能表示的最小正實數(shù) nargin: 函

7、數(shù)的實際輸入?yún)?shù)個數(shù) nargout:函數(shù)的實際輸出參數(shù)個數(shù) 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型 18integer types Array of signed and unsigned integers. Requires less storage space than single or double. All integer types except for int64 and uint64 can be used in mathematical operations.1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型19Creating Integer Data To

8、store data as an integer, use one of the conversion functions shown in the table right: 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型20Creating Integer Data To store data as an integer, use one of the conversion functions : x = int16(32501);You can use the whos function to show the dimensions, byte count, and data type

9、 of an array represented by a variableOr you can use the class function if you want to assign the output as shown here: xType = class(x) You can use the intmax or intmin function to Return Largest or Smallest possible value of specified integer type intmax(CLASSNAME) is the largest positive value in

10、 the integer class CLASSNAME. Valid values of CLASSNAME are int8, uint8, int16, uint16, int32, uint32, int64 and uint64.1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型21When you convert a number to one of the integer data types, MATLAB rounds the result to the nearest integer. For example, a=2.7 b=int8(a) also b=int8(2.7

11、)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型22Creating Double-Precision Data Since the default numeric type for MATLAB is double, you can create a double with a simple assignment statement. x = 25.783; Any value stored as a double requires 64 bits.You can use the double function to convert other numeric data, charact

12、ers or strings, and logical data to double-precision floating point: y = int64(-589324077574); % Create a 64-bit integer x = double(y) % Convert to double whos x y1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型24Creating Single-Precision Data Because MATLAB stores numeric data as a double by default, you need to use the

13、single conversion function to create a single-precision number: x = single(25.783); whos x Any value stored as a single requires 32 bits. Storing a number as type single require only half as much memory as storing it as type double. You can compare how many bytes of memory are used to store a mumber

14、 as type single versus type double using the whos command. (use format long to see the difference between single & double)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型25Logical Types The logical data type represents a logical true or false state using the numbers 1 and 0, respectively. Certain MATLAB functions and oper

15、ators return logical true or false to indicate whether a certain condition was found to be true or not. 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型27Characters and Strings In MATLAB, the term string refers to an array of Unicode characters. MATLAB represents each character internally as its corresponding numeric valu

16、e. Unless you want to access these values, however, you can simply work with the characters as they display on screen.1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型28Creating Character Arrays Specify character data by placing characters inside a pair of single quotes. For example, this line creates a 1-by-13 character a

17、rray called name: name = Thomas R. Lee; In the workspace, the output of whos shows Name Size Bytes Class name 1x13 26 char array You can see that each character uses two bytes of storage internally. The class functions show names identity as a character array: class(name)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型29C

18、reating Two-Dimensional Character Arrays A simpler way to create string arrays is to use the char function. char automatically pads all strings to the length of the longest input string. name = char(Thomas R. Lee,Senior Developer) char pads the 13-character input string Thomas R. Lee with three trai

19、ling blanks so that it will be as long as the second string. 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型30cell array Cell arrays is a special array, You can store arrays of different types and/or sizes within the cells of a cell array. This illustration shows a cell array that contains arrays of: unsigned integers (c

20、ell 1,1), strings (cell 1,2), complex numbers (cell 1,3), floating-point numbers (cell 2,1), signed integers (cell 2,2), and another cell array (cell 2,3). 1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型311.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型32creating cell arrays Cell arrays use braces instead of parentheses () for selecting and di

21、splaying the contents of cells. You can build a cell array by assigning data to individual cells, one cell at a time. There are two ways to assign data to cells:Content indexingCell indexing1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型33creating cell arraysContent indexing Enclose the cell subscripts in parentheses usi

22、ng standard array notation. Enclose the cell contents on the right side of the assignment statement in curly braces . For example, create a 2-by-2 cell array A: A(1,1) = 1 4 3; 0 5 8; 7 2 9; A(1,2) = Anne Smith; A(2,1) = 3+7i; A(2,2) = -pi:pi/10:pi;1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型34creating cell arrays Cel

23、l indexingEnclose the cell subscripts in curly braces using standard array notation. Specify the cell contents on the right side of the assignment statement: A1,1 = 1 4 3; 0 5 8; 7 2 9;A1,2 = Anne Smith;A2,1 = 3+7i;A2,2 = -pi:pi/10:pi;1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型35using the cell functionThe cell functi

24、on allows you to reallocate empty cell arrays of the specified size.a = cell(2,2)Then you can use assignment statements to fill values in the cellsusing braces as cell constructors b=1 2, 17, 2;4; 3-4*i,Hello, eye(3)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型36A structureEach individual element is given a name, known

25、 as fieldsEach field in a structure may have a different typeThe individual fields are addressed by combining the name of the structure with the name of the field, separated by a period.1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型37Structures can be creaed in two ways.A field at a time using assignment statements.All

26、at once using the struct function.Using assignment statements =John Doe; student.addr1=123 Main Street; student.city=Anytown; student.zip=71211;A second student can be added to the structure by adding a subscript to the structure name (before the period).student(2).name=Jane Q. Public1.2 變量管理與工作空間 1

27、.2.3 數(shù)據(jù) 類型38using the struct function struct Create or convert to structure array. S = STRUCT(field1,VALUES1,field2,VALUES2,.) creates a structure array with the specified fields and values. s = struct(strings,hello,yes,lengths,5 3)Removing fields from structuresstruct2=rmfield(struct_array,field)st

28、u2=rmfield(student,zip)1.2 變量管理與工作空間 1.2.3 數(shù)據(jù) 類型1.3 MATLAB的在線幫助 MATLAB的命令繁多,為了幫助用戶找到命令,MATLAB提供了廣泛的在線幫助功能。help命令 如果知道函數(shù)和命令的名稱,可以利用MATLAB的help命令,它可以直接給出要查詢的函數(shù)的功能和調(diào)用方法等信息。lookfor 命令 lookfor命令根據(jù)關(guān)鍵詞提供幫助,關(guān)鍵詞不必為函數(shù)名和命令名,其搜索范圍是所有的MATLAB help 標(biāo)題,以及搜索路徑中m文件的第一行,返回結(jié)果是包含指定關(guān)鍵詞的哪些項。菜單驅(qū)動的幫助 可以直接從菜單欄獲得菜單驅(qū)動的幫助。MATLA

29、B的搜索路徑 which命令可找出函數(shù)和文件所在的目錄。1.4 MATLAB的標(biāo)點百分號%之后的任何文字都被注解,注解是由%起頭,注解的功能是簡要的說明程序的內(nèi)容,注釋語句不能執(zhí)行。多條語句放在同一行,以逗號, 或是分號; 分開。例如 r=2, area=pi*r2, r=2; area=pi*r2;請注意上述二式的差異,前者有計算值顯示,而后者則無。如果一個指令過長可以在結(jié)尾加上.(代表此行指 令與下一行連續(xù)),例如 r=2; area = pi . *r2圓括號( )指出在算術(shù)表達(dá)式中的先后次序,方括號 用于構(gòu)成向量和矩陣,大括號用于構(gòu)成單元數(shù)組。1.4 MATLAB的標(biāo)點冒號:在MATL

30、AB中非常重要(1)使用冒號可以輸入行向量,其格式為 ,其中a是數(shù)組的第一個元素,inc是步長,步長可正可負(fù),步長為1時可以省略。(2)使用冒號能夠從向量、矩陣和數(shù)組中選出指定元素、行和列,A(:,j) 是A矩陣的第j列,A(i,:)是A矩陣的第i行,A(j:k)是 A(j), A(j+1),.,A(k),A(:,j:k)是A(:,j), (:,j+1) ,., A(:,k)。(3)冒號與方括號連用可以刪除矩陣的行和列。 A(:,j) = ,可以刪除A矩陣的第j列。1.5 MATLAB數(shù)據(jù)的輸入與輸出 MATLAB可以通過計算機(jī)文件來保存或加載工作空間數(shù)據(jù)File 菜單的save worksp

31、ace as菜單命令打開一個標(biāo)準(zhǔn)的文件對話框來保存所有當(dāng)前工作空間數(shù)據(jù),保存為擴(kuò)展名為.mat的文件。保存變量并不會將其從工作空間中刪除。利用Import data可將保存的數(shù)據(jù)重新加載至工作空間。save命令可將當(dāng)前工作空間數(shù)據(jù)以matlab.mat為文件名存于當(dāng)前目錄下,利用load 命令可將以matlab.mat為文件名保存的數(shù)據(jù)重新加載至工作空間。save data命令可將當(dāng)前工作空間數(shù)據(jù)以data.mat為文件名存于當(dāng)前目錄下,利用load data可將所保存的數(shù)據(jù)重新加載至工作空間。save data x y z命令將當(dāng)前工作空間變量x y z存入data.mat文件中,利用loa

32、d data可將其重新加載至工作空間??捎胐elete data.mat命令將data文件從當(dāng)前目錄下刪除。1.6 MATLAB的數(shù)值運算基礎(chǔ)1.6.1 MATLAB算術(shù)運算符及常用的數(shù)學(xué)函數(shù)MATLAB提供基本的算術(shù)運算有: 加 (+)、減 (-)、乘 (*)、除 (/)、冪次方 (),范例為:5+3, 5-3, 5*3, 5/3, 53常用的數(shù)學(xué)函數(shù)abs(x) 求x的絕對值或者復(fù)數(shù)的幅值 angle(x) 四象限內(nèi)取復(fù)數(shù)的相角sqrt(x) 求x值的平方根 real(x) 復(fù)數(shù)實部imag(x) 復(fù)數(shù)虛部sign(x) 如果x 0傳回值為 1 rem(x,y) 傳回x/y的余數(shù),例如re

33、m(25,4)的值為1 exp(x) 指數(shù)函數(shù) e的x次方log(x) 以2.718282為底的對數(shù)函數(shù),即自然對數(shù) log10(x) 以10為底的對數(shù)函數(shù)1.6.1 MATLAB算術(shù)運算符及常用的數(shù)學(xué)函數(shù)要計算一角度的sine值,過程如下: angle1=pi/2; b=sin(angle1); %注意angle1為弧度,sin函數(shù)計算值需以弧度表示 angle2=90; %注意angle2為角度 b=sin(angle2*pi/180); %也可在函數(shù)內(nèi)作角度與弧度轉(zhuǎn)換 要計算一數(shù)值的asin值,并將弧度轉(zhuǎn)換為角度,過程如下: x=sqrt(2)/2; y=asin(x); y_deg=y

34、*180/pi 使用函數(shù)須注意幾點。首先函數(shù)一定出現(xiàn)在計算等式的右邊,等式左邊是代表這個函數(shù)的計算值。此外,一 個函數(shù)可以被當(dāng)做另一個函數(shù)的引數(shù)(argument)。例如:log_x=log(abs(x)其中abs和log皆為內(nèi)建函數(shù),其意思是 先計算abs(x),所得值再代入log函數(shù)。1.6.2 MATLAB的復(fù)數(shù)表示例1 復(fù)數(shù)表達(dá),及計算。(1)經(jīng)典教科書的直角坐標(biāo)表示法 z1= 3 + 4i (2)采用運算符構(gòu)成的直角坐標(biāo)表示法和極坐標(biāo)表示法 z2 = 1 + 2 * i z3=2*exp(i*pi/6) z=z1*z2/z3 例2 復(fù)數(shù)矩陣的生成及運算 A=1,3;2,4-5,8;6

35、,9*i B=1+5i,2+6i;3+8*i,4+9*i C=A*B例3 求上例復(fù)數(shù)矩陣C的實部、虛部、模和相角。 C_real=real(C) C_imag=imag(C) C_magnitude=abs(C) C_phase=angle(C)*180/pi 1.6.3 矩陣、數(shù)組及其算術(shù)運算1、數(shù)組或矩陣元素的標(biāo)識一維數(shù)組元素 的標(biāo)識、訪問與賦值 一維數(shù)組是使用方括號以及在括號內(nèi)列出以空格或逗號分割其元素的表。一維數(shù)組的元素是以數(shù)組名后圓括號內(nèi)元素在數(shù)組中位置的序號來標(biāo)識的。數(shù)組元素的訪問與賦值就是根據(jù)數(shù)組元素的標(biāo)識進(jìn)行。例1 在命令窗口輸入 x=1 2 3 4 5 6 7 回車x = 1

36、 2 3 4 5 6 7查詢x數(shù)組的第3個元素可輸入 x(3) 回車ans = 3查詢x數(shù)組的第4到最后一個元素可輸入 x(4:end) 回車ans = 4 5 6 71.6.3 矩陣、數(shù)組及其算術(shù)運算查詢x數(shù)組中小于5的元素可輸入 x(find(x a=1 2;3 4;a1=a*2;a2=a+10;a3=a1+10; A=a a1;a2 a3 回車可得 A = 1 2 2 4 3 4 6 8 11 12 12 14 13 14 16 181.6.3 矩陣、數(shù)組及其算術(shù)運算3、矩陣的操作和運算(1) 矩陣的操作flipud命令可以將矩陣a作上下翻轉(zhuǎn),將a的行按照n1的順序重新排列,a的列保持不

37、變。例如在窗口鍵入a=1 2 3;4 5 6,可得 a = 1 2 3 4 5 6 鍵入 b=flipud(a) 可得 b = 4 5 6 1 2 31.6.3 矩陣、數(shù)組及其算術(shù)運算fliplr命令可以將m列矩陣a作左右翻轉(zhuǎn),將a的列按照m1的順序重新排列,a的行保持不變。在窗口鍵入c=fliplr(a) 可得 c = 3 2 1 6 5 4rot90命令將矩陣逆時針轉(zhuǎn)90。在窗口鍵入rot90(a) 可得 ans = 3 6 2 5 1 4相關(guān)矩陣操作的函數(shù)還有 diag(a) 提取矩陣a的對角元素,返回列向量; diag(v) 以列向量v作對角元素創(chuàng)建對角矩陣; tril(a) 提取a的

38、下三角矩陣; triu(a) 提取a的上三角矩陣。1.6.3 矩陣、數(shù)組及其算術(shù)運算(2)矩陣的運算矩陣的加減運算 矩陣的加減運算的條件是兩個矩陣的行數(shù)和列數(shù)分別相同,運算的規(guī)則是矩陣相應(yīng)元素的加減運算。 在MATLAB里,維數(shù)為1*1的數(shù)組叫做標(biāo)量。標(biāo)量與數(shù)組間加減運算的規(guī)則是標(biāo)量與數(shù)組每一個元素進(jìn)行加減操作。 在窗口鍵入s=5;a=1 2 3; 4 5 6;7 8 9;s+a 回車 可得 ans = 6 7 8 9 10 11 12 13 141.6.3 矩陣、數(shù)組及其算術(shù)運算矩陣的乘法運算標(biāo)量與矩陣的乘法運算 標(biāo)量與矩陣之間的乘法運算是指該矩陣的每個元素與這個標(biāo)量分別進(jìn)行乘法運算。在窗口

39、鍵入s=5; a=1 2 3;4 5 6;7 8 9; s.*a回車可得 ans = 5 10 15 20 25 30 35 40 45 s.*a、a.*s、與a*s、s*a的運算結(jié)果都一樣。b) 數(shù)組乘法運算 數(shù)組乘法運算必須在具有相同維數(shù)的數(shù)組間進(jìn)行,其結(jié)果是數(shù)組的對應(yīng)元素間相乘的結(jié)果組成的新數(shù)組。在窗口鍵入a=1 2 3;4 5 6;7 8 9; b=2 2 2;2 2 2;2 2 2;a.*b 回車,可得ans = 2 4 6 8 10 12 14 16 18 a.*b和b.*a兩指令運算結(jié)果一樣。1.6.3 矩陣、數(shù)組及其算術(shù)運算c) 矩陣的乘法運算 兩矩陣相乘的條件是左矩陣的列數(shù)必

40、須等于右矩陣的行數(shù),矩陣乘法不滿足交換率。在窗口鍵入a=1 2 3;4 5 6;7 8 9; b=2 2 2;2 2 2;2 2 2; a*b 回車可得 ans = 12 12 12 30 30 30 48 48 48 鍵入 b*a 回車可得 ans = 24 30 36 24 30 36 24 30 36 MATLAB可以進(jìn)行叉乘運算,指令形式為c=kron(a,b),運算規(guī)則是a矩陣的每個元素依次與b矩陣的所有元素相乘,組成矩陣子塊,各個矩陣子塊共同組成新的矩陣c。在窗口鍵入a=1 2 3;4 5 6; b= 7 8 9; c=kron(a,b) 回車可得c = 7 8 9 14 16 1

41、8 21 24 27 28 32 36 35 40 45 42 48 541.6.3 矩陣、數(shù)組及其算術(shù)運算矩陣的除法運算a)矩陣與標(biāo)量間的除法運算 矩陣與標(biāo)量間除法的運算規(guī)則是標(biāo)量與數(shù)組每一個元素進(jìn)行除法運算。在窗口鍵入s=5; a=1 2 3; 4 5 6;7 8 9; s./a 回車可得ans = 5.0000 2.5000 1.6667 1.2500 1.0000 0.8333 0.7143 0.6250 0.5556鍵入 a.s,回車可得 ans = 5.0000 2.5000 1.6667 1.2500 1.0000 0.8333 0.7143 0.6250 0.5556鍵入 a.

42、/s,回車可得 ans = 0.2000 0.4000 0.6000 0.8000 1.0000 1.2000 1.4000 1.6000 1.8000 符號./和.的運算結(jié)果是一致的,不過要注意被除數(shù)與除數(shù)在兩種除法運算符中的左右位置是不同的。1.6.3 矩陣、數(shù)組及其算術(shù)運算b)數(shù)組的除法運算 數(shù)組除法的運算規(guī)則是兩數(shù)組維數(shù)必須相等,對應(yīng)的元素之間相除。數(shù)組的除法沒有左除和右除,符號./和.的運算結(jié)果是一致的,不過要注意被除數(shù)與除數(shù)在兩種除法運算符中的左右位置是不同的。在窗口鍵入a=1 2 3;4 5 6;7 8 9; b=2 2 2;2 2 2;2 2 2; a./b 回車可得ans =

43、 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000鍵入 b.a,回車可得ans = 0.5000 1.0000 1.5000 2.0000 2.5000 3.0000 3.5000 4.0000 4.5000可見指令a./b 和b.a運行結(jié)果一致。1.6.3 矩陣、數(shù)組及其算術(shù)運算c)矩陣的除法 矩陣的除法運算包括左除和右除兩種運算,其中左除:AB=A-1B,A為方陣;右除:A/B=AB-1,B為方陣。在窗口鍵入a=1 2;3 4; b=1 3 5; 2 4 6 ; c=ab回車可得c = 0 -2.0000 -4.0

44、000 0.5000 2.5000 4.5000鍵入 inv(a)*b,回車可得ans = 0 -2.0000 -4.0000 0.5000 2.5000 4.5000矩陣的除法運算實際是AX=B的求解過程。1.6.3 矩陣、數(shù)組及其算術(shù)運算乘方運算a)矩陣與標(biāo)量的乘方運算 以數(shù)組為底以標(biāo)量為指數(shù)的乘方運算。運算規(guī)則是以數(shù)組中的每個元素為底,分別與作為指數(shù)的標(biāo)量進(jìn)行乘方運算得到的一個新數(shù)組。在窗口鍵入a=1 2 3;4 5 6; a.4 回車可得ans = 1 16 81 256 625 1296以標(biāo)量為底以數(shù)組為指數(shù)的乘方運算。運算規(guī)則是以該標(biāo)量為底,用數(shù)組中的每個元素分別作為指數(shù)與該標(biāo)量進(jìn)

45、行乘方運算得到的一個新數(shù)組。在窗口鍵入a=1 2 3;4 5 6; 4.a 回車可得 ans = 4 16 64 256 1024 40961.6.3 矩陣、數(shù)組及其算術(shù)運算乘方運算b)數(shù)組的乘方運算 數(shù)組間的乘方運算只在維數(shù)相同的數(shù)組間進(jìn)行。運算規(guī)則是以前一個數(shù)組為底,后一個數(shù)組為指數(shù),其對應(yīng)的元素分別進(jìn)行指數(shù)運算得到結(jié)果。在窗口鍵入a=2 3; 5 6; b=1 2;2 3; a.b 回車可得 ans = 2 9 25 216c)矩陣的乘方運算 矩陣與標(biāo)量乘方的運算規(guī)則a為方陣,c為標(biāo)量,矩陣的乘方ac 是矩陣a的c次方。若c=2,則ac =a*a。 在窗口鍵入a=1 2;3 4; a2

46、回車可得ans = 7 10 15 22鍵入 a0.5 回車可得 ans = 0.5537 + 0.4644i 0.8070 - 0.2124i 1.2104 - 0.3186i 1.7641 + 0.1458i1.6.3 矩陣、數(shù)組及其算術(shù)運算乘方運算c)矩陣的乘方運算 說明:矩陣的乘方運算可以表示成Ax,其前提條件要求A矩陣為方陣。如果X為正整數(shù),則乘方的結(jié)果可以將A矩陣自乘x次得出。如果x為負(fù)整數(shù),則可以將A矩陣自乘x次,然后對結(jié)果進(jìn)行求逆運算就可以得出該乘方結(jié)果。如果x是一個分?jǐn)?shù),例如x=n/m,其中n和m均為整數(shù),則首先應(yīng)該將A矩陣自乘n次,然后對結(jié)果再開m次方。矩陣的開方運算相當(dāng)困

47、難,但有了數(shù)字計算機(jī),這種運算就不再顯得那么麻煩了,用戶可以利用計算機(jī)方便求出一個矩陣的方根。1.6.3 矩陣、數(shù)組及其算術(shù)運算轉(zhuǎn)置運算 對于復(fù)數(shù)元素,數(shù)組的轉(zhuǎn)置運算是非共軛的轉(zhuǎn)置,矩陣的轉(zhuǎn)置運算規(guī)則是共軛的轉(zhuǎn)置。在窗口鍵入e1 = 1.0000 + 1.0000i 2.0000 + 2.0000i 3.0000 + 3.0000i; 4.0000 + 4.0000i 5.0000 + 5.0000i 6.0000 + 6.0000i鍵入 e2=e1 回車 e2 = 1.0000 - 1.0000i 4.0000 - 4.0000i 2.0000 - 2.0000i 5.0000 - 5.00

48、00i 3.0000 - 3.0000i 6.0000 - 6.0000i鍵入 e3=e1. 回車 e3 = 1.0000 + 1.0000i 4.0000 + 4.0000i 2.0000 + 2.0000i 5.0000 + 5.0000i 3.0000 + 3.0000i 6.0000 + 6.0000i1.6.4 關(guān)系和邏輯運算關(guān)系運算1包括 小于、大于、=大于等于、= =等于、 =不等于。 關(guān)系運算規(guī)則(1)關(guān)系運算的優(yōu)先級低于算術(shù)運算,高于邏輯運算; (2)運算符 、=只比較二標(biāo)量的實部,而運算符= =、 =則同時比 較二標(biāo)量的實部與虛部。 (3)若二標(biāo)量比較,其關(guān)系成立者,運算結(jié)

49、果為邏輯真(1);否則為邏輯假(0)。 (4)若一標(biāo)量與一數(shù)組比較,則將數(shù)組與標(biāo)量的每一個元素逐個比較,其運算結(jié)果為一個與數(shù)組大小(行列數(shù))相同的數(shù)組,其元素由“0”與“1”組成。 (5)若二數(shù)組比較,數(shù)組維數(shù)相同,將二數(shù)組的每一個元素逐個比較,其運算 結(jié)果為一個與比較數(shù)組大?。ㄐ辛袛?shù))相同的數(shù)組,其元素由“0”與“1”組成。 在窗口鍵入 a=1 2 3 4 5; t1=(a3)或者 t1=a3 回車可得 t1 = 0 0 0 1 1 在窗口鍵入 e=1 4;8 3; f=2 6;5 7; ef 回車可得 ans = 0 0 1 01.6.4 關(guān)系和邏輯運算邏輯運算 邏輯操作符:& 與 | 或

50、 非 運算規(guī)則:(1)邏輯運算規(guī)定:非0元素代表邏輯真“1”;0元素代表邏輯假“0”;(2)邏輯運算中,not的優(yōu)先級最高,and與or有相同的優(yōu)先級,可用括號改變優(yōu)先權(quán);(3)若一標(biāo)量與一數(shù)組比較,將數(shù)組與標(biāo)量的每一個元素逐個比較,其運算結(jié)果為一個與數(shù)組大小(行列數(shù))相同的數(shù)組,其元素由“0”與“1”組成。在窗口鍵入 c=6; d=4 0 6; 0 8 0; d|c 回車可得ans = 1 1 1 1 1 1(4)若二數(shù)組比較,數(shù)組維數(shù)相同,將二數(shù)組對應(yīng)的每一個元素逐個比較,其運算結(jié)果為一個與比較數(shù)組大?。ㄐ辛袛?shù))相同的數(shù)組,其元素由“0”與“1”組成。 在 窗口鍵入e=1 0;8 3; f

51、=2 0;5 7; e&f 回車可得ans = 1 0 1 11.6.5 矩陣函數(shù)MATLAB定義了一些關(guān)于矩陣的函數(shù)(1)zeros(n,m)函數(shù)能夠生成元素全為0的矩陣;(2)ones(n,m)函數(shù)能夠生成元素全為1的矩陣;(3)rand(n,m)函數(shù)能夠生成均勻分布隨機(jī)矩陣,其元素數(shù)值范圍為(0.0,1.0);(4)randn(n,m)函數(shù)能夠生成元素服從零均值單位方差正態(tài)分布隨機(jī)矩陣;(5)magic(n)叫做魔方陣,能夠自動生成一種特別的n階方陣,該陣每一行、每一列或?qū)蔷€上的元素之和都相等;(6)diag()可以生成對角矩陣,在窗口鍵入y=magic(3);diag(y)回車可得a

52、ns = 8 5 2(7)triu()函數(shù)可以生成上三角矩陣,tril()函數(shù)可以生成下三角矩陣;(8)size()函數(shù)用來返回指定矩陣的行數(shù)和列數(shù),eye()函數(shù)可以生成指定行數(shù)和列數(shù)的單位矩陣。 eye()函數(shù)和size()函數(shù)常常一起使用,生成與指定矩陣同維的單位矩陣在窗口鍵入a=1 2 3;4 5 6;7 8 9; b=size(a); eye(b)回車可得ans = 1 0 0 0 1 0 0 0 11.6.6 多項式運算 求一個多項式的根(求多項式的零點)在自動控制領(lǐng)域里是經(jīng)常遇到的事。MATLAB提供了多條命令,進(jìn)行多項式運算。多項式用一個行向量表示,多項式系數(shù)降冪排列。多項式求

53、根:求多項式P(x)x42x33x24x5的根。 在窗口鍵入p=1 2 3 4 5; roots(p)回車可得ans = 0.2878 + 1.4161i 0.2878 - 1.4161i -1.2878 + 0.8579i -1.2878 - 0.8579i由根求多項式:已知多項式的根分別為1、5、8,求此根對應(yīng)的多項式 在窗口鍵入p1=poly(1,5,8) 回車可得p1 = 1 -14 53 -40,即所求多項式為: P(x)x3-14x253x-40。注意poly()函數(shù)的調(diào)用格式。所求多項式是否正確,可以用roots()函數(shù)來驗證。在窗口鍵入p=1 -14 53 -40; roots

54、(p),回車可得ans = 8.0000 5.0000 1.0000 可見,多項式的poly()與roots()函數(shù)互為逆運算。 注意也可以用poly ()函數(shù)求矩陣的特征多項式。在窗口鍵入a=3 -1;-1 3; b=poly(a),回車可得 b = 1 -6 8,即矩陣a的特征多項式為x26x8, 利用roots(b)可得矩陣a的特征值ans = 4 2, 與eig(a)結(jié)果相同。1.6.6 多項式運算求多項式在指定點處的值 在窗口鍵入p=1 2 3 4 5;polyval(p,3) 回車可得 ans =179。也可以給出自變量的取值范圍例如鍵入x=1:0.1:2;polyval(p,x)

55、回車可得對應(yīng)于x的多項式p的值。 Columns 1 through 7 15.0000 17.1561 19.6496 22.5201 25.8096 29.5625 33.8256 Columns 8 through 11 38.6481 44.0816 50.1801 57.0000多項式的加減法:規(guī)則為多項式對應(yīng)元素的加、減運算。兩個多項式的階數(shù)可以不同,但在多項式定義時應(yīng)當(dāng)補(bǔ)充0元素使其行向量元素數(shù)目相等。多項式的乘除法:例如要求x1=3x2+x+1與x2=x+1之乘積,可以在窗口鍵入 x1=3 1 1;x2=1 1;c=conv(x1,x2)回車可得c = 3 4 2 1 運算結(jié)果

56、可以用deconv()函數(shù)來驗證。在窗口鍵入s=deconv(c,x1),回車可得 s = 1 1。 可見,多項式的conv()和deconv()函數(shù)互為逆運算。1.6.6 多項式運算多項式部分分式展開 自動控制的時域分析中,常常要求像函數(shù)F(s)的反變換。這可以用分解F(s)成部分分式的方法,只需求出部分分式的待定系數(shù)就可以了。 例如已知一傳遞函數(shù) ,將其分解為部分分式,可在窗口鍵入a=1 2;b=1 4 3;z,p,k=residue(a,b),回車可得z =0.5000 p = -3 k = 0.5000 -1即得傳遞函數(shù)分解的部分分式: 。 如果在窗口鍵入z,p,k=residue(b

57、,a)回車可得z = -1 p = -2 k = 1 2,即分解的部分分式為 。根據(jù)給出的z、p、k的值,可以用同一個命令求出傳遞函數(shù)的有理多項式形式。在窗口鍵入num,den=residue(z,p,k),回車可得num = 1 4 3 den = 1 2多項式求導(dǎo)數(shù) 求多項式P(x)=x4+2x3+3x2+4x+5的導(dǎo)數(shù),在窗口鍵入a=1 2 3 4 5; a1=polyder(a) 回車可得 a1 = 4 6 6 4。1.6.7 字符運算 在MATLAB中,字符串作為字符數(shù)組用單引號引用到程序中。鍵入 c=ok MATLAB 回車可得c = ok MATLAB。鍵入whos c可得變量c

58、實際上是一個1*9字符數(shù)組,在字符數(shù)組中空格也算一個字符。 在MATLAB中,字符是以ASCII數(shù)值的格式儲存的。用戶可以使用如下命令查看變量c在MATLAB 內(nèi)部的存儲格式: 鍵入 x=double(c) 回車可得x = 111 107 32 77 65 84 76 65 66 . 變量c中的每一個元素被轉(zhuǎn)化成ASCII碼的相應(yīng)數(shù)值。還可以用char()將ASCII碼的相應(yīng)數(shù)值轉(zhuǎn)化還原成數(shù)值。在窗口鍵入char(x)回車可得ans =ok MATLAB。1.7 M文件與M函數(shù) M文件是使用MATLAB語言編寫的程序代碼文件。之所以稱為M文件,是因為這種文件都以“.m”作為文件的擴(kuò)展名。用戶可

59、以通過任何文本編輯器來生成或編輯M文件。M文件可以分為兩種類型,一種是腳本文件,另一種是函數(shù)文件。1.7.1 腳本(script)文件 在MATLAB中,實現(xiàn)某項功能的一串MATLAB命令與函數(shù)組合的M文件叫腳本文件。腳本文件既不帶輸入?yún)⒘恳膊粠л敵鰠⒘?,能在MATLAB環(huán)境下直接執(zhí)行,對工作空間的數(shù)據(jù)進(jìn)行操作,并將建立的變量及其執(zhí)行后的結(jié)果保存在MATLAB的工作空間里。腳本文件執(zhí)行后的結(jié)果既可以顯示輸出,也可以使用繪圖函數(shù)來產(chǎn)生圖形輸出結(jié)果。1.7 M文件與M函數(shù)1.7.2 M函數(shù)文件 函數(shù)文件是MATLAB語言最重要的組成部分,MATLAB提供的各種各樣的工具箱差不多都是以函數(shù)形式給出的

60、。MATLAB 的工具箱是內(nèi)容極為豐富的函數(shù)庫,可以實現(xiàn)各種各樣的功能。函數(shù)能夠接受輸入?yún)?shù)并返回輸出參數(shù)。在MATLAB中,函數(shù)名和M文件名必須相同。 函數(shù)文件的結(jié)構(gòu) 看一個MATLAB函數(shù)文件的例子。在窗口鍵入type angle.m 回車可得function p = angle(h) 函數(shù)定義行 %ANGLE Phase angle. H1行 % ANGLE(H) returns the phase angles, in radians, 函數(shù)幫助文本 % of a matrix with complex elements. % See also ABS, UNWRAP.% Copyri

溫馨提示

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

最新文檔

評論

0/150

提交評論