系统辨识——最小二乘法

2023-11-14

基本原理

数学推导

  最小二乘法是通过输入数据与输出数据来拟合已知结构的函数关系,也就是说已知二者的函数关系,通过最小二乘法估计函数的相关参数。假设 x , y x,y x,y存在以下函数关系:
在这里插入图片描述
但是在实际中,测量数据时存在测量误差或者噪声影响,故而实际的函数关系为
在这里插入图片描述
v v v表示测量误差,这是一个小范围内的随机值。将所有测量误差相加
在这里插入图片描述
我们以测量误差的平方和最小代表测量总误差最小,即
在这里插入图片描述
用求极值的方法使 J J J a , b a,b a,b求一阶导并等于 0 0 0
在这里插入图片描述
解方程组得
在这里插入图片描述

实例验证

  某函数为
在这里插入图片描述
由于计算误差的存在获得的 12 12 12组值如下表所示:

x 10 21 33 54 66 68 90 100 121 133 150 181
y 46.2 72 120.6 179.5 215.4 229.3 275.7 317.8 384.9 419.1 467.2 558.9

以下为 m a t l a b matlab matlab程序:

clear all
close all
clc
x=[10,21,33,54,66,68,90,100,121,133,150,181];
y=[46.2,72,120.6,179.5,215.4,229.3,275.7,317.8,384.9,419.1,467.2,558.9];
n=12;

S_x=0;
S_y=0;
S_xy=0;
S_xx=0;
for i=1:n
    S_x=S_x+x(i);
    S_y=S_y+y(i);
    S_xy=S_xy+x(i)*y(i);
    S_xx=S_xx+x(i)*x(i);
end
b=(S_y*S_xx-S_xy*S_x)/(n*S_xx-S_x*S_x)
a=(n*S_xy-S_x*S_y)/(n*S_xx-S_x*S_x)
%最小二乘拟合
A=polyfit(x,y,1);
z=polyval(A,x);
%画图
figure 
plot(x,y,'b+')
figure
plot(x,z);
figure
plot(x,y,'b+')
hold on
plot(x,z,'r');
hold off

最终计算得 a , b a,b a,b值为
在这里插入图片描述
可见其与原函数参数很相近了,参数辨识较为理想,拟合曲线如下
在这里插入图片描述

一般最小二乘法

  对于 s i s o siso siso系统,其模型如下:
在这里插入图片描述
转换成差分方程形式
在这里插入图片描述
考虑到测量噪声存在,故而实际差分方程为
在这里插入图片描述

在这里插入图片描述
则可将原系统改写成
在这里插入图片描述
其中, k = 1 , 2 , 3... n k=1,2,3...n k=1,2,3...n,则有
在这里插入图片描述
写成矩阵形式
在这里插入图片描述
同理,使测量误差的平方和最小
在这里插入图片描述
根据极值定理,得
在这里插入图片描述
  这种方法进行系统辨识是可行的,但并不一定满足使用要求,因为这种方法需要全部的数据,也就是说先采集数据然后再估计参数,不仅不能实时估计,还占用大量的存储空间,故而仍需进一步改善。

递推最小二乘法

数学推导

  递推最小二乘法的思想就是用上一次的估计值加上修正项得到当前估计值,这样就可以实时得到参数估计值。设 k k k时刻的参数估计为
在这里插入图片描述
式中
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
那么
在这里插入图片描述
故而第 k k k时刻的最小二乘估计为
在这里插入图片描述
其中
在这里插入图片描述
前面提到式子
在这里插入图片描述
由矩阵求逆公式
在这里插入图片描述

在这里插入图片描述
于是归纳 K ( k ) K(k) K(k)
在这里插入图片描述
再次归纳 P ( k ) P(k) P(k)
在这里插入图片描述
最终得到递推最小二乘法公式为
在这里插入图片描述
式中 I I I表示单位矩阵,且令
在这里插入图片描述
其中 α α α为一个较大的正实数 ( 1 0 4 − 1 0 9 ) (10^4 -10^9) (104109), ε ε ε为一个充分小的正实数或向量 ( ε < 0.01 ) (ε<0.01) (ε<0.01)

实例验证

  已知有系统模型为
在这里插入图片描述
取采样周期为 T s = 0.01 s Ts=0.01s Ts=0.01s,将该模型离散化
在这里插入图片描述
s i n m u l i n k sinmulink sinmulink中采集数据,如下图
在这里插入图片描述
m a t l a b matlab matlab代码如下

L=length(in);
c0=[0.001 0.001]';
p0=1000*eye(2,2);

for k=2:L; 
    h1=[out(k-1),in(k-1)]';
    k1=p0*h1*inv(h1'*p0*h1+1);
    new=out(k)-h1'*c0; 
    c1=c0+k1*new;
    p1=(eye(2)-k1*h1')*p0;
    c0=c1;
    p0=p1;
end
c1

得结果为
在这里插入图片描述

在这里插入图片描述
可见参数与原系统相差无几,精度较为理想。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

系统辨识——最小二乘法 的相关文章

  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • 如何获取活动对象 MATLAB GUI 的句柄

    我正在尝试使用 MATLAB GUI 创建日历 我有两个Edit Text对象 edittext1 and edittext2 我想做这个 我把光标放在edittext1然后在日历中选择日期 它会进入文本字段edittext1 同样对于ed
  • 在 C/C++ 中调用 MATLAB API

    我刚刚从某处听说 对于数值计算 MATLAB 确实提供了一些用户友好的 API 如果你在 C C 代码中调用这些 API 你可以显着加快计算速度 但我在MATLAB文档中没有找到这样的信息 例如http www mathworks com
  • 如何以编程方式指定 MATLAB 编辑器键绑定

    我想将键盘键绑定设置为Windows 默认设置我想在启动时使用startup m因为我希望在大量系统上设置此设置 首选项对话框中的等效设置是 MATLAB gt Keyboard gt Shortcuts gt Active Setting
  • 在 MATLAB 中用两个值替换向量值

    我必须创建一个以向量作为输入的函数v和三个标量a b and c 该函数替换了的每个元素v等于a有一个二元素数组 b c 例如 给定v 1 2 3 4 and a 2 b 5 c 5 输出将是 out 1 5 5 3 4 我的第一次尝试是尝
  • 是否有一个函数可以检查矩阵是否对角占优(行占优)

    矩阵是对角占优 http en wikipedia org wiki Diagonally dominant matrix 按行 如果对角线处的值在绝对意义上大于该行中所有其他绝对值的总和 对于列也是如此 只是相反 matlab中有没有函数
  • 如何从绘图处理程序中绘图?

    我有绘图的处理程序或图形的处理程序 例子 h plot 1 0 2 10 xx get h xx DisplayName Annotation 1x1 handle Color 0 0 1 LineStyle LineWidth 0 500
  • 如何在Matlab中将世界坐标转换为像素索引

    我有 512x512x313 体积的 dicom 图像 并且我有一个以世界坐标表示的点 57 7475 63 4184 83 1515 我如何在 Matlab 中获得该世界坐标的相应像素坐标 我不想戳破你的幻想 但你所要求的是不可能的 我能
  • 非模态 questdlg.m 提示

    我的代码绘制了一个图 然后提示用户是否想使用不同的参数绘制另一个图 问题是 当 questdlg m 打开时 用户无法查看绘图的详细信息 这是代码 while strcmp Cont Yes 1 Some code modifying da
  • 从 Java 运行 MATLAB 函数

    我在 MATLAB 中有一个 m 文件 我想从 Java 调用该文件 并以字符串或 Java 中的任何形式获取解决方案 这听起来很简单 但由于某种原因我无法让它发挥作用 我试过这个 matlab nosplash wait nodeskto
  • 从 imread 返回的 ndims

    我正在从文件夹中选取图像 尺寸为128 128 为此 我使用以下代码行 FileName PathName uigetfile jpg Select the Cover Image file fullfile PathName FileNa
  • 在Matlab中选择图像上的像素时,索引指的是什么?

    当在Matlab中查看图像的单个像素时 该索引指的是什么 X Y 指的是像素的坐标 RGB 指的是颜色 但是关于索引是什么有什么想法吗 为了澄清一下 当我在 Matlab 中查看图形并使用数据光标选择一个点时 显示的三行是 X Y 指数 R
  • 直方图均衡结果

    I am trying to code histogram equalization by my self but the results are different from the built in function in matlab
  • Matlab 图像数据的 hist 函数

    我是 Matlab 新手 我想制作自己的函数 与 imhist 显示图像数据的直方图 完成相同的工作 但我对此完全是新手 我不知道如何做开发这样的功能 我开始做一些东西 但它非常不完整 function output args myhist
  • 以 2 为底的矩阵对数

    Logm 取矩阵对数 并且log2 取矩阵每个元素以 2 为底的对数 我正在尝试计算冯 诺依曼熵 它涉及以 2 为底的矩阵对数 我该怎么做呢 如果将 以 2 为底 的矩阵指数定义为B expm log 2 A 或者如果您类似地通过特征分解直
  • 在matlab中,如何读取python pickle文件?

    在 python 中 我生成了一个 p 数据文件 pickle dump allData open myallData p wb 现在我想在Matlab中读取myallData p 我的Matlab安装在Windows 8下 其中没有Pyt
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • 获取向量幂的有效方法

    我编写了一个代码 在数值上使用勒让德多项式直至某个高 n 阶 例如 case 8 p 6435 x 8 12012 x 6 6930 x 4 1260 x 2 35 128 return case 9 如果向量x太长这会变得很慢 我发现说之
  • FMINCON 的替代方案

    除了 fmincon 之外还有其他更快 更高效的求解器吗 我正在使用 fmincon 来解决特定问题 但对于中等大小的向量变量来说 我的内存不足 我也没有任何超级计算机或云计算选项可供使用 我知道任何替代解决方案仍然会耗尽内存 但我只是想看
  • 通过多次合并相同的行向量来构建矩阵

    有没有一个matlab函数可以让我执行以下操作 x 1 2 2 3 然后基于x我想建立矩阵m 1 2 2 3 1 2 2 3 1 2 2 3 1 2 2 3 您正在寻找REPMAT http www mathworks com help t

随机推荐

  • 客户价值预测:线性回归模型与诊断(概念)

    客户生命周期可分为四个阶段 潜在客户阶段 响应客户阶段 既得客户阶段 流失客户阶段 本章整体是一个客户价值预测的案例 背景是某信用卡公司在地推活动之后 获取了大量客户的信用卡申请信息 其中一个部分客户顺利开卡 并且有月消费记录 而另外一部分
  • C语言结构体应用-通讯录

    这里写目录标题 总体介绍 一 数据的定义及数据初始化 二 增加联系人 三 删除联系人 四 修改某个联系人 五 显示所有联系人 六 删除所有联系人 七 按名字首字母排序联系人 八 查找联系人 九 代码展示 总体介绍 本文主要介绍一个结构体的应
  • vue 点击事件失效

    点击事件失效的情况 总共有三种 1 没有点到那个元素 比如说div gt span 事件绑定在div上 但是它可能点来点去是在span标签上面 这种情况 把 click点击事件绑定到span上测试一下就好了 如果是被覆盖了 加个这个 sto
  • error while loading shared libraries: libcublasLt.so.11 解决方法

    在运行cuda程序的时候 有时候会遇到此类错误 error while loading shared libraries libcublasLt so 11 问题是两个 确实没有此类库文件 有此库文件 不过没有放在正确的地方 针对第一类 如
  • Java实现将JSON文件导出到Excel

    文章目录 一 运行环境 二 需求描述 三 实现思路 四 实现代码 一 运行环境 windows10 IDEA 2022 JDK 8 Maven 3 8 6 Apache POI 5 fastjson2 二 需求描述 写一个功能 任意json
  • 利用Vulnhub复现漏洞 - Adobe ColdFusion 反序列化漏洞(CVE-2017-3066)

    Adobe ColdFusion 反序列化漏洞 CVE 2017 3066 Vulnhub官方复现教程 漏洞原理 复现漏洞 启动环境 漏洞复现 生成POC 发送POC 发送POC内容 检验POC 进入容器 通过DockerID进入容器 查看
  • 软工实践2019——第二次作业评分

    第二次作业评分 第二次作业原文 写在前面的话 看了大家陆续提交的第一次作业 感慨良多 初心 勇气和信心 回顾初心 回想自己当初为什么报这个专业 不知你们是否看过电影 无问西东 其中有一句台词 如果提前了解了你们要面对的人生 不知你们是否还会
  • VirtualBox中安装Android-x86详解

    1 下载安装VirtualBox 官网 http www virtualbox org wiki Downloads 2 下载Android x86 官网 http www android x86 org download 这里我们下载5
  • 19. 第三方库的管理和虚拟环境

    Hi 大家好 我是茶桁 在我们之前的课程中 讲解了数据 函数 类 模块以及包 这些基本上已经构成了Python的全部了 那么 我们在学习Python的包之后 有没有思考过 既然Python有内置模块 我们也可以自己写一些模块来使用 那一定有
  • 3D游戏设计作业10:AR/MR 技术

    AR MR 技术 游戏截图 1 作业要求 1 图片识别与建模 2 虚拟按键小游戏 2 设计思路 1 首先是要安装Vuforia 这里直接在file build settings player settings里勾选Vuforia Augme
  • 【漏洞复现】CVE-2021-32682 elFinder ZIP 参数与任意命令注入

    1 Vulhub启动环境 2 查看端口号 3 输入网址 ip 8080 打开网页 4 先创建一个普通的文本文件1 txt 5 然后右键这个文件 对其进行打包 打包后的文件命名为2 zip 并同时进行抓包 获取1 txt的base64编码 6
  • 成员变量与局部变量

    一 成员变量 在类中定义 用来描述对象将要有什么 二 局部变量 在类的方法中定义 在方法中临时保存数据 三 成员变量和局部变量的区别 1 作用域不同 局部变量的作用域仅限于定义它的方法 成员变量的作用域在整个类内部都是可见的 2 初始值不同
  • 【总结】爬虫流程

    爬虫流程 根据所需数据确定爬虫网页 首先考虑resquests 需要提前导入 1 若是文本数据 用response text 2 若是下载视频 图片 音频 用response content 3 若是json接口 用response jso
  • CSS整体界面设计

  • RBAC简介

    RBAC BAC基于角色的访问控制 RBAC认为权限授权的过程可以抽象地概括为 Who是否可以对What进行How的访问操作 RBAC简介 基于角色的权限访问控制模型 在RBAC模型里面 有3个基础组成部分 分别是 用户 角色和权限 RBA
  • Java多线程异常处理

    文章目录 一 线程中出现异常的处理 1 线程出现异常的默认行为 2 setUncaoughtExceptionHandler 方法处理异常 3 setDefaultUncaoughtExceptionHandler 方法进行异常处理 二 线
  • vue3.0的安装配置(含node和npm的配置)

    文章目录 一 下载Node js 二 配置环境变量 三 配置NPM下载存放目录 文件不用事先创建 四 NPM设置镜像仓库 淘宝镜像仓库 五 vue cli脚手架创建Vue3 0项目 一 下载Node js 下载地址 二 配置环境变量 在CM
  • SpringBoot自定义错误页面 与 全局异常处理

    Springboot中需要自定义错误页面 一 使用Springboot默认的配置 1 在templates下穿件一个目录 error 2 在error目录下创建相应的对应的文件即可 如 400 html 500 html 二 自定义错误页面
  • 南大和中大“合体”拯救手残党:基于GAN的PI-REC重构网络,终于有救了

    对于喜欢画画的你来说 总是画得七零八落 不堪入目 但现在 有一种方法可以让你像专业人士那样 让你的糟糕画作变成一副完美的作品 南京大学和中山大学的三位研究人员发布的最新论文中 提出了一种具有边缘和色域的渐进式图像重构网络 PI REC 这是
  • 系统辨识——最小二乘法

    基本原理 数学推导 最小二乘法是通过输入数据与输出数据来拟合已知结构的函数关系 也就是说已知二者的函数关系 通过最小二乘法估计函数的相关参数 假设 x y x y x y存在以下函数关系 但是在实际中 测量数据时存在测量误差或者噪声影响 故