这个例子比较了2型模糊PID控制器与1型模糊PID控制器和常规PID控制器。这个例子改编自[1]。
这个例子使用[1]中描述的模糊逻辑控制器(FLC)结构。控制器的输出( )使用错误( )和误差的导数( ).使用缩放因子 和 ,输入 和 被归一化 和 ,分别。两个输入的归一化范围都在[-1,1]范围内。模糊逻辑控制器也产生一个在[-1,1]范围内的归一化输出。额外的扩展的因素 和 映射模糊逻辑控制器输出 成 .
这个例子使用一个延迟的一阶系统 作为植物模型。
在这里, , , 分别为增益、时延、时间常数。
缩放因子 , , 定义如下,在哪里 为闭环时间常数。
输入比例因子 是:
在哪里 和 参考值和系统输出值是否一致 .这些值对应于系统的标称工作点。
这个例子比较了使用模糊逻辑控制器Simulink®块的1型和2型Sugeno模糊推理系统(FISs)的性能。万博1manbetx
使用命令创建type-1 FISsugfis
.
fis1 = sugfis;
向FIS添加输入变量。
[-1 1], [-1 1],“名字”,“E”);[-1 1], [-1 1],“名字”,“删除”);
为每个输入添加三个均匀分布的重叠三角隶属函数。MF代表负(N
),零(Z
),积极的(P
).
fis1 = addMF (fis1,“E”,“trimf”(2 1 0),“名字”,“N”);fis1 = addMF (fis1,“E”,“trimf”(1 0 1),“名字”,“Z”);fis1 = addMF (fis1,“E”,“trimf”[0 1 2],“名字”,“P”);fis1 = addMF (fis1,“删除”,“trimf”(2 1 0),“名字”,“N”);fis1 = addMF (fis1,“删除”,“trimf”(1 0 1),“名字”,“Z”);fis1 = addMF (fis1,“删除”,“trimf”[0 1 2],“名字”,“P”);
绘制输入成员函数。
图次要情节(1、2、1)plotmf (fis1,“输入”1)标题(输入1的次要情节(1、2、2)plotmf (fis1,“输入”2)标题(“输入2”)
将输出变量添加到FIS中。
[-1 1], [-1 1],“名字”,“U”);
添加均匀分布常数
函数的输出。MF代表-大(注
),消极的媒介(纳米
),零(Z
),积极的媒介(点
),积极的大(PB
).
fis1 = addMF (fis1,“U”,“不变”, 1“名字”,“注”);fis1 = addMF (fis1,“U”,“不变”, -0.5,“名字”,“纳米”);fis1 = addMF (fis1,“U”,“不变”0,“名字”,“Z”);fis1 = addMF (fis1,“U”,“不变”, 0.5,“名字”,“点”);fis1 = addMF (fis1,“U”,“不变”,1,“名字”,“铅”);
向FIS中添加规则。这些规则创建了一个比例控制面。
规则= [..."E==N & delE==N => U=NB";..."E==Z & delE==N => U=NM";..."E==P & delE==N => U=Z";..."E==N & delE==Z => U=NM";...E==Z & delE==Z => U=Z;..."E==P & delE==Z => U=PM";..."E==N & E==P => U=Z";..."E==Z & delE==P => U=PM";..."E==P & delete E==P => U=PB"...];fis1 = addRule (fis1、规则);
绘制控制面。
图gensurf (fis1)标题(“1型FIS的控制面”)
转换type-1 FIS,fis1
,到2型FIS。
fis2 = convertToType2 (fis1);
2型Sugeno系统,fis2
,输入变量使用类型2成员关系函数,输出变量使用类型1成员关系函数。
定义[1]中定义的输入MFs的不确定性足迹(FOU)。为此,为每个MF设置较低的MF比例因子。对于本例,设置较低的MF滞后值为0
.
尺度= [0.2 0.9 0.2;0.3 0.9 0.3];为i = 1:长度(fis2.Inputs)为j = 1:length(fis2.Inputs(i). membershipfunctions)LowerLag = 0;fis2.Inputs (i) .MembershipFunctions (j)。LowerScale =规模(i, j);结束结束
绘制类型2输入成员函数。
图次要情节(1、2、1)plotmf (fis2,“输入”1)标题(输入1的次要情节(1、2、2)plotmf (fis2,“输入”2)标题(“输入2”)
FOU为FIS增加了额外的不确定性,并产生了非线性控制面。
图gensurf (fis2)标题(“2型FIS控制面”)
本实例比较了模糊逻辑控制器与常规PID控制器的性能。
在这里, 获得成正比, 积分器得到, 是导数增益,和 为导数滤波器时间常数。
定义标称植物模型。
C = 0.5;L = 0.5;T = 0.5;C = tf(C,[t1],“Outputdelay”L);
利用常规PID控制器的参数生成pidtune
.
pidController = pidtune (G,“pidf”);
在本例中,引用( 是阶跃信号和 ,其结果是 如下。
= 1。
Ce = 1;
要配置仿真,请使用以下标称控制器参数。
tauC = 0.2;Cd = min (T、L / 2) * Ce;C0 = 1 / (C * * (tauC + L / 2));C1 = max (T、L / 2) * C0;
要模拟控制器,请使用comparepidcontrollers
万博1manbetx仿真软件模型。
模型=“comparepidcontrollers”;load_system(模型)
在名义运行条件下模拟模型。
着干活= sim(模型);
绘制所有三个控制器的系统的阶跃响应。
plotTitle = [的名义:C = 'num2str (C)”,L = 'num2str(左)”,T =”num2str (T)];plotOutput(着干活,plotTitle)
获得每个控制器的系统阶跃响应特性。这里,上升时间和稳定时间以秒为单位,超调量是最终值的百分比,绝对误差是在阶跃响应上积分的。
stepResponseTable(着干活)
ans =3×4表上升时间超调稳定时间绝对误差_________ _________ _____________ ______________ PID 0.62412 11.234 4.5583 1.04 Type-1 FLC 1.4267 0 4.1023 1.1522 Type-2 FLC 1.8662 0 5.129 1.282
对于标称过程:
一类模糊控制器和二类模糊控制器在超调性能上均优于传统PID控制器。
传统PID控制器在上升时间和绝对误差积分方面有较好的性能。
1型FLC在上升时间、沉降时间和IAE方面优于2型FLC。
与标称过程相比,通过增加增益、时间延迟和时间常数值来修改被试模型。
C = 0.85;L = 0.6;T = 0.6;C = tf(C,[t1],“Outputdelay”L);
使用更新的植物参数模拟模型。
out2 = sim(模型);
绘制所有三个控制器的系统的阶跃响应。
plotTitle = [修改1:C =”num2str (C)”,L = 'num2str(左)”,T =”num2str (T)];plotOutput (out2 plotTitle)
获得每个控制器的系统阶跃响应特性。
stepResponseTable (out2)
ans =3×4表上升时间超调稳定时间绝对误差_________ _________ _____________ ______________ PID 0.38464 80.641 29.458 4.7486 Type-1 FLC 0.47262 24.877 4.6788 1.1137 Type-2 FLC 0.47262 22.787 3.4561 1.076
对于这个修改的过程:
与模糊控制器相比,传统PID控制器表现出明显的超调量、更大的稳定时间和更高的IAE
对于所有性能衡量,2型FLC产生相同或优于1型FLC的性能。
总的来说,与传统PID控制器相比,1型FLC对标称装置产生了优越的性能。2型FLC在改良后的工厂中表现出更稳健的性能。
常规PID控制器的鲁棒性可以通过不同的方法来提高,如预测或多个PID控制器组态。另一方面,2型FLC的性能可以通过使用不同的:
规则库
的规则数量
傻人
例如,您可以创建一个2型FLC,它使用较低的MF缩放因子和较低的MF滞后定义FOU。
为fis2
,设置较低的MF尺度和滞后值为0.7
和0.1
,分别用于所有输入成员函数。
为i = 1:长度(fis2.Inputs)为j = 1:length(fis2.Inputs(i). membershipfunctions)LowerScale = 0.7;fis2.Inputs (i) .MembershipFunctions (j)。LowerLag = 0.1;结束结束
绘制更新的成员函数。
图次要情节(1、2、1)plotmf (fis2,“输入”1)标题(输入1的次要情节(1、2、2)plotmf (fis2,“输入”2)标题(“输入2”)
使用标称对象模拟模型,并绘制控制器的阶跃响应。
C = 0.5;L = 0.5;T = 0.5;C = tf(C,[t1],“Outputdelay”L);out4 = sim(模型);close_system(model,0) = [/ cn]的名义:C = 'num2str (C)”,L = 'num2str(左)”,T =”num2str (T)];plotOutput (out4 plotTitle)
获得每个控制器的系统阶跃响应特性。
stepResponseTable (out4)
ans =3×4表上升时间超调稳定时间绝对误差_________ _________ _____________ ______________ PID 0.62412 11.234 4.5583 1.04 Type-1 FLC 1.4267 0 4.1023 1.1522 Type-2 FLC 1.2179 0 3.8746 1.1087
在这种情况下,2型FLC的更新FOU改善了阶跃响应的上升时间。
然而,较低的MF滞后值也增加了转基因植物的超调量。
C = 0.85;L = 0.6;T = 0.6;C = tf(C,[t1],“Outputdelay”L);out5 = sim(模型);plotTitle = [的名义:C = 'num2str (C)”,L = 'num2str(左)”,T =”num2str (T)];plotOutput (out5 plotTitle)
t = stepResponseTable (out5)
t =3×4表上升时间超调稳定时间绝对误差_________ _________ _____________ ______________ PID 0.38464 80.641 29.458 4.7486 Type-1 FLC 0.47262 24.877 4.6788 1.1137 Type-2 FLC 0.47262 26.699 4.6812 1.1278
因此,为了获得想要的阶跃响应特性,可以通过改变较低的MF尺度和滞后值来找到一个合适的组合。
您可以使用Mamdani型FIS进一步改进模糊逻辑控制器的输出,因为它也为输出隶属函数提供了更低的MF规模和滞后参数。然而,Mamdani -2型FLC由于昂贵的类型缩减过程引入了额外的计算延迟。
孟德尔,j.m.,基于不确定规则的模糊系统:引入与新方向,第二版,施普林格,2017,页229-234,600-608。
函数plot(out,plotTitle) figure plot([0 20],[1 1]) hold在plot(out.yout{1}.Values) plot(out.yout{1}.Values从网格小包含(的时间(秒)) ylabel (“输出”标题(plotTitle)传说([“参考”,“PID”,“1型方法”,“2型方法”],“位置”,“最佳”)结束
函数t = stepResponseTable(out) s = stepResponseTable(out .yout{1}.Values.Data,out.yout{1}.Values.Time);stepResponseInfo(1)。上升时间= s.RiseTime;stepResponseInfo(1)。过度= s.Overshoot;stepResponseInfo(1)。SettlingTime = s.SettlingTime;stepResponseInfo(1)。IAE = out.yout {4} .Values.Data(结束);s = stepinfo (out.yout {2} .Values.Data, out.yout {2} .Values.Time); stepResponseInfo(2).RiseTime = s.RiseTime; stepResponseInfo(2).Overshoot = s.Overshoot; stepResponseInfo(2).SettlingTime = s.SettlingTime; stepResponseInfo(2).IAE = out.yout{5}.Values.Data(end); s = stepinfo(out.yout{3}.Values.Data,out.yout{3}.Values.Time); stepResponseInfo(3).RiseTime = s.RiseTime; stepResponseInfo(3).Overshoot = s.Overshoot; stepResponseInfo(3).SettlingTime = s.SettlingTime; stepResponseInfo(3).IAE = out.yout{6}.Values.Data(end); t = struct2table(stepResponseInfo,“RowNames”,[“PID”“1型方法”“2型方法”]);t.Properties。VariableNames {1} =的上升时间;t.Properties。VariableNames {2} = t.Properties.VariableNames {2};t.Properties。VariableNames {3} =“沉淀时间”;t.Properties。VariableNames {4} =的绝对误差;结束