第三章模糊控制模糊控制的MATLAB仿真.ppt

上传人:石*** 文档编号:89934893 上传时间:2023-05-13 格式:PPT 页数:80 大小:3.39MB
返回 下载 相关 举报
第三章模糊控制模糊控制的MATLAB仿真.ppt_第1页
第1页 / 共80页
第三章模糊控制模糊控制的MATLAB仿真.ppt_第2页
第2页 / 共80页
点击查看更多>>
资源描述

《第三章模糊控制模糊控制的MATLAB仿真.ppt》由会员分享,可在线阅读,更多相关《第三章模糊控制模糊控制的MATLAB仿真.ppt(80页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、第三章模糊控制模糊控制的MATLAB仿真现在学习的是第1页,共80页一、MATLAB命令窗口v计算机安装好MATLAB之后,双击MATLAB图标启动后,产生默认的MATLAB桌面-MATLAB Desktop进入MATLAB Command Window指令视窗,它是用户键入指令的地方,也是MATLAB计算结果显示之处。功能选单一共有File,Edit,Options,Windows,Help五个主要功能。5.1 MATLAB的窗口环境现在学习的是第2页,共80页二.基本功能基本功能 v1.MATLAB语句形式通过例题计算归纳一些MATLAB最基本的规则和语法结构变量表达式;通过等于符号将表达

2、式的值赋予变量。当键入回车键时,该语句被执行。语句执行之后,窗口自动显示出语句执行的结果。如果希望结果不被显示,则只要在语句之后加上一个分号(;)即可。此时尽管结果没有显示,但它依然被赋值并在MATLAB工作空间中分配了内存。现在学习的是第3页,共80页 2.MATLAB提供基本的算术运算:加(+)、减(-)、乘(*)、除(/)、幂次方(),范例为:5+3,5-3,5*3,5/3,53 其它在计算常用的功能我们用一个算式来说明。例:要计算面积Area=,半径r=2,则可键入r=2;area=pi*r2;area=12.5664现在学习的是第4页,共80页求(12+2*(7-4)/3(12+2*

3、(7-4)/32 2的算术运算结果。(1)用键盘在MATLAB指令窗中输入以下内容(12+2*(7-4)/32(2)在上述表达式输入完成后,按【Enter】键,该指令被执行。(3)在指令执行后,MATLAB指令窗中将显示以下结果。ans=2 现在学习的是第5页,共80页我们也可以将上述指令打在同一行,以,或是;分开,例如 r=2,area=pi*r2 r=2;area=pi*r2;请注意上述二式的差异,前者有计算值显示,而后者则无。现在学习的是第6页,共80页 另外一个符号注解是由%起头,也就是说在%之后的任何文字都被视为程式的注解。注解的功能是简要的说明程式的内容。任何可能产生混淆的地方都应

4、该加注解,适量的注解可在以后想了解程式时能节省一些不必要的时间。例如:r=2;%键入半径 area=pi*r2;%计算面积 现在学习的是第7页,共80页三、变量和数值显示格式1、变量(1)变量名称MATLAB对使用变量名称的规定:1.变量名称的英文大小写是有区别的(apple,Apple,AppLe,三个变量不同)。2.变量的长度上限为 31 个字元。3.变量名的第一个字必须是一英文字,随后可以掺杂英文字、数字或是底线。变量中不能包含有标点符号。现在学习的是第8页,共80页(2)一些特殊的变量以下列出MATLAB所定义的特别变量及其意义ans:用于结果的缺省变量名 i或j:虚数单位pi:内建的

5、值 nargin:函数的输入变量个数eps:MATLAB定义的正的极小值=2.2204e-16 nargout:函数的输出变量个数inf:值,无穷大 realmin:最小正实数realmax:最大正实数 nan:无法定义一个数目,不定量现在学习的是第9页,共80页(3)变量操作v在命令窗口中,同时存储着输入的命令和创建的所有变量值,它们可以在任何需要的时候被调用。如要察看变量a的值,只需要在命令窗口中输入变量的名称即可:a2、数值显示格式v任何MATLAB的语句的执行结果都可以在屏幕上显示,同时赋值给指定的变量,没有指定变量时,赋值给一个特殊的变量ans,数据的显示格式由format命令控制。

6、vformat只是影响结果的显示,不影响其计算与存储;MATLAB总是以双字长浮点数(双精度)来执行所有的运算。现在学习的是第10页,共80页 MATLAB可以将计算结果以不同的精确度的数字格式显示,我们可以直接在指令视窗键入以下的各个数字显示格式的指令,以值为例:pi ans=3.1416 format long pi ans=3.14159265358979 format short e pi ans=3.1416e+000现在学习的是第11页,共80页如果结果为整数,则显示没有小数;如果结果不是整数,则输出形式有:现在学习的是第12页,共80页四、简单的数学运算(例exp02_01.m)

7、1、常用的数学运算符v,-,*(乘),/(左除),(右除),(幂)v在运算式中,MATLAB通常不需要考虑空格;多条命令可以放在一行中,它们之间需要用分号隔开;逗号告诉MATLAB显示结果,而分号则禁止结果显示。2、常用数学函数abs,sin,cos,tan,sqrt,exp,imag,real,sign,log,log10,conj,inv等 abs取x的绝对值,例如:x=-4;y=abs(x)y=4现在学习的是第13页,共80页sin取x的正弦值cos 取x的余弦值tan 取x的正切值sqrt 对x开平方exp 取x的自然指数log自然对数ln(x)log10log10(x)x+yi或x+

8、yj 复数imag 复数的虚部real 复数的实部angle复数的相角conj 共扼复数min(x)向量的最小值max(x)向量的最大值mean(x)向量的平均值sum(x)向量的总和sort(x)向量的排序median(x)每个列向量的中位数inv 矩阵的逆现在学习的是第14页,共80页五、MATLAB的工作空间 MATLAB的工作空间包含了一组可以在命令窗口中调整(调用)的参数vclear:清除工作空间中所有的变量vclear 变量名:清除指定的变量vclc:清除MATLAB命令窗口中所有的信息vquit 或 exit:退出工作空间现在学习的是第15页,共80页六、使用帮助1、help命令

9、,在命令窗口中显示help线上说明 MATLAB的所有函数都是以逻辑群组方式进行组织的,而MATLAB的目录结构就是以这些群组方式来编排的。vhelp matfun:矩阵函数数值线性代数vhelp general:通用命令vhelp graphics:通用图形函数vhelp elfun:基本的数学函数vhelp elmat:基本矩阵和矩阵操作vhelp datafun:数据分析和傅立叶变换函数vhelp ops:操作符和特殊字符现在学习的是第16页,共80页vhelp polyfun:多项式和内插函数vhelp lang:语言结构和调试vhelp strfun:字符串函数vhelp contr

10、ol:控制系统工具箱函数2、helpwin:帮助窗口3、helpdesk:帮助桌面,浏览器模式4、lookfor命令:返回包含指定关键词的那些项5、demo:打开示例窗口现在学习的是第17页,共80页七七.其它功能其它功能1.用二个游标键可以将所下过的指令叫回来重覆使用。按下则前一次指令重新出现,之后再按Enter键,即再执行前一次的指令。而键的功用则是往后执行指令。2.在键盘上的几个键如,Delete等等,其功能则显而易见,试用即知无须多加说明。现在学习的是第18页,共80页3.Ctrl-C(即同时按Ctrl及C二个键)可以用来中止执行中的MATLAB的工作。4.命令窗口的分页输出 more

11、 off:不允许分页 more on:允许分页 more(n):指定每页输出的行数回车键前进一行空格键显示下一页q键结束当前显示现在学习的是第19页,共80页vMATLAB的运算事实上是以阵列(array)及矩阵(matrix)方式在做运算,而这二者在MATLAB的基本运算性质不同,阵列强调元素对元素的运算,而矩阵则采用线性代数的运算方式。v宣告一变数为阵列或是矩阵时,如果是要个别键入元素,须用中括号 将元素置于其中。阵列为一维元素所构成,而矩阵为多维元素所组成,例如:一、简易阵列5.2 MATLAB阵列与矩阵 x=1 2 3%一维 1x3 阵列 x=1 2 3;4 5 6%二维 2x3 矩阵

12、,以;区隔各行的元素 x=1 2 3%二维 2x3 矩阵,各行的元素分二行键入 4 5 6现在学习的是第20页,共80页假设要计算 y=sin(x),x=0,0.2,0.4,.,,即可用阵列方式运算,例如 x=0 0.2*pi 0.4*pi 0.6*pi 0.8*pi pi%注意阵列内也可作运算 x=0 0.6283 1.2566 1.8850 2.5133 3.1416 y=sin(x)y=0 0.5878 0.9511 0.9511 0.5878 0.0000现在学习的是第21页,共80页v要找出阵列的某个元素或数个元素,可参考以下的例子 x(3)%第三个x的元素 ans=1.2566 y

13、(5)%第五个y的元素 ans=0.5878 x(1:5)%列出第一到第五个x的元素 ans=0 0.6283 1.2566 1.8850 2.5133 现在学习的是第22页,共80页 y(3:-1:1)%列出第三到第一个y的元素,3为起始值,1为终止值,-1为增量 ans=0.9511 0.5878 0 x(2:2:6)%列出第二到第六个x的元素,2为起始值,6为终止值,2为增量 ans=0.6283 1.8850 3.1416 y(4 2 5 1)%列出y元素,排列元素依序为原来y阵列的4,2,5,1个 ans=0.9511 0.5878 0.5878 0现在学习的是第23页,共80页1.

14、建立阵列建立阵列 前一节提到阵列产生的方式须个别键入其元素,这方法只适用于阵列元素很少时。如果要建立的阵列的元素多达数百个,则须采用以下几种方式 x=(0:0.02:1)%以:区隔起始值=0、增量值=0.02、终止值=1 x=linspace(0,1,51)%利用linspace,以区隔起始值=0终止值=1之间的元素数目=51 x=(0:0.01:1)*pi%注意阵列外也可作运算 现在学习的是第24页,共80页 a=1:5,b=1:2:9%这二种方式更直接 a=1 2 3 4 5 b=1 3 5 7 9 c=b a%可利用先前建立的阵列 a 及阵列 b,组成新阵列 c=1 3 5 7 9 1

15、2 3 4 5 d=b(1:2:5)1 0 1%由阵列 b 的三个元素再加上三个元素组成 d=1 5 9 1 0 1 现在学习的是第25页,共80页2.阵列运算阵列运算 以下将阵列的运算符号及其意义列出,除了加减符号外其余的阵列运算符号均须多加.符号。阵列运算功能+加-减.*乘./左除.次方.转置 现在学习的是第26页,共80页 a=1:5;a-2%从阵列a减2 ans=-1 0 1 2 3 2*a-1%以2乘阵列a再减1 ans=1 3 5 7 9 b=1:2:9;a+b%阵列a加阵列b ans=2 5 8 11 14 a.*b%阵列a及b中的元素与元素相乘 ans=1 6 15 28 45

16、 现在学习的是第27页,共80页 a./b%阵列a及b中的元素与元素相除 ans=1.0000 0.66667 0.6000 0.5714 0.5556 a.2%阵列中的各个元素作二次方 ans=1 4 9 16 25 2.a%以2为底,以阵列中的各个元素为次方 ans=2 4 8 16 32 b.a%以阵列b中的各个元素为底,以阵列a中的各个元素为次方 ans=1 9 125 2401 59049 现在学习的是第28页,共80页 b=a%阵列b是阵列a的转置结果 b=1 2 3 4 5现在学习的是第29页,共80页3.阵列运算的特色MATLAB在许多运算皆是以阵列为对象,即是以阵列的元素为对

17、象。因此除了“+”,“-”这二个运算外,其余的运算符号(乘、除、次方)皆须加上“.”来强调阵列之间的运算。以下几个例子可以说明阵列运算的特色。如果a,b各代表二个不同的阵列,a与b 之间的运算是元素对元素的方式,例如:a=a1,a2,anb=b1,b2,bna.*b=a1*b1,a2*b2,an*bna/b.=a1/b1,a2/b2,an/bn几个例子如下:现在学习的是第30页,共80页 x=1.5;%x 是纯量 y=exp(x2);%exp(x2)是纯量运算 y1=x/y%x/y 是纯量运算 x=1:0.1:2;%x 是阵列 y=exp(x.2);%exp(x.2)是阵列运算 y1=x./y

18、%x./y 是阵列运算须注意纯量与阵列运算的差别,例如现在学习的是第31页,共80页 x=2.0%x 是一纯量 num=x3-2*x2+x-6.3;den=x2+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现在学习的是第32页,共80页1、转置:对于实矩阵用()符号或(.)求转置结果是一样的;然而对于含复数的矩阵,则()将同时对复数进行共轭处理,而(.)则只是将其排列形式进行转置。a=123;456a=142536a=123;456.a=142536b=1+2i

19、2-7ib=1.0000-2.0000i2.0000+7.0000ib=1+2i2-7i.b=1.0000+2.0000i2.0000-7.0000i二、矩阵的运算现在学习的是第33页,共80页+;-;*;和/;.*;.;./;.如:a=1 2;3 4;b=3 5;5 9c=a+b d=a-bc=d=4 7 -2 -3 8 13 -2 -5a*b=13 23;29 51a/b=-0.50 0.50;3.50 1.50%左除ab=-1-1;2 3%右除a3=37 54;81 118a.*b=3 10;15 36a./b=0.33 0.40;0.60 0.44a.b=3.00 2.50;1.67

20、2.25a.3=1 8;27 642、四则运算与幂运算只有维数相同的矩阵才能进行加减运算。注意只有当两个矩阵中前一个矩阵的列数和后一个矩阵的行数相同时,才可以进行乘法运算。ab运算等效于求a*x=b的解;而a/b等效于求x*b=a的解。只有方阵才可以求幂。点运算是两个维数相同矩阵对应元素之间的运算,在有的教材中也定义为数组运算。现在学习的是第34页,共80页3、逆矩阵与行列式计算求逆:inv(A);求行列式:det(A)要求矩阵必须为方阵4、矩阵超越函数在MATLAB中exp、sqrt等命令也可以作用到矩阵上,但这种运算是定义在矩阵的单个元素上的,即分别对矩阵的每一个元素进行计算。超越数学函数

21、可以在函数后加上m而成为矩阵的超越函数,例如:expm,sqrtm。矩阵的超越函数要求运算矩阵为方阵。a=123;456;235;b=inv(a)b=-2.33330.33331.00002.66670.3333-2.0000-0.6667-0.33331.0000det(a)ans=-3现在学习的是第35页,共80页A(m,n):提取第m行,第n列元素A(:,n):提取第n列元素A(m,:):提取第m行元素A(m1:m2,n1:n2):提取第m1行到第m2行和第n1列到第n2列的所有元素(提取子块)。A(:):得到一个长列矢量,该矢量的元素按矩阵的列进行排列。矩阵扩展:如果在原矩阵中一个不存

22、在的地址位置上设定一个数(赋值),则该矩阵会自动扩展行列数,并在该位置上添加这个数,而且在其他没有指定的位置补零。消除子块:如果将矩阵的子块赋值为空矩阵,则相当于消除了相应的矩阵子块。三、矩阵的操作1、矩阵下标:MATLAB通过确认矩阵下标,可以对矩阵进行插入子块,提取子块和重排子块的操作。例如:现在学习的是第36页,共80页2、矩阵的大小m,n=size(A):返回矩阵的行列数m与nlength(A)=max(size(A):返回行数或列数的最大值。rank(A):求矩阵的秩a=123;345;m,n=size(a)m=2n=3length(a)ans=3max(size(a)ans=3ra

23、nk(a)ans=2现在学习的是第37页,共80页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)产生一个mn的均匀分布的随机矩阵现在学习的是第38页,共80页eye(2,3)ans=1 0 0 0 1 0zeros(2,3)ans=0 0 0 0 0 0ones(2,3)ans=1 1 1 1 1 1V=5 7 2;A=diag(V)A=5 0 0 0 7 0 0 0 2eye(2)ans=1 0

24、0 1zeros(2)ans=0 0 0 0ones(2)ans=1 1 1 1如果已知A为方阵,则V=diag(A)可以提取A的对角元素构成向量V。现在学习的是第39页,共80页在在MATLAB里里,多多项项式式由由一一个个行行向向量量表表示示,它它的的系系数数是是按降序排列按降序排列。例如,多项式x412x30 x225x116表示为:p=1-12 0 25 116注意:必须包括具有零系数的项。除非特别地辨认,否则MATLAB无法知道哪一项为零。四、多项式处理1.多项式的建立与表示方法现在学习的是第40页,共80页2.多项式的运算(1)根找出多项式的根,即多项式为零的值,可能是许多学科共同

25、的问题。MATLAB用函数rootsroots找出一个多项式的根,并提供其它的多项式操作工具。r=roots(p)r=11.7473 2.7028 -1.2251+1.4672i -1.2251-1.4672i现在学习的是第41页,共80页(2)乘法函数conv支持多项式乘法(执行两个数组的卷积)。两个多项式a(x)=x32x23x4和b(x)=x34x29x16的乘积:a=1234;b=14916;c=conv(a,b)c=162050758464结果是c(x)=x66x520 x450 x375x284x64。两个以上的多项式的乘法需要重复使用conv。现在学习的是第42页,共80页(3)

26、加法对多项式加法,MATLAB不提供一个直接的函数。如果两个多项式向量大小相同,标准的数组加法有效。把多项式a(x)与上面给出的b(x)相加。d=a+bd=261220结果是d(x)=2x36x212x20。当两个多项式阶次不同,低阶的多项式必须用首零填补,使其与高阶多项式有同样的阶次。考虑上面多项式c和d相加:e=c+000de=162052819684结果是e(x)=x66x520 x452x381x296x84。现在学习的是第43页,共80页(4)除法在一些特殊情况,一个多项式需要除以另一个多项式。在MATLAB中,这由函数deconv完成。用上面的多项式b和cq,r=deconv(c,

27、b)q=1234r=0000000这个结果是b被c除,给出商多项式q和余数r,在现在情况下r是零,因为b和q的乘积恰好是c。现在学习的是第44页,共80页5)导数由于一个多项式的导数表示简单,MATLAB为多项式求导提供了函数polyder。gg=162048697244h=polyder(g)h=6308014413872现在学习的是第45页,共80页5.3 绘图简介vMATLAB提供了丰富的绘图功能help graph2d可得到所有画二维图形的命令help graph3d可得到所有画三维图形的命令1、基本的二维图形绘图命令plot(x1,y1,option1,x2,y2,option2,)

28、x1,y1给出的数据分别为x,y轴坐标值,option1为选项参数,以逐点连折线的方式绘制1个二维图形;同时类似地绘制第二个二维图形等等。这是plot命令的完全格式,在实际应用中可以根据需要进行简化。如:plot(x,y);plot(x,y,option)选项参数option定义了图形曲线的颜色、线型及标示符号,它由一对单引号括起来。例例exp02_05.m exp02_06.m现在学习的是第46页,共80页MATLABMATLAB中颜色和线型的选项中颜色和线型的选项现在学习的是第47页,共80页2、选择图像figure(1);figure(2);figure(n)打开不同的图形窗口,以便绘制

29、不同的图形。3、grid on:在所画出的图形坐标中加入栅格 grid off:除去图形坐标中的栅格4、hold on:把当前图形保持在屏幕上不变,同时 允许在这个坐标内绘制另外一个图形。hold off:使新图覆盖旧的图形例exp02_08.m现在学习的是第48页,共80页6、文字标示vtext(x,y,字符串)在图形的指定坐标位置(x,y)处,标示单引号括起来的字符串。vgtext(字符串)利用鼠标在图形的某一位置标示字符串。5、设定轴的范围axis(xmin xmax ymin ymax)例exp02_09.maxis(equal):将x坐标轴和y坐标轴的单位刻度大小调整为一样。现在学习

30、的是第49页,共80页vtitle(字符串)在所画图形的最上端显示说明该图形标题的字符串。vxlabel(字符串),ylabel(字符串)设置x,y坐标轴的名称。v输入特殊的文字需要用反斜杠()开头。7、legend(字符串1,字符串2,字符串n)v在屏幕上开启一个小视窗,然后依据绘图命令的先后次序,用对应的字符串区分图形上的线。例exp02_10.m现在学习的是第50页,共80页9、semilogx:绘制以x轴为对数坐标(以10为底),y轴为线性坐标的半对数坐标图形。semilogy:绘制以y轴为对数坐标(以10为底),x轴为线性坐标的半对数坐标图形。例exp02_12.m8、subplot

31、(mnk):分割图形显示窗口,m:上下分割数,n:左右分割数,k:子图编号 例exp02_11.m10、应用型绘图指令:用于数值统计分析或离散 数据处理bax(x,y);绘制y对应于x的高度条形图 hist(y,x);绘制y对应于x的个数条形图stairs(x,y);绘制y对应于x的梯形图 stem(x,y);绘制y对应于x的散点图exp02_13.m现在学习的是第51页,共80页11、三维绘图指令:一般调用格式:PLOT3(X1,Y1,Z1,S1,XN,YN,ZN,SN)其中,XN,YN,ZN为向量或矩阵,SN为可选字符串,用来指定颜色、标记符号或线形。Exp02_14.m作出Z=X2+Y2

32、 三维曲面,其中Exp02_15.m绘制函数三维视图 现在学习的是第52页,共80页一、MATLBA程序的基本设计原则1、后面的内容是程序的注解,要善于运用注解使程序更具可读性。2、养成在主程序开头用clear指令清除变量的习惯,以消除工作空间中其他变量对程序运行的影响。但注意在子程序中不要用clear。3、参数值要集中放在程序的开始部分,以便维护。要充分利用MATLAB工具箱提供的指令来执行所要进行的运算,在语句行之后输入分号使其及中间结果不在屏幕上显示,以提高执行速度。5.4MATLAB程序设计现在学习的是第53页,共80页4、input指令可以用来输入一些临时的数据;而对于大量参数,则通

33、过建立一个存储参数的子程序,在主程序中用子程序的名称来调用。5、程序尽量模块化,也就是采用主程序调用子程序的方法,将所有子程序合并在一起来执行全部的操作。6、设置好MATLAB的工作路径,以便程序运行。现在学习的是第54页,共80页8、MATLAB程序的基本组成结构说明清除命令:清除workspace中的变量和图形(clear,close,clc)定义变量:包括全局变量的声明及参数值的设定逐行执行命令:指MATLAB提供的运算指令或工具箱 提供的专用命令控制循环 :包含for,if then,switch,while等语句 逐行执行命令 end绘图命令:将运算结果绘制出来v当然更复杂程序还需要

34、调用子程序,或与simulink以及其他应用程序结合起来。现在学习的是第55页,共80页v进入MATLAB的Editor窗口来编辑程序v在编辑环境中,文字的不同颜色显示表明文字的不同属性。绿色:注解;黑色:程序主体;红色:属性值的设定;蓝色:控制流程。v在运行程序之前,必须设置好MATLAB的工作路径,使得所要运行的程序及运行程序所需要的其他文件处在当前目录之下,只有这样,才可以使程序得以正常运行。否则可能导致程序无法执行。v通过路径浏览器(path browser)也可以进行设置二、M文件的编辑及MATLAB工作路径的设置现在学习的是第56页,共80页2、程序文件v以.m格式进行存取,包含一

35、连串的MATLAB指令和必要的注解。需要在工作空间中创建并获取变量,也就是说处理的数据为命令窗口中的数据,没有输入参数,也不会返回参数。v程序运行时只需在工作空间中键入其名称即可。三、MATLAB的程序类型MATLAB的程序类型有三种,一种是在命令窗口下执行的脚本M文件;另外一种是可以存取的M文件,也即程序文件;最后一种是函数(function)文件。1、脚本M文件在命令窗口中输入并执行,它所用的变量都要在工作空间中获取,不需要输入输出参数的调用,退出MATLAB后就释放了。现在学习的是第57页,共80页(1)函数定义行(关键字function)vfunctionout1,out2,.=fil

36、ename(in1,in2,.)(2)第一行帮助行,即H1行v以(%)开头,作为lookfor指令搜索的行 3、函数文件与在命令窗口中输入命令一样,函数接受输入参数,然后执行并输出结果。具有标准的基本结构。现在学习的是第58页,共80页v步长缺省值为1,可以在正实数或负实数范围内任意指定。对于正数,循环变量的值大于终止值时,循环结束;对于负数,循环变量的值小于终止值时,循环结束。循环结构可以嵌套使用。(例exp02_18.m)四、程序流程控制1、for循环语句基本格式for 循环变量起始值:步长:终止值 循环体 end现在学习的是第59页,共80页2、while循环语句基本格式while 表达

37、式 循环体 end若表达式为真,则执行循环体的内容,执行后再判断表达式是否为真,若不为真,则跳出循环体,向下继续执行。例exp02_19.mWhile循环和for循环的区别:while循环结构的循环体被执行的次数不是确定的,而for结构中循环体的执行次数是确定的。现在学习的是第60页,共80页3、if,else,else if 语句(1)if 逻辑表达式 执行语句 end当逻辑表达式的值为真时,执行该结构中的执行语句,执行完之后继续向下进行;若为假,则跳过结构中的内容,向下执行。(2)if 逻辑表达式 执行语句1 else 执行语句2 endif-else的执行方式为:如果逻辑表达式的值为真,

38、则执行语句1,然后跳过语句2,向下执行;如果为假,则执行语句2,然后向下执行。现在学习的是第61页,共80页(3)if 逻辑表达式1执行语句1Else if 逻辑表达式2执行语句2end if-else if的执行方式为:如果逻辑表达式1的值为真,则执行语句1;如果为假,则判断逻辑表达式2,如果为真,则执行语句2,否则向下执行。例exp02_20.mexp02_21.m现在学习的是第62页,共80页v所要掌握的是MATLAB语言的基本知识,包括MATLAB窗口环境的使用;矩阵运算及多项式处理;基本的绘图命令;程序设计入门。vMATLAB的窗口环境是基础的基础,要求掌握语句命令的输入、变量的使用

39、、基本的数学函数及各种工作空间与文件管理的命令。要善于运用help命令自学。vMATLAB具有强大的矩阵运算能力,要求掌握矩阵的输入与生成,掌握矩阵的基本运算及操作,区分带点运算与不带点运算点的不同;掌握多项式的建立与表示方法及多项式的基本运算。vMATLAB同样具有强大的图形处理能力,要求掌握基本的二维绘图命令。vMATLAB具有三种基本的M文件类型,要求掌握它们的区别及基本结构,熟悉程序流程控制的使用及常用的编程命令。小结现在学习的是第63页,共80页模糊逻辑控制器的基本结构模糊逻辑控制器的基本结构5.5 模糊控制的MATLAB仿真现在学习的是第64页,共80页(1 1)模模糊糊化化将将输

40、输入入的的精精确确量量转转化化成成模模糊糊量量,其其中中输输入入量量包包括括外界的参考输入,系统的输出或状态等。具体步骤:外界的参考输入,系统的输出或状态等。具体步骤:A A、设置输入变量误差域、设置输入变量误差域E=e1,e2,enE=e1,e2,enB B、将输入量进行尺度变换,使其变换到各自的论域范围。、将输入量进行尺度变换,使其变换到各自的论域范围。C C、对对已已经经变变换换到到论论域域范范围围的的输输入入量量进进行行模模糊糊处处理理,使使原原先先精精确确的的输入量变成模糊量,并用相应的模糊集合来表示。输入量变成模糊量,并用相应的模糊集合来表示。现在学习的是第65页,共80页例如:设

41、置一个水位误差例如:设置一个水位误差E E的论域为:的论域为:E=-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6表示水位表示水位将当前水位检测值归于档内将当前水位检测值归于档内用相应的模糊集合来表示用相应的模糊集合来表示E=NB,NS,NZ,PS,PB语言含义:语言含义:正大,正小,不变,负小,负大正大,正小,不变,负小,负大 现在学习的是第66页,共80页(2 2)知知识识库库,包包含含了了具具体体应应用用领领域域中中的的知知识识和和要要求求的的控控制目标。它通常由数据库和模糊控制规则库组成:制目标。它通常由数据库和模糊控制规则库组成:A A、数数据据库库主主要要包包括括各各

42、语语言言变变量量的的隶隶属属度度函函数数,尺尺度度变变换因子以及模糊空间的分级数等。换因子以及模糊空间的分级数等。B B、规规则则库库包包括括了了用用语语言言变变量量表表示示的的一一系系列列控控制制规规则则,它它们反映了控制专家的经验和知识。们反映了控制专家的经验和知识。现在学习的是第67页,共80页(3 3)模模糊糊推推理理模模糊糊控控制制器器的的核核心心。它它具具有有模模拟拟人人的基于模糊概念的推理能力。的基于模糊概念的推理能力。模糊控制中,模糊系统行为按专家知识,以语言规则描述,模糊控制中,模糊系统行为按专家知识,以语言规则描述,一般推理规则为:一般推理规则为:推理过程基于模糊逻辑中的蕴

43、含关系及推理规则进行推理过程基于模糊逻辑中的蕴含关系及推理规则进行现在学习的是第68页,共80页(4 4)清晰化)清晰化去模糊化去模糊化 将模糊推理得到的模糊控制量变换为实际用于控制的精将模糊推理得到的模糊控制量变换为实际用于控制的精确量。它包含以下两部分内容:确量。它包含以下两部分内容:A A、将模糊的控制量经清晰化变换变成表示在论域范、将模糊的控制量经清晰化变换变成表示在论域范围的清晰量。围的清晰量。B B、将表示在论域范围的清晰量经尺度变换变成实际、将表示在论域范围的清晰量经尺度变换变成实际的控制量。的控制量。一般采用加权平均法一般采用加权平均法现在学习的是第69页,共80页模糊控制器的

44、设计举例(一)模糊控制器的设计举例(一)exp05_28.m已知阀门开启的角度(已知阀门开启的角度()与测量的温度()与测量的温度(t)和压力)和压力(P)有关,试设计模糊控制有关,试设计模糊控制器,从而能够根据测量的角度和压力来确定阀门角度。器,从而能够根据测量的角度和压力来确定阀门角度。问题分析问题分析阀门角度阀门角度=f(t,P)很难用数学模型精确描述,在现实情况中,控制阀门很难用数学模型精确描述,在现实情况中,控制阀门开关的过程通常由有经验的操作员完成。开关的过程通常由有经验的操作员完成。因此,可以设计模糊控制器来取代。因此,可以设计模糊控制器来取代。现在学习的是第70页,共80页模糊

45、控制器的设计步骤:模糊控制器的设计步骤:建立新的模糊推理系统添加输入、输出变量给变量指定模糊变量,并设计隶属函数设计模糊推理规则建立模糊推理系统本例模糊规则有三条:IF温度“冷”AND压力“高”,THEN阀门角度增量为“正”;IF温度“热”AND压力“高”,THEN阀门角度增量为“负”;IF压力“正常”,THEN阀门角度增量为“零”。现在学习的是第71页,共80页 给变量温度的两个模糊量“冷”、“热”依次编号1、2;给变量“压力”的两个模糊量“正常”、“高”依次编号1、2;给变量“增量”的三个模糊量“正”、“负”、“零”依次编号1、2、3;根据控制要求产生规则表。rulelist=12311;

46、22111;01212exp05_28.m模糊推理关系现在学习的是第72页,共80页 模糊控制器的设计举例(二)模糊控制器的设计举例(二)用模糊控制的思想和方法,完成水位模糊用模糊控制的思想和方法,完成水位模糊PIDPID控制系统的分控制系统的分析、设计和仿真研究析、设计和仿真研究 分析:分析:将实际水位与给定水位的差值将实际水位与给定水位的差值E E及其变化率及其变化率ECEC作为输入,送给作为输入,送给给水阀的控制量给水阀的控制量U U为模糊控制器输出控制量。利用模糊控制为模糊控制器输出控制量。利用模糊控制规则在线对规则在线对PIDPID参数进行修改,构成模糊参数进行修改,构成模糊PIDP

47、ID控制器,可以满控制器,可以满足不同时刻的足不同时刻的errorerror和和ecec对对PIDPID参数自整定的要求。参数自整定的要求。EXP05-30现在学习的是第73页,共80页其模糊子集为:其模糊子集为:E,EC=NB,NM,NS,ZO,PS,PM,PBE,EC=NB,NM,NS,ZO,PS,PM,PB子集元素分别代表负大,负中,负小,零,正子集元素分别代表负大,负中,负小,零,正小,正中,正大。小,正中,正大。设计:设计:选取水位误差选取水位误差E E及其误差变化率及其误差变化率ECEC和控制量和控制量U U的论域分别为:的论域分别为:E,EC=-5,-4,-3,-2,-1,-0,

48、1,2,3,4,5E,EC=-5,-4,-3,-2,-1,-0,1,2,3,4,5现在学习的是第74页,共80页假设各参数均服从正态分布,根据各模糊子集的隶属度赋值表和各参假设各参数均服从正态分布,根据各模糊子集的隶属度赋值表和各参数模糊控制模型,应用模糊合成推理设计数模糊控制模型,应用模糊合成推理设计PID参数的模糊矩阵表,查参数的模糊矩阵表,查出修正参数带入公式计算:出修正参数带入公式计算:k kp p=k=kp p+e+ei i,ec,eci i p pk ki i=k=ki i+e+ei i,ec,eci i i ik kd d=k=kd d+e+ei i,ec,eci i d d在在

49、线线运运行行过过程程中中,控控制制系系统统通通过过对对模模糊糊逻逻辑辑规规则则的的结结果果处处理理、查查表表和和运运算,完成对算,完成对PIDPID参数的校正。工作流程如图所示。参数的校正。工作流程如图所示。现在学习的是第75页,共80页现在学习的是第76页,共80页依据操作者的控制经验,建立水位模糊控制系统的依据操作者的控制经验,建立水位模糊控制系统的PIDPID参数模糊控制参数模糊控制规则如表。规则如表。控制规则:控制规则:如果如果E和和EC都为零,都为零,KP=ZO,保持现状保持现状如果如果E和和EC发生变化,发生变化,KP 的响应取决于的响应取决于E和和EC的符号和大小的符号和大小现在学习的是第77页,共80页现在学习的是第78页,共80页现在学习的是第79页,共80页实际控制对象水位的传递函数实际控制对象水位的传递函数选取水位误差选取水位误差E E的基本论域为的基本论域为 3 3 3 3 仿真结论:仿真结论:采样时间为采样时间为1ms1ms,采用模糊,采用模糊PIDPID控制进行阶跃响应,在第控制进行阶跃响应,在第300300个采个采样时间控制器加样时间控制器加1.01.0的干扰,响应结果如图。的干扰,响应结果如图。EXP05-30现在学习的是第80页,共80页

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 大学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com