matlab计算模糊控制表

matlab计算模糊控制表
matlab计算模糊控制表

Matlab计算模糊控制表

实现程序如下:

clc; %清空命令窗口

clear; %清空工作空间

e=[1,0.8,0.7,0.4,0.1,0,0,0,0,0,0,0,0;

0.2,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0;

0,0.1,0.3,0.7,1,0.7,0.2,0,0,0,0,0,0;

0,0,0,0,0.1,0.6,1,0,0,0,0,0,0;

0,0,0,0,0,0,1,0.6,0.1,0,0,0,0;

0,0,0,0,0,0,0.2,0.7,1,0.7,0.3,0.1,0;

0,0,0,0,0,0,0,0,0.2,0.7,1,0.7,0.3;

0,0,0,0,0,0,0,0,0.1,0.4,0.7,0.8,1] %误差的隶属度函数表,8*13的矩阵

eb=[1,0.7,0.3,0,0,0,0,0,0,0,0,0,0;

0.3,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0;

0,0,0.3,0.7,1,0.7,0.3,0,0,0,0,0,0;

0,0,0,0,0.3,0.7,1,0.7,0.3,0,0,0,0;

0,0,0,0,0,0,0.3,0.7,1,0.7,0.3,0,0;

0,0,0,0,0,0,0,0,0.3,0.7,1,0.7,0.3;

0,0,0,0,0,0,0,0,0,0,0.3,0.7,1] %误差变化率的隶属度函数表,7*13的矩阵;

u=[1,0.7,0.3,0,0,0,0,0,0,0,0,0,0;

0.3,0.7,1,0.7,0.3,0,0,0,0,0,0,0,0;

0,0,0.3,0.7,1,0.7,0.3,0,0,0,0,0,0;

0,0,0,0,0.3,0.7,1,0.7,0.3,0,0,0,0;

0,0,0,0,0,0,0.3,0.7,1,0.7,0.3,0,0;

0,0,0,0,0,0,0,0,0.3,0.7,1,0.7,0.3;

0,0,0,0,0,0,0,0,0,0,0.3,0.7,1] %输出控制量u,7*13的矩阵;rulelist=[1,1,1,1,2,4,4;

1,1,1,1,2,4,4;

2,2,2,2,4,5,5;

2,2,3,4,5,6,6;

2,2,3,4,5,6,6;

3,3,4,6,6,6,6;

4,4,6,7,7,7,7;

4,4,6,7,7,7,7] %控制规则表,为8*7=56条规则;for ey=1:13 % 输入变量e的13个取值:-6——6;

for eby=1:13 %输入变量eb的13个取值:-6——6;

for ex=1:8 % 输入变量e的8个语言变量NB----PB;

for ebx=1:7 % 输入变量eb的7个语言变量NB---PB;

arule=rulelist(ex,ebx); %取一条规则;

C=u(arule,:);%取这条规则的C的隶属度;代表取一行

A=e(ex,:);%取这条规则的A的隶属度;代表取一行for i=1:13;

for j=1:13;

if (A(i)>C(1,j));

Ra(i,j)= C(1,j);

else

Ra(i,j)=A(i);

end

end

end% 算A—C的蕴含关系;

AP=zeros(1,13);

AP(1,ey)=e(ex,ey);

for i=1:13;

for j=1:13;

if (AP(j)>Ra(j,i));

GDA(j,i)= Ra(j,i);

else

GDA(j,i)=AP(j);

end

end

end%求合成运算开始的取小;

for i=1:13;

max=GDA(1,i);

for j=1:13;

if (max

max= GDA(j,i);

end

end

CPA(i)=max;

end % 合成运算取大结束;CPA算出来了;

arule=rulelist(ex,ebx); %取一条规则;

C=u(arule,:);%取这条规则的C的隶属度;代表取一行B=eb(ebx,:);%取这条规则的A的隶属度;代表取一行for i=1:13;

for j=1:13;

if (B(i)>C(1,j));

Rb(i,j)= C(1,j);

else

Rb(i,j)=B(i);

end

end

end% 算B—C的蕴含关系;

BP=zeros(1,13);

BP(1,eby)=eb(ebx,eby);

for i=1:13;

for j=1:13;

if (BP(j)>Rb(j,i));

GDB(j,i)= Rb(j,i);

else

GDB(j,i)=BP(j);

end

end

end%求合成运算开始的取小;

for i=1:13;

max=GDB(1,i);

for j=1:13;

if (max

max= GDB(j,i);

end

end

CPB(i)=max;

end; % 合成运算取大结束;CPB算出来了;

for i=1:13

if(CPA(i)>CPB(i))

CP(i)=CPB(i);

else

CP(i)=CPA(i);

end

end % 第一个CP1计算结束;将来C是56*13的矩阵;CB((ex-1)*7+ebx,:)=CP;

end

end

for i=1:13;

max=CB(1,i);

for j=1:56;

if(max

max=CB(j,i);

end

end

U(i)=max;

end %56个CP整理结束;

sumFZ=0;

sumFM=0;

for i=1:13;

sumFZ=sumFZ+(i-7)*U(i);

sumFM=sumFM+U(i);

end

core=sumFZ/sumFM;

UB(ey,eby)=core; % 一个控制表中的元素算出来了

end

end

UB=round(UB*100)/100;%保留两位

display(UB);

程序运行结果如下:

程序结果分析:

综合MATLAB程序运算出来的结果和智能控制理论与技术(孙增圻)

第二版上的结果,完全一致,证明程序运算结果正确!

基于模糊控制的速度跟踪控制问题(C语言以及MATLAB仿真实现)

基于模糊控制的速度控制 ——地面智能移动车辆速度控制系统问题描述 利用模糊控制的方法解决速度跟踪问题,即已知期望速度(desire speed),控制油门(throttle output)和刹车(brake output)来跟踪该速度。已知输入:车速和发动机转速(值可观测)。欲控制刹车和油门电压(同一时刻只有一个量起作用)。 算法思想 模糊控制器是一语言控制器,使得操作人员易于使用自然语言进行人机对话。模糊控制器是一种容易控制、掌握的较理想的非线性控制器,具有较佳的适应性及强健性(Robustness)、较佳的容错性(Fault Tolerance)。利用控制法则来描述系统变量间的关系。不用数值而用语言式的模糊变量来描述系统,模糊控制器不必对被控制对象建立完整的数学模式。 Figure 1模糊控制器的结构图 模糊控制的优点: (1)模糊控制是一种基于规则的控制,它直接采用语言型控制规则,出发点是现场操作人员的控制经验或相关专家的知识,在设计中不需要建立被控对象的精确的数学模型,因而使得控制机理和策略易于接受与理解,设计简单,便于应用。 (2)由工业过程的定性认识出发,比较容易建立语言控制规则,因而模糊控制对那些数学模型难以获取,动态特性不易掌握或变化非常显著的对象非常适用。 (3)基于模型的控制算法及系统设计方法,由于出发点和性能指标的不同,容易导致较大差异;但一个系统语言控制规则却具有相对的独立性,利用这些控制规律间的模糊连接,容易找到折中的选择,使控制效果优于常规控制器。 (4)模糊控制是基于启发性的知识及语言决策规则设计的,这有利于模拟人工控制的过程和方法,增强控制系统的适应能力,使之具有一定的智能水平。 简化系统设计的复杂性,特别适用于非线性、时变、模型不完全的系统上。 模糊控制的缺点

(完整版)matlab模糊控制工具箱的使用

matlab模糊控制工具箱的使用 本学期选修了周川老师的智能控制及应用这门课程,大三时候曾上过周老师的英文版的控制工程基础这门课程,比较喜欢周老师上课的风格,智能控制这门课也收获不小,模糊控制是课程中讲到的第一个智能控制算法。 模糊不是真的模糊,模糊是为了精确。模糊控制中涉及到一个隶属度的概念,通常我们认为一个事物属于一个概念与否是确定的,比如数字电路的0与1,但是实际情况或者人们的思维习惯却不是这样的。比如规定18到30岁为青年,那么还差一天到18岁的人算不算青年呢?照规定看不算,但是如果我们加入概率的概念,比如说这个人90%属于青年人,可能更符合人们的思维习惯。 L.A.Zadeh在其《不相容原理》所述:“随着系统的复杂程度不断提高,人们对其精确而有意义地描述的能力不断的降低,以致在达到某一个阈值之后,系统的精确性和复杂性之间呈现出几乎是相互完全排斥的性质”。我们通常所用的控制算法一般是建立在模型比较确定的情况下,而模糊控制不依赖于对象的模型就可以进行控制决策,而且对系统参数变化具有较强的适应性。 对于模糊控制的原理,我不是很清楚,也没有这个心情去搞清楚,感觉知道大概怎么用就可以了。Matlab中集成了模糊控制工具箱,可以使用图像界面进行模糊控制器的设计,极大的简化了设计过程。下面介绍利用模糊工具箱进行控制系统设计的过程。 在matlab的主窗口中输入fuzzy即可调出模糊工具箱界面,退出界面的时候会提示保存,保存格式为fis,如果我们将文件保存为njust.fis,那么下次使用这个文件的时候在主窗口中输入fuzzy njust即可。 模糊控制器的建立过程如下:(1)设定误差E、误差变化率EC和控制量U的论域为,一般为[-6 6]。(2)设定E、EC、U的模糊集。一般可设为{NB、NM、NS、ZO、PS、PM、PB}。(3)设定隶属度函数。有高斯型隶属度函数、三角型隶属度函数等。(4)设定模糊控制规则。常用的模糊控制规则如图1所示,当然可以根据特定的控制对象和要求进行相应的调整。

实验一--模糊控制器的MATLAB仿真

实验一 模糊控制器的MATLAB 仿真 一、实验目的 本实验要求利用MATLAB/SIMULINK 与FUZZYTOOLBOX 对给定的二阶动态系统,确定模糊控制器的结构,输入和输出语言变量、语言值及隶属函数,模糊控制规则;比较其与常规控制器的控制效果;研究改变模糊控制器参数时,系统响应的变化情况;掌握用 MATLAB 实现模糊控制系统仿真的方法。 实验时数:3学时。 二、实验设备:计算机系统、Matlab 仿真软件 三、实验原理 模糊控制器它包含有模糊化接口、规则库、模糊推理、清晰化接口等部分,输人变量是过程实测变量与系统设定值之差值。输出变量是系统的实时控制修正变量。模糊控制的核心部分是包含语言规则的规则库和模糊推理。模糊推理就是一种模糊变换,它将输入变量模糊集变换为输出变量的模糊集,实现论域的转换。工程上为了便于微机实现,通常采用“或”运算处理这种较为简单的推理方法。Mamdani 推理方法是一种广泛采用的方法。它包含三个过程:隶属度聚集、规则激活和输出总合。模糊控制器的体系结构如图1所示。 图1 模糊控制器的体系结构 四、实验步骤 (1)对循环流化床锅炉床温,对象模型为 ()()1140130120 ++s s 采用simulink 图库,实现常规PID 和模糊自整定PID 。 (2)确定模糊语言变量及其论域:模糊自整定PID 为2输入3输出的模糊控制器。该模糊控制器是以|e|和|ec|为输入语言变量,Kp 、Ki 、Kd 为输出语言变量,其各语言变量的论域如下:

误差绝对值:e={0,3,6,10}; 误差变化率绝对值:ec={0,2,4,6}; 输出Kp:Up={0,0.5,1.0,1.5}; 输出Ki:Ui={0,0.002,0.004,0.006}; 输出Kd:Ud={0,3,6,9}。 (3)语言变量值域的选取:输入语言变量|e|和|ec|的值域取值“大”(B)、“中”(M)、“小”(s)和“零”(Z) 4种;输出语言变量Kp、Ki、Kd的值域取值为“很大”(VB)、“大”(B)、“中”(M)、“小”(s) 4种。 (4)规则的制定:根据PID参数整定原则及运行经验,可列出输出变量Kp、Ki、Kd 的控制规则表。 (5)推理方法的确定 隐含采用“mamdani”方法:max-min; 推理方法,即“min”方法; 去模糊方法:面积中心法; 选择隶属函数的形式:三角型。

基于matlab的模糊控制器的设计与仿真

基于MATLAB的模糊控制器的设计与仿真 摘要:本文对模糊控制器进行了主要介绍。提出了一种模糊控制器的设计与仿真的实现方法,该方法利用MA TLB模糊控制工具箱中模糊控制器的控制规则和隶属度函数,建立模型,并进行模糊控制器设计与仿真。 关键词:模糊控制,隶属度函数,仿真,MA TLAB 1 引言 模糊控制是一种特别适用于模拟专家对数学模型未知的较复杂系统的控制,是一种对模型要求不高但又有良好控制效果的控制新策略。与经典控制和现代控制相比,模糊控制器的主要优点是它不需要建立精确的数学模型。因此,对一些无法建立数学模型或难以建立精确数学模型的被控对象,采用模糊控制方法,往往能获得较满意的控制效果。 模糊控制器的设计比一般的经典控制器如PID控制器要复杂,但如果借助MATLAB则系统动态特性良好并有较高的稳态控制精度,可提高模糊控制器的设计效率。本文在MATLAB环境下针对某个控制环节对模糊控制系统进行了设计与仿真。 2 模糊控制器简介 模糊控制器是一种以模糊集合论,模糊语言变量以及模糊推理为数学基础的新型计算机控制方法。显然,模糊控制的基础是模糊数学,模糊控制的实现手段是计算机。本章着重介绍模糊控制的基本思想,模糊控制的基本原理,模糊控制器的基本设计原理和模糊控制系统的性能分析。 随着科学技术的飞速发展,在那些复杂的,多因素影响的严重非线性、不确定性、多变性的大系统中,传统的控制理论和控制方法越来越显示出局限性。长期以来,人们期望以人类思维的控制方案为基础,创造出一种能反映人类经验的控制过程知识,并可以达到控制目的,能够利用某种形式表现出来。而且这种形式既能够取代那种精密、反复、有错误倾向的模型建造过程,又能避免精密的估计模型方程中各种方程的过程。同时还很容易被实现的,简单而灵活的控制方式。于是模糊控制理论极其技术应运而生。 3 模糊控制的特点 模糊控制是以模仿人类人工控制特点而提出的,虽然带有一定的模糊性和主观性,但往往是简单易行,而且是行之有效的。模糊控制的任务正是要用计算机来模拟这种人的思维和决策方式,对这些复杂的生产过程进行控制和操作。所以,模糊控制有以下特点: 1)模糊控制的计算方法虽然是运用模糊集理论进行的模糊算法,但最后得到的控制规律是确定

基于MATLAB的模糊控制系统设计

实验一基于MATLAB的模糊控制系统设计 1.1实验内容 (1)基于MATLAB图形模糊推理系统设计,小费模糊推理系统; (2)飞机下降速度模糊推理系统设计; (3)水箱液位模糊控制系统设计及仿真运行。 1.2实验步骤 1小费模糊推理系统设计 (1)在MATLAB的命令窗口输入fuzzy命令,打开模糊逻辑工具箱的图形用户界面窗口,新建一个Madmdani模糊推理系统。 (2)增加一个输入变量,将输入变量命名为service、food,输出变量为tip,这样建立了一个两输入单输出模糊推理系统框架。 (3)设计模糊化模块:双击变量图标打开Membership Fgunction Editor 窗口,分别将两个输入变量的论域均设为[0,10],输出论域为[0,30]。 通过增加隶属度函数来进行模糊空间划分。 输入变量service划分为三个模糊集:poor、good和excellent,隶属度函数均为高斯函数,参数分别为[1.5 0]、[1,5 5]和[1.5 10]; 输入变量food划分为两个模糊集:rancid和delicious,隶属度函数均为梯形函数,参数分别为[0 0 1 3]和[7 9 10 10]; 输出变量tip划分为三个模糊集:cheap、average和generous,隶属度函数均为三角形函数,参数分别为[0 5 10]、[10 15 20]和[20 25 30]。

(4)设置模糊规则:打开Rule Editor窗口,通过选择添加三条模糊规则: ①if (service is poor) or (food is rancid) then (tip is cheap) ②if (service is good) then (tip is average) ③if (service is excellent) or (food is delicious) then (tip is generous) 三条规则的权重均为 1.

模糊控制系统及其MATLAB实现

模糊控制系统及其MATLAB实现 1. 模糊控制的相关理论和概念 1.1 模糊控制的发展 模糊控制理论是在美国加州伯克利大学的L.A.Zadeh教授于1965 年建立的模 糊集合论的数学基础上发展起来的。之后的几年间Zadeh又提出了模糊算法、模糊 决策、模糊排序、语言变量和模糊IF-THEN规则等理论,为模糊理论的发展奠定了 基础。 1975年,Mamdani和Assilian创立了模糊控制器的基本框架,并用于控制蒸 汽机。 1978年,Holmblad和Ostergaard为整个工业过程开发出了第一个模糊控制器——模糊水泥窑控制器。 20世纪80年代,模糊控制开始在工业中得到比较广泛的应用,日本仙台地铁 模糊控制系统的成功应用引起了模糊领域的一场巨变。到20世纪90年代初,市场 上已经出现了大量的模糊消费产品。 近30 年来, 因其不依赖于控制对象的数学模型、鲁棒性好、简单实用等优点, 模糊控制已广泛地应用到图像识别、语言处理、自动控制、故障诊断、信息并且渗透到社会科学和检索、地震研究、环境预测、楼宇自动化等学科和领域, 自然科学许多分支中去, 在理论和实际运用上都取得了引人注目的成果。 1.2 模糊控制的一些相关概念 用隶属度法来定义论域U中的集合A,引入了集合A的0-1隶属度函数, 用,()x表示,它满足: A xA,1, ,x(),,AxA,0,

用0-1之间的数来表示x属于集合A的程度,集合A等价与它的隶属度函 数,()x A 模糊系统是一种基于知识或基于规则的系统。它的核心就是由所谓的IF-THEN 规则所组成的知识库。一个模糊的IF-THEN规则就是一个用连续隶属度函数对所描述的某些句子所做的IF-THEN形式的陈述。例如: 如果一辆汽车的速度快,则施加给油门的力较小。 这里的“快”和“较小”分别用隶属度函数加以描述。模糊系统就是通过组合IF-THEN规则构成的。 构造一个模糊系统的出发点就是要得到一组来自于专家或基于该领域知识的模糊IF-THEN规则,然后将这些规则组合到单一系统中。不同的模糊系统可采用不用的组合原则。 用隶属度函数表征一个模糊描述后,实质上就将模糊描述的模糊消除了。 模糊控制系统设计的关键在于模糊控制器的设计。模糊控制器的设计主要有三个部分: (1) 输入量的模糊化 所谓模糊化(Fuzzification) 就是先将某个输入测量量的测量值作标准化处理,把该输入测量量的变化范围映射到相应论域中,再将论域中的各输入数据以相应的模糊语言值的形式表示,并构成模糊集合。这样就把输入的测量量转换为用 隶属度函数表示的某一模糊语言变量。 (2) 模糊逻辑推理 根据事先已定制好的一组模糊条件语句构成模糊规则库,运用模糊数学理论对 模糊控制规则进行推理计算,从而根据模糊控制规则对输入的一系列条件进行综合评估,以得到一个定性的用语言表示的量,即模糊输出量。完成这部分功能的过程就是模糊逻辑推理过程。

基于MATLAB的模糊控制洗衣机的设与仿真(谷风软件)

基于MATLAB的模糊控制洗衣机的设计与 仿真 卫瑶瑶,王胜红 (南京农业大学工学院,210031) 摘要:根据模糊控制的原理对传统洗衣机进行改造,设计了模糊控制系统。通过MA TLAB仿真,采用取最大隶属度法得到清晰化结果,所得结果与理论计算结果一致。 关键词:模糊控制;洗衣机;MA TLAB Design and Simulation of Fuzzy Control System of Washing Machine Based on MATLAB Wei yaoyao, Wang Shenghong (College of Engineering,Nanjing Agricultural University,210031) Abstract: This paper designed a fuzzy control system for washing machine based on the theory of fuzzy control. This paper conducted the simulation of MATLAB, and took maximum membership degree method to get the results of clarity. Finally, it’s proved that the simulation results is the same with theory calculation. Keywords: fuzzy control; washing machine; MATLAB 自动控制从最早的开环控制起步,然后是反馈控制、最优控制、随机控制,再到自适应控制、自学习控制、自组织控制,一直发展到自动控制的最新阶段——智能控制。智能控制的几个重要分支有:专家系统、模糊控制、神经网络控制等。作为人类思维外壳的自然语言,本身就带有模糊性,这是计算机所不能理解的。模糊控制是以模糊集合理论和模糊逻辑推理为基础,把专家用自然语言表述的知识和控制经验,通过模糊理论转换成数学函数,再用计算机进行处理。传统控制方法对一个系统进行控制时,首先要建立控制系统的数学模型,即描述系统内部物理量(或变量)之间关系的数学表达式,必须得知道系统模型的结构、阶次、参数等。然而在工程实践中人们发现,有些复杂的控制系统,虽然不能建立起数学模型,无法用传统控制方法进行控制,但是凭借丰富的实际操作经验,技术工人却能够通过相应操作得到满意的控制效果【1】。 模糊控制之所以被人们广泛接受,是因为其有以下优点:(1)模糊控制器的设计不依赖于被控对象的精确数学模型;(2)模糊控制易于被操作人员接受;(3)便于用计算机软件实现;(4)鲁棒性和适应性好。 1 洗衣机模糊控制系统的原理 传统洗衣机从控制角度看,实际上是一台按事先设定好的参数进行顺序控制的机器,它不能根据情况和条件的变化来改变参数。而模糊逻辑控制的智能洗衣机,它能够完成除开启电源、放取衣物之外的全部功能,智能洗衣机的核心是单片机控制板,它具有检测和控制

matlab计算模糊控制表

Matlab计算模糊控制表 实现程序如下: clc; %清空命令窗口 clear; %清空工作空间 e=[1,,,,,0,0,0,0,0,0,0,0; ,,1,,,0,0,0,0,0,0,0,0; 0,,,,1,,,0,0,0,0,0,0; 0,0,0,0,,,1,0,0,0,0,0,0; 0,0,0,0,0,0,1,,,0,0,0,0; 0,0,0,0,0,0,,,1,,,,0; 0,0,0,0,0,0,0,0,,,1,,; | 0,0,0,0,0,0,0,0,,,,,1] %误差的隶属度函数表,8*13的矩阵 eb=[1,,,0,0,0,0,0,0,0,0,0,0; ,,1,,,0,0,0,0,0,0,0,0; 0,0,,,1,,,0,0,0,0,0,0; 0,0,0,0,,,1,,,0,0,0,0; 0,0,0,0,0,0,,,1,,,0,0; 0,0,0,0,0,0,0,0,,,1,,; 0,0,0,0,0,0,0,0,0,0,,,1] %误差变化率的隶属度函数表,7*13的矩阵; u=[1,,,0,0,0,0,0,0,0,0,0,0;

,,1,,,0,0,0,0,0,0,0,0; 0,0,,,1,,,0,0,0,0,0,0; ^ 0,0,0,0,,,1,,,0,0,0,0; 0,0,0,0,0,0,,,1,,,0,0; 0,0,0,0,0,0,0,0,,,1,,; 0,0,0,0,0,0,0,0,0,0,,,1] %输出控制量u,7*13的矩阵; rulelist=[1,1,1,1,2,4,4; 1,1,1,1,2,4,4; 2,2,2,2,4,5,5; 2,2,3,4,5,6,6; 2,2,3,4,5,6,6; 3,3,4,6,6,6,6; 4,4,6,7,7,7,7; ) 4,4,6,7,7,7,7] %控制规则表,为8*7=56条规则;for ey=1:13 % 输入变量e的13个取值:-6——6; for eby=1:13 %输入变量eb的13个取值:-6——6; for ex=1:8 % 输入变量e的8个语言变量NB----PB; for ebx=1:7 % 输入变量eb的7个语言变量NB---PB; arule=rulelist(ex,ebx); %取一条规则;

水箱液位matlab模糊控制例程sltank详解

一问题描述 水位控制系统是由水箱(Tank),进水管、出水管和控制阀门等构成。在进水管上,安装有一液压阀门,控制它的位置,可以控制流入水箱的流量。出水管道的面积(Out pipe crossection) 保持常数,因此,流出出水管的流量主要与水箱的水位和水压有关。系统具有明显的非线性特性。 我们的目的是构建一个模糊闭环控制系统。其控制目的是通过调整控制阀门的开度,达到控制水箱水位的目的,并使其能够快速跟随所设定的水位(给定输入)。 除控制对象外,控制系统应包含有水位检测装置,控制器(常规PID 控制器或模糊控制器)及执行机构。

二控制系统动态结构图 流速计算依据为简化伯努利方程或托里拆利定律,二者结论一致。其中托里拆利定律内容为:忽略粘滞性,任何液体止点从小孔中流出的速度与它从h高度处自由落下的速度相等。 Level flow out 动态模型中主要用到的计算关系式如下: 液位=容积/底面积level=tank volume/area 流量=流速*出水口面积 流速=(2*g*level)^0.5

被控对象水箱模型 搭建按照上述动态结构图进行,实际设计的水箱模型如下: 封装后 执行机构: VALVE

三水位控制系统模型 四模型使用方法 启动matlab,命令行输入sltank,既可打开水位模糊控制仿真模型。设置const大于等于0,系统工作于PID控制模式 设置const小于0,系统工作于模糊控制模式

模糊控制时液位输入输出关系(双击Comparison示波器) 液位动画

PID控制时液位的输入输出关系 比较两种控制模式下液位曲线可以发现PID控制有超调,这一点在液位动画中也有体现。 修改模型参数 PID参数的调整可以直接双击PID Controller模块设置,这里着重介绍模糊控制器参数的修改。用到的主要命令如下:

4步学会使用matlab模糊控制工具箱

有关错误解决办法 MATLAB功能强大,很多同学用其做控制算法的仿真 但是其中的fuzzy logic controller刚开始用常常容易出错 常见报错: 1、MinMax blocks do not accept 'boolean' signals. The input signal(s) of block 'mkkzq1/Subsystem/Fuzzy Logic Controller with Ruleviewer/Fuzzy Logic Controller/FIS Wizard/Defuzzification1/Max (COA)' must be one of the MATLAB 'uint8', 'uint16', 'uint32', 'int8', 'int16', 'int32', 'single', or 'double' data types 2、An error occurred while propagating data type 'boolean' from block 'mkkzq1/Subsystem/Fuzzy Logic Controller with Ruleviewer/Fuzzy Logic Controller/FIS Wizard/Defuzzification1/Zero Strength (COA)', output port 1。 以下是解决方案: 1、fis编辑器(MATLAB的command window中键入fuzzy打开)中,建立好规则后,file-export-to workspace

2、对于7.0版本,simulink模型窗口菜单中, Simulation-Configuration Parameters-Implement logic signals as boolean data前面默认的勾选去掉 3.而对于6.5及以前版本,则是在SIMULATION -SIMULATION PARAMETERS-ADVANCED中将boolean logic signals选为off,强烈推荐用这个 用FIS(Mamdani)设计完模糊控制器之后,连接到控制系统中进行仿真,每次总出现这两个错误: 1)Block error Max(coa): MinMax blocks do not accept'boolean'signals. 2)block error Zero strength(coa):An error occurred while propagating data type'boolean'from block'....',outport 1 解决方案: 在simulink parameter中,找到advance选项卡,把第一二个选项设为off。

基于MATLAB的温度模糊控制系统的设计

智能控制》课程论文 基于MATLAB的温度模糊控制系统的设计 成绩:任课教师:田志波班级:测控09-2 作者:胡 兵上交时间:2012.11.05 一、温度模糊控制 在工业生产过程中,温度控制是重要环节,控制精度直接影响系统的运行和产品质量。在传统的温度控制方法中,一般采取双向可控硅装置,并结合简单控制算法(如PID算法),使温度控制实现自动调节。但由于温度控制具有升温单向性、大惯性、大滞后等特点,很难用数学方法建立精确的模型,因此用传统的控制理论和方法很难达到好的控制效果。鉴于此,本文拟以模糊控制为基础的温度智能控制系统,采用人工智能中的模糊控制技术,用 模糊控制器代替传统的PID控制器,以闭环控制方式实现对温度的自动控制。 二、方案设计 利用MATLA的模糊控制箱及Simulink内含的功能元件,建立温度箱温度模糊控制器及其系统的模型。 1. 建立模糊控制器 采用温度偏差,即实际测量温度与给定温度之差e及偏差变化率ed作为模糊控制器的输 入变量,输出p为“PW波(脉冲宽度调制)”控制发热电阻的功率,来调节温度箱内温度的升降,形成典型的双输入单输出二维模糊控制器。

运用MATLA中的FIS编辑器,建立温度箱的Mamdan型模糊控制器,如图1所示。温度偏差e、温度偏差变化率ed和输出变量IZ的语言变量E, Ed, P都选择为{NB, NM NS Z, PS, PM PB},其中P和N分别表示正与负,B, M s分别表示大、中、小,z表示0。 图1模糊控制器模型 2. 建立控制决策及隶属函数 模糊控制决策及解模糊方法采用系统默认值,即极大极小合成运算与重心法解模糊。由模糊控制决策公式可求得输出变量的模糊集合为P =(E X Ed ) X R 本文都采用三角隶属函数,各变量的隶属函数如图2所示。其中,图2(a)为E和Ed,隶属 函数图,E和Ed的量化论域为[-6 , 6];图2(b)为P隶属函数图,EQ的量化论域为[-6 , 6]。不同的系统,其模糊集的隶属函数是不同的,要根据实际情况和实践经验而定。

matlab模糊控制实现

模糊控制作业 一介绍 模糊控制是指基于模糊逻辑描述一个过程的控制算法,是以模糊集合论、模糊语言变量及模糊逻辑推理为基础的,基于被控系统的物理特性,模拟人的思维方式和人的控制经验来实现的一种计算机智能控制。模糊控制器主要嵌有操作人员的经验和直觉知识,是模糊语言形式的控制方法,不需要预先知道被控对象结构、参数,不需要建立被控对象的精确数学模型,并能克服非线性因素、大惯性因素的影响,对调节对象的参数变化不敏感,对对象时变及纯滞后有一定的适应性,即具有较强的鲁棒性。模糊控制器的设计参数容易选择调整。模糊控制系统如图1-1所示 图1-1 模糊控制系统框图 二本作业介绍 1、选定模糊控制器的输入输出变量,并进行量程转换 输入语言变量选为实际浓度与给定值之间的偏差(纸浆浓度偏差)e及纸浆浓度偏差变化率ec,输出语言变量选为阀门开度增量u。首先确定e、ec和u 的基本论域分别为[-1.2%~1.2%]、[-0.6%~0.6%]和[-12~12],选定e、u的模糊集合的论域为[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],ec的模糊集合的论域为[-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7] 2、确定模糊控制器的结构 根据系统输入变量个数可知,应采用采用双输入单输出模糊控制器。(如图2所示)模糊控制器主要包含三个功能环节:用于输入信号处理的模糊量化和模糊化环节,模糊控制算法功能单元,以及用于输出解模糊化的模糊判决环节。

e d/dt 图2 双输入单输出模糊控制器 3、确定各变量的模糊语言取值及相应的隶属函数,即进行模糊化 模糊化是将模糊控制器输入量的确定值转换为相应模糊语言变量值的过程,此相应语言变量均由对应的隶属度函数来定义。 对纸浆浓度偏差e 、纸浆浓度偏差变化率ec 、阀门开度的增量u 进行模糊化,分别用模糊语言变量X 、Y 、Z 进行表示,语言值集合均为{负大,负中,负小,零,正小,正中,正大},用英文缩写进行表示分别为: X={NBe,NMe,NSe,ZOe,PSe,PMe,PBe} Y={ NBec,NMec,NSec,ZOec,PSec,PMec,PBec } Z={ NBu,NMu,NSu,ZOu,PSu,PMu,PBu } 模糊化包括两个任务:第一个任务是进行论域变换,过程参数的实际范围称为基本论域,可以通过变换系数(量化因子)实现由基本论域到量化论域的变换;第二个任务是求得输入对应于语言变量的隶属度。取三角形隶属函数,并取为均非均匀间隔。 a.任务一:求量化因子 e 、ec 和u 的基本论域分别为[-1.2%~1.2%]、[-0.6%~0.6%]和[-12~12],量化论域分别为[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],[-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6],[-7,-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6,7] 。 纸浆浓度偏差e 的量化因子Ke=6/0.012=500,纸浆浓度偏差变化率ec 的量化因子Kec=6/0.006=1000,通过量化因子即可实现由基本论域到量化论域的变换。 b.任务二:取隶属度函数 选用三角形隶属度函数,如图所示: 图2-1 纸浆浓度偏差e 的隶属度函数 二维 模糊 控制器

模糊控制查询表的MATLAB实现

模糊控制查询表的MATLAB 实现 叶高文(厦门海洋职业技术学院,福建厦门361012) MATLAB realization of Fuzzy Control Query Table 在运用模糊控制技术进行工业控制时,为了减少在线计算量,节省内存,提高PLC 等控制器的运行效率,通常根据隶属度函数和模糊控制规则表离线计算对应的模糊控制表,并将该表置于PLC 等控制器中,供实时控制时使用。在实时控制过程中,根据模糊量化后的偏差值e 和偏差变化率ec 直接查询控制表以获得模糊控制输出量,再转换为精确输出控制量。在实际的控制过程中由于微分作用的效果不是很明显,故很多实际情况中只采用PI 控制。本文论述的对象是常用PLC 的模糊PI 控制。不是PLC 的系统,可将积分时间转换为积分系数。 1模糊PI 控制模型说明 本文提供一个实际工业控制的模糊查询表的MATLAB 实 现过程,模糊PI 模型如图1。 图1模糊PI 控制器模型 如图1,模糊控制器的输入量采用实际被控制量与给定量的偏差e 和偏差变化率ec ,参数整定机构采用增量型调整原理,输出为比例系数增量ΔK P 和积分时间增量ΔTi ,再经式K P = K P0+ΔK P 和式T I =T I0+ΔTi 计算得到PI 控制器的比例系数KP 和积分时间值TI 。 2模型输入输出模糊控制规则表 2.1定义输入输出变量的隶属度矢量表 一般情况下,输入量偏差e 和偏差变化率△e 以及输出变量ΔKP 和ΔTi 的离散论域都设定为13个量化等级邀-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6妖。为方便MATLAB 编程,对相关的变量选择进行一些改变。原先的输入变量偏差e 和偏差变化率ec 的量化等级邀-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6妖改写为邀1,2,3,4,5,6,7,8,9,10,11,12,13妖。而输出变量ΔKP 和ΔTi 得量化等 级保持为邀-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6妖。 输入变量偏差e 和偏差变化率ec 和输出变量ΔKP 、ΔTi 的模糊语言值均为邀NB ,NM ,NS ,ZO ,PS ,PM ,PB妖。为了编程方便,将语言值用数字表示为邀1,2,3,4,5,6,7妖,与模糊语言值相对应,比如:模糊语言值NB 的模糊数字值为1,其他类似。根据以上的规定,产生用数字语言值表示输入变量x1及x2的隶属度矢量表,见表1所示。其中,变量x1表示模糊控制器的偏差输入e ,变量x2表示模糊控制器的偏差输入ec ;f1(i )、f2(j )表示第一输入x1和第二输入x2的隶属度,而i 、j 表示语言变量数字值,即为1,2,3,4…7。 表1用数字语言值表示输入变量x1及x2的隶属度矢量表 2.2模糊控制规则表 该控制系统为一实际工业控制模型,其用数字语言值表示的比例系数增量ΔKP 和积分时间ΔTI 模糊控制规则表如表2和表3所示。 表2 用数字语言值表示的ΔKP 模糊控制规则 摘 要 通过建立一个工业自动化控制中经常使用的模糊PI 控制器模型,详细论述了运用MATLAB 语言编写模糊控制查询表的方法,该控制表可以表格形式存放于计算机,从而大大提高了如PLC 等内存小的工业控制器的运行效率,也可实现在线推理控制。 关键词:模糊控制查询表,MATLAB ,PI 控制,在线推理 Abstract Through the establishmengt of Fuzzy-PI controller model which is applied in the industrial automation control,This pa-per describes in detail the way how to get a fuzzy -control-query table by the MATLAB programming.This cotrol-table may be stored in the compute with the form of a table,Which can improe greatly the operational efficiency,Such as PLC controller,etc.whose memory is very little,and on-line reasoning can also be realized. Keywords :fuzzy control query table,MATLAB,PI control,on-line reasoning 模糊控制查询表的MATLAB 实现 64

matlab下模糊控制器设计步骤

下面将根据模糊控制器设计步骤,一步步利用Matlab工具箱设计模糊控制器。 Matlab模糊控制工具箱为模糊控制器的设计提供了一种非常便捷的途径,通过它我们不需要进行复杂的模糊化、模糊推理及反模糊化运算,只需要设定相应参数,就可以很快得到我们所需要的控制器,而且修改也非常方便。 首先我们在Matlab的命令窗口(command window)中输入fuzzy,回车就会出来这样一个窗口。 下面我们都是在这样一个窗口中进行模糊控制器的设计。 1.确定模糊控制器结构:即根据具体的系统确定输入、输出量。

这里我们可以选取标准的二维控制结构,即输入为误差e和误差变化ec,输出为控制量u。注意这里的变量还都是精确量。相应的模糊量为E,EC和U,我们可以选择增加输入(Add Variable)来实现双入单出控制结构。 2.输入输出变量的模糊化:即把输入输出的精确量转化为对应语言变量的模糊集合。 首先我们要确定描述输入输出变量语言值的模糊子集,如{NB,NM,NS,ZO,PS,PM,PB},并设置输入输出变量的论域,例如我们可以设置误差E(此时为模糊量)、误差变化EC、控制量U的论域均为{-3,-2,-1,0,1,2,3};然后我们为模糊语言变量选取相应的隶属度函数。

在模糊控制工具箱中,我们在Member Function Edit中即可完成这些步骤。首先我们打开Member Function Edit窗口. 然后分别对输入输出变量定义论域范围,添加隶属函数,以E为例,设置论域范围为[-3 3],添加隶属函数的个数为7.

然后根据设计要求分别对这些隶属函数进行修改,包括对应的语言变量,隶属函数类型。

基于matlab的洗衣机模糊控制器的设计及仿真

基于matlab的洗衣机模糊控制器的设计及仿真

————————————————————————————————作者:————————————————————————————————日期: ?

基于ma tla b的洗衣机模糊控制器的设计及仿真 以洗衣机洗涤时间的模糊控制系统设计为例,其控制原理是根据衣物上污泥和油脂的程度,调节洗涤时间,该控制是一个开环的模糊决策过程,模糊控制按以下步骤进行: 1. 确定模糊控制器的结构 选用两输入单输出的模糊控制器。控制器的输入为衣物的污泥和油脂,输出 为洗涤时间。 2. 定义输入、输出的模糊集 将污泥分为3个模糊集:SD (污泥少),MD (污泥中),L D(污泥多),取 值为[0,100];将油脂分为3个模糊集:NG (油脂少),MG (油脂中),LG (油脂多),取值为[0,100];将洗涤时间分为5个模糊集:VS (很短),S(短),M(中等),L(长),V L(很长),取值为[0,60]。 3. 定义输入、输出隶属函数 选用如下三角形隶属函数可实现污泥的模糊化。 ? 采用Ma tlab进行仿真,污泥隶属函数仿真结果如图1所示。 选用如下三角形隶属函数实现油脂的模糊化,如图2所示。 ?? ?? ? ??≤<-=?? ?≤<-≤≤=≤≤-==100 5050/)50()(1005050/)100(50050/)(50050/)50()(x x x x x x x x x x x LD MD SD μμμμ污泥 ?? ?? ? ??≤≤-=?? ?≤<-≤≤=≤≤-==100 5050/)50()(1005050/)100(50050/)(50050/)50()(y y y y y y y y y y y LG MG NG μμμμ油脂

模糊控制器的matlab设计步骤

模糊PID控制器设计和仿真步骤: 第一步:各变量隶属度函数的确定 1、用于PID 参数调整的模糊控制器采用二输入三输出的形式。该控制器是以误差E 和误 差变化率EC 作为输入,PID 控制器的三个参数P、I、D 的修正△KP、△KI、△KD 作为输出,如图1; 2、取输入E 和EC 和输出△KP、△KI、△KD 模糊子集为{NB,NM,NS,ZO,PS,PM,PB}, 其论域为[-6,6],量化等级为{-6,-5,-4,-3,-2,-1,0,1,2,3,4,5,6};如图2 3、在模糊逻辑工具箱的隶属度函数编辑器中,选择输入量E,EC隶属函数为高斯型 (gaussmf),输出△KP、△KI、△KD的隶属函数为三角形(trimf),如图2和3。 图1 图2

图3第二步:根据图4规则建立模糊规则表,如图5: 图4 图5

第三步:设置参数:与方式(And method)为min;或方式(Or method)为max;推理(Implication)为min;合成(Aggregation)为max;去模糊(Defuzzification)为重心平均法(centroid)。第四步:保存该FIS文件,取名为FuzzyPID.fis 第五步:在MA TLAB的M文件编辑器里建立一个名为FuzzyPID.m的文件,其内容为:martrix=readfis(‘Fuzzypid.fis’),并运行。 第六步:打开SIMULINK,新建一个Model,选择一个Subsystem,在其中编辑模块,如图6,并设置模糊化因子KE=KEC=0.01,解模糊因子KP=0.5,KI=KD=0.01,并在Fuzzy Logic Controller模块的Parameters中输入readfis('FuzzyPID.fis'): 图6 第七步:返回到新建的Model中,按照如图7所示建立模糊PID控制器,其中,PID初始值为KP0=20,KI0=1.35,KD0=3.7,传递函数为: 图7 第八步:保存为FuzzyPID.mdl并运行。 第九步:运行结果与初始PID控制器的结果比较,如图8和9: 图8图9

matlab模糊控制

Matlab在自动控制方面的应用及 模糊控制器的设计 摘要:目的设计一种模糊自整定PID参数的智能控制器,消除异步电机转速冲击。方法根据异步电机的调速特点,提出和设计一种模糊控制算法,基于MATLAB编制仿真程序,嵌入到PID控制器中,进行了仿真对比试验。结果对模糊自整定PID参数方法进行的分析和仿真结果表明,该模糊PID控制器能迅速消除系统余差,改善普通控制器的性能;既具有PID控制器高精度的优点,又具有模糊控制器快速、适应性强的特点。结论该模糊控制器是一种智能控制器,应用到异步电机转速控制系统中,使系统取得良好的响应;并能有效地减少系统超调量。 关键词:模糊控制;PID 控制;自整定;超调量;MATLAB 前言 模糊控制近年在水质控制、船舶自动驾驶、锅炉控制、航天飞机模拟姿态控制、地铁列车的实时控制、起重机的自动运营、电梯控制、核反应堆控制、汽车传动、模糊逻辑硬件、模糊记忆器件和模糊计算机等方面的广泛应用[ 1 ] 。为了使模糊控制理论继续向工程化方向发展和推广,仍必须解决许多理论问题。模糊控制系统的稳定性分析至今还没完全解决[ 2 ] 。但是,实践证明只要能准确地模仿人类的操作经验,便不会出现不稳定的现象。随着模糊集和模糊逻辑理论的不断发展,模糊控制技术必将为工业过程控制中用常规方法难以解决或解决不好的控制问题开辟崭新的途径。特别值得强调的是,未来模糊系统与控制的一个重要发展方向是自适应模糊控制方法的研究[ 3 ] 。常规PID 控制方法主要是针对有确切模型的线性过程,其PID 参数一经确定后无法随着对象的变化而在线调整。而实际控制系统存在着非线性、时变、干扰等特性,随着环境的变化,对象的参数甚至结构都会发生变化,用原先整定好的PID参数,很难达到理想的

洗衣机模糊控制matlab仿真

洗衣机模糊控制仿真 1.模糊控制背景 1980年,Sugeno 开创了日本的首次模糊应用——控制一家富士电子水净化厂。1983年他又开始研究模糊机器人。 随着模糊控制技术的不断发展,模糊控制逐渐被应用到日用家电产品的控制,例如电饭锅﹑照相机﹑吸尘器﹑洗衣机等。 2.仿真目的 本次仿真的主要目的是设计一个比较合理的洗衣机模糊控制器,它能够根据被洗涤衣物的污泥多少和油脂多少,综合得到洗涤时间,从而达到最佳的洗涤效果。 3.仿真方法 本次仿真借助matlab 中集成的模糊控制工具箱,使用图形界面进行模糊控制器的设计。最后随意给定几组输入,得到输出并作出简单分析。 4.模糊控制器的设计 模糊控制器理论设计方法 ①选择合适的模糊控制器类型; ②确定输入输出变量的实际论域; ③确定e ,e ?,u ?的模糊集个数及各模糊集的隶属度函数; ④输出隶属度函数选为单点,可使解模糊简单; ⑤设计模糊控制规则集; ⑥选择模糊推理方法; ⑦解模糊方法。 实际设计过程 ①模糊控制器类型:选用两输入单输出模糊控制器,控制器输入为衣物的污泥和油脂,输出为洗涤时间。 ②确定输入输出变量的实际论域:输入为Mud(污泥)和Grease (油脂),设置Range=[0 100](输入变化范围为[0,100]);输出为Time(洗涤时间),Range=[0 60](输出变化范围为[0,60])。 对应matlab 中模糊控制模块: ③确定模糊集个数及各模糊集的隶属度函数:将污泥分为3个模糊集:SD (污泥少)MD (污泥中)LD(污泥多);将油脂分为三个模糊集:NG (油脂少)MG (油脂中)LG (油脂多);将洗涤时间非为5个模糊集:VS (很短)S (短)M (中等)L (长)VL (很长)。 输入﹑输出隶属度函数都定为三角形隶属函数。结合④输出隶属度函数选为单点,可使解模糊简单;定义污泥隶属函数如下 50)50()(x x SD -=μ 0≤x ≤50 50x 0≤x ≤50 50 )100(x - 50<x ≤100

相关文档
最新文档