主要内容

模糊PID控制与2型金融中间人

这个例子比较2型模糊PID控制器与第一型模糊PID控制器和常规PID控制器。这个例子是改编自[1]。

模糊PID控制

这个示例使用以下模糊逻辑控制器(方法[1]中描述的结构。控制器的输出( u 使用错误(发现) e )和误差的导数( e ˙ )。使用缩放因子 C e C d ,输入 e e ˙ 被归一化 E Δ E ,分别。归一化范围的输入范围内[1]。模糊逻辑控制器也会产生一个规范化的输出范围内[1]。额外的扩展的因素 C 0 C 1 地图模糊逻辑控制器的输出 U u

这个示例使用延迟的一阶系统 G ( 年代 ) 随着植物模型。

G ( 年代 ) = 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 。这些值对应于系统的名义操作点。

这个例子比较1型和2型Sugeno模糊推理系统的性能(费斯)使用模糊逻辑控制器仿真软件®块。金宝app

构建1型金融中间人

创建一个使用1型金融中间人sugfis

fis1 = sugfis;

将输入变量添加到金融中间人。

fis1 = addInput (fis1 [1],“名字”,“E”);fis1 = addInput (fis1 [1],“名字”,“删除”);

添加三个均匀分布重叠的三角形隶属度函数(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,“删除”,“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”)

图包含2轴对象。坐标轴对象与标题输入1包含6行类型的对象,文本。坐标轴对象与标题输入2包含6行类型的对象,文本。

输出变量添加到金融中间人。

fis1 = addOutput (fis1 [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“名字”,“铅”);

添加规则,金融中间人。这些规则创建一个比例控制表面。

规则= [“E = = N &删除= = = > U = NB”;Z &删除“E = = = = N = > U = NM”;“E = = P &删除= = N = > U = Z”;“E = = N &删除Z = = = > U = NM”;Z Z &删除“E = = = = = > U = Z”;“E = = P &删除Z = = = > U =点”;“E = = N &删除= = P = > U = Z”;Z &删除“E = = = = P = > U =点”;“E = = P &删除= = = > U = PB”];fis1 = addRule (fis1、规则);

阴谋控制表面。

图gensurf (fis1)标题(1型FIS的控制面)

图包含一个坐标轴对象。1型FIS的轴与标题控制对象表面包含一个类型的对象的表面。

构建2型金融中间人

把1型金融中间人,fis12型金融中间人。

fis2 = convertToType2 (fis1);

2型Sugeno系统,fis2使用2型隶属度函数的输入变量和1型隶属度函数为输出变量。

定义的不确定性的足迹(4)中定义的输入MFs [1]。为此,设置较低的为每个MF MF比例因子。对于这个示例,曼氏金融滞后值越低0

规模= (0.3 0.2 0.9 - 0.2,0.3 - 0.9);i = 1:长度(fis2.Inputs)j = 1:长度(fis2.Inputs(我).MembershipFunctions) fis2.Inputs (i) .MembershipFunctions (j)。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”)

图包含2轴对象。坐标轴对象与标题输入1包含12线类型的对象,补丁,文本。这些对象代表UpperMF, LowerMF,傻人。坐标轴对象与标题输入2包含12线类型的对象,补丁,文本。这些对象代表UpperMF, LowerMF,傻人。

FIS的傻人增加了额外的不确定性并产生一个非线性控制表面。

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

图包含一个坐标轴对象。2型FIS的轴与标题控制对象表面包含一个类型的对象的表面。

传统的PID控制器

这个例子比较了模糊逻辑控制器的性能与以下常规PID控制器。

PID ( 年代 ) = K p + K 年代 + K d 年代 τ f 年代 + 1

在这里, K p 获得成正比, K 积分器得到, K d 微分增益, τ f 是微分滤波器时间常数。

配置模拟

定义名义植物模型。

C = 0.5;L = 0.5;T = 0.5;G =特遣部队(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 * * (tauC + L / 2));C1 = max (T、L / 2) * C0;

模拟控制器,使用comparepidcontrollers金宝app仿真软件模型。

模型=“comparepidcontrollers”;load_system(模型)

名义上的流程进行模拟

模拟模型的名义操作条件。

着干活= sim(模型);

绘制系统的阶跃响应为所有三个控制器。

plotTitle = [的名义:C = 'num2str (C)”,L = 'num2str(左)”,T =”num2str (T)];plotOutput(着干活,plotTitle)

图包含一个坐标轴对象。与标题名义轴对象:C = 0.5, = 0.5, T = 0.5包含4线类型的对象。这些对象代表参考,PID, 1型方法,2型方法。

得到系统的阶跃响应特性为每个控制器。在这里,上升时间和稳定时间是在几秒钟内,过度是最终值的百分比,绝对误差是集成在阶跃响应。

stepResponseTable(着干活)
ans =3×4表上升时间过度沉淀时间绝对误差替PID _________________ * * * 0.62412 11.234 4.5583 1.04 1型方法1.4267 0 0 5.129 - 1.282 4.1023 - 1.1522 1.8662 2型方法

的名义过程:

  • 1型和2型模糊逻辑控制器比传统PID控制器超调。

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

  • 1型方法执行比2型方法上升时间、沉淀时间、管理学院。

修改流程进行模拟

修改植物模型通过增加收益,时间延迟,时间常数的值比名义的过程。

C = 0.85;L = 0.6;T = 0.6;G =特遣部队(C T [1]“Outputdelay”L);

使用更新后的植物模拟模型参数。

out2 = sim(模型);

绘制系统的阶跃响应为所有三个控制器。

plotTitle = [修改1:C =”num2str (C)”,L = 'num2str(左)”,T =”num2str (T)];plotOutput (out2 plotTitle)

图包含一个坐标轴对象。坐标轴对象与标题修改1:C = 0.85, = 0.6, T = 0.6包含4线类型的对象。这些对象代表参考,PID, 1型方法,2型方法。

得到系统的阶跃响应特性为每个控制器。

stepResponseTable (out2)
ans =3×4表上升时间过度沉淀时间绝对误差替PID _________________ * * * 0.38464 80.641 29.458 4.7486 1型方法0.47262 22.787 3.4561 1.076 0.47262 24.877 4.6788 1.1137 2型方法

对于这个修改过程:

  • 传统的PID控制器展品显著的过度,较大的沉淀时间,和更高的IAE而模糊逻辑控制器

  • 性能的措施,2型方法产生相同或更高的性能相比1型方法。

结论

总的来说,1型方法为名义植物生产性能优越比传统的PID控制器。2型的方法显示了修改后的植物更健壮的性能。

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

  • 规则库

  • 的规则数量

  • 傻人

例如,您可以创建一个2型方法,定义了傻人使用较低的MF比例因子和更低的曼氏金融滞后。

fis2,规模和曼氏金融滞后值越低0.70.1分别对所有输入隶属函数。

i = 1:长度(fis2.Inputs)j = 1:长度(fis2.Inputs(我).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包含12线类型的对象,补丁,文本。这些对象代表UpperMF, LowerMF,傻人。坐标轴对象与标题输入2包含12线类型的对象,补丁,文本。这些对象代表UpperMF, LowerMF,傻人。

使用名义,模拟模型和情节的一步反应控制器。

C = 0.5;L = 0.5;T = 0.5;G =特遣部队(C T [1]“Outputdelay”L);out4 = sim(模型);close_system(模型中,0)plotTitle = [的名义:C = 'num2str (C)”,L = 'num2str(左)”,T =”num2str (T)];plotOutput (out4 plotTitle)

图包含一个坐标轴对象。与标题名义轴对象:C = 0.5, = 0.5, T = 0.5包含4线类型的对象。这些对象代表参考,PID, 1型方法,2型方法。

得到系统的阶跃响应特性为每个控制器。

stepResponseTable (out4)
ans =3×4表上升时间过度沉淀时间绝对误差替PID _________________ * * * 0.62412 11.234 4.5583 1.04 1型方法1.4267 0 0 3.8746 - 1.1087 4.1023 - 1.1522 1.2179 2型方法

在这种情况下,更新的傻人2型方法提高了上升的阶跃响应。

然而,较低的曼氏金融滞后值也增加过度的修改后的植物。

C = 0.85;L = 0.6;T = 0.6;G =特遣部队(C T [1]“Outputdelay”L);out5 = sim(模型);plotTitle = [的名义:C = 'num2str (C)”,L = 'num2str(左)”,T =”num2str (T)];plotOutput (out5 plotTitle)

图包含一个坐标轴对象。与标题名义轴对象:C = 0.85, = 0.6, T = 0.6包含4线类型的对象。这些对象代表参考,PID, 1型方法,2型方法。

t = stepResponseTable (out5)
t =3×4表上升时间过度沉淀时间绝对误差替PID _________________ * * * 0.38464 80.641 29.458 4.7486 1型方法0.47262 26.699 4.6812 1.1278 0.47262 24.877 4.6788 1.1137 2型方法

因此,获得理想的阶跃响应特性,您可以改变降低规模和曼氏金融滞后值来找到一个合适的组合。

可以进一步改善模糊逻辑控制器输出使用一种Mamdani FIS,因为它还提供了较低的规模和曼氏金融滞后参数输出隶属度函数。然而,Mamdani 2型方法引入了额外的计算延迟由于昂贵type-reduction过程。

引用

[1]孟德尔,j . M。不确定的基于规则的模糊系统:介绍和新的方向,第二版,施普林格,2017年,页229 - 234,600 - 608。

本地函数

函数plotOutput情节(plotTitle),图(20 [0],[1])情节(out.yout {1} . values)情节(out.yout {2} . values)情节(out.yout {3} . values)网格包含(的时间(秒))ylabel (“输出”标题(plotTitle)传说([“参考”,“PID”,“1型方法”,“2型方法”),“位置”,“最佳”)结束
函数t = stepResponseTable () = 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”“1型方法”“2型方法”]);t.Properties。VariableNames {1} =的上升时间;t.Properties。VariableNames {2} = t.Properties.VariableNames {2};t.Properties。VariableNames {3} =“沉淀时间”;t.Properties。VariableNames {4} =的绝对误差;结束

另请参阅

|

相关的话题