目录
1.程序功能描述
分别通过LS和RML进行模型参数辨识matlab仿真,仿真输出参数辨识的误差,参数值的收敛值。
2.测试软件版本以及运行结果展示
MATLAB2022A版本运行
(完整程序运行后无水印)
3.核心程序
................................................................
%LS辨识
[c,err] = func_LS(y2,y1,L);
a1_est=c(1,:);
a2_est=c(2,:);
b1_est=c(3,:);
b2_est=c(4,:);
a1_err=err(1,:);
a2_err=err(2,:);
b1_err=err(3,:);
b2_err=err(4,:);
figure;
plot(1:L,a1_est,'r')
hold on
plot(1:L,a2_est,'b')
hold on
plot(1:L,b1_est,'m')
hold on
plot(1:L,b2_est,'k')
hold on
xlabel('k')
ylabel('辨识参数') %标注纵轴变量
title('LS辨识参数估计值') %图形标题
legend(['a1估计值:',num2str(a1_est(end)),',真实值:',num2str(a1)],...
['a2估计值:',num2str(a2_est(end)),',真实值:',num2str(a2)],...
['b1估计值:',num2str(b1_est(end)),',真实值:',num2str(b1)],...
['b2估计值:',num2str(b2_est(end)),',真实值:',num2str(b2)]);
figure; %画第3个图形
plot(1:L,a1_err,'r')
hold on
plot(1:L,a2_err,'b')
hold on
plot(1:L,b1_err,'m')
hold on
plot(1:L,b2_err,'k')
hold on
xlabel('k')
ylabel('辨识参数') %标注纵轴变量
title('LS辨识参数估计值') %图形标题
legend(['a1估计误差:',num2str(a1_err(end))],...
['a2估计误差:',num2str(a2_err(end)),],...
['b1估计误差:',num2str(b1_err(end))],...
['b2估计误差:',num2str(b2_err(end))]);
xlabel('k') %标注横轴变量
ylabel('参数误差') %标注纵轴变量
title('参数的误差收敛情况') %图形标题
68
4.本算法原理
在控制理论和系统辨识领域,模型参数辨识是确定动态系统数学模型参数的过程,这对于控制系统的设计、分析和优化至关重要。"LS"通常指的是最小二乘法(Least Squares),而"RML"可能指的是递归最大似然估计(Recursive Maximum Likelihood)或相关的递归辨识方法。
4.1 最小二乘法(LS)参数辨识
最小二乘法是一种常用的数据拟合技术,它旨在找到一组模型参数,使得模型预测值与实际观测值之间的误差平方和最小。对于一个线性动态系统,如果我们假设系统的输出y(t)与输入u(t)之间存在如下关系(离散时间表示):
4.2 递归最大似然估计(RML)参数辨识
递归最大似然估计是一种在线参数辨识方法,它基于系统的观测数据,逐步更新模型参数估计,适用于实时数据处理和参数快速变化的场景。假设系统动态可以由一个状态空间模型描述:
综上所述,最小二乘法和递归最大似然估计(通过递归最小二乘等方法实现)都是有效的模型参数辨识技术,前者适合于离线批量处理大量数据,后者则适合于实时在线处理数据流,两者在理论基础和应用场景上各有侧重。
5.完整程序
VVV