主要内容

使用Type-2 FIS的模糊PID控制

该示例将2型模糊PID控制器与类型-1模糊PID控制器和传统PID控制器进行比较。此示例适用于[1]。

模糊PID控制

此示例使用以下模糊逻辑控制器(FLC)结构如[1]所述。控制器的输出( )使用错误( E. )和错误的衍生物( E. ˙ )。使用缩放因子 C E. C D. ,输入 E. E. ˙ 被标准化为 E. Δ E. ,分别。两个输入的规范化范围都在[-1,1]范围内。模糊逻辑控制器还产生[-1,1]范围内的规范化输出。额外的扩展的因素 C 0. C 1 映射模糊逻辑控制器输出 进入

此示例使用延迟的一阶系统 G S. 作为植物模型。

G S. = C E. - LS. TS. + 1

这里, C L. , 和 T. 是增益,时间延迟和时间常数。

缩放因子 C D. C 0. , 和 C 1 定义如下,在哪里 τ C 是闭环时间常数。

C D. = T. L. 2 × C E. C 0. = 1 C × C E. τ C + L. 2 C 1 = 最大限度 T. L. 2 × C 0.

输入缩放因子 C E. 是:

C E. 1 R. T. R. - y T. R.

在哪里 R. T. R. y T. R. 是当时的参考和系统输出值 T. = T. R. 。这些值对应于系统的标称操作点。

这个例子比较了使用模糊逻辑控制器Simulink®模块的1型和2型Sugeno模糊推理系统(FISs)的性能。金宝app

构建1型FIS

使用Type-1 FIS使用Sugfis.

fis1 = sugfis;

向FIS添加输入变量。

= addInput(1,[-1]),'名称'“E”);= addInput(1,[-1]),'名称''dele');

将三个均匀分布的重叠三角形函数(MFS)添加到每个输入。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,'dele''trimf',[ -  2 -1 0],'名称''n');fis1 = addmf(fis1,'dele''trimf',[ -  1 0 1],'名称''z');fis1 = addmf(fis1,'dele''trimf'[0 1 2],'名称''P');

绘制输入隶属函数。

图次要情节(1、2、1)plotmf (fis1,'输入',1)标题('输入1')子图(1,2,2)plotmf(fis1,'输入',2)标题('输入2'

图包含2个轴。带标题输入1的轴1包含6个类型的线条,文本。带标题输入2的轴2包含6个类型线,文本的对象。

将输出变量添加到FIS。

= addOutput(1,[-1])'名称''U');

添加均匀分布不变函数到输出。MF名称代表负大NB.),消极的媒介纳米),Z.),积极的媒介下午), 和积极的大PB.)。

fis1 = addmf(fis1,'U'“不变”, 1'名称'“注”);fis1 = addmf(fis1,'U'“不变”, -0.5,'名称''nm');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&dele == p => u = z”;......“e == z&dele == p => u = pm”;......“e == p&dele == p => u = pb”......];fis1 = addrule(fis1,规则);

绘制控制表面。

图Gensurf(FIS1)标题('控制表面1 fis'

图中包含一个轴。带有1型FIS的标题控制表面的轴包含类型表面的物体。

构建类型-2 FIS

转换Type-1 FIS,FIS1.,到2型FIS。

fis2 = converttotype2(fis1);

2型Sugeno系统,FIS2.,使用类型-2 emperione函数用于输入变量和输出变量的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:长度(fis2.inputs(i).membershipfunctions)fis2.inputs(i).membershipfunctions(j).lowerlag = 0;fis2.inputs(i).membershipfunctions(j).lowerscale = scale(i,j);结尾结尾

绘制Type-2输入隶属函数。

图形子图(1,2,1)plotmf(FIS2,'输入',1)标题('输入1')子图(1,2,2)plotmf(FIS2,'输入',2)标题('输入2'

图包含2个轴。带标题输入1的轴1包含12个类型的类型,贴片,文本。这些物体代表UpperMF,Lowermf,Fou。带标题输入2的轴2包含12个类型的类型线,修补程序,文本。这些物体代表UpperMF,Lowermf,Fou。

FU为FIS增加了额外的不确定性,并产生非线性控制表面。

图gensurf (fis2)标题(“2型FIS的控制表面”

图中包含一个轴。具有Type-2 FIS的标题控制表面的轴包含类型表面的物体。

传统的PID控制器

此示例将模糊逻辑控制器性能与以下传统PID控制器的模糊逻辑控制器性能进行了比较。

PID S. = K. P. + K. 一世 S. + K. D. S. τ F S. + 1

这里, K. P. 获得成正比, K. 一世 是集成商收益, K. D. 导数是增益,和 τ F 为导数滤波器时间常数。

配置模拟

定义名义植物模型。

c = 0.5;l = 0.5;t = 0.5;g = tf(c,[t 1],'outputdelay',l);

采用常规PID控制器参数生成Pidtune.

pidController = pidtune (G,“pidf”);

在本例中,引用( R. 是一个步进信号和 T. R. = 0. ,这导致了 C E. = 1 如下。

C E. = 1 R. T. R. - y T. R. = 1 1 - 0. = 1。

Ce = 1;

要配置仿真,请使用以下标称控制器参数。

Tauc = 0.2;Cd = min(t,l / 2)* ce;C0 = 1 /(C * CE *(Tauc + L / 2));c1 = max(t,l / 2)* c0;

要模拟控制器,请使用比素透明控制器金宝app仿真软件模型。

模型='pomparepidcontrollers';load_system(模型)

名义上的流程进行模拟

在标称操作条件下模拟模型。

着干活= sim(模型);

为所有三个控制器绘制系统的步骤响应。

PlotOutput(Out1,[的名义:C = 'num2str(c)',l ='num2str(l)',t ='num2str(t)])

图中包含一个轴。标称轴:C=0.5, L=0.5, T=0.5包含4个线型对象。这些对象表示参考,PID,1 FLC,Type-2 FLC。

获得系统各控制器的阶跃响应特性。

stepResponseTable(着干活)
ans =3×4表上升时间(秒)过冲(%)沉降时间(秒)绝对误差的积分_________________________________________pid 0.62412 11.234 4.5564 1.04型-1 FLC 1.4267 0 4.1023 1.1522 TYPE-2 FLC 1.8662 0 5.129 1.282

对于标称流程:

  • Type-1和Type-2模糊逻辑控制器都在过冲方面优于传统的PID控制器。

  • 传统的PID控制器相对于绝对误差(IAE)的上升时间和积分更好地执行。

  • 在上升时间,沉降时间和IAE方面,1型FLC比2 FLC更好地执行。

模拟修改过程

与标称过程相比,通过增加增益,时间延迟和时间常数值来修改工厂模型。

C = 0.85;L = 0.6;T = 0.6;g = tf(c,[t 1],'outputdelay',l);

使用更新的工厂参数模拟模型。

out2 = sim(模型);

为所有三个控制器绘制系统的步骤响应。

plotOutput (out2 ['修改1:c ='num2str(c)”,L = 'num2str(l)',t ='num2str(t)])

图中包含一个轴。标题为Modified 1的坐标轴:C=0.85,L=0.6,T=0.6,包含了4个线型对象。这些对象表示参考,PID,1 FLC,Type-2 FLC。

获得系统各控制器的阶跃响应特性。

stepResponseTable (out2)
ans =3×4表上升时间(秒)过冲(百分比)沉降时间(秒)绝对误差的整体_____________________________________________PID 0.38464 80.6486 TYPE-1 FLC 0.47262 24.877 4.6788 1.1137型号-2 FLC 0.47262 22.787 3.4561 1.076

对于此修改过程:

  • 与模糊逻辑控制器相比,传统的PID控制器呈现出显着的过冲,更大的沉降时间和更高的IAE

  • 对于所有性能指标,2型FLC与1型FLC相比具有相同或更高的性能。

结论

总的来说,与传统PID控制器相比,1型FLC为标称工厂产生了卓越的性能。Type-2 FLC为改性工厂表示更强大的性能。

可以使用不同的方法改进传统PID控制器的稳健性,例如预测或多个PID控制器配置。另一方面,可以通过使用不同的方式提高-2 FLC的性能:

  • 规则基础

  • 规则数量

  • 烦恼

例如,您可以使用较低的MF缩放因子和下部MF滞后创建一个类型-2 FLC,其定义了FU的FU。

为了FIS2.,设置较低的MF比例和滞后值0.70.1,分别用于所有输入隶属函数。

为了i = 1:长度(fis2.inputs)为了j = 1:长度(fis2.inputs(i).membershipfunctions)fis2.inputs(i).membershipfunctions(j).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'

图包含2个轴。带标题输入1的轴1包含12个类型的类型,贴片,文本。这些物体代表UpperMF,Lowermf,Fou。带标题输入2的轴2包含12个类型的类型线,修补程序,文本。这些物体代表UpperMF,Lowermf,Fou。

使用标称工厂模拟模型,并绘制控制器的步骤响应。

c = 0.5;l = 0.5;t = 0.5;g = tf(c,[t 1],'outputdelay',l);OUT4 = SIM(型号);close_system(model,0)plotoutput(Out4,[的名义:C = 'num2str(c)',l ='num2str(l)',t ='num2str(t)])

图中包含一个轴。标称轴:C=0.5, L=0.5, T=0.5包含4个线型对象。这些对象表示参考,PID,1 FLC,Type-2 FLC。

获得系统各控制器的阶跃响应特性。

stepResponseTable (out4)
ans =3×4表上升时间(秒)过冲(%)沉降时间(秒)绝对误差的积分_________________________________________PID 0.62412 11.234 4.5564 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;g = tf(c,[t 1],'outputdelay',l);OUT5 = SIM(型号);plotoutput(Out5,[的名义:C = 'num2str(c)',l ='num2str(l)',t ='num2str(t)])

图中包含一个轴。标题标称:C = 0.85,L = 0.6,T = 0.6的轴包含4个类型线的4个对象。这些对象表示参考,PID,1 FLC,Type-2 FLC。

StepresponseTable(Out5)
ans =3×4表上升时间(sec)过度(%)沉淀时间(sec)绝对误差的积分  _______________ _____________ ___________________ __________________________ PID 0.38464 80.641 29.452 4.7486 1型方法0.47262 26.699 4.6812 1.1278 0.47262 24.877 4.6788 1.1137 2型方法

因此,为了获得所需的步骤响应特性,您可以改变较低的MF比例和滞后值以找到合适的组合。

您可以使用Mamdani类型FIS进一步改进模糊逻辑控制器输出,因为它还为输出隶属函数提供了更低的MF规模和滞后参数。然而,Mamdani型2 FLC由于昂贵的类型减少过程引入了额外的计算延迟。

参考文献

[1] Mendel,J. M.,基于规则的不确定模糊系统:介绍和新的方向,第二版,Springer,2017,pp.229-234,600-608。

本地功能

功能plotoutput(out,plottitle)图绘图([020],[1 1])保持绘图(out.yout {1} .values)plot(out.yout {2} .values)plot(out.yout {3} .values)持有离开网格次要的包含('时间(秒)')ylabel('输出')标题(绘图)传奇([“参考”“PID”“type-1 flc”“2型方法”),'地点'“最好的”结尾
功能t = stepResponseTable(out) s = stepinfo(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”“type-1 flc”“2型方法”]);t.properties.variablenames {1} =上升时间(秒);t.properties.variablenames {2} = [t.properties.variablenames {2}“(%)”];t.properties.variablenames {3} ='建立时间(秒)';t.properties.variablenames {4} =绝对误差的积分;结尾

也可以看看

|

相关话题