第三章模糊控制模糊控制的仿真詳解_第1頁
第三章模糊控制模糊控制的仿真詳解_第2頁
第三章模糊控制模糊控制的仿真詳解_第3頁
第三章模糊控制模糊控制的仿真詳解_第4頁
第三章模糊控制模糊控制的仿真詳解_第5頁
已閱讀5頁,還剩73頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章模糊控制模糊控制的仿真詳解演示文稿目前一頁\總數(shù)七十八頁\編于六點優(yōu)選第三章模糊控制模糊控制的仿真目前二頁\總數(shù)七十八頁\編于六點二.基本功能

1.MATLAB語句形式通過例題計算歸納一些MATLAB最基本的規(guī)則和語法結構》變量=表達式; 通過等于符號將表達式的值賦予變量。當鍵入回車鍵時,該語句被執(zhí)行。語句執(zhí)行之后,窗口自動顯示出語句執(zhí)行的結果。如果希望結果不被顯示,則只要在語句之后加上一個分號(;)即可。此時盡管結果沒有顯示,但它依然被賦值并在MATLAB工作空間中分配了內(nèi)存。目前三頁\總數(shù)七十八頁\編于六點2.MATLAB提供基本的算術運算:

加(+)、減(-)、乘(*)、除(/)、冪次方(^),范例為:5+3,5-3,5*3,5/3,5^3其它在計算常用的功能我們用一個算式來說明。例:要計算面積Area=,半徑r=2,則可鍵入r=2;area=pi*r^2;area=12.5664目前四頁\總數(shù)七十八頁\編于六點求(12+2*(7-4))/32的算術運算結果。(1)用鍵盤在MATLAB指令窗中輸入以下內(nèi)容>>(12+2*(7-4))/3^2

(2)在上述表達式輸入完成后,按【Enter】鍵,該指令被執(zhí)行。(3)在指令執(zhí)行后,MATLAB指令窗中將顯示以下結果。ans=2

目前五頁\總數(shù)七十八頁\編于六點我們也可以將上述指令打在同一行,以,或是;分開,例如>>r=2,area=pi*r^2

>>r=2;area=pi*r^2;請注意上述二式的差異,前者有計算值顯示,而后者則無。目前六頁\總數(shù)七十八頁\編于六點另外一個符號注解是由%起頭,也就是說在%之后的任何文字都被視為程式的注解。注解的功能是簡要的說明程式的內(nèi)容。任何可能產(chǎn)生混淆的地方都應該加注解,適量的注解可在以后想了解程式時能節(jié)省一些不必要的時間。例如:>>r=2;%鍵入半徑

>>area=pi*r^2;%計算面積目前七頁\總數(shù)七十八頁\編于六點三、變量和數(shù)值顯示格式

1、變量(1)變量名稱MATLAB對使用變量名稱的規(guī)定:變量名稱的英文大小寫是有區(qū)別的(apple,Apple,AppLe,三個變量不同)。變量的長度上限為31個字元。變量名的第一個字必須是一英文字,隨后可以摻雜英文字、數(shù)字或是底線。變量中不能包含有標點符號。目前八頁\總數(shù)七十八頁\編于六點(2)一些特殊的變量

以下列出MATLAB所定義的特別變量及其意義ans:用于結果的缺省變量名i或j:虛數(shù)單位pi:內(nèi)建的π值

nargin:函數(shù)的輸入變量個數(shù)eps:MATLAB定義的正的極小值=2.2204e-16nargout:函數(shù)的輸出變量個數(shù)inf:∞值,無窮大realmin:最小正實數(shù)realmax:最大正實數(shù)nan:無法定義一個數(shù)目,不定量目前九頁\總數(shù)七十八頁\編于六點(3)變量操作在命令窗口中,同時存儲著輸入的命令和創(chuàng)建的所有變量值,它們可以在任何需要的時候被調(diào)用。如要察看變量a的值,只需要在命令窗口中輸入變量的名稱即可:》a2、數(shù)值顯示格式任何MATLAB的語句的執(zhí)行結果都可以在屏幕上顯示,同時賦值給指定的變量,沒有指定變量時,賦值給一個特殊的變量ans,數(shù)據(jù)的顯示格式由format命令控制。format只是影響結果的顯示,不影響其計算與存儲;MATLAB總是以雙字長浮點數(shù)(雙精度)來執(zhí)行所有的運算。目前十頁\總數(shù)七十八頁\編于六點MATLAB可以將計算結果以不同的精確度的數(shù)字格式顯示,我們可以直接在指令視窗鍵入以下的各個數(shù)字顯示格式的指令,以π值為例:>>pians=3.1416>>formatlong>>pi>>formatshorte>>pians=3.1416e+000目前十一頁\總數(shù)七十八頁\編于六點如果結果為整數(shù),則顯示沒有小數(shù);如果結果不是整數(shù),則輸出形式有:目前十二頁\總數(shù)七十八頁\編于六點四、簡單的數(shù)學運算(例exp02_01.m)1、常用的數(shù)學運算符+,-,*(乘),/(左除),\(右除),^(冪)在運算式中,MATLAB通常不需要考慮空格;多條命令可以放在一行中,它們之間需要用分號隔開;逗號告訴MATLAB顯示結果,而分號則禁止結果顯示。2、常用數(shù)學函數(shù)abs,sin,cos,tan,sqrt,exp,imag,real,sign,log,log10,conj,inv等

abs——取x的絕對值,例如:x=-4;y=abs(x)y=4目前十三頁\總數(shù)七十八頁\編于六點sin——取x的正弦值cos——取x的余弦值tan——取x的正切值sqrt——對x開平方exp——取x的自然指數(shù)log——自然對數(shù)ln(x)log10——log10(x)

x+yi或x+yj——復數(shù)imag——復數(shù)的虛部real——復數(shù)的實部angle——復數(shù)的相角conj——共扼復數(shù)min(x)——向量的最小值max(x)——向量的最大值mean(x)——向量的平均值sum(x)——向量的總和sort(x)——向量的排序median(x)——每個列向量的中位數(shù)inv——矩陣的逆目前十四頁\總數(shù)七十八頁\編于六點五、MATLAB的工作空間MATLAB的工作空間包含了一組可以在命令窗口中調(diào)整(調(diào)用)的參數(shù)clear:清除工作空間中所有的變量clear變量名:清除指定的變量clc:清除MATLAB命令窗口中所有的信息quit或exit:退出工作空間目前十五頁\總數(shù)七十八頁\編于六點六、使用幫助1、help命令,在命令窗口中顯示help線上說明MATLAB的所有函數(shù)都是以邏輯群組方式進行組織的,而MATLAB的目錄結構就是以這些群組方式來編排的。helpmatfun:矩陣函數(shù)-數(shù)值線性代數(shù)helpgeneral:通用命令helpgraphics:通用圖形函數(shù)helpelfun:基本的數(shù)學函數(shù)helpelmat:基本矩陣和矩陣操作helpdatafun:數(shù)據(jù)分析和傅立葉變換函數(shù)helpops:操作符和特殊字符目前十六頁\總數(shù)七十八頁\編于六點helppolyfun:多項式和內(nèi)插函數(shù)helplang:語言結構和調(diào)試helpstrfun:字符串函數(shù)helpcontrol:控制系統(tǒng)工具箱函數(shù)2、helpwin:幫助窗口3、helpdesk:幫助桌面,瀏覽器模式4、lookfor命令:返回包含指定關鍵詞的那些項5、demo:打開示例窗口目前十七頁\總數(shù)七十八頁\編于六點七.其它功能1.用↑↓二個游標鍵可以將所下過的指令叫回來重覆使用。按下↑則前一次指令重新出現(xiàn),之后再按Enter鍵,即再執(zhí)行前一次的指令。而↓鍵的功用則是往后執(zhí)行指令。2.在鍵盤上的幾個鍵如→,←,Delete等,其功能則顯而易見,試用即知無須多加說明。目前十八頁\總數(shù)七十八頁\編于六點3.Ctrl-C(即同時按Ctrl及C二個鍵)可以用來中止執(zhí)行中的MATLAB的工作。4.命令窗口的分頁輸出

moreoff:不允許分頁moreon:允許分頁more(n):指定每頁輸出的行數(shù)回車鍵前進一行空格鍵顯示下一頁q鍵結束當前顯示目前十九頁\總數(shù)七十八頁\編于六點MATLAB的運算事實上是以陣列(array)及矩陣(matrix)方式在做運算,而這二者在MATLAB的基本運算性質不同,陣列強調(diào)元素對元素的運算,而矩陣則采用線性代數(shù)的運算方式。宣告一變數(shù)為陣列或是矩陣時,如果是要個別鍵入元素,須用中括號[]將元素置于其中。陣列為一維元素所構成,而矩陣為多維元素所組成,例如:一、簡易陣列5.2MATLAB陣列與矩陣>>x=[123]%一維1x3陣列>>x=[123;456]%二維2x3矩陣,以;區(qū)隔各行的元素>>x=[123%二維2x3矩陣,各行的元素分二行鍵入456]目前二十頁\總數(shù)七十八頁\編于六點假設要計算y=sin(x),x=0,0.2π,0.4π,...,π,即可用陣列方式運算,例如>>x=[00.2*pi0.4*pi0.6*pi0.8*pipi]%注意陣列內(nèi)也可作運算x=00.62831.25661.88502.51333.1416>>y=sin(x)y=00.58780.95110.95110.58780.0000目前二十一頁\總數(shù)七十八頁\編于六點要找出陣列的某個元素或數(shù)個元素,可參考以下的例子>>x(3)%第三個x的元素ans=1.2566>>y(5)%第五個y的元素ans=0.5878>>x(1:5)%列出第一到第五個x的元素ans=00.62831.25661.88502.5133

目前二十二頁\總數(shù)七十八頁\編于六點>>y(3:-1:1)%列出第三到第一個y的元素,3為起始值,1為終止值,-1為增量ans=0.95110.58780>>x(2:2:6)%列出第二到第六個x的元素,2為起始值,6為終止值,2為增量ans=0.62831.88503.1416>>y([4251])%列出y元素,排列元素依序為原來y陣列的4,2,5,1個ans=0.95110.58780.58780目前二十三頁\總數(shù)七十八頁\編于六點1.建立陣列

前一節(jié)提到陣列產(chǎn)生的方式須個別鍵入其元素,這方法只適用于陣列元素很少時。如果要建立的陣列的元素多達數(shù)百個,則須采用以下幾種方式>>x=(0:0.02:1)%以:區(qū)隔起始值=0、增量值=0.02、終止值=1>>x=linspace(0,1,51)%利用linspace,以區(qū)隔起始值=0終止值=1之間的元素數(shù)目=51>>x=(0:0.01:1)*pi%注意陣列外也可作運算

目前二十四頁\總數(shù)七十八頁\編于六點>>a=1:5,b=1:2:9%這二種方式更直接a=

12345

b=

13579

>>c=[ba]%可利用先前建立的陣列a及陣列b,組成新陣列c=

1357912345

>>d=[b(1:2:5)101]%由陣列b的三個元素再加上三個元素組成d=

159101

目前二十五頁\總數(shù)七十八頁\編于六點2.陣列運算以下將陣列的運算符號及其意義列出,除了加減符號外其余的陣列運算符號均須多加.

符號。陣列運算功能+加-減.*乘./左除.^次方.‘轉置目前二十六頁\總數(shù)七十八頁\編于六點>>a=1:5;a-2%從陣列a減2ans=

-10123

>>2*a-1%以2乘陣列a再減1ans=

13579

>>b=1:2:9;a+b%陣列a加陣列bans=

2581114

>>a.*b%陣列a及b中的元素與元素相乘ans=

16152845

目前二十七頁\總數(shù)七十八頁\編于六點>>a./b%陣列a及b中的元素與元素相除ans=

1.00000.666670.60000.57140.5556

>>a.^2%陣列中的各個元素作二次方ans=

1491625

>>2.^a%以2為底,以陣列中的各個元素為次方ans=

2481632

>>b.^a%以陣列b中的各個元素為底,以陣列a中的各個元素為次方ans=

19125240159049

目前二十八頁\總數(shù)七十八頁\編于六點>>b=a'%陣列b是陣列a的轉置結果b=

1

2

3

4

5目前二十九頁\總數(shù)七十八頁\編于六點3.陣列運算的特色MATLAB在許多運算皆是以陣列為對象,即是以陣列的元素為對象。因此除了“+”,“-”這二個運算外,其余的運算符號(乘、除、次方)皆須加上“.”來強調(diào)陣列之間的運算。以下幾個例子可以說明陣列運算的特色。如果a,b各代表二個不同的陣列,a與b之間的運算是元素對元素的方式,例如:a=[a1,a2,…,an]b=[b1,b2,…,bn]a.*b=[a1*b1,a2*b2,…,an*bn]a/b.=[a1/b1,a2/b2,…,an/bn]幾個例子如下:

目前三十頁\總數(shù)七十八頁\編于六點>>x=1.5;%x是純量>>y=exp(x^2);%exp(x^2)是純量運算>>y1=x/y%x/y是純量運算

>>x=1:0.1:2;%x是陣列>>y=exp(x.^2);%exp(x.^2)是陣列運算>>y1=x./y%x./y是陣列運算須注意純量與陣列運算的差別,例如目前三十一頁\總數(shù)七十八頁\編于六點>>x=2.0%x是一純量>>num=x^3-2*x^2+x-6.3;

>>den=x^2+0.05*x-3.14;

>>f=num/den>>x=1:5;%注意x是一陣列>>num=x.^3-2*x.^2+x-6.3;

>>den=x.^2+0.05*x-3.14;

>>f=num./den目前三十二頁\總數(shù)七十八頁\編于六點1、轉置:對于實矩陣用(’)符號或(.’)求轉置結果是一樣的;然而對于含復數(shù)的矩陣,則(’)將同時對復數(shù)進行共軛處理,而(.’)則只是將其排列形式進行轉置。》a=[123;456]'a=142536》a=[123;456].'a=142536》b=[1+2i2-7i]'b=1.0000-2.0000i2.0000+7.0000i》b=[1+2i2-7i].'b=1.0000+2.0000i2.0000-7.0000i二、矩陣的運算目前三十三頁\總數(shù)七十八頁\編于六點+;-;*;\和/;^;.*;.\;./;.^如:a=[12;34];b=[35;59]》c=a+bd=a-b》c=d=47-2-3813-2-5》a*b=[1323;2951]》a/b=[-0.500.50;3.50–1.50]%左除》a\b=[-1-1;23]%右除》a^3=[3754;81118]》a.*b=[310;1536]》a./b=[0.330.40;0.600.44]》a.\b=[3.002.50;1.672.25]》a.^3=[18;2764]2、四則運算與冪運算只有維數(shù)相同的矩陣才能進行加減運算。注意只有當兩個矩陣中前一個矩陣的列數(shù)和后一個矩陣的行數(shù)相同時,才可以進行乘法運算。a\b運算等效于求a*x=b的解;而a/b等效于求x*b=a的解。只有方陣才可以求冪。點運算是兩個維數(shù)相同矩陣對應元素之間的運算,在有的教材中也定義為數(shù)組運算。目前三十四頁\總數(shù)七十八頁\編于六點3、逆矩陣與行列式計算求逆:inv(A);求行列式:det(A)要求矩陣必須為方陣4、矩陣超越函數(shù)在MATLAB中exp、sqrt等命令也可以作用到矩陣上,但這種運算是定義在矩陣的單個元素上的,即分別對矩陣的每一個元素進行計算。超越數(shù)學函數(shù)可以在函數(shù)后加上m而成為矩陣的超越函數(shù),例如:expm,sqrtm。矩陣的超越函數(shù)要求運算矩陣為方陣?!穉=[123;456;235];》b=inv(a)b=-2.33330.33331.00002.66670.3333-2.0000-0.6667-0.33331.0000》det(a)ans=-3目前三十五頁\總數(shù)七十八頁\編于六點A(m,n):提取第m行,第n列元素A(:,n):提取第n列元素A(m,:):提取第m行元素A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子塊)。A(:):得到一個長列矢量,該矢量的元素按矩陣的列進行排列。矩陣擴展:如果在原矩陣中一個不存在的地址位置上設定一個數(shù)(賦值),則該矩陣會自動擴展行列數(shù),并在該位置上添加這個數(shù),而且在其他沒有指定的位置補零。消除子塊:如果將矩陣的子塊賦值為空矩陣[],則相當于消除了相應的矩陣子塊。三、矩陣的操作1、矩陣下標:MATLAB通過確認矩陣下標,可以對矩陣進行插入子塊,提取子塊和重排子塊的操作。例如:目前三十六頁\總數(shù)七十八頁\編于六點2、矩陣的大小[m,n]=size(A):返回矩陣的行列數(shù)m與nlength(A)=max(size(A)):返回行數(shù)或列數(shù)的最大值。rank(A):求矩陣的秩a=[123;345];[m,n]=size(a)m=2n=3length(a)ans=3max(size(a))ans=3rank(a)ans=2目前三十七頁\總數(shù)七十八頁\編于六點3.一些常用的特殊矩陣單位矩陣:eye(m,n);eye(m)零矩陣:zeros(m,n);zeros(m)一矩陣:ones(m,n);ones(m)對角矩陣:對角元素向量V=[a1,a2,…,an]A=diag(V)隨機矩陣:rand(m,n)產(chǎn)生一個m×n的均勻分布的隨機矩陣目前三十八頁\總數(shù)七十八頁\編于六點》eye(2,3)ans=100010》zeros(2,3)ans=000000》ones(2,3)ans=111111》V=[572];A=diag(V)A=500070002》eye(2)ans=1001》zeros(2)ans=0000》ones(2)ans=1111如果已知A為方陣,則V=diag(A)可以提取A的對角元素構成向量V。目前三十九頁\總數(shù)七十八頁\編于六點在MATLAB里,多項式由一個行向量表示,它的系數(shù)是按降序排列。例如,多項式x4-12x3+0x2+25x+116表示為:p=[1-12025116]注意:必須包括具有零系數(shù)的項。除非特別地辨認,否則MATLAB無法知道哪一項為零。四、多項式處理1.多項式的建立與表示方法目前四十頁\總數(shù)七十八頁\編于六點2.多項式的運算(1)根找出多項式的根,即多項式為零的值,可能是許多學科共同的問題。MATLAB用函數(shù)roots找出一個多項式的根,并提供其它的多項式操作工具。?r=roots(p)r=11.74732.7028-1.2251+1.4672i-1.2251-1.4672i目前四十一頁\總數(shù)七十八頁\編于六點(2)乘法函數(shù)conv支持多項式乘法(執(zhí)行兩個數(shù)組的卷積)。兩個多項式a(x)=x3+2x2+3x+4和b(x)=x3+4x2+9x+16的乘積: ?a=[1234];b=[14916]; ?c=conv(a,b) c=162050758464結果是c(x)=x6+6x5+20x4+50x3+75x2+84x+64。兩個以上的多項式的乘法需要重復使用conv。

目前四十二頁\總數(shù)七十八頁\編于六點(3)加法對多項式加法,MATLAB不提供一個直接的函數(shù)。如果兩個多項式向量大小相同,標準的數(shù)組加法有效。把多項式a(x)與上面給出的b(x)相加。 ?d=a+b d=261220結果是d(x)=2x3+6x2+12x+20。當兩個多項式階次不同,低階的多項式必須用首零填補,使其與高階多項式有同樣的階次??紤]上面多項式c和d相加: ?e=c+[000d] e=162052819684結果是e(x)=x6+6x5+20x4+52x3+81x2+96x+84。目前四十三頁\總數(shù)七十八頁\編于六點(4)除法在一些特殊情況,一個多項式需要除以另一個多項式。在MATLAB中,這由函數(shù)deconv完成。用上面的多項式b和c

?[q,r]=deconv(c,b) q=1234 r=0000000這個結果是b被c除,給出商多項式q和余數(shù)r,在現(xiàn)在情況下r是零,因為b和q的乘積恰好是c。目前四十四頁\總數(shù)七十八頁\編于六點5)導數(shù)由于一個多項式的導數(shù)表示簡單,MATLAB為多項式求導提供了函數(shù)polyder。 ?g g=162048697244 ?h=polyder(g) h=6308014413872目前四十五頁\總數(shù)七十八頁\編于六點5.3繪圖簡介MATLAB提供了豐富的繪圖功能helpgraph2d可得到所有畫二維圖形的命令helpgraph3d可得到所有畫三維圖形的命令1、基本的二維圖形繪圖命令plot(x1,y1,option1,x2,y2,option2,…)x1,y1給出的數(shù)據(jù)分別為x,y軸坐標值,option1為選項參數(shù),以逐點連折線的方式繪制1個二維圖形;同時類似地繪制第二個二維圖形等等。這是plot命令的完全格式,在實際應用中可以根據(jù)需要進行簡化。如:plot(x,y);plot(x,y,option)選項參數(shù)option定義了圖形曲線的顏色、線型及標示符號,它由一對單引號括起來。例exp02_05.m

exp02_06.m目前四十六頁\總數(shù)七十八頁\編于六點MATLAB中顏色和線型的選項目前四十七頁\總數(shù)七十八頁\編于六點2、選擇圖像figure(1);figure(2);…;figure(n)打開不同的圖形窗口,以便繪制不同的圖形。3、gridon:在所畫出的圖形坐標中加入柵格gridoff:除去圖形坐標中的柵格4、holdon:把當前圖形保持在屏幕上不變,同時允許在這個坐標內(nèi)繪制另外一個圖形。

holdoff:使新圖覆蓋舊的圖形例exp02_08.m目前四十八頁\總數(shù)七十八頁\編于六點6、文字標示text(x,y,’字符串’)在圖形的指定坐標位置(x,y)處,標示單引號括起來的字符串。gtext(‘字符串’)利用鼠標在圖形的某一位置標示字符串。5、設定軸的范圍axis([xminxmaxyminymax])例exp02_09.maxis(‘equal’):將x坐標軸和y坐標軸的單位刻度大小調(diào)整為一樣。目前四十九頁\總數(shù)七十八頁\編于六點title(‘字符串’)在所畫圖形的最上端顯示說明該圖形標題的字符串。xlabel(‘字符串’),ylabel(‘字符串’)設置x,y坐標軸的名稱。輸入特殊的文字需要用反斜杠(\)開頭。7、legend(‘字符串1’,‘字符串2’,…,‘字符串n’)在屏幕上開啟一個小視窗,然后依據(jù)繪圖命令的先后次序,用對應的字符串區(qū)分圖形上的線。例exp02_10.m目前五十頁\總數(shù)七十八頁\編于六點9、semilogx:繪制以x軸為對數(shù)坐標(以10為底),y軸為線性坐標的半對數(shù)坐標圖形。semilogy:繪制以y軸為對數(shù)坐標(以10為底),x軸為線性坐標的半對數(shù)坐標圖形。例exp02_12.m8、subplot(mnk):分割圖形顯示窗口,m:上下分割數(shù),n:左右分割數(shù),k:子圖編號例exp02_11.m10、應用型繪圖指令:用于數(shù)值統(tǒng)計分析或離散數(shù)據(jù)處理

bax(x,y);繪制y對應于x的高度條形圖hist(y,x);繪制y對應于x的個數(shù)條形圖 stairs(x,y);繪制y對應于x的梯形圖stem(x,y);繪制y對應于x的散點圖exp02_13.m目前五十一頁\總數(shù)七十八頁\編于六點11、三維繪圖指令:一般調(diào)用格式:PLOT3(X1,Y1,Z1,S1,…XN,YN,ZN,SN)其中,XN,YN,ZN為向量或矩陣,SN為可選字符串,用來指定顏色、標記符號或線形。Exp02_14.m作出Z=X2+Y2三維曲面,其中Exp02_15.m繪制函數(shù)三維視圖

目前五十二頁\總數(shù)七十八頁\編于六點一、MATLBA程序的基本設計原則1、%后面的內(nèi)容是程序的注解,要善于運用注解使程序更具可讀性。2、養(yǎng)成在主程序開頭用clear指令清除變量的習慣,以消除工作空間中其他變量對程序運行的影響。但注意在子程序中不要用clear。3、參數(shù)值要集中放在程序的開始部分,以便維護。要充分利用MATLAB工具箱提供的指令來執(zhí)行所要進行的運算,在語句行之后輸入分號使其及中間結果不在屏幕上顯示,以提高執(zhí)行速度。5.4 MATLAB程序設計目前五十三頁\總數(shù)七十八頁\編于六點4、input指令可以用來輸入一些臨時的數(shù)據(jù);而對于大量參數(shù),則通過建立一個存儲參數(shù)的子程序,在主程序中用子程序的名稱來調(diào)用。5、程序盡量模塊化,也就是采用主程序調(diào)用子程序的方法,將所有子程序合并在一起來執(zhí)行全部的操作。6、設置好MATLAB的工作路徑,以便程序運行。目前五十四頁\總數(shù)七十八頁\編于六點8、MATLAB程序的基本組成結構%說明清除命令:清除workspace中的變量和圖形(clear,close,clc)定義變量:包括全局變量的聲明及參數(shù)值的設定逐行執(zhí)行命令:指MATLAB提供的運算指令或工具箱………提供的專用命令控制循環(huán):包含for,ifthen,switch,while等語句逐行執(zhí)行命令………end繪圖命令:將運算結果繪制出來當然更復雜程序還需要調(diào)用子程序,或與simulink以及其他應用程序結合起來。目前五十五頁\總數(shù)七十八頁\編于六點進入MATLAB的Editor窗口來編輯程序在編輯環(huán)境中,文字的不同顏色顯示表明文字的不同屬性。 綠色:注解;黑色:程序主體;紅色:屬性值的設定;藍色:控制流程。在運行程序之前,必須設置好MATLAB的工作路徑,使得所要運行的程序及運行程序所需要的其他文件處在當前目錄之下,只有這樣,才可以使程序得以正常運行。否則可能導致程序無法執(zhí)行。通過路徑瀏覽器(pathbrowser)也可以進行設置二、M文件的編輯及MATLAB工作路徑的設置目前五十六頁\總數(shù)七十八頁\編于六點2、程序文件以.m格式進行存取,包含一連串的MATLAB指令和必要的注解。需要在工作空間中創(chuàng)建并獲取變量,也就是說處理的數(shù)據(jù)為命令窗口中的數(shù)據(jù),沒有輸入?yún)?shù),也不會返回參數(shù)。程序運行時只需在工作空間中鍵入其名稱即可。三、MATLAB的程序類型MATLAB的程序類型有三種,一種是在命令窗口下執(zhí)行的腳本M文件;另外一種是可以存取的M文件,也即程序文件;最后一種是函數(shù)(function)文件。1、腳本M文件在命令窗口中輸入并執(zhí)行,它所用的變量都要在工作空間中獲取,不需要輸入輸出參數(shù)的調(diào)用,退出MATLAB后就釋放了。目前五十七頁\總數(shù)七十八頁\編于六點(1)函數(shù)定義行(關鍵字function)function[out1,out2,..]=filename(in1,in2,..)(2)第一行幫助行,即H1行以(%)開頭,作為lookfor指令搜索的行3、函數(shù)文件與在命令窗口中輸入命令一樣,函數(shù)接受輸入?yún)?shù),然后執(zhí)行并輸出結果。具有標準的基本結構。目前五十八頁\總數(shù)七十八頁\編于六點步長缺省值為1,可以在正實數(shù)或負實數(shù)范圍內(nèi)任意指定。對于正數(shù),循環(huán)變量的值大于終止值時,循環(huán)結束;對于負數(shù),循環(huán)變量的值小于終止值時,循環(huán)結束。循環(huán)結構可以嵌套使用。(例exp02_18.m)

四、程序流程控制1、for循環(huán)語句基本格式for循環(huán)變量=起始值:步長:終止值循環(huán)體end目前五十九頁\總數(shù)七十八頁\編于六點2、while循環(huán)語句基本格式while表達式循環(huán)體end若表達式為真,則執(zhí)行循環(huán)體的內(nèi)容,執(zhí)行后再判斷表達式是否為真,若不為真,則跳出循環(huán)體,向下繼續(xù)執(zhí)行。例exp02_19.mWhile循環(huán)和for循環(huán)的區(qū)別:while循環(huán)結構的循環(huán)體被執(zhí)行的次數(shù)不是確定的,而for結構中循環(huán)體的執(zhí)行次數(shù)是確定的。目前六十頁\總數(shù)七十八頁\編于六點3、if,else,elseif語句(1)if邏輯表達式執(zhí)行語句end當邏輯表達式的值為真時,執(zhí)行該結構中的執(zhí)行語句,執(zhí)行完之后繼續(xù)向下進行;若為假,則跳過結構中的內(nèi)容,向下執(zhí)行。(2)if邏輯表達式執(zhí)行語句1else執(zhí)行語句2endif-else的執(zhí)行方式為:如果邏輯表達式的值為真,則執(zhí)行語句1,然后跳過語句2,向下執(zhí)行;如果為假,則執(zhí)行語句2,然后向下執(zhí)行。目前六十一頁\總數(shù)七十八頁\編于六點(3)if邏輯表達式1執(zhí)行語句1Elseif邏輯表達式2執(zhí)行語句2…end

if-elseif的執(zhí)行方式為:如果邏輯表達式1的值為真,則執(zhí)行語句1;如果為假,則判斷邏輯表達式2,如果為真,則執(zhí)行語句2,否則向下執(zhí)行。例exp02_20.m

exp02_21.m目前六十二頁\總數(shù)七十八頁\編于六點所要掌握的是MATLAB語言的基本知識,包括MATLAB窗口環(huán)境的使用;矩陣運算及多項式處理;基本的繪圖命令;程序設計入門。MATLAB的窗口環(huán)境是基礎的基礎,要求掌握語句命令的輸入、變量的使用、基本的數(shù)學函數(shù)及各種工作空間與文件管理的命令。要善于運用help命令自學。MATLAB具有強大的矩陣運算能力,要求掌握矩陣的輸入與生成,掌握矩陣的基本運算及操作,區(qū)分帶點運算與不帶點運算點的不同;掌握多項式的建立與表示方法及多項式的基本運算。MATLAB同樣具有強大的圖形處理能力,要求掌握基本的二維繪圖命令。MATLAB具有三種基本的M文件類型,要求掌握它們的區(qū)別及基本結構,熟悉程序流程控制的使用及常用的編程命令。小結目前六十三頁\總數(shù)七十八頁\編于六點模糊邏輯控制器的基本結構5.5模糊控制的MATLAB仿真目前六十四頁\總數(shù)七十八頁\編于六點(1)模糊化——將輸入的精確量轉化成模糊量,其中輸入量包括外界的參考輸入,系統(tǒng)的輸出或狀態(tài)等。具體步驟:A、設置輸入變量誤差域E={e1,e2,…,en}B、將輸入量進行尺度變換,使其變換到各自的論域范圍。C、對已經(jīng)變換到論域范圍的輸入量進行模糊處理,使原先精確的輸入量變成模糊量,并用相應的模糊集合來表示。目前六十五頁\總數(shù)七十八頁\編于六點例如:設置一個水位誤差E的論域為:E={-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6}表示水位將當前水位檢測值歸于檔內(nèi)用相應的模糊集合來表示E={NB,NS,NZ,PS,PB}語言含義:{正大,正小,不變,負小,負大}目前六十六頁\總數(shù)七十八頁\編于六點(2)知識庫,包含了具體應用領域中的知識和要求的控制目標。它通常由數(shù)據(jù)庫和模糊控制規(guī)則庫組成:A、數(shù)據(jù)庫主要包括各語言變量的隸屬度

溫馨提示

  • 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

提交評論