模糊控制程序实例
- 格式:docx
- 大小:102.55 KB
- 文档页数:13
模糊控制应用实例模糊控制是一种基于模糊逻辑的控制方法,它能够处理模糊的输入和输出,使得控制系统具有更好的鲁棒性和适应性。
下面将介绍一个模糊控制的应用实例。
某工厂的生产线上有一台机器人,它需要根据生产线上的物品进行分类和分拣。
由于生产线上的物品形状、颜色、大小等特征存在一定的模糊性,传统的控制方法很难实现准确的分类和分拣。
因此,工厂决定采用模糊控制方法来解决这个问题。
首先,需要对机器人的控制系统进行建模。
假设机器人的控制系统包括三个输入变量和一个输出变量。
其中,三个输入变量分别为物品的大小、颜色和形状,输出变量为机器人的动作,包括分类和分拣两种动作。
接下来,需要确定输入变量和输出变量的模糊集合和模糊规则。
假设物品的大小、颜色和形状分别属于三个模糊集合:小、中、大;红、绿、蓝;圆、方、三角。
输出变量也分别属于两个模糊集合:分类、分拣。
根据这些模糊集合,可以确定一些模糊规则,例如:如果物品大小为小且颜色为红且形状为圆,则机器人动作为分类;如果物品大小为中且颜色为绿且形状为方,则机器人动作为分拣;如果物品大小为大且颜色为蓝且形状为三角,则机器人动作为分类。
最后,需要进行模糊推理和模糊控制。
当机器人接收到一个物品时,它会根据物品的大小、颜色和形状,将它们映射到对应的模糊集合中。
然后,根据模糊规则进行模糊推理,得到机器人的动作。
最后,根据机器人的动作,控制机器人进行分类或分拣。
通过模糊控制方法,机器人可以更准确地分类和分拣物品,提高生产效率和质量。
同时,模糊控制方法还具有较好的鲁棒性和适应性,能够应对物品特征的变化和噪声的干扰。
总之,模糊控制是一种有效的控制方法,它能够处理模糊的输入和输出,使得控制系统具有更好的鲁棒性和适应性。
在工业生产、交通运输、医疗健康等领域都有广泛的应用。
5.2.2 .6 模糊控制器设计实例1 、单输入模糊控制器的设计【例 5.12 】已知某汽温控制系统结构如图 5.10 所示,采用喷水减温进行控制。
设计单输入模糊控制器,观察定值扰动和内部扰动的控制效果。
图 5.10 单回路模糊控制系统按表 5-2 确定模糊变量 E 、 U 的隶属函数,按表 5-3 确定模糊控制规则,选择温度偏差 e 、控制量 u 的实际论域:,则可得到该系统的单输入模糊控制的仿真程序如 FC_SI_main.m 所示,仿真结果如图 5.11 所示。
设温度偏差 e 、控制量 u 的实际论域:,选择 e 、 u 的等级量论域为量化因子。
选择模糊词集为 { NB,NS,ZO,PS,PB } ,根据人的控制经验,确定等级量 E , U 的隶属函数曲线如图 5-8 所示。
根据隶属函数曲线可以得到模糊变量 E 、 U 的赋值表如表 5-3 所示。
图5-8 E ,U 的隶属函数曲线表 5-3 模糊变量 E 、 U 的赋值表( μ )-3 -2 -1 0 1 2 3 等级量μE 、 UPB 0 0 0 0 0 0.5 1 PS 0 0 0 0 1 0.5 0 ZO 0 0 0.5 1 0.5 0 0 NS 0 0.5 1 0 0 0 0 NB 1 0.5 0 0 0 0 0依据人手动控制的一般经验,可以总结出一些控制规则,例如:若误差 E 为 O ,说明温度接近希望值,喷水阀保持不动;若误差 E 为正,说明温度低于希望值,应该减少喷水;若误差 E 为负,说明温度高于希望值,应该增加喷水。
若采用数学符号描述,可总结如下模糊控制规则:若 E 负大,则 U 正大;若 E 负小,则 U 正小;若 E 为零,则 U 为零;若 E 正小,则 U 负小;若 E 正大,则 U 负大。
写成模糊推理句 :if E =NB then U =PBif E =NS then U =PSif E=ZO then U=ZOif E =PS then U =NSif E =PB then U =NB由上述的控制规则可得到模糊控制规则表,如表 5-4 所示。
模糊控制在matlab中的实例模糊控制(模糊逻辑控制)是一种基于模糊数学理论的控制方法,它可以用于控制系统的稳定性、精度和响应速度等方面的优化。
在MATLAB 中,可以使用模糊逻辑工具箱(FLUS)来应用模糊控制。
以下是一个简单的实例,展示了如何使用 MATLAB 中的模糊逻辑工具箱来对温度控制系统进行控制:首先,我们需要创建一个温度控制系统,该系统将使用模糊控制来控制传感器的读数。
假设我们有四个传感器,分别为温度传感器、湿度传感器、压力和传感器,每个传感器读数为实数。
```matlab% 创建模型T = [120 100 80 50]; % 温度控制器输出R1 = [1.2 0.8 0.4 0.2]; % 湿度控制器输出R2 = [0.9 0.1 0.3 0.5]; % 压力控制器输出R3 = [1.4 0.6 0.2 0.1]; % 传感器误差P1 = [125 125 125 125]; % 温度控制器输入P2 = [100 100 90 80]; % 湿度控制器输入P3 = [85 85 80 75]; % 压力控制器输入F1 = [0.3 0.2 0.1 0.1]; % 温度控制器输出F2 = [0.4 0.3 0.2 0.1]; % 湿度控制器输出F3 = [0.5 0.4 0.3 0.1]; % 压力控制器输出y1 = [100 85 75 60]; % 实际温度y2 = [120 95 80 70]; % 实际湿度y3 = [135 110 90 80]; % 实际压力% 创建模糊控制器go1 = @(t,u,v) if t > 100 then ((1-v)*F1 + v*R1 +(1+v)*R2)/(1-v)*y1 else 0;go2 = @(t,u,v) if t < 50 then ((1-v)*F3 + v*R1 +(1+v)*R2)/(1-v)*y2 else 0;go3 = @(t,u,v) if t == 0 then ((1-v)*F1 + v*R1 +(1+v)*R2)/(1-v)*y3 else 0;% 创建模糊控制器的优化器var = [0 0 0 0];go1(0,:,:) = var;matlab.模糊控制.优化器.LevenbergMarquardt(var,go1);% 运行模糊控制器[t,u,v] = ode45(go1,[0 1],[120 100 80 50],y1);% 输出结果disp(["实际温度:" num2str(t)]);disp(["实际湿度:" num2str(u)]);disp(["实际压力:" num2str(v)]);```在这个例子中,我们使用 MATLAB 中的 ode45 工具箱来拟合温度控制器和湿度控制器的输出响应函数。
模糊控制算法实例解析(含代码)
首先来看一个实例,控制进水阀S1和出水阀S2,使水箱水位保持在目标水位O处。
按照日常操作经验,有以下规则:
1、若当前水位高于目标水位,则向外排水,差值越大,排水越快;
2、若当前水位低于目标水位,则向内注水,差值越大,注水越快;
3、若当前水位和目标水位相差很小,则保持排水速度和注水速度相等。
下面来设计一个模糊控制器
1、选择观测量和控制量
一般选择偏差e,即目标水位和当前水位的差值作为观察量,选取阀门开度u为控制量。
2、输入量和输出量的模糊化
将偏差e划分为5个模糊集,负大(NB)、负小(NS)、零(ZO)、正小(PS)、正大(PB),e为负表示当前水位低于目标水位,e 为正表示当前水位高于目标水位。
设定e的取值范围为[-3,3],隶属度函数如下。
偏差e对应的模糊表如下:隶属度
变化等级-3 -2
-1
1
2
3模糊集
PB 0 0 0 0 0 0.5
1PS 0
0 0.5 1 0.5 0ZO
0 0.5 1 0.5 0
0NS
0 0.5 1 0.5 0
0NB
0.5 0 0 0 0 0。
模糊控制应用实例1. 引言模糊控制是一种基于模糊逻辑的控制方法,它能够处理不确定性和模糊性问题。
本文将介绍模糊控制的应用实例,包括模糊控制在机器人导航、温度控制和交通信号灯控制等方面的应用。
2. 模糊控制在机器人导航中的应用2.1 模糊控制器设计在机器人导航中,模糊控制可以用于控制机器人的运动路径。
首先,需要设计一个模糊控制器,该控制器包括输入和输出变量以及一组模糊规则。
输入变量可以是机器人与障碍物的距离、机器人当前的角度等。
输出变量通常是机器人的速度和转向角度。
2.2 模糊控制器实现在机器人导航中,可以使用传感器来获取机器人与障碍物的距离和机器人当前的角度。
这些信息可以作为输入变量输入到模糊控制器中。
模糊控制器根据一组模糊规则来计算机器人的速度和转向角度,然后将其作为输出变量输出给机器人的控制系统。
2.3 模糊控制器优势相比于传统的控制方法,模糊控制在机器人导航中具有一定的优势。
首先,模糊控制能够处理不确定性和模糊性问题,使得机器人能够更好地适应复杂的环境。
其次,模糊控制可以通过调整模糊规则和输入变量的权重来优化机器人的导航性能。
最后,模糊控制可以很容易地与其他控制方法结合使用,以实现更高级的导航功能。
3. 模糊控制在温度控制中的应用3.1 温度控制系统在温度控制中,模糊控制可以用于调节加热器或制冷器的功率,以维持目标温度。
温度控制系统通常包括一个温度传感器、一个控制器和一个执行器。
温度传感器用于测量当前的温度,控制器根据温度的变化来调整执行器的功率。
3.2 模糊控制器设计在温度控制中,需要设计一个模糊控制器来根据当前的温度误差和误差变化率来调整执行器的功率。
模糊控制器的输入变量可以是温度误差和误差变化率,输出变量可以是执行器的功率。
通过选择适当的模糊规则和调整输入变量的权重,可以实现温度的稳定控制。
3.3 模糊控制器实现在温度控制中,可以使用一个模糊控制器来计算执行器的功率。
模糊控制器根据一组模糊规则来决定执行器的功率大小,然后将其输出给执行器。
模糊pid控制实例以下是一个模糊PID控制的简单实例:假设我们要控制一台电机的转速,目标是使电机转速尽可能稳定在设定值附近。
根据模糊PID控制器的工作原理,我们可以进行以下步骤:1. 设定目标值和初始设定值:设定电机转速的目标值,例如1000转/分钟。
同时设置初始的PID参数。
- 设定值(SP,Set Point)= 1000 RPM- 比例增益 (Kp) = 1- 积分时间(Ti) = 1- 微分时间(Td) = 0.12. 测量电机转速:使用传感器或编码器来测量电机当前的转速,得到当前的反馈值。
3. 模糊控制规则建立:基于当前误差(设定值减去反馈值)和误差的变化率,建立一组模糊逻辑规则,例如: - 如果误差为"NB"并且误差变化率为"PB",则输出为"NB"。
- 如果误差为"NB"并且误差变化率为"NM",则输出为"NM"。
- ...4. 模糊推理和模糊输出:根据模糊逻辑规则,进行模糊推理,即将当前的误差和误差变化率映射到模糊输出的隶属度值上。
5. 解模糊:将模糊输出映射回具体的控制量,例如根据模糊输出计算PID控制器的输出量。
6. 更新PID参数:根据误差的变化和模糊输出的结果来更新PID控制器的参数,例如根据误差的大小和变化率来调整PID参数,以使控制更加精确。
7. 反馈控制:将PID控制器的输出量应用于电机,调整电机的转速。
8. 循环控制:循环执行上述步骤,不断更新PID参数和反馈控制,使得电机转速尽可能稳定在设定值附近。
需要注意的是,以上是一个简单的示例,实际的模糊PID控制根据具体的应用情况和系统特点会有所差异。
参数的选择和模糊规则的建立都需要根据具体的控制对象进行优化和调整。
此外,在实际应用中,还需要考虑到系统的鲁棒性、性能指标等因素。
一、速度控制算法: 首先定义速度偏差-50 km/h ≤e (k )≤50km/h ,-20≤ec (i )= e (k )- e (k-1)≤20,阀值e swith =10km/h设计思想:油门控制采用增量式PID 控制算法,刹车控制采用模糊控制算法,最后通过选择规则进行选择控制量输入。
选择规则:e (k )<0 ① e (k )>- e swith and throttlr_1≠0 选择油门控制② 否则:先将油门控制量置0,再选择刹车控制 0<e (k ) 先选择刹车控制,再选择油门控制 e (k )=0 直接跳出选择刹车控制:刹车采用模糊控制算法1.确定模糊语言变量 e 基本论域取[-50,50],ec 基本论域取[-20,20],刹车控制量输出u 基本论域取[-30,30],这里我将这三个变量按照下面的公式进行离散化:)]2(2[ba x ab n y +--= 其中,],[b a x ∈,n 为离散度。
E 、ec 和u 均取离散度n=3,离散化后得到三个量的语言值论域分别为:E=EC=U={-3,-2,-1,0,1,2,3}其对应语言值为{ NB,NM,NS,ZO, PS,PM,PB } 2.确定隶属度函数E/EC 和U 取相同的隶属度函数即:E EC U(,5,1)(,3,2,0)(,3,1,1)u (,2,0,2)(,1,1,3)(,0,2,3)(,1,5)g x trig x trig x trig x trig x trig x g x ∧∧--⎧⎪--⎪⎪--⎪=-⎨⎪-⎪⎪⎪⎩说明:边界选择钟形隶属度函数,中间选用三角形隶属度函数,图像略实际EC 和E 输入值若超出论域范围,则取相应的端点值。
3.模糊控制规则由隶属度函数可以得到语言值隶属度(通过图像直接可以看出)如下表: 表1:E/EC 和U3.模糊推理由模糊规则表3可以知道输入E 与EC 和输出U 的模糊关系,这里我取两个例子做模糊推理如下:if (E is NB) and (EC is NM) then (U is PB) 那么他的模糊关系子矩阵为:1211U EC E R R R R ⨯⨯=其中,711)0,,0,5.0,1(0⨯== P R E ,即表1中NB 对应行向量,同理可以得到,712)0,,0,5.0,1,0(1⨯== P R EC , 711)0,,0,5.0,1(0⨯== P R U77210000000000005.05.00005.010)0,,0,5.0,1,0()0,,0,5.0,1(⨯⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⨯=⨯TEC E R R 49121)0,,0,5.0,5.0,0,0,0,0,0,5.0,1,0(⨯= EC E R7491211000000005.05.00005.0100000)0,,0,5.0,1()0,,5.0,1,0(⨯⎥⎥⎥⎥⎥⎥⎦⎤⎢⎢⎢⎢⎢⎢⎣⎡=⨯=⨯= TU EC E R R Rif (E is NVB or NB) and (EC is NVB) then (U is PVB)1112U EC E R R R R ⨯⨯= 结果略按此法可得到27个关系子矩阵,对所有子矩阵取并集得到模糊关系矩阵如下:)27,,2,1(21 ==i R R R R i 由R 可以得到模拟量输出为:()U E EC R =⨯4.去模糊化由上面得到的模拟量输出为1×7的模糊向量,每一行的行元素(u (z ij ))对应相应的离散变量z j ,则可通过加权平均法公式解模糊:)21,,2,1()()(210210 ===∑∑==j i zu z zu u i iji jij从而得到实际刹车控制量的精确值u 。
5.2.2.6模糊控制器设计实例1、单输入模糊控制器的设计【例5.12】已知某汽温控制系统结构如图 5.10所示,采用喷水减温进行控制。
设计单输入模糊控制器,观察定值扰动和内部扰动的控制效果。
图5.10单回路模糊控制系统按表5-2确定模糊变量E U的隶属函数,按表5-3确定模糊控制规则,选择温度偏差e、控制量u 的实际论域:e =u € [ —1.5,1.5],则可得到该系统的单输入模糊控制的仿真程序如FC_SI_main.m所示,仿真结果如图5.11所示。
设温度偏差e、控制量u的实际论域:e = u • [-1.5,1.5],选择e、u的等级量论域为E =U ={-3^2,-1,0, 1, 2, 3}2汇3量化因子K 1 2。
1.5 -(-1.5)选择模糊词集为{NB,NS,ZO,PS,PB},根据人的控制经验,确定等级量E,U的隶属函数曲线如图5-8所示。
根据隶属函数曲线可以得到模糊变量E、U的赋值表如表5-3所示。
图5-8 E, U的隶属函数曲线依据人手动控制的一般经验,可以总结出一些控制规则,例如: 若误差E为0,说明温度接近希望值,喷水阀保持不动;若误差明温度低于希望值,应该减少喷水;若误差明温度高于希望值,应该增加喷水。
若采用数学符号描述,可总结如下模糊控制规则:若E负大,则U正大;若E负小,贝U U正小;若E为零,则U为零;若E正小,则U负小;若E正大,则U负大。
写成模糊推理句:if E=NB then U=PBif E=NS then U=PSif E=Z0 then U=Z0if E=PS then U=NSif E=PB then U=NB由上述的控制规则可得到模糊控制规则表,如表5-4所示。
模糊控制规则实际上是一组多重条件语句,它可以表示从误差论域旦到控制量论域U的模糊关系R。
按着上述控制规则,可以得到该温度偏差与喷水阀门开度之间的模糊关系R:R=E U=(NB E PB U)U(NS E PS U)U(Z0E Z0U)U(PS E NS U)U(PB E NB U) 计算模糊关系矩阵R的子程序如F_Relation_1.m 所示。
■0 0 0 00 0.5 1.0〕0 00 00.5 0.5 0.50 0 0.5 0.5 1.0 0.5 0 00 0.5 1.0 0.5 0 0 00.5 1.0 0.5 0.5 0 0 0.5 0.5 0.50 0 0 0 】1.00.5一由此,可以得到各种输入时,模糊控制器的输出: 单输入时:例如:单输入时,设e=1.2,根据前面的等级量划分原则,其等级量E =PS =[O 0 0 0 1 0.5 0]。
根据式(5-5)可以得到:■0 0 00 0.5 1.0]0 0 0 00.5 0.5 0.50.5 0.5 1.0 0.5双输入时: U =(E EC) R (5-6) 三输入时:U =(E EC ECC) R(5-7)(5-5 )E 二V ,由表5-2可以查出U = 0 0 0 0 1 0.5 0 卜0 0 0.5 1.0 0.5 0 00 0.5 1.0 0.5 0.5 0 00.5 0.5 0.5 0 0 0 01.0 0.5 0 0 0 0 0一二[0.5 0.5 1.0 0.5 0.5 0 0]其模糊决策子程序如F_Deduce_1.m所示。
%单输入时模糊决策子程序F_Deduce_1.mfun ction FU=F_Deduce_1(fe,R, ne,nu)for i=1: nufor j=1: neif fe(j)<R(j,i) feu(j)=fe(j);elsefeu(j)=R(j,i);endendFU(i)=max(feu);endif Me(i,j)>Me(i-1,j);Fi=i;e nd;% 得到模糊语言值 endU=F_Deduce_1(Me(Fi,:),R ,n e, nu);% 调用模糊决策子程序%加权平均法判决控制器的输岀 Su=O;S=O; for i=-UM:UMSu=Su+i*U(i+UM+1);S=S+U(i+UM+1); endu=Ku*Su/S+ur; (%*************** x(1)=A1*x(1)-1.1*B1*u; x(2)=A1*x(2)+B1*x(1); x(3)=A1*x(3)+B1*x(2); x(4)=A1*x(4)+B1*x(3); y1(k)=x ⑷; u1(k)=u; t(k)=k*DT;if t(k)>800;ur=0.5;e nd;%800 秒后加入内扰endPlot(t,y1) hold on; plot(t,u1,'--')图5.11单输入模糊控制器的控制效果从上述的仿真结果可以看到,定值扰动时系统可以达到稳定,但是有很大的静差,不能满足 工程上的要求,究其原因是,模糊控制器实质上是一个具有继电器型非线性特性的控制器(如图 5.11中所示的u ),没有积分作用,对于有自平衡对象一定会产生静差,而且系统极容易产生震荡。
从图5.11就可看出,虽然设计的模糊控制器对定值扰动是稳定的,但对于内扰并不能使其稳定。
仿真计算被控对象********************非线性控制器的控制效果取决于各变量的论域及扰动量的大小 【",因此,模糊控制器的大范围工程应用还有许多问题需要研究。
2、双输入模糊控制器的设计【例5.13】对于图5.10所示的系统,设计双输入模糊控制器,观察定值扰动和内部扰动的控制 效果。
下面考虑两个输入的情况:设温度偏差e 、偏差变化率ec 及控制量u 的实际论域:e = ec = u :二[_1.5,1.5],选择它们的等级 量论域分别为E 二{-6, -5,-4, -3,-2, -1,-0, 0, 1, 2, 3, 4, 5, 6} EC 二{ -6, -5, -4, -3, -2, -1,0, 1, 2, 3, 4, 5, 6} U 二{-7,-6, -5,-4, -3,-2,-1,0, 1, 2, 3, 4, 5, 6, 7}假设选取E 的模糊变量词集为{NB,NM , NS, NO, PO, PS, PM , PB}选取模糊变量E 的赋值表如表5-5所示。
{NB,NM ,NS,ZO,PS, PM ,PB}选取模糊变量EC 的赋值表如表5-2所示,模糊变量U 的赋值表如表5-6所示。
量化因子K e,ec2 6 1.5-(-=4,K u2 7 匕1.5-(-1.5厂 3下面说明建立模糊控制规则表的基本思想。
首先考虑误差为负的情况,当误差(希望值减去温度值)为负大时(说明温度高于希望值),若误差变化率也为负,这时误差有增大的趋势,为尽快消除已有的负大误差并抑制误差变大,所以控制量的变化取正大(控制量增大,意味着喷水阀门开度增大,喷水量增加,使得温度下降,下同) 。
当误差为负而误差变化率为正时,系统本身已有减少误差的趋势,所以,为尽快消除误差而又不超调,应取较小的控制量。
当误差为负中时,控制量的变化应使误差尽快消除,基于这种原则,控制量的变化选取同误差为负大时相同。
当误差为负小时,系统接近稳态,若误差变化微小时,选取控制量变化为正中,以抑制误差往负方向变化;若误差变化为正时,系统本身有消除负小的误差的趋势,选取控制量变化为正小。
上述选取控制量变化的原则:当误差大或较大时,选择控制量以尽快消除误差为主;当误差较小时,选择控制量要注意防止超调,以系统稳定性为主要出发点。
按着上述控制规则,可以得到温度偏差及偏差变化率与喷水阀门开度之间的模糊关系R : R =(E U)Q(EC U )二E EC U=(NB E NB EC PB U)U(NM E NB EC PB U)U(NS E NB EC PM U )U ...................................其中角标E,EC u分别表示误差、误差变化率和控制量。
设e、ec、u的等级量分别为nfe、nfec、nfu,贝U R是一个nfe nfec行nfu列的矩阵。
计算模糊关系矩阵R的子程序如F_Relation_2.m 所示。
双输入时,先根据e、ec计算出相应的等级量E、EC,再根据表(5-2)查出相应的E, EC ,按式(5-6)计算出模糊控制器的输出。
其模糊决策子程序如F_Deduce_2.m所示。
%双输入时模糊决策子程序F_Deduce_2.mfunction FU=F_Deduce_2(fe,fec,R, n,n fe, nfec,nfu)%######################5计算E X EC#####################################n=0;for i=1: nfefor j=1: nfecn=n+1;if fe(i)<fec(j)feec( n)=fe(i);elsefeec( n)=fec(j);endendend%######################5计算(E x EC)。
R################################for 1=1: nfufor i=1: n 然后if feec(i)<R(i,l)fu(i)=feec(i);elsefu(i)=R(i,l);endFU(l)=max(fu);endend按着前面的设计过程,可以得到双输入模糊控制主程序,如FC_MI_main.m所示。
1图5.12双输入模糊控制器的控制效果双输入模糊控制器能使系统快速达到稳定,但是,仍然存在很大的静差,不满足工程需要。
与单输入模糊控制器一样,仍不能使内扰时稳定。
从上述的模糊控制器的设计过程可以看出,当选择了e、ec、u的基本论域、等级量(E、EC、U)论域、模糊量(E EC、U)论域及控制规则后,模糊关系R就已确定,因此,可以在进行实时控制前,把控制量 /全部算出,形成一个控制表,实时控制时,根据E和EC,从控制表中即可查找到相应的控制量U,这样可以大大提高实时控制时的计算速度。