摘 要 介绍了应用最小二乘法对T-S结论参数进行粗略辨识,确定参数的大致范围,再应用遗传算法对前提参数和结论参数同时优化的参数辨识方法。对非线性函数进行逼近实验,给出了用MATLAB编程进行仿真的具体实现方法,结果证明该方法的可行性和有效性。
关键词 最小二乘法;参数辨识;遗传算法
0 引言
对T-S模糊系统参数辨识的过程大致分为结构辨识和参数辨识,而参数辨识则是整个系统辨识的关键所在。遗传算法以其在解空间内进行高效启发式搜索,寻优速度快,不易陷入局部最优解等优点成为近来应用较多的优化方法。将遗传算法用于解决T-S模糊模型的参数辨识问题,在应用最小二乘法进行粗略辨识的前提下,用遗传算法对结论参数进行寻优,用MATLAB进行仿真,取得了较好的效果。
1 用最小二乘法对T-S模糊模型参数的初步辨识
T-S模糊模型辨识的过程一般分为以下几个阶段:前提结构辨识;前提参数辨识;结论结构辨识;结论参数辨识,直到模型满足要求为止。结构辨识的方法,在此不再详细说明,只对结论参数辨识问题展开讨论。
在确定了前提结构和结论结构之后,对模糊模型的结论参数进行粗略的辨识,以确定遗传算法寻优的范围。在众多的参数辨识方法中,最小二乘法是最基本的一种,Gauss于1795年就用最小二乘法,由观测结果估算了行星的运行轨道。此后,这种方法被广泛应用,并根据实际问题提出了许多改进的最小二乘法,如正交最小二乘法,广义最小二乘法,增广最小二乘法等。这里所用的是线性最小二乘法,将前提结构划分的各个范围中的输入输出数据拟合为一次多项式函数。从而得出粗略的结论参数。以此来大致确定遗传算法要优化的结论参数范围。前提参数的大致范围可根据所选的隶属函数来确定。
为简单起见,考虑一维的单输入非线性系统。对下列函数进行逼近[1]:
设定输入范围为[-1,1],将它模糊分割为五个区,隶属度函数采用广义的钟形函数,这里只有一个输入变量,输出为y = a x + b的线性方程,待优化的结论参数有2×5 = 10个,用MATLAB编程来初步得出待优化的结论参数,主要代码如下:
data_n=100;newdata_n=1001;x=linspace(-1,-0.6,data_n);
y=0.7*sin(pi*x)+0.3*sin(3*pi*x)+0.1*sin(5*pi*x);
polyfit(x,y,1)
由上述方法仿真可得出的10个参数,确定参数范围,如表1中所示:
表1 用最小二乘法估计的参数及优化所选的参数范围
参数
a
1
b
1
a
2
b
2
a
3
b
3
a
4
b
4
a
5
b
5
估计参数
-0.6499
-1.0459
0.9010
0.0518
8.3065
0.0000
0.9010
-0.0518
-0.6499
1.0459
参数范围
[-5,5]
[-5,5]
[-5,5]
[-5,5]
[-2,15]
[-5.5, 5.5]
[-5,5]
[-5, 5]
[-5.5, 5.5 ]
[-1,5 ]
2 用遗传算法来优化T-S模型的结论参数
由于同时优化的参数的数量较多,故采用实数编码的方式对参数进行编码。编码过程是通过计算机产生所要优化的参数范围内的随机数,对每一个参数进行编码后,连接在一起形成一条染色体,然后就可以对它进行遗传操作。用MATLAB编程,确定寻优范围的主要代码如下:
MinX(1)=-5.0*ones(1);
MaxX(1)=5.0*ones(1);
MinX(2)=-5.0*ones(1);
MaxX(2)=5.5*ones(1);
......
MinX(10)=-1*ones(1);
MaxX(10)=5*ones(1);
Kpar(:,1)=MinX(1)+(MaxX(1)-MinX(1))*rand(Size,1);
Kpar(:,2)=MinX(2)+(MaxX(2)-MinX(2))*rand(Size,1);
......
Kpar(:,9)=MinX(9)+(MaxX(9)-MinX(9))*rand(Size,1);
Kpar(:,10)=MinX(10)+(MaxX(10)-MinX(10))*rand (Size,1);
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说计算机T-S模糊系统结论参数的MATLAB仿真研究在线全文阅读。