MATLAB-最小二乘辨识

一、最小二乘法(Least Squares Method)一般步骤

非线性最小二乘法是一种用于优化非线性系统模型的数学方法,它通过迭代过程来逐步逼近最优解。这种方法在处理非线性系统时非常有用,因为它允许模型在数据拟合过程中具有更灵活的形式。以下是使用非线性最小二乘法优化非线性系统模型的非线性最小二乘法:

  1. 模型建立:首先,你需要建立一个非线性模型,该模型能够描述系统的行为。这个模型通常形式为 f(x,θ)f(x,θ),其中 xx 是输入变量,θθ 是模型参数。

  2. 定义残差函数:残差函数 r(θ)r(θ) 表示模型预测值与实际观测值之间的差异。在最小二乘法中,目标是最小化这个残差的平方和。

  3. 选择初始参数:为模型参数 θθ 选择一个初始值。这个初始值可以基于经验、先前的研究或其他估计方法得到。

  4. 迭代优化:使用如高斯-牛顿法、牛顿法或梯度下降法等迭代算法来更新参数 θθ。这些方法通过计算残差函数的梯度和/或海塞矩阵(Hessian)来寻找误差平方和的最小值。

  5. 收敛判断:在每次迭代后,检查参数更新是否足够小,或者残差是否已经足够接近零。如果满足收敛条件,则停止迭代;否则,继续迭代。

  6. 模型验证:一旦找到最优参数,使用这些参数在模型中进行预测,并与实际数据进行比较,以验证模型的准确性。

二、LSM原理及应用

最小二乘法原理:未知量的最可能值是使各项实际观测值和计算值之间差的平方乘以其精确度的数值以后的和最小。

也就是说:

下面举一个例子说明算法原理:

通过试验确定热敏电阻阻值和温度之间的关系:

其中R = a + bt

对于上面的例子,在matlab中实现并进行计算:

复制代码
clear;
t = [20.5 26 32.7 40 51 61 73 80 88 95.7];
R = [765 790 826 850 873 910 942 980 1010 1022];
figure;
plot(t,R,"*");
hold on;
N = numel(t);


%最小二乘法拟合线性模型参数
den = N*sum(t.^2) - sum(t)^2;
a = (sum(R)*sum(t.^2) - sum(R.*t)*sum(t))/den
b = (N*sum(R.*t) - sum(R)*sum(t))/den


%绘制拟合直线
t1 = 1:100;
R1 = a + b*t1;
plot(t1, R1);


%计算温度t2 = 70对应的组织
t2 = 70;
R2 = a + b*t2

补充:如果希望将数据点连接起来,可以将plot语句改成:plot(t,R,"*-");

输出结果如下:

三、LSM在控制系统建模中的应用

算法原理:

注意事项:

伪随机序列(M序列)的产生:

matlab代码:

复制代码
clear;


n = 4; %四个移位寄存器
L = 2^n-1; %M序列的周期
mag = 5; %M序列的幅值
y1 = 1; y2 = 1; y3 = 1; y4 = 0; %四个移位寄存器的初始值


for i = 1:L
x1 = xor(y3,y4);
x2 = y1;
x3 = y2;
x4 = y3;
y(i) = y4;
if y(i) > 0.5
u(i) = -mag;
else
u(i) = mag;
end
y1 = x1;
y2 = x2;
y3 = x3;
y4 = x4;
end


figure(1); stem(u); grid on;
title('输入如信号M序列')
复制代码
生成的信号如下:

本文仅作为个人笔记使用,源自:Matlab系统辨识 - Yu_tiann - 博客园 (cnblogs.com)https://www.cnblogs.com/yutian-blogs/p/15775734.html

相关推荐
励志成为糕手43 分钟前
循环神经网络(RNN):时序数据的深度学习模型
人工智能·rnn·深度学习·gru·lstm
前端开发工程师请求出战1 小时前
Advanced RAG实战:评估闭环与持续优化体系
人工智能·全栈
Nturmoils1 小时前
基于Rokid CXR-M SDK实现AR智能助手应用:让AI大模型走进AR眼镜
人工智能·aigc
Ayanami_Reii1 小时前
基础数学算法-开关问题
数学·算法·高斯消元
稚辉君.MCA_P8_Java1 小时前
通义 Go 语言实现的插入排序(Insertion Sort)
数据结构·后端·算法·架构·golang
java_logo1 小时前
LobeHub Docker 容器化部署指南
运维·人工智能·docker·ai·容器·ai编程·ai写作
清云逸仙2 小时前
AI Prompt应用实战:评论审核系统实现
人工智能·经验分享·ai·语言模型·prompt·ai编程
正宗咸豆花2 小时前
Prompt Minder:重塑 AI 时代的提示词工程基础设施
人工智能·prompt
稚辉君.MCA_P8_Java2 小时前
Gemini永久会员 Go 实现动态规划
数据结构·后端·算法·golang·动态规划
清云逸仙2 小时前
使用AI(GPT-4)实现AI prompt 应用--自动审核评论系统
人工智能·经验分享·ai·语言模型·ai编程