基于极大似然法和最小二乘法系统参数辨识matlab仿真,包含GUI界面
1.程序功能描述
分别对比基于极大似然法的系统参数辨识以及基于最小二乘法的系统参数辨识,输出起参数辨识收敛曲线以及辨识误差。
2.测试软件版本以及运行结果展示
MATLAB2022a版本运行
3.核心程序
c1 = [0.0001,0.0001,0.0001,0.0001,0.0001,0.0001]';
p0 = eye(6,6);
Doutf(1)= 0.1;
Doutf(2)= 0.1;
Dinf(2) = 0.1;
Dinf(1) = 0.1;
vf(2) = 0.1;
vf(1) = 0.1;
v = zeros(1,L);
a1 = zeros(1,L);
a2 = zeros(1,L);
b1 = zeros(1,L);
b2 = zeros(1,L);
ea1 = zeros(1,L);
ea2 = zeros(1,L);
eb1 = zeros(1,L);
eb2 = zeros(1,L);
for k=3:L
h = [-Dout(k-1);-Dout(k-2);Din(k-1);Din(k-2);v(k-1);v(k-2)];
hf = h;
K = p0*hf*inv(hf'*p0*hf+1);
p = [eye(6,6)-K*hf']*p0;
v(k)= Dout(k)-h'*c1;
c = c1+K*v(k) ;
p0 = p;
c1 = c;
a1(k)=c(1);
a2(k)=c(2);
b1(k)=c(3);
b2(k)=c(4);
ea1(k)=abs(a1(k)+1.5);
ea2(k)=abs(a2(k)-0.7);
eb1(k)=abs(b1(k)-1.0);
eb2(k)=abs(b2(k)-0.5);
Doutf(k) = Dout(k)-c(5)*Doutf(k-1)-c(6)*Doutf(k-2);
Dinf(k) = Din(k)-c(5)*Dinf(k-1)-c(6)*Dinf(k-2);
vf(k) = v(k)-c(5)*vf(k-1)-c(6)*vf(k-2);
hf=[-Doutf(k-1);-Doutf(k-2);Dinf(k-1);Dinf(k-2);vf(k-1);vf(k-2)];
end
Cs = [a1;a2;b1;b2];
Er = [ea1;ea2;eb1;eb2];
27_005m
4.本算法原理
所谓辨识就是从含有噪声的输入输出数据中提取被研究对象的数学模型。一般来说,这个模型只是对象的输入输出特性在某种准则意义下的一种近似,挖的程度取决于人们对系统先验知识的认识深化程度和对数据集合性质的了解,以及所选用的辨识方法是否合理。或者说,辨识技术帮助人们在表征被研究系统对象、现象或过程的复杂因果关系时,尽可能准确地确立它们之间的定量依存关系。利用系统辨识方法建立系统数学模型,不仅是由于需要提高系统的性能或控制、增加对系统的认识或仿真,而且也反映出发展与需要。
1.极大似然法系统参数辨识
极大似然法(Maximum Likelihood Estimation, MLE)是一种基于概率统计的参数估计方法。它的基本思想是:对于给定的样本数据,选择参数使得这些数据出现的概率最大。在系统参数辨识中,极大似然法通常假设观测数据服从某种概率分布,然后通过最大化观测数据的联合概率密度函数来估计系统参数。
- 最小二乘法系统参数辨识
最小二乘法(Least Squares Estimation, LSE)是一种基于误差平方和最小的参数估计方法。在系统参数辨识中,最小二乘法通常假设观测数据与模型输出之间存在线性关系,并通过最小化观测数据与模型输出之间的误差平方和来估计系统参数。
极大似然法和最小二乘法是两种常用的系统参数辨识方法。极大似然法基于概率统计原理,通过最大化观测数据的联合概率密度函数来估计系统参数;而最小二乘法基于误差平方和最小的原则,通过最小化观测数据与模型输出之间的误差平方和来估计系统参数。在实际应用中,根据具体问题和数据特性选择合适的方法进行参数辨识。
- 点赞
- 收藏
- 关注作者
评论(0)