基于FCM聚类法和LS最小二乘法的T-S模糊模型参数辨识matlab仿真

目录

1.引言

2.算法测试效果

3.算法涉及理论知识概要

[3.1 确定T-S模糊模型结构](#3.1 确定T-S模糊模型结构)

[3.2 FCM聚类辨识前件参数](#3.2 FCM聚类辨识前件参数)

[3.3 LS法辨识后件参数](#3.3 LS法辨识后件参数)

4.MATLAB核心程序

5.完整算法代码文件获得


1.引言

T-S模糊模型通过"前件模糊划分+后件线性拟合"实现非线性系统建模,其参数辨识分为两部分:前件参数(模糊子集的隶属度与聚类中心)采用FCM模糊C均值聚类法辨识,利用软聚类特性完成输入空间的最优模糊划分;后件参数(线性规则的系数)采用LS最小二乘法辨识,通过最小化输出误差平方和实现线性参数的最优估计。

2.算法测试效果

3.算法涉及理论知识概要

T-S模糊模型的参数辨识是指根据系统的输入以及系统的输出来确定模型的参数,包括前件结构、前件参数以及后件参数等。使得所建立的模型输出和实际的系统输出之间的误差达到最小值等。其中,T-S模糊模型的前件参数辨识主要对模糊隶属函数的参数进行辨识,使得辨识模型的输出和实际的输出误差达到最小,常见的参数辨识方法包括FCM聚类算法。后件结构辨识主要功能是确定每条规则所对应的系数,一般采用最小二乘法进行辨识,其计算量较大。

模型的参数辨识分为两个独立且互补的环节:

**前件参数辨识:**采用FCM(模糊C均值)聚类算法,对输入样本空间进行软划分,确定模糊规则前件的隶属度函数参数(隶属度矩阵、聚类中心),实现输入变量的模糊分类,对应模型的模糊推理部分。

**后件参数辨识:**采用LS(最小二乘)法,将模糊规则的后件线性输出转化为线性方程组,通过最小化模型输出与实际输出的误差平方和,求解后件的线性系数参数,保证模型的拟合精度。 该方法结合了FCM聚类的模糊划分能力与LS法的线性最优估计特性,在非线性系统建模中兼具柔性与精度。

3.1 确定T-S模糊模型结构

3.2 FCM聚类辨识前件参数

给定输入样本集X=[x1,x2,...,xN]T,FCM通过迭代优化实现c类聚类(对应c条规则),输出聚类中心与样本隶属度。

定义FCM目标函数

迭代更新隶属度与聚类中心

3.3 LS法辨识后件参数

将模型输出转化为线性形式,通过LS法最小化输出误差,求解后件参数P。

将辨识得到的前件与后件参数代入T-S模型,输入测试样本得到模型输出,通过均方误差等指标验证建模精度,完成参数辨识。

4.MATLAB核心程序

复制代码
........................................................
%前-参数辨识
[center,U,obj_fcn] = IFP_FCM(x,c,options);
...................................................................
%LS参数
a=inv(xx'*xx)*xx'*y;

%计算T-S模糊模型输出序列
y_d = xx*a;

t   = 1:n;  %生成时间序列

err(idx,kk)=mean2(abs(y(:,1)-y_d(:,1))+abs(y(:,2)-y_d(:,2))+abs(y(:,3)-y_d(:,3))+abs(y(:,4)-y_d(:,4)));
end
end

figure;
plot(iters,mean(err,2),'-r>',...
    'LineWidth',1,...
    'MarkerSize',6,...
    'MarkerEdgeColor','k',...
    'MarkerFaceColor',[0.9,0.9,0.0]);
grid on 
xlabel('不同迭代次数');
ylabel('TS模糊模型辨识误差');
08_093m

5.完整算法代码文件获得

完整程序见博客首页左侧或者打开本文底部

V

(V关注后回复码:X112)

相关推荐
杰瑞不懂代码4 小时前
基于 MATLAB 的 BPSK/QPSK/2DPSK 在 AWGN 信道下的 BER 性能仿真与对比分析
开发语言·matlab·qpsk·2psk·2dpsk
ytttr8735 小时前
MATLAB中CVX凸优化工具箱的使用指南
开发语言·matlab
stars-he8 小时前
单相可控整流电路的MATLAB仿真设计(2)
开发语言·matlab
Evand J10 小时前
【MATLAB例程】三维环境下,EKF融合INS与DVL的核心程序,用于惯导和速度传感器的数据融合滤波。附下载链接
开发语言·matlab
Joe_Blue_0213 小时前
Matlab入门案例介绍—常用的运算符及优先级
开发语言·数据结构·matlab·matlab基础入门案例介绍
Joe_Blue_0215 小时前
Matlab 入门案例介绍——如何创建脚本
开发语言·matlab·matlab 入门案例
nwsuaf_huasir15 小时前
积分旁瓣电平-matlab函数
前端·javascript·matlab
崇山峻岭之间15 小时前
Matlab学习记录20
开发语言·学习·matlab
matlabgoodboy16 小时前
matlab代编程序机器学习通信仿真python神经网络图像处理优化算法
python·机器学习·matlab